diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..36b24f2 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: gomod + directory: / + schedule: + interval: daily diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..6e718e5 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,63 @@ +name: Test + +# Controls when the workflow will run +on: [push, pull_request, workflow_dispatch] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + Linux: + # The type of runner that the job will run on + runs-on: ubuntu-20.04 + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + - name: Setup Go environment + uses: actions/setup-go@v3 + with: + go-version: 'stable' + check-latest: true + + - name: Compiles + run: | + go mod tidy + go build ./... + + - name: Runs go fmt + if: ${{ success() }} + run: | + OUTPUT=$(go fmt ./... 2>&1) + if [ ! -z "$OUTPUT" ]; then + echo "go fmt failed on the following files:" + echo "$OUTPUT" + exit 1 + fi + - name: Runs unit tests + if: ${{ success() }} + run: go test -coverprofile ./unitcoverage.out ./... + + - name: Generates the SEMPv2 client + if: ${{ success() }} + run: | + go generate . + working-directory: ./test/sempclient + + - name: Runs the integration tests + if: ${{ success() }} + run: | + mkdir reports + go install github.com/onsi/ginkgo/v2/ginkgo@v2.1.3 + ginkgo --junit-report=./reports/report.xml -coverprofile ./reports/coverage.out -coverpkg solace.dev/go/messaging-trace/opentelemetry/internal/...,solace.dev/go/messaging-trace/opentelemetry/... -tags enable_debug_logging + working-directory: ./test + + - name: Uploads artifacts + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + path: | + ./unitcoverage.out + ./test/reports/report.xml + ./test/reports/coverage.out + ./test/diagnostics.tgz diff --git a/.gitignore b/.gitignore index 3b735ec..44a5974 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,27 @@ # Go workspace file go.work + +.DS_STORE + +.vscode + +# Removing the commented out includes +# lib/*/bin* +# lib/*/lib* +# lib/*/include* + +test/reports +test/diagnostics.tgz + +test/sempclient/action/* +!test/sempclient/action/go.mod +!test/sempclient/action/go.sum + +test/sempclient/config/* +!test/sempclient/config/go.mod +!test/sempclient/config/go.sum + +test/sempclient/monitor/* +!test/sempclient/monitor/go.mod +!test/sempclient/monitor/go.sum diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..2cadb2d --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,77 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all project spaces, and it also applies when +an individual is representing the project or its community in public spaces. +Examples of representing a project or community include using an official +project e-mail address, posting via an official social media account, or acting +as an appointed representative at an online or offline event. Representation of +a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at support@solace.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..a9f1b69 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,65 @@ +## How to Contribute to a Solace Project + +#### **Did you find a bug?** + +* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/SolaceProducts/pubsubplus-opentelemetry-go-integration/issues). + +* If you're unable to find an open issue that addresses the problem, [open a new one](https://github.com/SolaceProducts/pubsubplus-opentelemetry-go-integration/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring. + +#### **Did you write a patch that fixes a bug?** + +* Open a new GitHub pull request with the patch. + +* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable. + +#### **Do you intend to add a new feature or change an existing one?** + +* Open a GitHub [enhancement request issue](https://github.com/SolaceProducts/pubsubplus-opentelemetry-go-integration/issues/new) and describe the new functionality. + +#### **Do you have questions about the source code?** + +* Ask any question about the code or how to use Solace PubSub+ OpenTelemetry Integration API in the [Solace community](https://solace.dev/community/). + +## Developer Guide + +### Overview + +The Solace PubSub+ OpenTelemetry Integration API for Go is used to handle injection and extraction of tracing information for carrier objects (Solace message) for a Solace PubSub+ Event Broker. It has a dependency on the [Solace PubSub+ Messaging API for Go](https://docs.solace.com/API/Messaging-APIs/Go-API/go-home.htm). + +### Repository Contents + +The following are the directories that are part of the repository: +- `./`: contains the API's main entrypoints such as tracing. +- `carrier`: contains the API's carrier interfaces +- `internal`: contains the implementation for the PubSub+ OpenTelemetry Integration API for Go +- `logging`: contains the API's logging interfaces, constants and basic data structures +- `test`: contains integration tests for the PubSub+ OpenTelemetry Integration API for Go + +### Prerequisites + +There are a handful of prerequisites for developing the Solace PubSub+ OpenTelemetry Integration API for Go: +- Golang version 1.17+ +- A golang enabled code editor, preferably with format on save + - https://github.com/fatih/vim-go + - https://code.visualstudio.com/docs/languages/go +- (optional) Docker used for testing +- (optional) Godoc Static to generate a static version of the documentation + +Note: +- The integration tests are their own go module. This is currently not compatible with the [go language server](https://github.com/golang/tools/blob/master/gopls/README.md) which is the default used in VS Code. In particular, there is only support for a single module per workspace. The solution to this is to open the tests in their own workspace. + +### Testing + +Any new features added to the API must have corresponding tests added to the [integration test project](./test). See [the test README](./test/README.md) for details on running the tests. Any new feature must not decrease overall test coverage. + +#### Github Actions + +The integration tests are run on every new commit via Github Actions. These tests are run on the latest Go version on Linux. + +### Generating Documentation + +Documentation should work in all cases using `godoc` in the module and navigating to the local webserver. + +#### Generating Static Documentation + +In addition, static documentation can be generated. To do this, first install godoc-static, and then run `go run docs-templates/generate_documentation.go`. diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..7d2b554 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,50 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2021-2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The following is an internal infrastructure file for building +properties([ + buildDiscarder(logRotator(daysToKeepStr: '30', numToKeepStr: '10')), +]) +currentBuild.rawBuild.getParent().setQuietPeriod(0) + +library 'jenkins-pipeline-library@main' + +/* + Go Version examples: + auto-v1.17.x: Latest patch of 1.17 release + auto-v1.17.2: Specific patch of 1.17 release + auto-v1.17.0: First release of 1.17 (Despite go versioning this as 1.17) + auto-latest: Most recent patch version of latest minor release + auto-previous: Most recent patch version of previous minor release + auto-2previous: Most recent patch version of second last minor release + + Adoption of new versions into these may be delayed. +*/ + +builder.goapi([ + "buildCheckGoVer": 'auto-v1.20.0', + "validationGoVer": 'auto-v1.20.0', + "staticCheckPkg": 'honnef.co/go/tools/cmd/staticcheck@v0.4.6', + "getTestPermutations": { + List> permutations = [] + for (platform in [builder.LINUX_ARM, builder.LINUX_X86_64, builder.LINUX_MUSL, builder.DARWIN_X86_64, builder.DARWIN_ARM]) { + for (gover in ['auto-latest', 'auto-previous']) { + permutations << [platform, gover] + } + } + return permutations + } +]) diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..733a419 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,224 @@ +LICENSE SUMMARY +=============== + +License terms can be found at the bottom of this file. + +Apache 2.0 + +This product requires the Solace PubSub+ Messaging API for Go product from Solace, which is distributed separately. +See the license file for Solace PubSub+ Messaging API for Go for the list of additional licenses that apply. + + +THIRD-PARTY SOFTWARE USED +========================= + + +LICENSE REQUIREMENTS & SPECIFICATIONS +====================================== + +Apache 2.0 +---------- + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/NOTICE.txt b/NOTICE.txt new file mode 100644 index 0000000..8285c4b --- /dev/null +++ b/NOTICE.txt @@ -0,0 +1,15 @@ +pubsubplus-opentelemetry-go-integration + +Copyright 2024 Solace Corporation. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md index d68970b..6dd47f5 100644 --- a/README.md +++ b/README.md @@ -1 +1,61 @@ -# pubsubplus-opentelemetry-go-integration \ No newline at end of file +# Solace: solace.dev/go/messaging-trace/opentelemetry +[![Test](https://github.com/SolaceProducts/pubsubplus-opentelemetry-go-integration/actions/workflows/test.yml/badge.svg)](https://github.com/SolaceProducts/pubsubplus-opentelemetry-go-integration/actions/workflows/test.yml) +[![PkgGoDev](https://pkg.go.dev/badge/solace.dev/go/messaging-trace/opentelemetry.svg)](https://pkg.go.dev/solace.dev/go/messaging-trace/opentelemetry) +[![Go Report Card](https://goreportcard.com/badge/solace.dev/go/messaging-trace/opentelemetry)](https://goreportcard.com/report/solace.dev/go/messaging-trace/opentelemetry) + +The Solace PubSub+ OpenTelemetry Integration API for Go is used to handle injection and extraction of tracing information for carrier objects (Solace message) for a Solace PubSub+ Event Broker. + +## Getting Started + +To get started using the Solace PubSub+ OpenTelemetry Integration API for Go, simply include it as a required module in your Go project by running `go get solace.dev/go/messaging-trace/opentelemetry`. The Solace PubSub+ OpenTelemetry Integration API for Go requires Go version 1.20+ (based on the minimum compatible version for opentelemtry-Go [https://github.com/open-telemetry/opentelemetry-go/blob/main/README.md](https://github.com/open-telemetry/opentelemetry-go/blob/main/README.md#compatibility)). + +### Usage + +- Sample applications https://github.com/SolaceSamples/solace-samples-go. +- Documentation https://docs.solace.com/Solace-PubSub-Messaging-APIs/Go-API/go-home.htm +- Developer reference https://docs.solace.com/API-Developer-Online-Ref-Documentation/go/ + +### OS Support + +The Solace PubSub+ OpenTelemetry Integration API for Go has a hard depedency on the Solace PubSub+ API which is a wrapper around the high performance Solace C API via Cgo and has support for the following operating systems: +- Linux (x86/x86_64) variants with Linux 2.6 or later (compatible with glibc (desktop/server) and musl-c (Alpine Linux)) +- Linux (arm64) variants compatible with glibc (desktop/server) +- Windows WSL 2.0 +- macOS 10.15 and later (x86_64 versions) +- macOS 11.0 and later (arm64 versions) + +## Contributing + +Ensure that you read [CONTRIBUTING](CONTRIBUTING.md) for details on the process for submitting pull requests to us. + +## Authors + +See the list of [contributors](https://github.com/SolaceProducts/pubsubplus-opentelemetry-go-integration/graphs/contributors) who participated in this project. + +## License + +This project is licensed under the Apache License, Version 2.0. - See the [LICENSE](LICENSE.txt) file for details. + +This project packages and links against the Solace PubSub+ API. See [the licenses for the packgae](https://github.com/SolaceProducts/pubsubplus-go-client/internal/ccsmp/lib/licenses.txt) for details. + +## Code of Conduct + +[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md) +Note that this project is released with a Contributor Code of Conduct. By participating in this project, you agree to abide by its terms. + +## Support + +### Ask Solace Community + +Have a question? Ask the [Solace Community](https://dev.solace.com/community/)! + +### Ask Solace Support + +https://solace.com/support + +## Resources + +- The [Solace Developer Portal](https://dev.solace.com) +- Understanding [Solace technology](https://solace.com/products/tech/) + +Copyright 2024 Solace Corporation. All rights reserved. diff --git a/carrier/doc.go b/carrier/doc.go new file mode 100644 index 0000000..56e57e5 --- /dev/null +++ b/carrier/doc.go @@ -0,0 +1,19 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package carrier contains the main type definitions +// for the Getter and Setter for handling OTEL tracing. +package carrier diff --git a/carrier/inbound_message_carrier.go b/carrier/inbound_message_carrier.go new file mode 100644 index 0000000..b3276fe --- /dev/null +++ b/carrier/inbound_message_carrier.go @@ -0,0 +1,24 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package carrier // import "solace.dev/go/messaging-trace/opentelemetry/carrier" + +// InboundMessageCarrier is a type of MessageCarrier for inbound messages. +type InboundMessageCarrier interface { + // Extend the MessageCarrier interface. + MessageCarrier + // equivalent to MessageCarrier. This is a placeholder for future inbound specific functions. +} diff --git a/carrier/message_carrier.go b/carrier/message_carrier.go new file mode 100644 index 0000000..8458588 --- /dev/null +++ b/carrier/message_carrier.go @@ -0,0 +1,30 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package carrier + +// MessageCarrier represents the functionality for extraction and injection of tracing properties +type MessageCarrier interface { + + // Get returns the value associated with the passed key. + Get(key string) string + + // Set stores the key-value pair. + Set(key, val string) + + // Keys lists the keys stored in this carrier. + Keys() []string +} diff --git a/carrier/outbound_message_carrier.go b/carrier/outbound_message_carrier.go new file mode 100644 index 0000000..1177493 --- /dev/null +++ b/carrier/outbound_message_carrier.go @@ -0,0 +1,24 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package carrier // import "solace.dev/go/messaging-trace/opentelemetry/carrier" + +// OutboundMessageCarrier is a type of MessageCarrier for inbound messages. +type OutboundMessageCarrier interface { + // Extend the MessageCarrier interface. + MessageCarrier + // equivalent to MessageCarrier. This is a placeholder for future outbound specific functions. +} diff --git a/doc.go b/doc.go new file mode 100644 index 0000000..3c56126 --- /dev/null +++ b/doc.go @@ -0,0 +1,20 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package opentelemetry contains the functions used to handle injection +// and extraction of tracing information for carrier objects (Solace message) +// for a Solace PubSub+ Event Broker. +package opentelemetry diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..af214f6 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module solace.dev/go/messaging-trace/opentelemetry + +go 1.20 + +require solace.dev/go/messaging v1.5.0 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..1b72813 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +solace.dev/go/messaging v1.5.0 h1:bwGqwH1cKU3YO0AQNyaeaaXYKESWoHAnyTxbRUp6KCQ= +solace.dev/go/messaging v1.5.0/go.mod h1:QKqAKqxKX5v0G9PEuRpe9wBNbEuj/ncbrkqsNArT7L0= diff --git a/internal/doc.go b/internal/doc.go new file mode 100644 index 0000000..a263ad1 --- /dev/null +++ b/internal/doc.go @@ -0,0 +1,18 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package internal contains the logger and simple utility functions +package internal diff --git a/internal/impl/inbound_message_carrier_impl.go b/internal/impl/inbound_message_carrier_impl.go new file mode 100644 index 0000000..1feb7c4 --- /dev/null +++ b/internal/impl/inbound_message_carrier_impl.go @@ -0,0 +1,84 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package impl contains the main type definitions +// for the Getter and Setter for handling OTEL tracing. +package impl + +import ( + "solace.dev/go/messaging-trace/opentelemetry/internal/impl/logging" + "solace.dev/go/messaging/pkg/solace/message" +) + +// InboundMessageCarrier injects and extracts traces from a message.InboundMessage at 'solace.dev/go/messaging/pkg/solace/message'. +// it implements go.opentelemetry.io/otel/propagation.TextMapCarrier interface. +type InboundMessageCarrier struct { + messagePointer message.InboundMessage +} + +// NewInboundMessageCarrier creates a new InboundMessageCarrierImpl to be used with OpenTelemetry propagator API. +func NewInboundMessageCarrier(message message.InboundMessage) *InboundMessageCarrier { + // perform null check on a pointer to the underlying message + if message == nil { + return nil + } + return &InboundMessageCarrier{messagePointer: message} +} + +// GetInboundMessageCarrierPointer function +func GetInboundMessageCarrierPointer(message *InboundMessageCarrier) message.InboundMessage { + if message == nil { + return nil + } + return message.messagePointer +} + +// Get returns the value associated with the passed key. +func (carrier InboundMessageCarrier) Get(key string) string { + // 1. when key is 'traceparent', retrieve all parts of the traceparent from the underlying message pointer + // 2. when key is 'tracestate', retrieve all parts of the tracestate from the underlying message pointer + // 3. when key is 'baggage', get baggage from the underlying message pointer + // when key is non of above (log as it is not supported format), try to get from message user property using given key as is, when found return value as is, otherwise return empty string. + + if key == "" { + return "" // invalid key argument passed in + } + + // try to get from message user property using given key as is, when found return value as is, otherwise return empty string. + if retrievedProperty, found := carrier.messagePointer.GetProperty(key); !IsTracingKeySupported(key) && found { + logging.Default.Warning("key does not match supported OTEL tracing property name, returning from message's User Property Map") + return retrievedProperty.(string) // return the retrieved property from the message + } + + return GetTracingField(carrier.messagePointer, key) // return the retrieved tracing property value +} + +// Set stores the key-value pair. +func (carrier InboundMessageCarrier) Set(key, val string) { + // Use an internal MessageImpl data storage to insert otel data from propagator: + // 1. when key is 'traceparent' decompose value and store all parts of the traceparent into the underlying message pointer + // 2. when key is 'tracestate' store all parts of the tracestate from the underlying message pointer (determine if transport or creation context to set) + // 3. when key is 'baggage' set baggage on the underlying message pointer + // when key is non of above ignore (log as it is not supported format with warn level) + + SetTracingField(carrier.messagePointer, key, val) // set the tracing field value +} + +// Keys lists the keys stored in this carrier. +func (carrier InboundMessageCarrier) Keys() []string { + // return these 'traceparent', 'tracestate', 'baggage' + return GetSupportedTracingKeys() +} diff --git a/internal/impl/logging/logging.go b/internal/impl/logging/logging.go new file mode 100644 index 0000000..804933f --- /dev/null +++ b/internal/impl/logging/logging.go @@ -0,0 +1,216 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package logging is defined below +package logging + +import ( + "fmt" + "io" + "log" + "os" + "reflect" +) + +// LogLevel type +type LogLevel byte + +const ( + // Critical defined + Critical LogLevel = iota + + // Error defined + Error LogLevel = iota + + // Warning defined + Warning LogLevel = iota + + // Info defined + Info LogLevel = iota + + // Debug defined + Debug LogLevel = iota + + logLevelCount LogLevel = iota + + defaultLogLevel = Warning + + defaultFlags = log.Ldate | log.Ltime | log.Lshortfile + + defaultCalldepth = 2 +) + +// Default defined +var Default LogLevelLogger + +func init() { + nativeLogger := log.New(os.Stderr, "", defaultFlags) + logger := &logLevelLoggerCore{} + logger.Logger = nativeLogger + logger.logLevel = defaultLogLevel + logger.calldepth = defaultCalldepth + Default = logger +} + +// For function +func For(item interface{}) LogLevelLogger { + return Default.For(item) +} + +// LogLevelNames defined +var LogLevelNames = []string{ + "CRITICAL", + "ERROR", + "WARNING", + "INFO", + "DEBUG", +} + +// LogLevelLogger defined +type LogLevelLogger interface { + SetLevel(logLevel LogLevel) + GetLevel() LogLevel + + IsCriticalEnabled() bool + IsErrorEnabled() bool + IsWarningEnabled() bool + IsInfoEnabled() bool + IsDebugEnabled() bool + + Critical(message string) + Error(message string) + Warning(message string) + Info(message string) + Debug(message string) + + For(item interface{}) LogLevelLogger + + SetFlags(flag int) + SetOutput(writer io.Writer) +} + +type logLevelLoggerCore struct { + *log.Logger + logLevel LogLevel + calldepth int +} + +func (logger *logLevelLoggerCore) IsCriticalEnabled() bool { + return logger.logLevel >= Critical +} + +func (logger *logLevelLoggerCore) IsErrorEnabled() bool { + return logger.logLevel >= Error +} + +func (logger *logLevelLoggerCore) IsWarningEnabled() bool { + return logger.logLevel >= Warning +} + +func (logger *logLevelLoggerCore) IsInfoEnabled() bool { + return logger.logLevel >= Info +} + +func (logger *logLevelLoggerCore) IsDebugEnabled() bool { + return logger.logLevel >= Debug +} + +func (logger *logLevelLoggerCore) SetLevel(logLevel LogLevel) { + if logLevel < logLevelCount { + logger.logLevel = logLevel + } +} + +func (logger *logLevelLoggerCore) GetLevel() LogLevel { + return logger.logLevel +} + +func (logger *logLevelLoggerCore) For(item interface{}) LogLevelLogger { + var prefix string + if item != nil { + if t := reflect.TypeOf(item); t.Kind() == reflect.Ptr { + // [pubsubplus-opentelemetry-go-integration]: + prefix = fmt.Sprintf("%s$%p ", t.Elem().Name(), item) + } + // Do not generate prefix in case where item is not a pointer type + } + return &logAdapter{logger, prefix} +} + +func (logger *logLevelLoggerCore) Critical(message string) { + if logger.IsCriticalEnabled() { + logger.Output(logger.calldepth, LogLevelNames[Critical]+" "+message) + } +} + +func (logger *logLevelLoggerCore) Error(message string) { + if logger.IsErrorEnabled() { + logger.Output(logger.calldepth, LogLevelNames[Error]+" "+message) + } +} + +func (logger *logLevelLoggerCore) Warning(message string) { + if logger.IsWarningEnabled() { + logger.Output(logger.calldepth, LogLevelNames[Warning]+" "+message) + } +} + +func (logger *logLevelLoggerCore) Info(message string) { + if logger.IsInfoEnabled() { + logger.Output(logger.calldepth, LogLevelNames[Info]+" "+message) + } +} + +func (logger *logLevelLoggerCore) Debug(message string) { + if logger.IsDebugEnabled() { + logger.Output(logger.calldepth, LogLevelNames[Debug]+" "+message) + } +} + +type logAdapter struct { + *logLevelLoggerCore + prefix string +} + +func (logger *logAdapter) Critical(message string) { + if logger.IsCriticalEnabled() { + logger.Output(logger.calldepth, LogLevelNames[Critical]+" "+logger.prefix+message) + } +} + +func (logger *logAdapter) Error(message string) { + if logger.IsErrorEnabled() { + logger.Output(logger.calldepth, LogLevelNames[Error]+" "+logger.prefix+message) + } +} + +func (logger *logAdapter) Warning(message string) { + if logger.IsWarningEnabled() { + logger.Output(logger.calldepth, LogLevelNames[Warning]+" "+logger.prefix+message) + } +} + +func (logger *logAdapter) Info(message string) { + if logger.IsInfoEnabled() { + logger.Output(logger.calldepth, LogLevelNames[Info]+" "+logger.prefix+message) + } +} + +func (logger *logAdapter) Debug(message string) { + if logger.IsDebugEnabled() { + logger.Output(logger.calldepth, LogLevelNames[Debug]+" "+logger.prefix+message) + } +} diff --git a/internal/impl/logging/logging_test.go b/internal/impl/logging/logging_test.go new file mode 100644 index 0000000..a84a721 --- /dev/null +++ b/internal/impl/logging/logging_test.go @@ -0,0 +1,260 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package logging_test + +// Unit tests for the contents of logging + +import ( + "bytes" + "fmt" + "reflect" + "runtime" + "strings" + "testing" + + "solace.dev/go/messaging-trace/opentelemetry/internal/impl/logging" +) + +var logLevels []logging.LogLevel = []logging.LogLevel{ + logging.Critical, + logging.Error, + logging.Warning, + logging.Info, + logging.Debug, +} + +type logLevelCheck struct { + level logging.LogLevel + print func(message string) + check func() bool + indicator string +} + +func getLogLevelChecks(logger logging.LogLevelLogger) []logLevelCheck { + return []logLevelCheck{ + {logging.Critical, logger.Critical, logger.IsCriticalEnabled, "CRITICAL"}, + {logging.Error, logger.Error, logger.IsErrorEnabled, "ERROR"}, + {logging.Warning, logger.Warning, logger.IsWarningEnabled, "WARNING"}, + {logging.Info, logger.Info, logger.IsInfoEnabled, "INFO"}, + {logging.Debug, logger.Debug, logger.IsDebugEnabled, "DEBUG"}, + } +} + +func TestSetLoggerLevel(t *testing.T) { + logger := logging.Default + logger.SetLevel(logging.Critical) + if logger.GetLevel() != logging.Critical { + t.Errorf("expected logging level to be %d, got %d", logging.Critical, logger.GetLevel()) + } + logger.SetLevel(logging.Info) + if logger.GetLevel() != logging.Info { + t.Errorf("expected logging level to be %d, got %d", logging.Info, logger.GetLevel()) + } +} + +func TestLogLevelChecks(t *testing.T) { + logger := logging.Default + logLevelChecks := getLogLevelChecks(logger) + for _, level := range logLevels { + logger.SetLevel(logging.LogLevel(level)) + for _, check := range logLevelChecks { + result := check.check() + if (level >= check.level) != (result) { + t.Errorf("expected function %s to return %t when log level equals %d", runtime.FuncForPC(reflect.ValueOf(check.check).Pointer()).Name(), level >= check.level, level) + } + } + } +} + +type myTestStruct struct { +} + +func TestLogLevelPrefix(t *testing.T) { + logger := logging.Default + output := &bytes.Buffer{} + logger.SetOutput(output) + logger.SetFlags(0) + logger.SetLevel(logging.Info) + myInstance := &myTestStruct{} + prefixedLogger := logger.For(myInstance) + prefixedLogger.Info("Hello World") + result := output.String() + expected := fmt.Sprintf("myTestStruct$%p", myInstance) + if !strings.Contains(result, expected) { + t.Errorf("expected string '%s' to contain '%s'", result, expected) + } +} + +func TestLogLevelNonPointerNoPrefix(t *testing.T) { + logger := logging.Default + output := &bytes.Buffer{} + logger.SetOutput(output) + logger.SetFlags(0) + logger.SetLevel(logging.Info) + myInstance := myTestStruct{} + prefixedLogger := logger.For(myInstance) + prefixedLogger.Info("Hello World") + result := output.String() + unexpected := "myTestStruct" + if strings.Contains(result, unexpected) { + t.Errorf("expected string '%s' to not contain '%s'", result, unexpected) + } +} + +func TestLogLevelOutputs(t *testing.T) { + logger := logging.Default + logLevelChecks := getLogLevelChecks(logger) + buffer := &bytes.Buffer{} + logger.SetOutput(buffer) + logger.SetFlags(0) + for _, level := range logLevels { + logger.SetLevel(logging.LogLevel(level)) + for _, output := range logLevelChecks { + buffer.Reset() + output.print("Some Message") + if (level >= output.level) != (buffer.String() != "") { + t.Errorf("expected function %s to output? %t when log level equals %d", runtime.FuncForPC(reflect.ValueOf(output.print).Pointer()).Name(), level == output.level, level) + } + } + } +} + +func TestLogLevelIndicators(t *testing.T) { + logger := logging.Default + buffer := &bytes.Buffer{} + logger.SetOutput(buffer) + logger.SetFlags(0) + for _, output := range getLogLevelChecks(logger) { + logger.SetLevel(output.level) + buffer.Reset() + output.print("Some Message") + if !strings.HasPrefix(buffer.String(), output.indicator) { + t.Errorf("expected function %s to output message with prefix %s, got string '%s'", runtime.FuncForPC(reflect.ValueOf(output.print).Pointer()).Name(), output.indicator, buffer.String()) + } + } +} + +func TestChildLogLevelOutputs(t *testing.T) { + logger := logging.Default.For(t) + logLevelChecks := getLogLevelChecks(logger) + buffer := &bytes.Buffer{} + logger.SetOutput(buffer) + logger.SetFlags(0) + for _, level := range logLevels { + logger.SetLevel(logging.LogLevel(level)) + for _, output := range logLevelChecks { + buffer.Reset() + output.print("Some Message") + if (level >= output.level) != (buffer.String() != "") { + t.Errorf("expected function %s to output? %t when log level equals %d", runtime.FuncForPC(reflect.ValueOf(output.print).Pointer()).Name(), level == output.level, level) + } + } + } +} + +func TestChildLogLevelIndicators(t *testing.T) { + logger := logging.Default.For(t) + buffer := &bytes.Buffer{} + logger.SetOutput(buffer) + logger.SetFlags(0) + for _, output := range getLogLevelChecks(logger) { + logger.SetLevel(output.level) + buffer.Reset() + output.print("Some Message") + if !strings.HasPrefix(buffer.String(), output.indicator) { + t.Errorf("expected function %s to output message with prefix %s, got string '%s'", runtime.FuncForPC(reflect.ValueOf(output.print).Pointer()).Name(), output.indicator, buffer.String()) + } + } +} + +func TestParentLoggerUpdateOfLogLevel(t *testing.T) { + logger := logging.Default + buffer := &bytes.Buffer{} + logger.SetFlags(0) + logger.SetLevel(logging.Debug) + logger.SetOutput(buffer) + testStruct1 := &myTestStruct{} + testStruct2 := &myTestStruct{} + logger1String := "Hello" + logger2String := "Goodbye" + logger1 := logger.For(testStruct1) + logger2 := logger.For(testStruct2) + buffer.Reset() + logger1.Info(logger1String) + if !strings.Contains(buffer.String(), logger1String) { + t.Errorf("expected logger1 to output string %s, got '%s'", logger1String, buffer.String()) + } + buffer.Reset() + logger2.Info(logger2String) + if !strings.Contains(buffer.String(), logger2String) { + t.Errorf("expected logger1 to output string %s, got '%s'", logger2String, buffer.String()) + } + logger.SetLevel(logging.Critical) + buffer.Reset() + logger1.Info(logger1String) + if buffer.String() != "" { + t.Errorf("expected logger1 to not output string when log level changed, got '%s'", buffer.String()) + } + buffer.Reset() + logger2.Info(logger2String) + if buffer.String() != "" { + t.Errorf("expected logger1 to not output string when log level changed, got '%s'", buffer.String()) + } +} + +func TestParentLoggerUpdateOfOutput(t *testing.T) { + logger := logging.Default + buffer := &bytes.Buffer{} + logger.SetFlags(0) + logger.SetLevel(logging.Debug) + logger.SetOutput(buffer) + testStruct1 := &myTestStruct{} + testStruct2 := &myTestStruct{} + logger1String := "Hello" + logger2String := "Goodbye" + logger1 := logger.For(testStruct1) + logger2 := logger.For(testStruct2) + buffer.Reset() + logger1.Info(logger1String) + if !strings.Contains(buffer.String(), logger1String) { + t.Errorf("expected logger1 to output string %s, got '%s'", logger1String, buffer.String()) + } + buffer.Reset() + logger2.Info(logger2String) + if !strings.Contains(buffer.String(), logger2String) { + t.Errorf("expected logger1 to output string %s, got '%s'", logger2String, buffer.String()) + } + buffer2 := &bytes.Buffer{} + logger.SetOutput(buffer2) + + buffer.Reset() + logger1.Info(logger1String) + if buffer.String() != "" { + t.Errorf("expected logger1 to not output string when log level changed, got '%s'", buffer.String()) + } + if !strings.Contains(buffer2.String(), logger1String) { + t.Errorf("expected logger1 to output string %s, got '%s'", logger1String, buffer2.String()) + } + buffer.Reset() + logger2.Info(logger2String) + if buffer.String() != "" { + t.Errorf("expected logger1 to not output string when log level changed, got '%s'", buffer.String()) + } + if !strings.Contains(buffer2.String(), logger2String) { + t.Errorf("expected logger1 to output string %s, got '%s'", logger2String, buffer2.String()) + } +} diff --git a/internal/impl/message_carrier_impl.go b/internal/impl/message_carrier_impl.go new file mode 100644 index 0000000..9c0f298 --- /dev/null +++ b/internal/impl/message_carrier_impl.go @@ -0,0 +1,234 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package impl contains the main type definitions +// for the Getter and Setter for handling OTEL tracing. +package impl + +import ( + "strings" + + "solace.dev/go/messaging-trace/opentelemetry/internal" + "solace.dev/go/messaging-trace/opentelemetry/internal/impl/logging" + "solace.dev/go/messaging/pkg/solace/message" +) + +// MessageWithTracingSupport represents a message received by a consumer. +type MessageWithTracingSupport interface { + // GetCreationTraceContext will return the trace context metadata used for distributed message tracing message + GetCreationTraceContext() (traceID [16]byte, spanID [8]byte, sampled bool, traceState string, ok bool) + + // SetTraceContext will set creation trace context metadata used for distributed message tracing. + SetCreationTraceContext(traceID [16]byte, spanID [8]byte, sampled bool, traceState *string) (ok bool) + + // GetTransportTraceContext will return the trace context metadata used for distributed message tracing + GetTransportTraceContext() (traceID [16]byte, spanID [8]byte, sampled bool, traceState string, ok bool) + + // SetTraceContext will set transport trace context metadata used for distributed message tracing. + SetTransportTraceContext(traceID [16]byte, spanID [8]byte, sampled bool, traceState *string) (ok bool) + + // GetBaggage will return the baggage string associated with the message + GetBaggage() (baggage string, ok bool) + + // SetBaggage will set the baggage string associated with the message + SetBaggage(baggage string) error +} + +// GetTracingField returns the value associated with the passed key. +func GetTracingField(messagePointer message.Message, key string) string { + // 1. when key is 'traceparent', retrieve all parts of the traceparent from the underlying message pointer + // 2. when key is 'tracestate', retrieve all parts of the tracestate from the underlying message pointer + // 3. when key is 'baggage', get baggage from the underlying message pointer + + if key == "" { + return "" // invalid key argument passed in + } + + // cast the message to the extended interface that has message tracing support + messageWithDT := messagePointer.(MessageWithTracingSupport) + + // the tracing property names + TracingPropertyName := internal.NewTracingPropertyNames() + + switch key { + + case TracingPropertyName.TraceParent: + logging.Default.Info("Returning the TraceParent for this message") + // return the trasport context as the Trace Parent + if traceID, spanID, sampled, _, ok := messageWithDT.GetTransportTraceContext(); ok { + // return the TraceParent from transport context since found + logging.Default.Info("[GetTraceParentAsString]: Transport context was found, retreiving from Transport context") + return internal.GetTraceParentFromTraceContextProperties(traceID, spanID, sampled) + } + // Else if not present, then return the creation context as the Trace Parent + if traceID, spanID, sampled, _, ok := messageWithDT.GetCreationTraceContext(); ok { + // return the TraceParent from transport context since found + logging.Default.Info("[GetTraceParentAsString]: Creation context was found, retreiving from Creation context") + return internal.GetTraceParentFromTraceContextProperties(traceID, spanID, sampled) + } + + logging.Default.Debug("[GetTraceParentAsString]: No context information found on this Solace message") + return "" // no value found + + case TracingPropertyName.TraceState: + logging.Default.Info("Returning the TraceState for this message") + // return the TraceState from the transport context + _, _, _, transportTraceState, _ := messageWithDT.GetTransportTraceContext() + _, _, _, creationTraceState, _ := messageWithDT.GetCreationTraceContext() + + if transportTraceState == "" && creationTraceState == "" { + logging.Default.Debug("[GetTraceStateAsString]: Transport and creation context not present") + return "" + } + + var traceState = "" // to hold the trace state from the message + if transportTraceState != "" { + logging.Default.Info("[GetTraceStateAsString]: Found trace state for transport context") + logging.Default.Debug("[GetTraceStateAsString]: Transport context trace state: " + transportTraceState) + traceState = transportTraceState + } + + if creationTraceState != "" { + logging.Default.Info("[GetTraceStateAsString]: Found trace state for creation context") + logging.Default.Debug("[GetTraceStateAsString]: Creation context trace state: " + creationTraceState) + + if traceState != "" { + traceState = traceState + "," + creationTraceState + } else { + traceState = creationTraceState + } + } + return traceState // the TraceState value from the context(s) + + case TracingPropertyName.Baggage: + if baggage, ok := messageWithDT.GetBaggage(); ok { + logging.Default.Debug("Baggage string found for Solace message: " + baggage) + return baggage + } + logging.Default.Debug("[GetBaggageAsString]: Baggage not present on this Solace message") + return "" // empty baggage + } + + // return an empty string if we could not retrieve any of the tracing properties from the message + logging.Default.Warning("key does not match any known OTEL tracing property name, returning an empty string") + return "" +} + +// SetTracingField stores the key-value pair. +func SetTracingField(messagePointer message.Message, key, val string) { + // Use an internal MessageImpl data storage to insert otel data from propagator: + // 1. when key is 'traceparent' decompose value and store all parts of the traceparent into the underlying message pointer + // 2. when key is 'tracestate' store all parts of the tracestate from the underlying message pointer (determine if transport or creation context to set) + // 3. when key is 'baggage' set baggage on the underlying message pointer + // when key is non of above ignore (log as it is not supported format with warn level) + + if key == "" { + // invalid key argument passed in + logging.Default.Warning("key cannot be null or an empty string") + return // return from the function + } + + if val == "" { + // invalid val argument passed in + logging.Default.Warning("val cannot be null or an empty string") + return // return from the function + } + + // cast the message to the extended interface that has message tracing support + messageWithDT := messagePointer.(MessageWithTracingSupport) + + // the tracing property names + TracingPropertyName := internal.NewTracingPropertyNames() + + switch key { + + case TracingPropertyName.TraceParent: + logging.Default.Info("Injecting trace parent into the Solace message") + traceID, spanID, sampled, ok := internal.GetTraceContextPropertiesFromTraceParent(val) + if !ok { + return + } + // return the trasport context as the Trace Parent + // Set the Transport context if we find a creation context + if creationTraceID, _, _, _, _ok := messageWithDT.GetCreationTraceContext(); _ok && creationTraceID != [16]byte{} { + // else set them as the Transport context and clear the trace state of the transport context, if available + emptyStr := "" + messageWithDT.SetTransportTraceContext(*traceID, *spanID, sampled, &emptyStr) + logging.Default.Info("Set[TraceParent]: Creation context was found, Injecting as transport context") + } else { + // else set them as the Creation context + messageWithDT.SetCreationTraceContext(*traceID, *spanID, sampled, nil) + logging.Default.Info("Set[TraceParent]: Injecting as creation context") + } + + case TracingPropertyName.TraceState: + logging.Default.Info("Injecting trace state into the Solace message") + newTraceState := string(val) // new string since we are passing a reference into function + // inject traceState into creation context since it is not null + if traceID, spanID, sampled, traceState, _ok := messageWithDT.GetCreationTraceContext(); !_ok || traceState == "" { + // set it as the Creation context + logging.Default.Info("Set[TraceState]: Either creation context was not found or was found without trace state, Injecting into creation context") + messageWithDT.SetCreationTraceContext(traceID, spanID, sampled, &newTraceState) + } else { + // set it as the Transport context + if traceID, spanID, sampled, _, ok := messageWithDT.GetTransportTraceContext(); ok { + // use the tracing properties already in transport context as args + logging.Default.Info("Set[TraceState]: Trace state found in creation context, Injecting into transport context") + messageWithDT.SetTransportTraceContext(traceID, spanID, sampled, &newTraceState) + } + } + + case TracingPropertyName.Baggage: + logging.Default.Info("'Injecting baggage information into the Solace message") + // check that baggage is valid before injection + if internal.IsValidBaggageValue(val) { + logging.Default.Debug("Injected Baggage string: " + val) + _error := messageWithDT.SetBaggage(val) + if _error != nil { + logging.Default.Error("Baggage injection failed: " + _error.Error()) + } + } else { + logging.Default.Warning("Baggage injection failed: Invalid Baggage value") + } + default: + // when key is non of above ignore (log as it is not supported format with warn level) + logging.Default.Warning("Ignoring any other OTEL third party tracing properties") + } +} + +// GetSupportedTracingKeys lists the keys stored in this carrier. +func GetSupportedTracingKeys() []string { + // it can return 'traceparent', 'tracestate', 'baggage' when they are supported by the underlying message pointer + // the tracing property names + TracingPropertyName := internal.NewTracingPropertyNames() + propertyNames := TracingPropertyName.List() + logging.Default.Debug("Retreived support tracing property names: [ " + strings.Join(propertyNames, ", ") + " ]") + return propertyNames +} + +// IsTracingKeySupported - checks to see if the key is currently supported by this OTel integration module; returns bool +func IsTracingKeySupported(keyToCheck string) bool { + // iterate through the supported keys + supportedKeys := GetSupportedTracingKeys() + for i := 0; i < len(supportedKeys); i++ { + // check + if supportedKeys[i] == keyToCheck { + // return true if found + return true + } + } + return false +} diff --git a/internal/impl/outbound_message_carrier_impl.go b/internal/impl/outbound_message_carrier_impl.go new file mode 100644 index 0000000..28d3dc1 --- /dev/null +++ b/internal/impl/outbound_message_carrier_impl.go @@ -0,0 +1,85 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package impl contains the main type definitions +// for the Getter and Setter for handling OTEL tracing. +package impl + +import ( + "solace.dev/go/messaging-trace/opentelemetry/internal/impl/logging" + "solace.dev/go/messaging/pkg/solace/message" +) + +// OutboundMessageCarrier injects and extracts traces from a message.OutboundMessage at 'solace.dev/go/messaging/pkg/solace/message', +// it implements go.opentelemetry.io/otel/propagation.TextMapCarrier interface. +type OutboundMessageCarrier struct { + messagePointer message.OutboundMessage +} + +// NewOutboundMessageCarrier creates a new OutboundIMessageCarrier to be used with OpenTelemetry propagator API. +func NewOutboundMessageCarrier(message message.OutboundMessage) *OutboundMessageCarrier { + // perform null check on a pointer to the underlying message + if message == nil { + return nil + } + return &OutboundMessageCarrier{messagePointer: message} +} + +// GetOutboundMessageCarrierPointer function +func GetOutboundMessageCarrierPointer(message *OutboundMessageCarrier) message.OutboundMessage { + if message == nil { + return nil + } + return message.messagePointer +} + +// Get returns the value associated with the passed key. +func (carrier OutboundMessageCarrier) Get(key string) string { + // 1. when key is 'traceparent', get all parts of the traceparent from the underlying message pointer + // 2. when key is 'tracestate', get all parts of the tracestate from the underlying message pointer + // 3. when key is 'baggage', get baggage from the underlying message pointer + // when key is non of above ignore (log as it is not supported format) + + if key == "" { + return "" // invalid key argument passed in + } + + return GetTracingField(carrier.messagePointer, key) // return the retrieved tracing property value +} + +// Set stores the key-value pair. +func (carrier OutboundMessageCarrier) Set(key, val string) { + // Use an internal MessageImpl data storage to insert otel data from propagator: + // 1. when key is 'traceparent' decompose value and store all parts of the traceparent into the underlying message pointer + // 2. when key is 'tracestate' all parts of the tracestate from the underlying message pointer (determine if transport or creation context to return) + // 3. when key is 'baggage' set baggage on the underlying message pointer + // when key is non of above (log as it is not supported format) insert into the message as user property, key as is & value string as is. + + // if key is not empty but not supported, set it in the User Property Map of the OutboundMessage + if key != "" && !IsTracingKeySupported(key) { + // TODO: Set into message as user properties in UserProperty Map + logging.Default.Warning("Ignoring any other OTEL third party tracing properties") + return // return from function + } + + SetTracingField(carrier.messagePointer, key, val) // set the tracing field value +} + +// Keys lists the keys stored in this carrier. +func (carrier OutboundMessageCarrier) Keys() []string { + // return these 'traceparent', 'tracestate', 'baggage' + return GetSupportedTracingKeys() +} diff --git a/internal/tracing_property_names.go b/internal/tracing_property_names.go new file mode 100644 index 0000000..0654483 --- /dev/null +++ b/internal/tracing_property_names.go @@ -0,0 +1,39 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package internal + +type TracingPropertyNames struct { + TraceParent string + TraceState string + Baggage string + + propertyNames []string +} + +func NewTracingPropertyNames() *TracingPropertyNames { + return &TracingPropertyNames{ + TraceParent: "traceparent", + TraceState: "tracestate", + Baggage: "baggage", + + propertyNames: []string{"traceparent", "tracestate", "baggage"}, + } +} + +func (tracingProperty *TracingPropertyNames) List() []string { + return tracingProperty.propertyNames +} diff --git a/internal/utilities.go b/internal/utilities.go new file mode 100644 index 0000000..d0b3bdf --- /dev/null +++ b/internal/utilities.go @@ -0,0 +1,114 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package internal + +import ( + "encoding/hex" + "fmt" + "strings" + + "solace.dev/go/messaging-trace/opentelemetry/internal/impl/logging" +) + +const Version string = "00" +const TraceParentDelimiter string = "-" + +const BaggageListMembersSeparator string = "," +const BaggageListMemberKeyValueSplitter string = "=" +const BaggageListMemberMetadataValueSplitter string = ";" + +const TraceIDLength int = 32 +const SpanIDLength int = 16 + +// GetTraceParentFromTraceContextProperties serializes a tracing context object into a string. +// +// @param traceID - the trace ID [16]byte property +// @param spanID - the span ID [8]byte property +// @param sampled - the sampled boolean property +// returns - the formated string representation of the context object +func GetTraceParentFromTraceContextProperties(traceID [16]byte, spanID [8]byte, sampled bool) string { + // if the traceID and spanID is not available for this context + if traceID == [16]byte{} || spanID == [8]byte{} { + logging.Default.Info("[formatContextAsString]: Failed to retrieve trace parent as string from Solace message with tracing support") + return "" + } + + traceFlagsHex := "00" + if sampled { + traceFlagsHex = "01" // since the flag should be < 2 (binary: 10) + } + + encodedTraceParent := fmt.Sprintf( + "%s%s%x%s%x%s%s", + Version, + TraceParentDelimiter, + traceID, + TraceParentDelimiter, + spanID, + TraceParentDelimiter, + traceFlagsHex, + ) + + return encodedTraceParent +} + +// GetTraceContextPropertiesFromTraceParent deserializes a trace parent string into its tracing context object properties. +// @param traceParent the trace parent string to deserialize +// returns - the tracing context object properties +func GetTraceContextPropertiesFromTraceParent(traceParent string) (traceID *[16]byte, spanID *[8]byte, sampled bool, ok bool) { + // valid value "00-75e792db89dec2cf3b3333a2f71869e4-982f925c36fb8a1c-01" + traceParentParts := strings.Split(traceParent, TraceParentDelimiter) + + if len(traceParentParts) == 4 && traceParentParts[0] == Version && + len(traceParentParts[1]) == TraceIDLength && len(traceParentParts[2]) == SpanIDLength { + // ignore the traceParentParts[0] which contains the version, we don't care about it + var traceIDHex = traceParentParts[1] + var spanIDHex = traceParentParts[2] + var isSampledFlag = traceParentParts[3] + + sampled = (isSampledFlag != "00") + + traceIDBytes, errTraceID := hex.DecodeString(traceIDHex) + var traceIDVal [16]byte + copy(traceIDVal[:], traceIDBytes) + + spanIDBytes, errSpanID := hex.DecodeString(spanIDHex) + var spanIDVal [8]byte + copy(spanIDVal[:], spanIDBytes) + + if errTraceID == nil && errSpanID == nil { + return &traceIDVal, &spanIDVal, sampled, true + } + } + + return nil, nil, false, false +} + +// IsValidBaggageKey determines whether the given string is a valid entry key. +// @param key - the entry key to be validated. +// returns boolean of whether the key is valid. +func IsValidBaggageKey(key string) bool { + return key != "" +} + +// IsValidBaggageValue determines whether the given string is a valid +// baggage entry value. +// @param value - the entry value to be validated. +// returns boolean of whether the value is valid. +func IsValidBaggageValue(value string) bool { + return value != "" +} diff --git a/logging/logging.go b/logging/logging.go new file mode 100644 index 0000000..7cae6e4 --- /dev/null +++ b/logging/logging.go @@ -0,0 +1,71 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package logging allows for configuration of this package's logging levels. +package logging // import "solace.dev/go/messaging-trace/opentelemetry/logging" + +import ( + "io" + + "solace.dev/go/messaging-trace/opentelemetry/internal/impl/logging" +) + +// LogLevel is used to configure the logging-level of the API. The different levels can +// include these type logs: +// +// - Critical/Error - These log levels indicates internal errors and should be a cause for investigation. +// Contact Solace for log events at this level. +// +// - Warning - Indicates an application error (for example, invalid parameters passed in or unsupported use of the APIs). +// +// - Info - Typically for unusual or informational occurrences that do not indicate an error, but might +// be unexpected or provide information useful for indicating a state. +// +// - Debug - Typically indicates state changes at a high-level, for example, connections/disconnections/reconnections +// These logs can indicate unusual occurrences that do not indicate any error, but they are unexpected +// and might need further investigation. +type LogLevel byte + +const ( + // LogLevelCritical allows only critical logs. + // Critical logs are only output if a catastrophic unrecoverable error occurs. + LogLevelCritical LogLevel = LogLevel(logging.Critical) + // LogLevelError allows Error and Critical logs. + // Error logs are only output if unexpected behaviour is detected. + LogLevelError LogLevel = LogLevel(logging.Error) + // LogLevelWarning allows Warning, Error, and Critical logs. + // Warning logs are output if an issue is encountered due to application behavior. + LogLevelWarning LogLevel = LogLevel(logging.Warning) + // LogLevelInfo allows Info, Warning, Error, and Critical logs. + // Info logs are output when general API activities occur. + LogLevelInfo LogLevel = LogLevel(logging.Info) + // LogLevelDebug allows Debug, Info, Warning, Error, and Critical logs. + // Debug logs are output when any API activity occurs. Note that + // enabling Debug logs impacts the performance of the API. + LogLevelDebug LogLevel = LogLevel(logging.Debug) +) + +// SetLogLevel sets the global logging-level used for API logging. +func SetLogLevel(level LogLevel) { + // Set log level + logging.Default.SetLevel(logging.LogLevel(level)) +} + +// SetLogOutput sets the global logging output redirection for API logging. +// The specified writer should be safe for concurrent writes. +func SetLogOutput(writer io.Writer) { + logging.Default.SetOutput(writer) +} diff --git a/test/README.md b/test/README.md new file mode 100644 index 0000000..592d522 --- /dev/null +++ b/test/README.md @@ -0,0 +1,42 @@ +# Tests + +The integration tests are stored in this directory. These integration tests are driven by a test context. The test context is made up of a few parts: connection details used to populate a messaging service configuration and management tools to interact with external resources such as the broker, toxi proxi, OTel collectors, etc. Most of the testing is done using a local docker-compose based broker, however this is abstracted out via a test context. The test context allows multiple configurations to be used for various test scenarios, as well as provides access to optional features such as Toxi Proxi. Currently, two test contexts are used: +- docker-compose based test context using testcontainers to spin up a broker and an instance of toxi proxi +- environment based test context that reads in various environment variables to configure access to a broker + +*Note:* the SEMPv2 clients' generated code is not committed. To run the tests, run `go generate` from the `./test/sempclient` package. This will take a few minutes. + +## Tooling +[Ginkgo](https://onsi.github.io/ginkgo/) is used as the testing framework with [Gomega](https://onsi.github.io/gomega/) as the assert library. The tests also define a `./test/testcontext` package that is stood up before the suite and torn down after the suite is run. This test context is accessible through the CurrentContext variable defined in the root of the test package. + +## Running the tests + +First, docker and docker-compose must be installed and accessible to the current user. Second, `go generate` must be run from the `./test/sempclient` directory. The tests can be run by navigating to the test directory and running `ginkgo` or 'go test'. 'ginkgo' is preferable as the pre-configured timeout (for the whole test suite) is 1hr whereas the default timeout using 'go test' is 10mins. This will start by spinning up a docker container containing the broker and then running the tests on that container. To run against an external broker, `go test -tags remote` can be used to instruct the tests to target an environment variable based broker. See the [Environment Variables](#environment-variables) section below for more information. + +To run an individual test, first install the ginkgo command line tool with `go install github.com/onsi/ginkgo/v2/ginkgo@latest`, then run the tests with `ginkgo --focus="mytestregex"` from the test directory. This regex will match describe/context/it strings. For more information, see the [ginkgo documentation](https://onsi.github.io/ginkgo/#the-spec-runner). + +## Coverage +Golang provides built in coverage reporting for test suites. A coverage report can be generated with `go test -coverprofile coverage.out -coverpkg solace.dev/go/messaging-trace/opentelemetry/internal/...,solace.dev/go/messaging-trace/opentelemetry/...`. This profile can be viewed as HTML with `go tool cover -html coverage.out`. + +## Debug Logging +Debug logs can be enabled on the integration tests by adding the build tag `-tags enable_debug_logging` to the `go test` or `ginkgo` command. By default, the log level is set to Info. + +## Environment Variables +Various environment variables can be used to configure the test context. If using an environment based test context (`-tags environment` on the call to `go test`), then `PUBSUB_HOST` (and `PUBSUB_MANAGEMENT_HOST` if it differs from the messaging host) must be specified as the IP or hostname of the broker to which you are connecting. The following variables are shared between all test contexts, and are used as parameters when using a locally hosted context such as testcontainers: +- `PUBSUB_PORT_PLAINTEXT` +- `PUBSUB_PORT_SSL` +- `PUBSUB_PORT_COMPRESSED` +- `PUBSUB_PORT_SEMP` +- `PUBSUB_VPN` +- `PUBSUB_USERNAME` +- `PUBSUB_MGMT_USER` +- `PUBSUB_MGMT_PASSWORD` + +### Toxi Proxi +The broker is often accessed through [toxiproxi](https://github.com/Shopify/toxiproxy) to test various edge cases that rely on network saturation, latency, disconnects, etc. Toxiproxi, which is stood up in docker-compose based test contexts, can be controlled through the golang [client](https://github.com/Shopify/toxiproxy/tree/master/client). + +## Generated SEMPv2 client +In addition to the above generated code, we generate a SEMPv2 client based on the SEMPv2 spec using the [OpenAPI generator](https://github.com/OpenAPITools/openapi-generator) that is used in tests in order to configure remote resources. To generate the SEMPv2 client, Docker must be installed. Navigate to `./test/sempclient` and run `go generate`. This will generate the config, action and monitor APIs. See `./test/sempclient/semp-client.go` for the various generate directives. + +### Updating the SEMPv2 client spec +Config, action and monitor specs can be added to `./test/sempclient/spec` and the generator rerun to update the SEMPv2 specs. diff --git a/test/constants/test_constants.go b/test/constants/test_constants.go new file mode 100644 index 0000000..a8ce85c --- /dev/null +++ b/test/constants/test_constants.go @@ -0,0 +1,63 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package constants is defined below +package constants + +// ValidFixturesPath constant +const ValidFixturesPath = "./data/fixtures/" + +// InvalidFixturesPath constant +const InvalidFixturesPath = "./data/invalid_fixtures/" + +// ValidClientCertificatePEM to install to the server for valid client authentication +const ValidClientCertificatePEM = ValidFixturesPath + "public_root_ca.crt" + +// InvalidClientCertificatePEM constant +const InvalidClientCertificatePEM = InvalidFixturesPath + "unused_root_ca.crt" + +// ValidClientCertificateFile constant +const ValidClientCertificateFile = ValidFixturesPath + "api-client.crt" + +// ExpiredClientCertificateFile constant +const ExpiredClientCertificateFile = InvalidFixturesPath + "api-clientExpired.crt" + +// InvalidClientCertificateFile constant +const InvalidClientCertificateFile = InvalidFixturesPath + "api-clientInvalidKey.pem" + +// ValidClientKeyFile constant +const ValidClientKeyFile = ValidFixturesPath + "api-client.key" + +// InvalidClientKeyFile constant +const InvalidClientKeyFile = InvalidFixturesPath + "unused.key" + +// ValidCertificateKeyPassword constant +const ValidCertificateKeyPassword = "changeme" + +// InvalidCertificateKeyPassword constant +const InvalidCertificateKeyPassword = "thisisnotthepasswordyouarelookingfor" + +// ServerCertificatePassphrase constant +const ServerCertificatePassphrase = "No Password" + +// ValidServerCertificate constant +const ValidServerCertificate = ValidFixturesPath + "api-server.pem" + +// BadServernameServerCertificate constant +const BadServernameServerCertificate = InvalidFixturesPath + "api-badserver.pem" + +// ExpiredServerCertificate constant +const ExpiredServerCertificate = InvalidFixturesPath + "api-serverExpired.pem" diff --git a/test/data/compose/docker-compose.yml b/test/data/compose/docker-compose.yml new file mode 100644 index 0000000..2cbc24d --- /dev/null +++ b/test/data/compose/docker-compose.yml @@ -0,0 +1,53 @@ +version: '3.5' + +networks: + solace_internal_net: + name: solace_internal_net + driver: bridge + +services: + solbroker: + image: $PUBSUB_REPO_BASE-$PUBSUB_EDITION:$PUBSUB_TAG + hostname: "$PUBSUB_HOSTNAME" + container_name: "$PUBSUB_HOSTNAME" + networks: + - solace_internal_net + env_file: + - ./solace.env + ports: + - "$PUBSUB_SEMP_PORT:8080" # SEMP plaintext + - "$PUBSUB_SECURE_SEMP_PORT:1943" # SEMP secure + - "$PUBSUB_PLAINTEXT_PORT:55555" # SMF Pplaintext + - "$PUBSUB_COMPRESSED_PORT:55003" # SMF compressed + - "$PUBSUB_SECURE_PORT:55443" # SMF secure + - "$PUBSUB_HEALTHCHECK_PORT:5550" # Healthcheck + - "$PUBSUB_WEB_PORT:8008" # Web Transport + - "$PUBSUB_SECURE_WEB_PORT:1443" # Secure Web Transport + shm_size: 2g + ulimits: + memlock: -1 + nofile: + soft: 2448 + hard: 42192 + secrets: + - server.pem + - server_passphrase + + toxiproxy: + image: ghcr.io/shopify/toxiproxy + container_name: toxiproxy + hostname: "$TOXIPROXY_HOSTNAME" + ports: + - "$TOXIPROXY_PORT:8474" + # in this case we will want the docker and toxi proxy ports to match as we need to configure them on the fly + - "$TOXIPROXY_PLAINTEXT_PORT:$TOXIPROXY_PLAINTEXT_PORT" + - "$TOXIPROXY_COMPRESSED_PORT:$TOXIPROXY_COMPRESSED_PORT" + - "$TOXIPROXY_SECURE_PORT:$TOXIPROXY_SECURE_PORT" + networks: + - solace_internal_net + +secrets: + server.pem: + file: "../fixtures/api-server.pem" # Path relative to the docker-compose file + server_passphrase: + file: "../fixtures/api-server-passphrase.txt" diff --git a/test/data/compose/solace.env b/test/data/compose/solace.env new file mode 100644 index 0000000..86e43b5 --- /dev/null +++ b/test/data/compose/solace.env @@ -0,0 +1,6 @@ +username_admin_globalaccesslevel=admin +username_admin_password=admin +system_scaling_maxconnectioncount=1000 +tls_servercertificate_filepath=/run/secrets/server.pem +tls_servercertificate_passphrasefilepath=/run/secrets/server_passphrase +webmanager_redirecthttp_enable=no diff --git a/test/data/config/config.json b/test/data/config/config.json new file mode 100644 index 0000000..06aefab --- /dev/null +++ b/test/data/config/config.json @@ -0,0 +1,25 @@ +{ + "messaging": { + "vpn": "default", + "client_profile": "default", + "acl_profile": "default", + "authentication": { + "basic_username": "default", + "basic_password": "default" + }, + "ports": { + "plaintext": 55554, + "secure": 55443, + "compressed": 55003, + "healthcheck": 5550, + "web": 8008, + "secure_web": 1443 + } + }, + "semp": { + "port": 8080, + "secure": 1943, + "username": "admin", + "password": "admin" + } +} diff --git a/test/data/config/config_remote.json b/test/data/config/config_remote.json new file mode 100644 index 0000000..5cd2bd8 --- /dev/null +++ b/test/data/config/config_remote.json @@ -0,0 +1,8 @@ +{ + "messaging": { + "host": "localhost" + }, + "semp": { + "host": "localhost" + } +} diff --git a/test/data/config/config_testcontainers.json b/test/data/config/config_testcontainers.json new file mode 100644 index 0000000..72c74ca --- /dev/null +++ b/test/data/config/config_testcontainers.json @@ -0,0 +1,24 @@ +{ + "messaging": { + "host": "localhost" + }, + "semp": { + "host": "localhost" + }, + "toxiproxy": { + "upstream": "solbroker", + "host": "localhost", + "port": 8474, + "plaintext_port": 15555, + "compressed_port": 15003, + "secure_port": 15443 + }, + "testcontainers": { + "broker_hostname": "solbroker", + "broker_tag": "10.4", + "broker_repo": "solace/solace-pubsub", + "broker_edition": "standard", + "toxiproxy_hostname": "toxiproxy", + "network_name": "solace_msg_net" + } +} diff --git a/test/data/fixtures/api-client.crt b/test/data/fixtures/api-client.crt new file mode 100644 index 0000000..c20c137 --- /dev/null +++ b/test/data/fixtures/api-client.crt @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgTELMAkGA1UEBhMCQ0Ex +CzAJBgNVBAgMAk9OMQ8wDQYDVQQHDAZLYW5hdGExDzANBgNVBAoMBlNvbGFjZTEM +MAoGA1UECwwDQVBJMRIwEAYDVQQDDAlwdWJsaWNhZncxITAfBgkqhkiG9w0BCQEW +EnN1cHBvcnRAc29sYWNlLmNvbTAeFw0yMTA4MTAxNjE3NTJaFw0zMTA4MDgxNjE3 +NTJaMH8xCzAJBgNVBAYTAkNBMQswCQYDVQQIDAJPTjEPMA0GA1UEBwwGS2FuYXRh +MQ8wDQYDVQQKDAZTb2xhY2UxDDAKBgNVBAsMA0FQSTEQMA4GA1UEAwwHZGVmYXVs +dDEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBzb2xhY2UuY29tMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx0APNaw1lBcY8AMg0k2zzipMva4AQzHbKzGN +Db6I1mGqvSMq31Z6KK/6Q6CGPtpiz8htwIWXo0TV/XADJLk0f9h1en6prspLhZAw +bHqmVLvBqz9t07JsceuavY34wCnQviuKatH38G/3kbonJp8zdecRH1LpOQIuKrdc +ilDEpzMlgAzKc/tylSYbl7FDstd8xDA7NFM++YWTpmnussJErPzkKQKV+7njKd4i +OPsntLN7J5SOlgcyGBbzTU+EnEuNxoTyYWW3Cu6dLVmINmv0LufoFobz2n+OPKJr +0lZX2wcPFZO2XIQbgCOIyhblj9TbdRFTwUr6x9msNEUKoqY8rwIDAQABozswOTA3 +BgNVHREEMDAugglsb2NhbGhvc3SCCXNvbGJyb2tlcocEfwAAAYcQAAAAAAAAAAAA +AAAAAAAAATANBgkqhkiG9w0BAQsFAAOCAQEAX/jKTwnhAGgLW/Pz7zlpsLIs7Ihj +UCOnvtGeTiyzskonFRfXPBbiQXg/vP7MHr20dlHChd/94ItCJYnipQeYH6lHJK0i +qZOrxrOq8MxeVhTHtjT7ldO7m8xQ1sHBwZqemnNFWhnBbsskBnTmOWwmR+u6yrGJ +3DNFjYQKg4q4QCVcRLhq1N0l1CTzcGWak6nu8qtIPd9PfyEvBU6jEOtbhoYtob+n +d7vV0WWPnfO/Ct50Cu0kJC/6hWfjPHAPmfbmMP9WMn8DrNkL5Y1VEkYftn68JjFZ +DCVBVHDqPi+aRu5AMeKLcxsL6wMtAfqyv5/tqaqldtqvev4mmLDXelA8fQ== +-----END CERTIFICATE----- diff --git a/test/data/fixtures/api-client.key b/test/data/fixtures/api-client.key new file mode 100644 index 0000000..553c848 --- /dev/null +++ b/test/data/fixtures/api-client.key @@ -0,0 +1,30 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,FF77C642D870F3B696C8E1F7779047F3 + +hOTNrs4FXQ9AUsXKocqumqPC38Zdyc5x0KfpgV4bnXmCmnTj0NehXfOUf0dXFT9M +trIOE3BI4XBFMs0//+3I2/+x5mmbhH1wdQwQ++7incQyeem/0F2r8Qy6DdFnmx4h +fLqaosS+MdOyoIha9rixpLEnMfbMdAm7/ldK4GKUcVv3JEXwGL8bm7BNZ4Pu1DkP +MXLvZi/NW2Qyf90831STVtSZUkNHQVFfVkM5sIHCDf8x+B5M3GPcHY/gUzP+wEN0 +JaXdFQnC6bgXHULkhpSPCxpcZUG97rZXpQUi17ypql2l8cJklD7MlLL50HTwak9v +DtPGXTjrD3XRHK2DMvzQ9TgxtTx84JTYj4wBXGCEMJA848KX72xvkHzXXz+PYLiu +bGyVdtqvJka61VZLBzSUFvmOpgk5XHYD5QC0a7FT60nxxVEM2+wNnCdTZO/vyFDu +QoqY3LKqQui/qYHhPibu+IFGRk4sIEHqTmn08/9OYTzjEYQGHtmO3ilNBfNsQJ0J +0QY40MFPYBnKbZJi/NMJCtAqiQPE9aoOI4Zij9o8+96F/1QnR2hMn3oOSwt50Wuq +qqhzXO81Jg6/8m4YmhX8QlVQwV3QBN3VmM/J3X6YMkv8MwF3U3icURY3iqzgHbmz +Hwik1yL/M9GcC9e+BVFNKuwI+uhTqlOu65rjBdevqOH7fXwcWlLU85r/WhFPdiLw +vsMrZL+ZgbwYjD2x4wKK8NQRmIy228XnyK6i3J5/I9CmcCJ5Syl+rNWmuNJVIdeS +JQ8H+DaDJ/Eqej/uLj1Vzf/tDj7PLNO1S3+EdGXgQ3Mn6oMy55Plh4BUMuFuqmSk +maC6UERNqVHMf2RQVayVA8qsZrMbpdUu40XnAam6IJbtvDA/O1EYJf2b1Beeus4g +3d4+3OYysLt4mJzPLat22pZJCPKnGJ1IPkycYDpPuY78aszNDjrpqwtH3LB+u5vn +WeEzG5W63a0B84Xb5QNrEVlkUzSaD4suNOGct3xGfGyuLRdRHWWPw0Ld+t78bJvR +cwFP1ZfdSHCteWBg9LGRfF5fAlaM+oGt8oJYkB3g0Pa/jFGW23brpKtGKB/sKm1a +oXKIgJ88IKONPhumtx2xgQCeX/YsZOVe3259yAHbGhIP4qZPdrUitw3q87/7q7Bv +Iqgo/rQQAD2R0pQN75H0yw/6h3VY27D9TnpC8X03xy/qJKrh4a4stQMnZ7lViQVH +o+1Ttvmr2joG6wXAzvD5cI78QEHha4f7edMMH8NFaak24YgU3WtzYOjm21qF8iuO +5uBEa3XIUeyqhOr08V/j9jEAYq946luEsm8vjhUsotQp7+6e0PugaNCdNg9BFxKr +Q835E5wO+Wxo9109EILB3bIfryAGeuwdMVZVAOc8WenMM+NLqRw1RyttYcDYqQ0T +ASzS+PMp6UHsisSL5mRYisxYVJaJLBgBw46+fEc1kW0GzS7lNZY1OCFnR1ssoVDg +LmFWnVHdGR1GRJgoF1I+EZ3DG5GoIIEThUpVIlK/YpEEittT9X0AhR5Eyvil2CtI +RzGINvGQyPRB2ZiyBBdwe2PhP9G4ZM8KBn12FFBxhisDr4/Fy2B4uP887iFGiwCX +-----END RSA PRIVATE KEY----- diff --git a/test/data/fixtures/api-client.pem b/test/data/fixtures/api-client.pem new file mode 100644 index 0000000..f46d494 --- /dev/null +++ b/test/data/fixtures/api-client.pem @@ -0,0 +1,52 @@ +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgTELMAkGA1UEBhMCQ0Ex +CzAJBgNVBAgMAk9OMQ8wDQYDVQQHDAZLYW5hdGExDzANBgNVBAoMBlNvbGFjZTEM +MAoGA1UECwwDQVBJMRIwEAYDVQQDDAlwdWJsaWNhZncxITAfBgkqhkiG9w0BCQEW +EnN1cHBvcnRAc29sYWNlLmNvbTAeFw0yMTA4MTAxNjE3NTJaFw0zMTA4MDgxNjE3 +NTJaMH8xCzAJBgNVBAYTAkNBMQswCQYDVQQIDAJPTjEPMA0GA1UEBwwGS2FuYXRh +MQ8wDQYDVQQKDAZTb2xhY2UxDDAKBgNVBAsMA0FQSTEQMA4GA1UEAwwHZGVmYXVs +dDEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBzb2xhY2UuY29tMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx0APNaw1lBcY8AMg0k2zzipMva4AQzHbKzGN +Db6I1mGqvSMq31Z6KK/6Q6CGPtpiz8htwIWXo0TV/XADJLk0f9h1en6prspLhZAw +bHqmVLvBqz9t07JsceuavY34wCnQviuKatH38G/3kbonJp8zdecRH1LpOQIuKrdc +ilDEpzMlgAzKc/tylSYbl7FDstd8xDA7NFM++YWTpmnussJErPzkKQKV+7njKd4i +OPsntLN7J5SOlgcyGBbzTU+EnEuNxoTyYWW3Cu6dLVmINmv0LufoFobz2n+OPKJr +0lZX2wcPFZO2XIQbgCOIyhblj9TbdRFTwUr6x9msNEUKoqY8rwIDAQABozswOTA3 +BgNVHREEMDAugglsb2NhbGhvc3SCCXNvbGJyb2tlcocEfwAAAYcQAAAAAAAAAAAA +AAAAAAAAATANBgkqhkiG9w0BAQsFAAOCAQEAX/jKTwnhAGgLW/Pz7zlpsLIs7Ihj +UCOnvtGeTiyzskonFRfXPBbiQXg/vP7MHr20dlHChd/94ItCJYnipQeYH6lHJK0i +qZOrxrOq8MxeVhTHtjT7ldO7m8xQ1sHBwZqemnNFWhnBbsskBnTmOWwmR+u6yrGJ +3DNFjYQKg4q4QCVcRLhq1N0l1CTzcGWak6nu8qtIPd9PfyEvBU6jEOtbhoYtob+n +d7vV0WWPnfO/Ct50Cu0kJC/6hWfjPHAPmfbmMP9WMn8DrNkL5Y1VEkYftn68JjFZ +DCVBVHDqPi+aRu5AMeKLcxsL6wMtAfqyv5/tqaqldtqvev4mmLDXelA8fQ== +-----END CERTIFICATE----- +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,FF77C642D870F3B696C8E1F7779047F3 + +hOTNrs4FXQ9AUsXKocqumqPC38Zdyc5x0KfpgV4bnXmCmnTj0NehXfOUf0dXFT9M +trIOE3BI4XBFMs0//+3I2/+x5mmbhH1wdQwQ++7incQyeem/0F2r8Qy6DdFnmx4h +fLqaosS+MdOyoIha9rixpLEnMfbMdAm7/ldK4GKUcVv3JEXwGL8bm7BNZ4Pu1DkP +MXLvZi/NW2Qyf90831STVtSZUkNHQVFfVkM5sIHCDf8x+B5M3GPcHY/gUzP+wEN0 +JaXdFQnC6bgXHULkhpSPCxpcZUG97rZXpQUi17ypql2l8cJklD7MlLL50HTwak9v +DtPGXTjrD3XRHK2DMvzQ9TgxtTx84JTYj4wBXGCEMJA848KX72xvkHzXXz+PYLiu +bGyVdtqvJka61VZLBzSUFvmOpgk5XHYD5QC0a7FT60nxxVEM2+wNnCdTZO/vyFDu +QoqY3LKqQui/qYHhPibu+IFGRk4sIEHqTmn08/9OYTzjEYQGHtmO3ilNBfNsQJ0J +0QY40MFPYBnKbZJi/NMJCtAqiQPE9aoOI4Zij9o8+96F/1QnR2hMn3oOSwt50Wuq +qqhzXO81Jg6/8m4YmhX8QlVQwV3QBN3VmM/J3X6YMkv8MwF3U3icURY3iqzgHbmz +Hwik1yL/M9GcC9e+BVFNKuwI+uhTqlOu65rjBdevqOH7fXwcWlLU85r/WhFPdiLw +vsMrZL+ZgbwYjD2x4wKK8NQRmIy228XnyK6i3J5/I9CmcCJ5Syl+rNWmuNJVIdeS +JQ8H+DaDJ/Eqej/uLj1Vzf/tDj7PLNO1S3+EdGXgQ3Mn6oMy55Plh4BUMuFuqmSk +maC6UERNqVHMf2RQVayVA8qsZrMbpdUu40XnAam6IJbtvDA/O1EYJf2b1Beeus4g +3d4+3OYysLt4mJzPLat22pZJCPKnGJ1IPkycYDpPuY78aszNDjrpqwtH3LB+u5vn +WeEzG5W63a0B84Xb5QNrEVlkUzSaD4suNOGct3xGfGyuLRdRHWWPw0Ld+t78bJvR +cwFP1ZfdSHCteWBg9LGRfF5fAlaM+oGt8oJYkB3g0Pa/jFGW23brpKtGKB/sKm1a +oXKIgJ88IKONPhumtx2xgQCeX/YsZOVe3259yAHbGhIP4qZPdrUitw3q87/7q7Bv +Iqgo/rQQAD2R0pQN75H0yw/6h3VY27D9TnpC8X03xy/qJKrh4a4stQMnZ7lViQVH +o+1Ttvmr2joG6wXAzvD5cI78QEHha4f7edMMH8NFaak24YgU3WtzYOjm21qF8iuO +5uBEa3XIUeyqhOr08V/j9jEAYq946luEsm8vjhUsotQp7+6e0PugaNCdNg9BFxKr +Q835E5wO+Wxo9109EILB3bIfryAGeuwdMVZVAOc8WenMM+NLqRw1RyttYcDYqQ0T +ASzS+PMp6UHsisSL5mRYisxYVJaJLBgBw46+fEc1kW0GzS7lNZY1OCFnR1ssoVDg +LmFWnVHdGR1GRJgoF1I+EZ3DG5GoIIEThUpVIlK/YpEEittT9X0AhR5Eyvil2CtI +RzGINvGQyPRB2ZiyBBdwe2PhP9G4ZM8KBn12FFBxhisDr4/Fy2B4uP887iFGiwCX +-----END RSA PRIVATE KEY----- diff --git a/test/data/fixtures/api-server-passphrase.txt b/test/data/fixtures/api-server-passphrase.txt new file mode 100644 index 0000000..5b31fb6 --- /dev/null +++ b/test/data/fixtures/api-server-passphrase.txt @@ -0,0 +1 @@ +No Password \ No newline at end of file diff --git a/test/data/fixtures/api-server.pem b/test/data/fixtures/api-server.pem new file mode 100644 index 0000000..2af28e7 --- /dev/null +++ b/test/data/fixtures/api-server.pem @@ -0,0 +1,53 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,C00B6284CA695D456A57278C17FF7ED1 + +R12WILQjF2evDcmsyWG84LSgsOLbJrenAEMsiiLVi3WLgl1jZJBBzbXDHmqKfjHO +Iwqs6ufqDhvQZ3dgfIyilsJSrIA0T8/4KgGzO6s5kp+YUM0blxzxxQWYFl67wlkY +RRwAy+k+IWWSESTPQ4CObCBTxYUye0xtDdQ6NhbygYf6uXMctyfapt2M9okziZjJ +TorTwFGQ/C37rDDVWKVetPBV7vlqUmOvvHHLmJFUgevry2yCYuzj9jNJVRD8OPzP +Tcv8fBMcnaeHDSm4rNwggz05AiUMqCCLpgZFIuzIAr6PJwtl71YGIU1vkiWgSWCq +MlMj5dyTOs+dCAttt8938pVMn4sQ8ATpkCmrflzlIFCBCgiN7jfFEFA4k2NdpXIB +UKsQGW48YTtMnxnjVNqTbFP2dG8As1WYTEp0r47iZ5iIKepi762+ruor2KaeGPAi +jdAFlGEy+fdxlQOyiX9L4XQ6bTjx7sSsQtvFsEBCKQD5TO+lZBSRkhY3AtKpNngt +nhjZg++OGO1Y/PMBH4XEIyxI8MqIfzOEiUgL6BGkoCqMto7WKmfIFB62RAqOin5c +Betc5iIxscEoEVG+KihnXzrnhxdoiH4I8rhk/0wD+aP6kg8ahSPraXi9TNVNqjqP +zl0Lx4VU52kxbFRU1EgUIObcz07oaVTLSvHSJMBAIcRzh/hicrPOz/g2UaeEgyjh +iDvMbqq7IH74S7E46LemjCnpjrqzYrbdJCHxnHf1RhMbo35RUm6WBXlX8yDLoZRi +RbMom0aV9ORRpxxmUFIHtMWpTP94byojufKTgncOp07k1qqnEiARp7fd0UHBz3BU +R2Vfjr6+OKZBWSoOEx62xfHrxNIpydKSsASFmRMlGoExt0uR3jNCGgQBQn5YCtb1 +kaaGw6pSBU5B3NlBYA5mAnsMiv/mn/4Z3z3qYp/aCErg42Vhh9LXGNc2lry+6gUY +Xjfe4x0sMXbUGx6zgN9lGQm/x6GB8zU5ptQ7xGdqOXMwNm+UlEUkuNS6vxxWiwkS +Dw9q0fsrZjLuQt6cdc5cmy41PNcVTuk+joyX6IYjfEs84Fy7oCKo9NRy8Yk6glLB +/ydwtxb6w6GRifb+IeshFcBqkv00enZFtrusKSBNj8rh7Yple3etVma69NAvjiDX +SoaJxEbTxGxD40KBnXp/RxV8UlNaYP0NfFzW3CMaOyzo84jXMMvAI9o7HcgH0wgQ +W+GFWSHifoGxn4XJJ4BKFQG6iPxZCI5/sve1qZdRqs389idLA1KKRb++BGaoK9gZ +/ueqQUFFgDTK8Eb6ELefOC6QD4ENVnfVSKw2XgeqFjPqXiL+swY5oFIOOmbPafeZ +Rr05pbD/8Cokt0c03s0/ss4OtEGN8PtQqR7d5H3+ssGEA6rhb4vmfaolSQRMwjxO +MFmTAzjIIha9geY1wTDGeybs5IMhp1BfIJMKKvRZG65TJcJKgyA0oAo/kYm6mMnl +zaD5rDRKxf96BSrqk5AIyXa0uHnQ4qD4WjHTrKCqLeX40WLWYZgu0gD8ndLWjaO2 +DZlx4kv5QmOWLVBzpRPsM6LFJc71bXG7bWLXkh8U+CGGSCJpftPVfLrhwkXtmy92 +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIDwDCCAqigAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgTELMAkGA1UEBhMCQ0Ex +CzAJBgNVBAgMAk9OMQ8wDQYDVQQHDAZLYW5hdGExDzANBgNVBAoMBlNvbGFjZTEM +MAoGA1UECwwDQVBJMRIwEAYDVQQDDAlwdWJsaWNhZncxITAfBgkqhkiG9w0BCQEW +EnN1cHBvcnRAc29sYWNlLmNvbTAeFw0yMTA4MTAxNjEwMTlaFw0zMTA4MDgxNjEw +MTlaMIGHMQswCQYDVQQGEwJDQTELMAkGA1UECAwCT04xDzANBgNVBAcMBkthbmF0 +YTEPMA0GA1UECgwGU29sYWNlMQwwCgYDVQQLDANBUEkxGDAWBgNVBAMMD3B1Ymxp +Y2Fmd3NlcnZlcjEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBzb2xhY2UuY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7HXmPFjHmbZwEHKQ04GevsSM +us2ClvKFVjlVALv7jjsaN2SlbW3BrthH7q3yk1cjfviyVpGr4i1Ij+FLRYzQAJbT +0h2y7zGzuvcZSejF5NR6Bx+z5g3qgJhaR0JWKP/pM7NQXqr9OmC2Mr8eZJLSpVy+ +wsW9FrAlBhleQpTYNjVNIj4/zcqoVixoWdcqJlzIPv1Bjrtb6wmXA2XL3j4M+xKQ ++C2X99tp0PeatU2X/aPcWHDQwImjec+PUxLpK/VE/3HLwo8Y0iycfyFTkIHVNSHH +udU1Pvuw+c23Cig0cCYGp+9FFXSzimhFx2ddcmIc8zMGYTe+W0Lk4UlhrIQZCQID +AQABozswOTA3BgNVHREEMDAugglsb2NhbGhvc3SCCXNvbGJyb2tlcocEfwAAAYcQ +AAAAAAAAAAAAAAAAAAAAATANBgkqhkiG9w0BAQsFAAOCAQEAPMa2Aysb5ZFph6q0 +Bsny2/3TLRuKd80poB3GsBPODduUkFmJwZ6dM0meUcB1GUMGEetwYgNW9lBNH06f +awWZ3kvNaZTeEULlu+j8KDCd36AKEwBichZZ5d+J3m6HKJ2IPQpJjGPVuqV1BRdq +YR1yCktHBjPLtdMNn1o01aOVRB/EyIYEreFJmwv6su1UMP942LgvWHSch6aZJ14R +WkogNBZz4XeChi4BaQoCPXCBOWsDFpnGSmaWoHaNoiBA25y77G1uQ9+ah5qGp5Ky +bLqg1uq90PfH4ViTPZRDA9UtSAQKH+lXPxeiHnNQCXcoCJCLj2YTtzqFqqyMbcxn +1D0Uaw== +-----END CERTIFICATE----- diff --git a/test/data/fixtures/jwks_key_endpoint.json b/test/data/fixtures/jwks_key_endpoint.json new file mode 100644 index 0000000..0d2e796 --- /dev/null +++ b/test/data/fixtures/jwks_key_endpoint.json @@ -0,0 +1,12 @@ +{ + "keys": [ + { + "kty": "RSA", + "e": "AQAB", + "use": "sig", + "kid": "7gN-usOBhFlQ-2SlB0FEq1bsSjtPXyhwdtfd2GXTJuQ", + "alg": "RS384", + "n": "lAgePcUBI3bs0QxCgKU3SVuFTPwsB6GSwjhGjftspu9OmBtu8HWvKDlFPM3BR-Jjo35N6JMTCDrSugI2ZJ1eLigP9gNH7tDzT85r16w42PAhK29r7pcpG1XcAfaCQRVDNch55XQ0hbkvMXLlM_brD1uA9wR-LEw7Bjh24pXw1lFm-xQzd537ugUBsX716NC442S-x3T7psu3vwaPd2-0jUBEmlEq7TG4oCi_i0DGirZQdzRzd1RgaX2Jij2O8-Q6JnYXypNoxobJgGGTRF4TyI48_VTrwDRGKLTtk1N4W8v61wo8gaeC36gtMkXjJ7wxrKDv8pj2Tj_iI4R7lHhmn2QlSP_qX2DspgV2xxavAsRKeRmaTB-ViSPyV_fb_Dk1Vu1KlLNNEz9nL5wJAtkf3x9py80-x6dxDTeFHU98bbpUGgI1grjt14XARkR5N2SuulgWHqOIhUozegNSeRkhCGfj525GVqIMRTgWxjSEL99ooz46f4WX0YKu0g_SVxKW0ae3cEawoXl8TBYU40L83vjrpuvfS0nCUWHqTdifo-5rax3gJO_zuXowhDMUV3XLZB9qSXYkzCRC0U2mjzEiGi1H-Wn78WY3y90L02bOIJ3-NOxXuYsPqCO4KMO6c_Tz5O8kENb5n5G0Sj2RWivHk1BXg-WdFZhPOXqe3TESkC8" + } + ] + } \ No newline at end of file diff --git a/test/data/fixtures/keystore.ks b/test/data/fixtures/keystore.ks new file mode 100644 index 0000000..8b4c08e Binary files /dev/null and b/test/data/fixtures/keystore.ks differ diff --git a/test/data/fixtures/public_root_ca.crt b/test/data/fixtures/public_root_ca.crt new file mode 100644 index 0000000..fd44abe --- /dev/null +++ b/test/data/fixtures/public_root_ca.crt @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIID1zCCAr+gAwIBAgIJAMuIdFAJxdFHMA0GCSqGSIb3DQEBCwUAMIGBMQswCQYD +VQQGEwJDQTELMAkGA1UECAwCT04xDzANBgNVBAcMBkthbmF0YTEPMA0GA1UECgwG +U29sYWNlMQwwCgYDVQQLDANBUEkxEjAQBgNVBAMMCXB1YmxpY2FmdzEhMB8GCSqG +SIb3DQEJARYSc3VwcG9ydEBzb2xhY2UuY29tMB4XDTIxMDgxMDE1NTQ0MVoXDTMx +MDgwODE1NTQ0MVowgYExCzAJBgNVBAYTAkNBMQswCQYDVQQIDAJPTjEPMA0GA1UE +BwwGS2FuYXRhMQ8wDQYDVQQKDAZTb2xhY2UxDDAKBgNVBAsMA0FQSTESMBAGA1UE +AwwJcHVibGljYWZ3MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QHNvbGFjZS5jb20w +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1q8sYWnHBBz0+VDIsmfkl +e9HQUS1gP6eyWGXpZGFDf1Kpzpf4NzHiwt+ZcwtxV/NJhmU4Bwg6+OMagPsiF662 +lxmzfuIp9QQ+VHRNMFPDsYl4sIs7aoWI4jJJn9ow8AEwuG6dd/7yNTveyhzivVLk +SQ6pXVu/MsIQUQOjKedIi1eK60ZDVmiy+fkeMDqWAier3SKbi/wqRHypXvhySJ5y +LZgPHHEuP1EXTKP9BmRCSE2hK9IBDWXMuqsZordddeu3lG936GFnnIx10PUHarBf +O8C8lAEyu+3zrVxb6zVGwjjPOP2Xt0uNJlMfzVi2HavwoEna4w/N0Roilf+64pFv +AgMBAAGjUDBOMB0GA1UdDgQWBBS/Kh6mNI8nA4PD1G/mkqFb1yqkgzAfBgNVHSME +GDAWgBS/Kh6mNI8nA4PD1G/mkqFb1yqkgzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 +DQEBCwUAA4IBAQAZObRu2FOoYSvfvDDDBe0/GEWU5CytSlueplxXRnaFqUHdi6TU +guYw8b9G3IP4oZv6xYrh+zjrtgc1TXv/Zy+ZkgjATMMSTf+t9Nz5aVhDUH4KECkr +sDcfrxl59jCWu+5M4m7O1HysOJffgF+7fwGyi0qEuwMD46bE3hZrDcnSd+Nuai2+ +SxCYaWtreme+BgaKDe91GpTPoyQiT8rBU84dAT9h8nI/ZI0+SvsxbvlS+NnVGvaN +GBm8DX58PCL/6IaQ1Ni7c2Rs+tt6hrITYfzSEVoyKow5c/v3OXpXcnI9JvUJP8mU +g+fZgr4Uf1cm1nNxsX5O1Q9fbDx0WMEd3k3o +-----END CERTIFICATE----- diff --git a/test/data/fixtures/userinfo.json b/test/data/fixtures/userinfo.json new file mode 100644 index 0000000..bc3f077 --- /dev/null +++ b/test/data/fixtures/userinfo.json @@ -0,0 +1,4 @@ +{ + "sub": "solclient_oauth", + "groups": "solclient_oauth_auth_group" + } \ No newline at end of file diff --git a/test/data/invalid_fixtures/api-badserver.pem b/test/data/invalid_fixtures/api-badserver.pem new file mode 100644 index 0000000..ff0b9a7 --- /dev/null +++ b/test/data/invalid_fixtures/api-badserver.pem @@ -0,0 +1,52 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,C00B6284CA695D456A57278C17FF7ED1 + +R12WILQjF2evDcmsyWG84LSgsOLbJrenAEMsiiLVi3WLgl1jZJBBzbXDHmqKfjHO +Iwqs6ufqDhvQZ3dgfIyilsJSrIA0T8/4KgGzO6s5kp+YUM0blxzxxQWYFl67wlkY +RRwAy+k+IWWSESTPQ4CObCBTxYUye0xtDdQ6NhbygYf6uXMctyfapt2M9okziZjJ +TorTwFGQ/C37rDDVWKVetPBV7vlqUmOvvHHLmJFUgevry2yCYuzj9jNJVRD8OPzP +Tcv8fBMcnaeHDSm4rNwggz05AiUMqCCLpgZFIuzIAr6PJwtl71YGIU1vkiWgSWCq +MlMj5dyTOs+dCAttt8938pVMn4sQ8ATpkCmrflzlIFCBCgiN7jfFEFA4k2NdpXIB +UKsQGW48YTtMnxnjVNqTbFP2dG8As1WYTEp0r47iZ5iIKepi762+ruor2KaeGPAi +jdAFlGEy+fdxlQOyiX9L4XQ6bTjx7sSsQtvFsEBCKQD5TO+lZBSRkhY3AtKpNngt +nhjZg++OGO1Y/PMBH4XEIyxI8MqIfzOEiUgL6BGkoCqMto7WKmfIFB62RAqOin5c +Betc5iIxscEoEVG+KihnXzrnhxdoiH4I8rhk/0wD+aP6kg8ahSPraXi9TNVNqjqP +zl0Lx4VU52kxbFRU1EgUIObcz07oaVTLSvHSJMBAIcRzh/hicrPOz/g2UaeEgyjh +iDvMbqq7IH74S7E46LemjCnpjrqzYrbdJCHxnHf1RhMbo35RUm6WBXlX8yDLoZRi +RbMom0aV9ORRpxxmUFIHtMWpTP94byojufKTgncOp07k1qqnEiARp7fd0UHBz3BU +R2Vfjr6+OKZBWSoOEx62xfHrxNIpydKSsASFmRMlGoExt0uR3jNCGgQBQn5YCtb1 +kaaGw6pSBU5B3NlBYA5mAnsMiv/mn/4Z3z3qYp/aCErg42Vhh9LXGNc2lry+6gUY +Xjfe4x0sMXbUGx6zgN9lGQm/x6GB8zU5ptQ7xGdqOXMwNm+UlEUkuNS6vxxWiwkS +Dw9q0fsrZjLuQt6cdc5cmy41PNcVTuk+joyX6IYjfEs84Fy7oCKo9NRy8Yk6glLB +/ydwtxb6w6GRifb+IeshFcBqkv00enZFtrusKSBNj8rh7Yple3etVma69NAvjiDX +SoaJxEbTxGxD40KBnXp/RxV8UlNaYP0NfFzW3CMaOyzo84jXMMvAI9o7HcgH0wgQ +W+GFWSHifoGxn4XJJ4BKFQG6iPxZCI5/sve1qZdRqs389idLA1KKRb++BGaoK9gZ +/ueqQUFFgDTK8Eb6ELefOC6QD4ENVnfVSKw2XgeqFjPqXiL+swY5oFIOOmbPafeZ +Rr05pbD/8Cokt0c03s0/ss4OtEGN8PtQqR7d5H3+ssGEA6rhb4vmfaolSQRMwjxO +MFmTAzjIIha9geY1wTDGeybs5IMhp1BfIJMKKvRZG65TJcJKgyA0oAo/kYm6mMnl +zaD5rDRKxf96BSrqk5AIyXa0uHnQ4qD4WjHTrKCqLeX40WLWYZgu0gD8ndLWjaO2 +DZlx4kv5QmOWLVBzpRPsM6LFJc71bXG7bWLXkh8U+CGGSCJpftPVfLrhwkXtmy92 +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIDnjCCAoagAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgTELMAkGA1UEBhMCQ0Ex +CzAJBgNVBAgMAk9OMQ8wDQYDVQQHDAZLYW5hdGExDzANBgNVBAoMBlNvbGFjZTEM +MAoGA1UECwwDQVBJMRIwEAYDVQQDDAlwdWJsaWNhZncxITAfBgkqhkiG9w0BCQEW +EnN1cHBvcnRAc29sYWNlLmNvbTAeFw0yMjEyMTkxODM1MzVaFw0zMjEyMTYxODM1 +MzVaMIGHMQswCQYDVQQGEwJDQTELMAkGA1UECAwCT04xDzANBgNVBAcMBkthbmF0 +YTEPMA0GA1UECgwGU29sYWNlMQwwCgYDVQQLDANBUEkxGDAWBgNVBAMMD3B1Ymxp +Y2Fmd3NlcnZlcjEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBzb2xhY2UuY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7HXmPFjHmbZwEHKQ04GevsSM +us2ClvKFVjlVALv7jjsaN2SlbW3BrthH7q3yk1cjfviyVpGr4i1Ij+FLRYzQAJbT +0h2y7zGzuvcZSejF5NR6Bx+z5g3qgJhaR0JWKP/pM7NQXqr9OmC2Mr8eZJLSpVy+ +wsW9FrAlBhleQpTYNjVNIj4/zcqoVixoWdcqJlzIPv1Bjrtb6wmXA2XL3j4M+xKQ ++C2X99tp0PeatU2X/aPcWHDQwImjec+PUxLpK/VE/3HLwo8Y0iycfyFTkIHVNSHH +udU1Pvuw+c23Cig0cCYGp+9FFXSzimhFx2ddcmIc8zMGYTe+W0Lk4UlhrIQZCQID +AQABoxkwFzAVBgNVHREEDjAMggpkb25vdGV4aXN0MA0GCSqGSIb3DQEBCwUAA4IB +AQAuksC2JLrooRU+I8YNPMi1HhBLT7N5IQEhBr8SGfiWoNMjLdfRcsfISI1D1J98 +lQVvebewip+pt4oK1VH7vpjkEbTbrI491MD7qnqBV6xpoAgQARB5kDFymbJU4Y1D +4KLz6BZH+Hs9avhLu99C3EkUxB9a6IBklxgg5Il6pLUQnqwWuwm5t8U9sIFTXvSi +WY+JILaQ/h5NjcuTOvFwEc0Siut0CUa30wW1MLaZ3RXghElkTrDFVvy3fswH15hj +Bh4/K5eHzTNRAyVB17SJCZkhoxO2LZ3xXlBo3lLl5llhskDn9QlR77mZn6m/Isew +HJ5mLuhlLKj/5P8uN6JF4LfC +-----END CERTIFICATE----- diff --git a/test/data/invalid_fixtures/api-clientExpired.crt b/test/data/invalid_fixtures/api-clientExpired.crt new file mode 100644 index 0000000..3d7a071 --- /dev/null +++ b/test/data/invalid_fixtures/api-clientExpired.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDdTCCAl0CAQEwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNVBAYTAkNBMQswCQYD +VQQIDAJPTjEPMA0GA1UEBwwGS2FuYXRhMQ8wDQYDVQQKDAZTb2xhY2UxDDAKBgNV +BAsMA0FQSTESMBAGA1UEAwwJcHVibGljYWZ3MSEwHwYJKoZIhvcNAQkBFhJzdXBw +b3J0QHNvbGFjZS5jb20wHhcNMjIwMzAzMTQxNzEyWhcNMjIwMzA0MTQxNzEyWjB/ +MQswCQYDVQQGEwJDQTELMAkGA1UECAwCT04xDzANBgNVBAcMBkthbmF0YTEPMA0G +A1UECgwGU29sYWNlMQwwCgYDVQQLDANBUEkxEDAOBgNVBAMMB2RlZmF1bHQxITAf +BgkqhkiG9w0BCQEWEnN1cHBvcnRAc29sYWNlLmNvbTCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAMdADzWsNZQXGPADINJNs84qTL2uAEMx2ysxjQ2+iNZh +qr0jKt9Weiiv+kOghj7aYs/IbcCFl6NE1f1wAyS5NH/YdXp+qa7KS4WQMGx6plS7 +was/bdOybHHrmr2N+MAp0L4rimrR9/Bv95G6JyafM3XnER9S6TkCLiq3XIpQxKcz +JYAMynP7cpUmG5exQ7LXfMQwOzRTPvmFk6Zp7rLCRKz85CkClfu54yneIjj7J7Sz +eyeUjpYHMhgW801PhJxLjcaE8mFltwrunS1ZiDZr9C7n6BaG89p/jjyia9JWV9sH +DxWTtlyEG4AjiMoW5Y/U23URU8FK+sfZrDRFCqKmPK8CAwEAATANBgkqhkiG9w0B +AQsFAAOCAQEApIB69h8xXstpaSbHReZQTsS4k2dwRCwGoJYurF/nFSLBbU/r0iuj +6I9L3FQAsi/7yFLu8REComBDlAKzRkaf+r5Bl6nI4rAN0n3MSy1xTEgSHTlv0Ath +0/n5hTMO8+IkGteopCmEnENcpjFiwPVIM77XYgd2Jui3oFHy70p3xPbibVvPWVt2 +Omlpc7dUXbzdxn6NKs2B86obC+bnBe/7v5AWMvry4dQddJdIw3+blHFWKLPPGyTL +iEsSfb+ZhbWMJcN7juf1UBI+3l+U+IW7NyA6K27OtdoB6VYpoUVnC/car/z1SfUA +TSjCyiLJ0xRYXH1bACRAhZd1wefhIK2xZQ== +-----END CERTIFICATE----- diff --git a/test/data/invalid_fixtures/api-clientInvalidKey.pem b/test/data/invalid_fixtures/api-clientInvalidKey.pem new file mode 100644 index 0000000..3629678 --- /dev/null +++ b/test/data/invalid_fixtures/api-clientInvalidKey.pem @@ -0,0 +1,60 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,DC40861DFCE43BCA7EBD8D0A57CD8D95 + +1BzOyPnR0HD9ZvcTS+EUTKeDlJszBBB/aLM7gO+poJxIoI/bGH/3VK4QZJIsi9dt ++uN7c6j/Qa+uzFegeuL/pnd+HiuFrs3D7AjEsadZ930dcR/PV3YfRhnHszlfsJQC +Sk8vNAISR5TFTqMpCTfcxfNLaMaGa6dJlK1kCsQwh7+94lgPyCSsTtCWwzkj7Ut8 +CD/qu/b9Gn7kNQAlZ9+b+rD7zVXM4hqU107hJCJzdhfYHgVqeHNtN6CIV3bk5hbv +9xrJhFXU32alCobBDe7zOYw4eJRyqMjWdiyolJ/e5cQc7ji6a7d9vzXhdLoyBGki +p/7RI8kopzEBgQKBDsxf+stKqWX0EZSBoAbWcQfv3y23YxZ7SUwXOl1CrKSH+GL+ +FPkUX1p5P1avTUCyAg+J+aNbzLO4jHUeIL2YFDQjoYwpVXyA4D5nMTey+hd76P6T +U7oLHUKPpPMZGUlqDPnW2GuxszyPTkMX/7MZCluFhmFaj3G5O41q3/IdEyDs3OYU +cQ3XH9CtvuU1H7iEFV9OSE5YJBQjcgz7ies0QwcKTdEuubhGbTFjxuMYp4o56Bmj +Sy3khXUzMS2hFwYghAuaSjDId91a1jezvUhRI4sKIE4xm0itY8T/ince5vmoCLvq +ZRJ5P6BN3jfXeKWsfiLYA2Ou+Pf4moI4QVpVgVRMKDaIJhng6vL66GezOp3iLX6g +PTKoBGMOLkzbwbERLh5zOBoOWOjAfywwQVG8ygWLiLGHXcgJlCxs629T2aHT1IRC +G05nVP6ghoqEL/hx317X0JpEl1HaUcI0YpqBY4aHzfw7AZWiAUmYRo8S96//IWSA +EPl/u2KN2BEjAWwC0t5gbNrZwiR3b6kOs/E9o3sV4SP5A5QjoH0pHY9BE8udUnyL +UJjqXQBf1Duk+FTvqMIHDqSqVniN2LmKoFLsjjuDqEgrPp+QB9nfBh3Zsg/bS6eC +b//OjYgAAf9DDcZN1/b3JD08PY2nRq5PC01c7UkZ0O9hOt4qiqLdQ7gMmudvPZPo +7H7qA+fuGO8NKITCCQqf5kWysvo6X4Vfmtg34HNPvsnR28uRrwx3teKEXNCuLlK8 +CrM/ffLLh7idT38Ewd7qQdTcSGEoz6X3Zs10Z4qngYZiyGJ4Xqvkty5MQCzhcRpR +oCpMoeC/zDzG6WHMjjW7gNrAYsbF7HVcvATTVo+eQ60FbemiDEA8B5IDKU4WpxYR +tohV08cJHdkWndOl6NU0gBju13SPuoaj19+tkYL8UPYSI8CTOZVyjGjuU5WnpZGS +QwhDNhP5mto8YulE24c4J7p/CAdFNcL708AlmVMdX0Shl0hYLj5rDtJ3wSf4BHsy +PwKpaqai+VdKeuX1HWD32azK2L3O06R6+BE1ps8O3jfufuGTzSx5575Z9DKcy6a1 +fMHnRfEJJd2suDOGavKYvFZdqKCu1jHMLLfbc15DD84lpMYh1v3MUT1xMEDyrm+Z +wUiaPRkHLbiwEP5ihhTtNEnKZL5DQaDRgAPz96EZOMf9I3/L3WZ72HqO/qT9DhW2 +fh+G7h99H0t/RHMetyL4pu0bW38N1pSo8H2gtZY/SkNMOwMQqFZ2Bjvolfgnq0qx +-----END RSA PRIVATE KEY----- +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,7EF23ABCE6BA878B6D9B2AEBC95EB363 + +IBPMl1LsW135xnaeja29W9yEjevQ9580yCVcNctcv58SPIzuE70lQ4RzAl/3dFXw +Bt+Zi8lVuLcjQmdo3CgBKIzLn82F5jEodEaxJ+06PMF7sf91FlGUiyiWkczIUVuS +sy7Qxa9o2q9kJllPS2ZEHvmgzJagAo8j6vQIx3+SP/P6j+M9Uf1wTHp9rLGGuYTY +6zC6NqXYmY3FNvMC4bsmLHyJm/AILU4uzs73TS7VpKqyA/1t2+fV6W2Hgo0PUPMc +8GNXlkgPkjK0l2XuwqJD/L7R5/BNsg9FnLMzMgccA3sLvw1TAKDHjdXI6UhyjyeG +sc8/qcblSVGddhP4Va8VbAofsyDPJWkiqqR+TVepwlGkjAok7jALnY5KsMpcS2Gz +LixN6m9kzsaY8eGBbSaZiM7W9V4d6yz9xQ7cvS3nHZHDP1QlFNMRIvLUOPnSwjXw +V/aLlkmbXv81A0BXJIVSg/aeADG0UQ77DJGYYuIEOB4mw3LjFiSLWBMoZNkjhvxk +AQDRxGUiexXomusSqqHuwFTBCKLVWnWris3/sKbV+Q5JhV5QnOBbq35L60U/N/1A +sZf8c/rdwdAKYadF/y3nOsCBzwo33wN2fBx287/kHGcbRhQWQIFktO2b8Mr3taC8 +kFLDePLwyfLnJ0XOK/cql55xHoAwmjAuRiizujMKjW0Eco290Ch+5DvSiB+9Av36 +IA9iJ5WVJ8we5HkWjMFVhmTqXpQ4Xd9iAR2wfRzbQiDvRrlzj9T0f3L0W5YkGwIj +CI5MWjBeF+NIVonEE/ebIFP8gbB7LVmDiXxWLMNf5JynHnj/PwITLJsTcaildjZ+ +GNO6Q518MqpjBCjBtT0PDiQGtLW7a+THm2hM1EdymxSpKsAFV2hjt9nDROf/nH+f +wW85iySRK1AQh8n+wxmmRbN/di9SUeqt65aKB1JPld9R1PVD8GzG4Yl5JnDy20iq +34S5R3rRa1DyRm7VKWucnSAQoH1bM9RKn+IcxsP8sKsjSyLpuKHgSc7QDyPNbTeI +l40Lmdx41bcpj5PomxgPAN2/OUCiJAPnIM2Blr9Qz5KKPYlAZ0WdCI4hG/VLcp+8 +nX20rrWqsP3rjTq0aA2npsx61o/CRv0G/mDgkfEkdwKYdqV0FWkd1tnZnXIeFZP1 +uPtJBAox3mP1x3G3R7TOyxaymqs/YZFC/K2ZeMmm5Nd2kMzEDZT+mqaDoRypBLQj +T1GuJdY1R2LMx5BtAVTVeoysXbtIWTOuk3AAukB6tseX3jAJ8Et9R0jXJJZpuk+x +5FKREkyQq2qnJgf3NBEPGhsYYTNfQGGsQHaqvLCuVIeExsOr0SnqikcupHkihjgV +KDNAYpnEcYgoZnVlgUHKV8fKk1UWn7ROX/Vx0SkwLoRBTUlfLdd+aTf097yFrtou +dM/hzF3DzpT3qG6L8kcqGUbpkMkySQVUEeCcetzXi3t2GCKf5DbcBBWoTPeOlw+W +cf35/ZwTPytGOQLZ2chLdoL34ELBbzug+kPMGa0IK+/8tilQJlblmunBJStGFO7w +kpaVIE3epTZz5UPvz8zURZY3lWsBmSIpifR5w2b7Yb4Cms7lAtpnrJKF4Sc7yPfa +-----END RSA PRIVATE KEY----- diff --git a/test/data/invalid_fixtures/api-serverExpired.pem b/test/data/invalid_fixtures/api-serverExpired.pem new file mode 100644 index 0000000..e3ec8c5 --- /dev/null +++ b/test/data/invalid_fixtures/api-serverExpired.pem @@ -0,0 +1,53 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,C00B6284CA695D456A57278C17FF7ED1 + +R12WILQjF2evDcmsyWG84LSgsOLbJrenAEMsiiLVi3WLgl1jZJBBzbXDHmqKfjHO +Iwqs6ufqDhvQZ3dgfIyilsJSrIA0T8/4KgGzO6s5kp+YUM0blxzxxQWYFl67wlkY +RRwAy+k+IWWSESTPQ4CObCBTxYUye0xtDdQ6NhbygYf6uXMctyfapt2M9okziZjJ +TorTwFGQ/C37rDDVWKVetPBV7vlqUmOvvHHLmJFUgevry2yCYuzj9jNJVRD8OPzP +Tcv8fBMcnaeHDSm4rNwggz05AiUMqCCLpgZFIuzIAr6PJwtl71YGIU1vkiWgSWCq +MlMj5dyTOs+dCAttt8938pVMn4sQ8ATpkCmrflzlIFCBCgiN7jfFEFA4k2NdpXIB +UKsQGW48YTtMnxnjVNqTbFP2dG8As1WYTEp0r47iZ5iIKepi762+ruor2KaeGPAi +jdAFlGEy+fdxlQOyiX9L4XQ6bTjx7sSsQtvFsEBCKQD5TO+lZBSRkhY3AtKpNngt +nhjZg++OGO1Y/PMBH4XEIyxI8MqIfzOEiUgL6BGkoCqMto7WKmfIFB62RAqOin5c +Betc5iIxscEoEVG+KihnXzrnhxdoiH4I8rhk/0wD+aP6kg8ahSPraXi9TNVNqjqP +zl0Lx4VU52kxbFRU1EgUIObcz07oaVTLSvHSJMBAIcRzh/hicrPOz/g2UaeEgyjh +iDvMbqq7IH74S7E46LemjCnpjrqzYrbdJCHxnHf1RhMbo35RUm6WBXlX8yDLoZRi +RbMom0aV9ORRpxxmUFIHtMWpTP94byojufKTgncOp07k1qqnEiARp7fd0UHBz3BU +R2Vfjr6+OKZBWSoOEx62xfHrxNIpydKSsASFmRMlGoExt0uR3jNCGgQBQn5YCtb1 +kaaGw6pSBU5B3NlBYA5mAnsMiv/mn/4Z3z3qYp/aCErg42Vhh9LXGNc2lry+6gUY +Xjfe4x0sMXbUGx6zgN9lGQm/x6GB8zU5ptQ7xGdqOXMwNm+UlEUkuNS6vxxWiwkS +Dw9q0fsrZjLuQt6cdc5cmy41PNcVTuk+joyX6IYjfEs84Fy7oCKo9NRy8Yk6glLB +/ydwtxb6w6GRifb+IeshFcBqkv00enZFtrusKSBNj8rh7Yple3etVma69NAvjiDX +SoaJxEbTxGxD40KBnXp/RxV8UlNaYP0NfFzW3CMaOyzo84jXMMvAI9o7HcgH0wgQ +W+GFWSHifoGxn4XJJ4BKFQG6iPxZCI5/sve1qZdRqs389idLA1KKRb++BGaoK9gZ +/ueqQUFFgDTK8Eb6ELefOC6QD4ENVnfVSKw2XgeqFjPqXiL+swY5oFIOOmbPafeZ +Rr05pbD/8Cokt0c03s0/ss4OtEGN8PtQqR7d5H3+ssGEA6rhb4vmfaolSQRMwjxO +MFmTAzjIIha9geY1wTDGeybs5IMhp1BfIJMKKvRZG65TJcJKgyA0oAo/kYm6mMnl +zaD5rDRKxf96BSrqk5AIyXa0uHnQ4qD4WjHTrKCqLeX40WLWYZgu0gD8ndLWjaO2 +DZlx4kv5QmOWLVBzpRPsM6LFJc71bXG7bWLXkh8U+CGGSCJpftPVfLrhwkXtmy92 +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIDwDCCAqigAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgTELMAkGA1UEBhMCQ0Ex +CzAJBgNVBAgMAk9OMQ8wDQYDVQQHDAZLYW5hdGExDzANBgNVBAoMBlNvbGFjZTEM +MAoGA1UECwwDQVBJMRIwEAYDVQQDDAlwdWJsaWNhZncxITAfBgkqhkiG9w0BCQEW +EnN1cHBvcnRAc29sYWNlLmNvbTAeFw0yMjAzMDMxNDE2MTJaFw0yMjAzMDQxNDE2 +MTJaMIGHMQswCQYDVQQGEwJDQTELMAkGA1UECAwCT04xDzANBgNVBAcMBkthbmF0 +YTEPMA0GA1UECgwGU29sYWNlMQwwCgYDVQQLDANBUEkxGDAWBgNVBAMMD3B1Ymxp +Y2Fmd3NlcnZlcjEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBzb2xhY2UuY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7HXmPFjHmbZwEHKQ04GevsSM +us2ClvKFVjlVALv7jjsaN2SlbW3BrthH7q3yk1cjfviyVpGr4i1Ij+FLRYzQAJbT +0h2y7zGzuvcZSejF5NR6Bx+z5g3qgJhaR0JWKP/pM7NQXqr9OmC2Mr8eZJLSpVy+ +wsW9FrAlBhleQpTYNjVNIj4/zcqoVixoWdcqJlzIPv1Bjrtb6wmXA2XL3j4M+xKQ ++C2X99tp0PeatU2X/aPcWHDQwImjec+PUxLpK/VE/3HLwo8Y0iycfyFTkIHVNSHH +udU1Pvuw+c23Cig0cCYGp+9FFXSzimhFx2ddcmIc8zMGYTe+W0Lk4UlhrIQZCQID +AQABozswOTA3BgNVHREEMDAugglsb2NhbGhvc3SCCXNvbGJyb2tlcocEfwAAAYcQ +AAAAAAAAAAAAAAAAAAAAATANBgkqhkiG9w0BAQsFAAOCAQEAjZCqCPHBXfXGQKnB +pzPTasMyety6u4q6xJObjFFpxIFYfppWTGdI21w0gs03vZuvwkd1atkb8IDOECrA +uX1c8UOSSaV4pXv/gtZHSGDQ9dHrzvawE4JzGFiElYthkW1qfmYdpqdF426zzRG0 +c1EBItk8j+xsClgUVS/JERuSnVmD7NbmzTqmE+ZdZo2ugy2NxKUyg1eW9NJggRjX +I4idXPC3+DWiAV/VK9ENLyXo5FAEBNnljp/Majcbp4aF8Rho1QJHBlXk8VO8l9qj +FKhtCGp8pgiTRcxnv9bAx4vNnZNjXlitfcQOY2lMaXEas6IC4Vmoth66kCVwwHJ+ +GjU2wg== +-----END CERTIFICATE----- diff --git a/test/data/invalid_fixtures/unused.key b/test/data/invalid_fixtures/unused.key new file mode 100644 index 0000000..2417026 --- /dev/null +++ b/test/data/invalid_fixtures/unused.key @@ -0,0 +1,30 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,DC40861DFCE43BCA7EBD8D0A57CD8D95 + +1BzOyPnR0HD9ZvcTS+EUTKeDlJszBBB/aLM7gO+poJxIoI/bGH/3VK4QZJIsi9dt ++uN7c6j/Qa+uzFegeuL/pnd+HiuFrs3D7AjEsadZ930dcR/PV3YfRhnHszlfsJQC +Sk8vNAISR5TFTqMpCTfcxfNLaMaGa6dJlK1kCsQwh7+94lgPyCSsTtCWwzkj7Ut8 +CD/qu/b9Gn7kNQAlZ9+b+rD7zVXM4hqU107hJCJzdhfYHgVqeHNtN6CIV3bk5hbv +9xrJhFXU32alCobBDe7zOYw4eJRyqMjWdiyolJ/e5cQc7ji6a7d9vzXhdLoyBGki +p/7RI8kopzEBgQKBDsxf+stKqWX0EZSBoAbWcQfv3y23YxZ7SUwXOl1CrKSH+GL+ +FPkUX1p5P1avTUCyAg+J+aNbzLO4jHUeIL2YFDQjoYwpVXyA4D5nMTey+hd76P6T +U7oLHUKPpPMZGUlqDPnW2GuxszyPTkMX/7MZCluFhmFaj3G5O41q3/IdEyDs3OYU +cQ3XH9CtvuU1H7iEFV9OSE5YJBQjcgz7ies0QwcKTdEuubhGbTFjxuMYp4o56Bmj +Sy3khXUzMS2hFwYghAuaSjDId91a1jezvUhRI4sKIE4xm0itY8T/ince5vmoCLvq +ZRJ5P6BN3jfXeKWsfiLYA2Ou+Pf4moI4QVpVgVRMKDaIJhng6vL66GezOp3iLX6g +PTKoBGMOLkzbwbERLh5zOBoOWOjAfywwQVG8ygWLiLGHXcgJlCxs629T2aHT1IRC +G05nVP6ghoqEL/hx317X0JpEl1HaUcI0YpqBY4aHzfw7AZWiAUmYRo8S96//IWSA +EPl/u2KN2BEjAWwC0t5gbNrZwiR3b6kOs/E9o3sV4SP5A5QjoH0pHY9BE8udUnyL +UJjqXQBf1Duk+FTvqMIHDqSqVniN2LmKoFLsjjuDqEgrPp+QB9nfBh3Zsg/bS6eC +b//OjYgAAf9DDcZN1/b3JD08PY2nRq5PC01c7UkZ0O9hOt4qiqLdQ7gMmudvPZPo +7H7qA+fuGO8NKITCCQqf5kWysvo6X4Vfmtg34HNPvsnR28uRrwx3teKEXNCuLlK8 +CrM/ffLLh7idT38Ewd7qQdTcSGEoz6X3Zs10Z4qngYZiyGJ4Xqvkty5MQCzhcRpR +oCpMoeC/zDzG6WHMjjW7gNrAYsbF7HVcvATTVo+eQ60FbemiDEA8B5IDKU4WpxYR +tohV08cJHdkWndOl6NU0gBju13SPuoaj19+tkYL8UPYSI8CTOZVyjGjuU5WnpZGS +QwhDNhP5mto8YulE24c4J7p/CAdFNcL708AlmVMdX0Shl0hYLj5rDtJ3wSf4BHsy +PwKpaqai+VdKeuX1HWD32azK2L3O06R6+BE1ps8O3jfufuGTzSx5575Z9DKcy6a1 +fMHnRfEJJd2suDOGavKYvFZdqKCu1jHMLLfbc15DD84lpMYh1v3MUT1xMEDyrm+Z +wUiaPRkHLbiwEP5ihhTtNEnKZL5DQaDRgAPz96EZOMf9I3/L3WZ72HqO/qT9DhW2 +fh+G7h99H0t/RHMetyL4pu0bW38N1pSo8H2gtZY/SkNMOwMQqFZ2Bjvolfgnq0qx +-----END RSA PRIVATE KEY----- diff --git a/test/data/invalid_fixtures/unused_root_ca.crt b/test/data/invalid_fixtures/unused_root_ca.crt new file mode 100644 index 0000000..2a93c24 --- /dev/null +++ b/test/data/invalid_fixtures/unused_root_ca.crt @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICfDCCAWQCCQCqFeNx8kE2ZzANBgkqhkiG9w0BAQsFADAAMB4XDTIyMDMxMDE1 +NTMwNFoXDTMyMDMwNzE1NTMwNFowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAMqlPLtys0N6jLytuNZaGKVJYtXx19GHYzDnXTB4+O5fRDNgkeVrqOKs +Eyfvv3tfy6QA54rBeXVU4AsOJLU7eb3QoC7or1v/hZTvMgWETwJ01R9txWJeTwNa +UGpvhzgGwtEX10gOrXSRCAy7MuIEY6OEg670vr/aB5yg90VsA+pJ2IqgWPIqzh68 +9FCgXzbZ2V6GrKorKYPJnJC01B+Xw9NihLVRFkv3A2L1TaWV1mZnvGkvNHEq54f+ +Ethzaic6I8Swr/oPjG5WTzHWI1gDg1ONUd0HjpONfNTP/kWWBXi6K1S4qzqNxxVR +4yCCytrlYk+LKFr9njncyEglNlzPLIkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA +Z0iCdXMk6N3NDOrB+aAui0oNqyFJr6wlvA/mL+EZ1Y23AVvMJl3O+K3nwyOxrLqB +jQiu7TXU75MWKb512CoDfwk078PVrH9ZV1dNPZWV99MbyO0Voth3fcNTu/u0u4nJ +zRGGrhGjqpJVU0856IzkdJNUjgzn8vEN+24UgBdKzmHnMY78k8fpcsSqz0D74psR +UaSWb3nwbXaM7mh8SWpoCO7AC+jRvfCVnC+wfdhiPYbt4crEuV69bH5mrdv0pvD1 +2ZfGSvkVZzFb3OdRHrc5X8kO/cVkLMBeggOdFsuMay9ViUTWpkqTYUJePX+TBHBV +wy3YsdVsGbvgKsK5YgReEQ== +-----END CERTIFICATE----- diff --git a/test/go.mod b/test/go.mod new file mode 100644 index 0000000..e1489a1 --- /dev/null +++ b/test/go.mod @@ -0,0 +1,61 @@ +module solace.dev/go/messaging-trace/opentelemetry/test + +go 1.20 + +require ( + github.com/Microsoft/go-winio v0.5.2 // indirect + github.com/Shopify/toxiproxy/v2 v2.3.0 + github.com/containerd/containerd v1.6.1 // indirect + github.com/docker/distribution v2.8.0+incompatible // indirect + github.com/docker/docker v20.10.12+incompatible // indirect + github.com/google/uuid v1.3.0 + github.com/magiconair/properties v1.8.6 // indirect + github.com/moby/sys/mount v0.3.1 // indirect + github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect + github.com/onsi/ginkgo/v2 v2.1.3 + github.com/onsi/gomega v1.18.1 + github.com/opencontainers/image-spec v1.0.2 // indirect + github.com/testcontainers/testcontainers-go v0.12.0 + golang.org/x/net v0.0.0-20220225172249-27dd8689420f // indirect + golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 // indirect + google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8 // indirect + solace.dev/go/messaging v1.5.0 + solace.dev/go/messaging-trace/opentelemetry v1.0.0 + solace.dev/go/messaging-trace/opentelemetry/test/sempclient/action v0.0.0 + solace.dev/go/messaging-trace/opentelemetry/test/sempclient/config v0.0.0 + solace.dev/go/messaging-trace/opentelemetry/test/sempclient/monitor v0.0.0 +) + +require ( + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Microsoft/hcsshim v0.9.2 // indirect + github.com/antihax/optional v1.0.0 // indirect + github.com/cenkalti/backoff v2.2.1+incompatible // indirect + github.com/containerd/cgroups v1.0.3 // indirect + github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/go-units v0.4.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/moby/sys/mountinfo v0.6.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/runc v1.1.0 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/sirupsen/logrus v1.8.1 // indirect + go.opencensus.io v0.23.0 // indirect + golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f // indirect + golang.org/x/text v0.3.7 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/grpc v1.44.0 // indirect + google.golang.org/protobuf v1.27.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect +) + +replace solace.dev/go/messaging-trace/opentelemetry v1.0.0 => ../ + +replace solace.dev/go/messaging-trace/opentelemetry/test/sempclient/action v0.0.0 => ./sempclient/action + +replace solace.dev/go/messaging-trace/opentelemetry/test/sempclient/config v0.0.0 => ./sempclient/config + +replace solace.dev/go/messaging-trace/opentelemetry/test/sempclient/monitor v0.0.0 => ./sempclient/monitor diff --git a/test/go.sum b/test/go.sum new file mode 100644 index 0000000..936ed71 --- /dev/null +++ b/test/go.sum @@ -0,0 +1,1458 @@ +bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= +bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM= +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= +github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= +github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= +github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= +github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= +github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Flaque/filet v0.0.0-20201012163910-45f684403088 h1:PnnQln5IGbhLeJOi6hVs+lCeF+B1dRfFKPGXUAez0Ww= +github.com/Flaque/filet v0.0.0-20201012163910-45f684403088/go.mod h1:TK+jB3mBs+8ZMWhU5BqZKnZWJ1MrLo8etNVg51ueTBo= +github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= +github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= +github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= +github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= +github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= +github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= +github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= +github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= +github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= +github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= +github.com/Microsoft/hcsshim v0.9.2 h1:wB06W5aYFfUB3IvootYAY2WnOmIdgPGfqSI6tufQNnY= +github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= +github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= +github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= +github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= +github.com/Shopify/toxiproxy/v2 v2.3.0 h1:62YkpiP4bzdhKMH+6uC5E95y608k3zDwdzuBMsnn3uQ= +github.com/Shopify/toxiproxy/v2 v2.3.0/go.mod h1:KvQTtB6RjCJY4zqNJn7C7JDFgsG5uoHYDirfUfpIm0c= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= +github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= +github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= +github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= +github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= +github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= +github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= +github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= +github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= +github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= +github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= +github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= +github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= +github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= +github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= +github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= +github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= +github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= +github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= +github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= +github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= +github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= +github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= +github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= +github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= +github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= +github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= +github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= +github.com/containerd/cgroups v1.0.3 h1:ADZftAkglvCiD44c77s5YmMqaP2pzVCFZvBmAlBdAP4= +github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= +github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= +github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= +github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= +github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= +github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= +github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= +github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= +github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= +github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c= +github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s= +github.com/containerd/containerd v1.6.1 h1:oa2uY0/0G+JX4X7hpGCYvkp9FjUancz56kSNnb1sG3o= +github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE= +github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= +github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= +github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= +github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= +github.com/containerd/continuity v0.2.2 h1:QSqfxcn8c+12slxwu00AtzXrsami0MJb/MQs9lOLHLA= +github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= +github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= +github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= +github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= +github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= +github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= +github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= +github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= +github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= +github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= +github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= +github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= +github.com/containerd/imgcrypt v1.1.3/go.mod h1:/TPA1GIDXMzbj01yd8pIbQiLdQxed5ue1wb8bP7PQu4= +github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= +github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= +github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= +github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= +github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= +github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= +github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= +github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= +github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= +github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= +github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y= +github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= +github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= +github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE= +github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= +github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= +github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= +github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= +github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= +github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= +github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= +github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= +github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= +github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= +github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= +github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.8.0+incompatible h1:l9EaZDICImO1ngI+uTifW+ZYvvz7fKISBAKpg+MbWbY= +github.com/docker/distribution v2.8.0+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.11+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.12+incompatible h1:CEeNmFM0QZIsJCZKMkZx0ZcahTiewkrgiwfYD+dfl1U= +github.com/docker/docker v20.10.12+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= +github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= +github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= +github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= +github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= +github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= +github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= +github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= +github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= +github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= +github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= +github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= +github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= +github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= +github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-redis/redis v6.15.9+incompatible h1:K0pv1D7EQUjfyoMql+r/jZqCLizCGKFlFgcHWWmHQjg= +github.com/go-redis/redis v6.15.9+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= +github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= +github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= +github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= +github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= +github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= +github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= +github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= +github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/moby/sys/mount v0.2.0/go.mod h1:aAivFE2LB3W4bACsUXChRHQ0qKWsetY4Y9V7sxOougM= +github.com/moby/sys/mount v0.3.1 h1:RX1K0x95oR8j5P1YefKDt7tE1C2kCCixV0H8Aza3GaI= +github.com/moby/sys/mount v0.3.1/go.mod h1:6IZknFQiqjLpwuYJD5Zk0qYEuJiws36M88MIXnZHya0= +github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= +github.com/moby/sys/mountinfo v0.6.0 h1:gUDhXQx58YNrpHlK4nSL+7y2pxFZkUcXqzFDKWdC0Oo= +github.com/moby/sys/mountinfo v0.6.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= +github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= +github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= +github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs= +github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= +github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= +github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/ginkgo/v2 v2.1.3 h1:e/3Cwtogj0HA+25nMP1jCMDIf8RtRYbGwGGuBIFztkc= +github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= +github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= +github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= +github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= +github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= +github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= +github.com/opencontainers/runc v1.1.0 h1:O9+X96OcDjkmmZyfaG996kV7yq8HsoU2h1XRRQcefG8= +github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= +github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= +github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= +github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= +github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= +github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= +github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= +github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= +github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= +github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= +github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= +github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= +github.com/testcontainers/testcontainers-go v0.12.0 h1:SK0NryGHIx7aifF6YqReORL18aGAA4bsDPtikDVCEyg= +github.com/testcontainers/testcontainers-go v0.12.0/go.mod h1:SIndOQXZng0IW8iWU1Js0ynrfZ8xcxrTtDfF6rD2pxs= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= +github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= +github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= +github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= +github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= +github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= +go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= +go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= +go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= +go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= +go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= +go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= +go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE= +go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= +go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= +go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= +go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= +go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= +go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= +go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211108170745-6635138e15ea/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211109184856-51b60fd695b3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 h1:nhht2DYV/Sn3qOayu8lM+cU1ii9sTLUeBQwQQfUHtrs= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= +golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8 h1:U9V52f6rAgINH7kT+musA1qF8kWyVOxzF8eYuOVuFwQ= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg= +google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= +gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= +k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= +k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= +k8s.io/api v0.22.5/go.mod h1:mEhXyLaSD1qTOf40rRiKXkc+2iCem09rWLlFwhCEiAs= +k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= +k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= +k8s.io/apimachinery v0.22.5/go.mod h1:xziclGKwuuJ2RM5/rSFQSYAj0zdbci3DH8kj+WvyN0U= +k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= +k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= +k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= +k8s.io/apiserver v0.22.5/go.mod h1:s2WbtgZAkTKt679sYtSudEQrTGWUSQAPe6MupLnlmaQ= +k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= +k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= +k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= +k8s.io/client-go v0.22.5/go.mod h1:cs6yf/61q2T1SdQL5Rdcjg9J1ElXSwbjSrW2vFImM4Y= +k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0= +k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= +k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= +k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= +k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI= +k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= +k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= +k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4= +k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= +k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= +k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= +k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= +k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= +k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= +solace.dev/go/messaging v1.5.0 h1:bwGqwH1cKU3YO0AQNyaeaaXYKESWoHAnyTxbRUp6KCQ= +solace.dev/go/messaging v1.5.0/go.mod h1:QKqAKqxKX5v0G9PEuRpe9wBNbEuj/ncbrkqsNArT7L0= diff --git a/test/helpers/builder_helpers.go b/test/helpers/builder_helpers.go new file mode 100644 index 0000000..bf9a466 --- /dev/null +++ b/test/helpers/builder_helpers.go @@ -0,0 +1,106 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package helpers + +import ( + "solace.dev/go/messaging/pkg/solace" + "solace.dev/go/messaging/pkg/solace/config" + "solace.dev/go/messaging/pkg/solace/message" + "solace.dev/go/messaging/pkg/solace/resource" + + //lint:ignore ST1001 dot import is fine for tests + . "github.com/onsi/gomega" +) + +// NewDirectPublisher function +func NewDirectPublisher( + messagingService solace.MessagingService, + configurationProviders ...config.PublisherPropertiesConfigurationProvider, +) solace.DirectMessagePublisher { + builder := messagingService.CreateDirectMessagePublisherBuilder() + if len(configurationProviders) > 0 { + for _, configurationProvider := range configurationProviders { + builder.FromConfigurationProvider(configurationProvider) + } + } + publisher, err := builder.Build() + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Encountered error while building publisher") + return publisher +} + +// NewPersistentPublisher function +func NewPersistentPublisher( + messagingService solace.MessagingService, + configurationProviders ...config.PublisherPropertiesConfigurationProvider, +) solace.PersistentMessagePublisher { + builder := messagingService.CreatePersistentMessagePublisherBuilder() + if len(configurationProviders) > 0 { + for _, configurationProvider := range configurationProviders { + builder.FromConfigurationProvider(configurationProvider) + } + } + publisher, err := builder.Build() + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Encountered error while building publisher") + return publisher +} + +// NewDirectReceiver function +func NewDirectReceiver( + messagingService solace.MessagingService, + configurationProviders ...config.ReceiverPropertiesConfigurationProvider, +) solace.DirectMessageReceiver { + builder := messagingService.CreateDirectMessageReceiverBuilder() + if len(configurationProviders) > 0 { + for _, configurationProvider := range configurationProviders { + builder.FromConfigurationProvider(configurationProvider) + } + } + receiver, err := builder.Build() + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Encountered error while building receiver") + return receiver +} + +// NewPersistentReceiver function +func NewPersistentReceiver( + messagingService solace.MessagingService, + queueToBind *resource.Queue, + configurationProviders ...config.ReceiverPropertiesConfigurationProvider, +) solace.PersistentMessageReceiver { + builder := messagingService.CreatePersistentMessageReceiverBuilder() + if len(configurationProviders) > 0 { + for _, configurationProvider := range configurationProviders { + builder.FromConfigurationProvider(configurationProvider) + } + } + receiver, err := builder.Build(queueToBind) + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Encountered error while building receiver") + return receiver +} + +// NewMessage function +func NewMessage(messagingService solace.MessagingService, payload ...string) message.OutboundMessage { + builder := messagingService.MessageBuilder() + var msg message.OutboundMessage + var err error + if len(payload) > 0 { + msg, err = builder.BuildWithStringPayload(payload[0]) + } else { + msg, err = builder.Build() + } + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "An error occurred while building a new outbound message") + return msg +} diff --git a/test/helpers/error_helpers.go b/test/helpers/error_helpers.go new file mode 100644 index 0000000..33fc225 --- /dev/null +++ b/test/helpers/error_helpers.go @@ -0,0 +1,108 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package helpers + +import ( + "encoding/json" + "errors" + "fmt" + + "solace.dev/go/messaging-trace/opentelemetry/test/sempclient/action" + "solace.dev/go/messaging-trace/opentelemetry/test/sempclient/config" + "solace.dev/go/messaging-trace/opentelemetry/test/sempclient/monitor" + "solace.dev/go/messaging/pkg/solace" + "solace.dev/go/messaging/pkg/solace/subcode" + + //lint:ignore ST1001 dot import is fine for tests + . "github.com/onsi/gomega" +) + +// Note that in all helper functions, we must expect with offset + +// ValidateError function +func ValidateError(err error, expected error, substrings ...string) { + validateError(2, err, expected, substrings...) +} + +// ValidateChannelError function +func ValidateChannelError(errChan <-chan error, expected error, substrings ...string) { + var err error + EventuallyWithOffset(1, errChan).Should(Receive(&err)) + validateError(2, err, expected, substrings...) +} + +func validateError(offset int, err error, expected interface{}, substrings ...string) { + ExpectWithOffset(offset, err).To(HaveOccurred(), "Expected error to have occurred") + ExpectWithOffset(offset, err).To(BeAssignableToTypeOf(expected), fmt.Sprintf("Expected error of type %T to be assignable of type %T", err, expected)) + if len(substrings) > 0 { + for _, str := range substrings { + ExpectWithOffset(offset, err.Error()).To(ContainSubstring(str), fmt.Sprintf("Expected error with string '%s' to contain substring '%s'", err.Error(), str)) + } + } +} + +// ValidateNativeError function +func ValidateNativeError(err error, codes ...subcode.Code) { + validateNativeError(2, err, codes...) +} + +func validateNativeError(offset int, err error, codes ...subcode.Code) { + ExpectWithOffset(offset, err).To(Not(BeNil()), "Expected native error to have occurred") + var pubSubPlusError *solace.NativeError + ExpectWithOffset(offset, errors.As(err, &pubSubPlusError)).To(BeTrue(), fmt.Sprintf("Expected error to be or wrap PubSubPlusNativeError, was %T", err)) + ExpectWithOffset(offset, subcode.Is(pubSubPlusError.SubCode(), codes...)).To(BeTrue(), + fmt.Sprintf("Expected error code %d (%s) to be in %v", pubSubPlusError.SubCode(), pubSubPlusError.SubCode().String(), codes)) +} + +// DecodeActionSwaggerError function +func DecodeActionSwaggerError(err error, response interface{}) { + decodeActionSwaggerError(err, response, 2) +} + +func decodeActionSwaggerError(err error, response interface{}, offset int) { + ExpectWithOffset(offset, err).To(HaveOccurred(), "Expected action swagger error to have occurred") + var swaggerError action.GenericSwaggerError + ExpectWithOffset(offset, errors.As(err, &swaggerError)).To(BeTrue(), "Expecter action swagger error to be of type action.GenericSwaggerError") + jsonErr := json.Unmarshal(swaggerError.Body(), response) + ExpectWithOffset(offset, jsonErr).ToNot(HaveOccurred(), "Expected to be able to decode response body to response object. Data: '"+string(swaggerError.Body())+"'") +} + +// DecodeConfigSwaggerError function +func DecodeConfigSwaggerError(err error, response interface{}) { + decodeConfigSwaggerError(err, response, 2) +} + +func decodeConfigSwaggerError(err error, response interface{}, offset int) { + ExpectWithOffset(offset, err).To(HaveOccurred(), "Expected config swagger error to have occurred") + var swaggerError config.GenericSwaggerError + ExpectWithOffset(offset, errors.As(err, &swaggerError)).To(BeTrue(), "Expecter config swagger error to be of type config.GenericSwaggerError") + jsonErr := json.Unmarshal(swaggerError.Body(), response) + ExpectWithOffset(offset, jsonErr).ToNot(HaveOccurred(), "Expected to be able to decode response body to response object. Data: '"+string(swaggerError.Body())+"'") +} + +// DecodeMonitorSwaggerError function +func DecodeMonitorSwaggerError(err error, response interface{}) { + decodeMonitorSwaggerError(err, response, 2) +} + +func decodeMonitorSwaggerError(err error, response interface{}, offset int) { + ExpectWithOffset(offset, err).To(HaveOccurred(), "Expected monitor swagger error to have occurred") + var swaggerError monitor.GenericSwaggerError + ExpectWithOffset(offset, errors.As(err, &swaggerError)).To(BeTrue(), "Expecter monitor swagger error to be of type monitor.GenericSwaggerError") + jsonErr := json.Unmarshal(swaggerError.Body(), response) + ExpectWithOffset(offset, jsonErr).ToNot(HaveOccurred(), "Expected to be able to decode response body to response object. Data: '"+string(swaggerError.Body())+"'") +} diff --git a/test/helpers/messaging_service_helpers.go b/test/helpers/messaging_service_helpers.go new file mode 100644 index 0000000..37cfe84 --- /dev/null +++ b/test/helpers/messaging_service_helpers.go @@ -0,0 +1,205 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package helpers contains various test helpers for assertions, for example it contains a helper to connect and disconnect a messaging service +// based on a messaging service builder. +package helpers + +import ( + "fmt" + "net/url" + "time" + + "solace.dev/go/messaging-trace/opentelemetry/test/sempclient/monitor" + "solace.dev/go/messaging-trace/opentelemetry/test/testcontext" + "solace.dev/go/messaging/pkg/solace" + "solace.dev/go/messaging/pkg/solace/config" + + //lint:ignore ST1001 dot import is fine for tests + . "github.com/onsi/ginkgo/v2" + //lint:ignore ST1001 dot import is fine for tests + . "github.com/onsi/gomega" +) + +// Helper functions for various connect/disconnect functionality, paramtereizing connects and disconnects + +const defaultTimeout = 10 * time.Second + +// ConnectFunction type defined +type ConnectFunction func(service solace.MessagingService) error + +// SynchronousConnectFunction defined +var SynchronousConnectFunction = func(service solace.MessagingService) error { + return service.Connect() +} + +// AsynchronousConnectFunction defined +var AsynchronousConnectFunction = func(service solace.MessagingService) error { + select { + case err := <-service.ConnectAsync(): + return err + case <-time.After(defaultTimeout): + Fail("timed out waiting for async connect to return") + return nil + } +} + +// CallbackConnectFunction defined +var CallbackConnectFunction = func(service solace.MessagingService) error { + var passedService solace.MessagingService + cErr := make(chan error) + service.ConnectAsyncWithCallback(func(newService solace.MessagingService, err error) { + passedService = newService + cErr <- err + }) + select { + case err := <-cErr: + ExpectWithOffset(1, passedService).To(Equal(service), "Messaging service passed to callback did not equal calling service") + return err + case <-time.After(defaultTimeout): + Fail("timed out waiting for callback connect to return") + return nil + } +} + +// ConnectFunctions defined +var ConnectFunctions = map[string]ConnectFunction{ + "synchronous connect": SynchronousConnectFunction, + "asynchronous connect": AsynchronousConnectFunction, + "callback connect": CallbackConnectFunction, +} + +// DisconnectFunction defined +type DisconnectFunction func(service solace.MessagingService) error + +// SynchronousDisconnectFunction defined +var SynchronousDisconnectFunction = func(service solace.MessagingService) error { + return service.Disconnect() +} + +// AsynchronousDisconnectFunction defined +var AsynchronousDisconnectFunction = func(service solace.MessagingService) error { + select { + case err := <-service.DisconnectAsync(): + return err + case <-time.After(defaultTimeout): + Fail("timed out waiting for async disconnect to return") + return nil + } +} + +// CallbackDisconnectFunction defined +var CallbackDisconnectFunction = func(service solace.MessagingService) error { + cErr := make(chan error) + service.DisconnectAsyncWithCallback(func(err error) { + cErr <- err + }) + select { + case err := <-cErr: + return err + case <-time.After(defaultTimeout): + Fail("timed out waiting for callback disconnect to return") + return nil + } +} + +// DisconnectFunctions defined +var DisconnectFunctions = map[string]DisconnectFunction{ + "synchronous disconnect": SynchronousDisconnectFunction, + "asynchronous disconnect": AsynchronousDisconnectFunction, + "callback disconnect": CallbackDisconnectFunction, +} + +// DefaultConfiguration defined +func DefaultConfiguration() config.ServicePropertyMap { + connectionDetails := testcontext.Messaging() + url := fmt.Sprintf("%s:%d", connectionDetails.Host, connectionDetails.MessagingPorts.PlaintextPort) + config := config.ServicePropertyMap{ + config.ServicePropertyVPNName: connectionDetails.VPN, + config.TransportLayerPropertyHost: url, + config.AuthenticationPropertySchemeBasicUserName: connectionDetails.Authentication.BasicUsername, + config.AuthenticationPropertySchemeBasicPassword: connectionDetails.Authentication.BasicPassword, + config.TransportLayerPropertyReconnectionAttempts: 0, + } + return config +} + +// helper to connect and disconnect the messaging service + +// BuildMessagingService function +func BuildMessagingService(builder solace.MessagingServiceBuilder) solace.MessagingService { + return buildMessagingService(builder, 2) +} + +// ConnectMessagingService function +func ConnectMessagingService(messagingService solace.MessagingService) *monitor.MsgVpnClient { + return connectMessagingServiceWithFunction(messagingService, SynchronousConnectFunction, 2) +} + +// DisconnectMessagingService function +func DisconnectMessagingService(messagingService solace.MessagingService) { + disconnectMessagingServiceWithFunction(messagingService, SynchronousDisconnectFunction, 2) +} + +func buildMessagingService(builder solace.MessagingServiceBuilder, callDepth int) solace.MessagingService { + messagingService, err := builder.Build() + ExpectWithOffset(callDepth, err).To(BeNil(), "Got unexpected error while building messaging service") + return messagingService +} + +func connectMessagingServiceWithFunction(messagingService solace.MessagingService, connectFunction ConnectFunction, callDepth int) *monitor.MsgVpnClient { + success := false + // make sure that when we connect we defer the disconnect + defer func() { + if !success { + // make sure that if we fail, we disconnect the messaging service + messagingService.Disconnect() + } + }() + err := connectFunction(messagingService) + ExpectWithOffset(callDepth, err).To(BeNil(), "Got unexpected error when connecting messaging service") + + client := getClient(messagingService, callDepth+1) + ExpectWithOffset(callDepth, client.ClientName).To(Equal(messagingService.GetApplicationID()), "Expected ClientName to equal application ID when checking for connected client") + success = true + return client +} + +func disconnectMessagingServiceWithFunction(messagingService solace.MessagingService, disconnectFunction func(solace.MessagingService) error, callDepth int) { + err := disconnectFunction(messagingService) + ExpectWithOffset(callDepth, err).To(BeNil(), "Got unexpected error when disconnecting messaging service") + + resp, _, err := testcontext.SEMP().Monitor().MsgVpnApi. + GetMsgVpnClient(testcontext.SEMP().MonitorCtx(), testcontext.Messaging().VPN, "notexist", nil) + ExpectWithOffset(callDepth, err).To(HaveOccurred(), "Expected SEMP to reject call checking for connected client after disconnecting client") + decodeMonitorSwaggerError(err, &resp, callDepth+1) + ExpectWithOffset(callDepth, resp.Meta).ToNot(BeNil(), "Expected response from SEMP to contain meta") + ExpectWithOffset(callDepth, resp.Meta.Error_).ToNot(BeNil(), "Expected response from SEMP to contain an error") + ExpectWithOffset(callDepth, resp.Meta.Error_.Status).To(Equal("NOT_FOUND"), "Expected response from SEMP to have error status NOT_FOUND") +} + +// GetClient function +func GetClient(messagingService solace.MessagingService) *monitor.MsgVpnClient { + return getClient(messagingService, 2) +} + +func getClient(messagingService solace.MessagingService, callDepth int) *monitor.MsgVpnClient { + clientResponse, _, err := testcontext.SEMP().Monitor().MsgVpnApi. + GetMsgVpnClient(testcontext.SEMP().MonitorCtx(), testcontext.Messaging().VPN, url.QueryEscape(messagingService.GetApplicationID()), nil) + ExpectWithOffset(callDepth, err).To(BeNil(), "Got unexpected error checking SEMP for connected client") + ExpectWithOffset(callDepth, clientResponse.Data).To(Not(BeNil()), "Expected SEMP response data to not be nil when checking for connected client") + return clientResponse.Data +} diff --git a/test/helpers/resource_helpers.go b/test/helpers/resource_helpers.go new file mode 100644 index 0000000..e2d69b8 --- /dev/null +++ b/test/helpers/resource_helpers.go @@ -0,0 +1,141 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package helpers + +import ( + sempconfig "solace.dev/go/messaging-trace/opentelemetry/test/sempclient/config" + "solace.dev/go/messaging-trace/opentelemetry/test/sempclient/monitor" + "solace.dev/go/messaging-trace/opentelemetry/test/testcontext" + + //lint:ignore ST1001 dot import is fine for tests + . "github.com/onsi/gomega" +) + +// CreateQueue function +func CreateQueue(queueName string, topics ...string) { + _, _, err := testcontext.SEMP().Config().QueueApi.CreateMsgVpnQueue(testcontext.SEMP().ConfigCtx(), sempconfig.MsgVpnQueue{ + QueueName: queueName, + IngressEnabled: True, + EgressEnabled: True, + Owner: "default", + }, testcontext.Messaging().VPN, nil) + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Failed to create queue with name "+queueName) + for _, topic := range topics { + _, _, err = testcontext.SEMP().Config().QueueApi.CreateMsgVpnQueueSubscription(testcontext.SEMP().ConfigCtx(), + sempconfig.MsgVpnQueueSubscription{ + SubscriptionTopic: topic, + }, testcontext.Messaging().VPN, queueName, nil) + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Failed to add subscription for topic "+topic) + } +} + +// CreateNonExclusiveQueue function +func CreateNonExclusiveQueue(queueName string, topics ...string) { + _, _, err := testcontext.SEMP().Config().QueueApi.CreateMsgVpnQueue(testcontext.SEMP().ConfigCtx(), sempconfig.MsgVpnQueue{ + QueueName: queueName, + AccessType: "non-exclusive", + IngressEnabled: True, + EgressEnabled: True, + Owner: "default", + }, testcontext.Messaging().VPN, nil) + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Failed to create queue with name "+queueName) + for _, topic := range topics { + _, _, err = testcontext.SEMP().Config().QueueApi.CreateMsgVpnQueueSubscription(testcontext.SEMP().ConfigCtx(), + sempconfig.MsgVpnQueueSubscription{ + SubscriptionTopic: topic, + }, testcontext.Messaging().VPN, queueName, nil) + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Failed to add subscription for topic "+topic) + } +} + +// CreatePartitionedQueue function +func CreatePartitionedQueue(queueName string, partitionCount int32, partitionRebalanceDelay int64, topics ...string) { + _, _, err := testcontext.SEMP().Config().QueueApi.CreateMsgVpnQueue(testcontext.SEMP().ConfigCtx(), sempconfig.MsgVpnQueue{ + QueueName: queueName, + AccessType: "non-exclusive", + Permission: "modify-topic", + IngressEnabled: True, + EgressEnabled: True, + PartitionCount: partitionCount, + PartitionRebalanceDelay: partitionRebalanceDelay, + Owner: "default", + }, testcontext.Messaging().VPN, nil) + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Failed to create queue with name "+queueName) + for _, topic := range topics { + _, _, err = testcontext.SEMP().Config().QueueApi.CreateMsgVpnQueueSubscription(testcontext.SEMP().ConfigCtx(), + sempconfig.MsgVpnQueueSubscription{ + SubscriptionTopic: topic, + }, testcontext.Messaging().VPN, queueName, nil) + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Failed to add subscription for topic "+topic) + } +} + +// CreateQueueSubscription function +func CreateQueueSubscription(queueName string, topic string) { + _, _, err := testcontext.SEMP().Config().QueueApi.CreateMsgVpnQueueSubscription(testcontext.SEMP().ConfigCtx(), + sempconfig.MsgVpnQueueSubscription{ + SubscriptionTopic: topic, + }, testcontext.Messaging().VPN, queueName, nil) + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Failed to add subscription for topic "+topic) +} + +// DeleteQueue function +func DeleteQueue(queueName string) { + _, _, err := testcontext.SEMP().Config().QueueApi.DeleteMsgVpnQueue(testcontext.SEMP().ConfigCtx(), + testcontext.Messaging().VPN, queueName) + ExpectWithOffset(1, err).ToNot(HaveOccurred(), "Failed to delete queue with name "+queueName) +} + +// GetQueueSubscriptions function +func GetQueueSubscriptions(queueName string) []string { + response, _, err := testcontext.SEMP().Monitor().QueueApi.GetMsgVpnQueueSubscriptions( + testcontext.SEMP().MonitorCtx(), + testcontext.Messaging().VPN, + queueName, + nil, + ) + Expect(err).ToNot(HaveOccurred()) + results := make([]string, len(response.Data)) + for i, mvqs := range response.Data { + results[i] = mvqs.SubscriptionTopic + } + return results +} + +// GetQueue function +func GetQueue(queueName string) *monitor.MsgVpnQueue { + response, _, err := testcontext.SEMP().Monitor().QueueApi.GetMsgVpnQueue( + testcontext.SEMP().MonitorCtx(), + testcontext.Messaging().VPN, + queueName, + nil, + ) + Expect(err).ToNot(HaveOccurred()) + return response.Data +} + +// GetQueueMessages function +func GetQueueMessages(queueName string) []monitor.MsgVpnQueueMsg { + response, _, err := testcontext.SEMP().Monitor().QueueApi.GetMsgVpnQueueMsgs( + testcontext.SEMP().MonitorCtx(), + testcontext.Messaging().VPN, + queueName, + nil, + ) + Expect(err).ToNot(HaveOccurred()) + return response.Data +} diff --git a/test/helpers/semp_helpers.go b/test/helpers/semp_helpers.go new file mode 100644 index 0000000..7e9dff2 --- /dev/null +++ b/test/helpers/semp_helpers.go @@ -0,0 +1,223 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package helpers + +import ( + "time" + + "solace.dev/go/messaging-trace/opentelemetry/test/sempclient/config" + "solace.dev/go/messaging-trace/opentelemetry/test/testcontext" +) + +// Our generated SEMPv2 client has **bool as the datatype for booleans to be able to differentiate between "missing" and "false" + +// True defined +var True = boolPointer(true) + +// False defined +var False = boolPointer(false) + +func boolPointer(b bool) **bool { + bp := &b + return &bp +} + +// AddSubscriptionTopicException function +func AddSubscriptionTopicException(topicString string) { + testcontext.SEMP().Config().AclProfileApi.CreateMsgVpnAclProfileSubscribeTopicException( + testcontext.SEMP().ConfigCtx(), + config.MsgVpnAclProfileSubscribeTopicException{ + MsgVpnName: testcontext.Messaging().VPN, + AclProfileName: testcontext.Messaging().ACLProfile, + SubscribeTopicException: topicString, + SubscribeTopicExceptionSyntax: "smf", + }, + testcontext.Messaging().VPN, + testcontext.Messaging().ACLProfile, + nil, + ) +} + +// RemoveSubscriptionTopicException function +func RemoveSubscriptionTopicException(topicString string) { + testcontext.SEMP().Config().AclProfileApi.DeleteMsgVpnAclProfileSubscribeTopicException( + testcontext.SEMP().ConfigCtx(), + testcontext.Messaging().VPN, + testcontext.Messaging().ACLProfile, + "smf", + topicString, + ) +} + +// AddSharedSubscriptionTopicException function +func AddSharedSubscriptionTopicException(topicString string) { + testcontext.SEMP().Config().AclProfileApi.CreateMsgVpnAclProfileSubscribeShareNameException( + testcontext.SEMP().ConfigCtx(), + config.MsgVpnAclProfileSubscribeShareNameException{ + MsgVpnName: testcontext.Messaging().VPN, + AclProfileName: testcontext.Messaging().ACLProfile, + SubscribeShareNameException: topicString, + SubscribeShareNameExceptionSyntax: "smf", + }, + testcontext.Messaging().VPN, + testcontext.Messaging().ACLProfile, + nil, + ) +} + +// RemoveSharedSubscriptionTopicException function +func RemoveSharedSubscriptionTopicException(topicString string) { + testcontext.SEMP().Config().AclProfileApi.DeleteMsgVpnAclProfileSubscribeShareNameException( + testcontext.SEMP().ConfigCtx(), + testcontext.Messaging().VPN, + testcontext.Messaging().ACLProfile, + "smf", + topicString, + ) +} + +// AddPublishTopicException function +func AddPublishTopicException(topicString string) { + testcontext.SEMP().Config().AclProfileApi.CreateMsgVpnAclProfilePublishTopicException( + testcontext.SEMP().ConfigCtx(), + config.MsgVpnAclProfilePublishTopicException{ + MsgVpnName: testcontext.Messaging().VPN, + AclProfileName: testcontext.Messaging().ACLProfile, + PublishTopicException: topicString, + PublishTopicExceptionSyntax: "smf", + }, + testcontext.Messaging().VPN, + testcontext.Messaging().ACLProfile, + nil, + ) +} + +// RemovePublishTopicException function +func RemovePublishTopicException(topicString string) { + testcontext.SEMP().Config().AclProfileApi.DeleteMsgVpnAclProfilePublishTopicException( + testcontext.SEMP().ConfigCtx(), + testcontext.Messaging().VPN, + testcontext.Messaging().ACLProfile, + "smf", + topicString, + ) +} + +// HasDomainCertAuthority function +func HasDomainCertAuthority(certAuthName string) (bool, error) { + var found bool + var err error + var certAuthResp config.DomainCertAuthoritiesResponse + // determine if DomainCertAuhtority exists + certAuthResp, _, err = testcontext.SEMP().Config().DomainCertAuthorityApi.GetDomainCertAuthorities( + testcontext.SEMP().ConfigCtx(), + nil, + ) + if err != nil { + return false, err + } + if domainCertAuths := certAuthResp.Data; domainCertAuths != nil { + for _, domainCertAuth := range domainCertAuths { + if domainCertAuth.CertAuthorityName == certAuthName { + found = true + break + } + } + return found, err + } + return false, err +} + +// EnsureCreateDomainCertAuthority function +func EnsureCreateDomainCertAuthority(certAuthName string, certContent string) error { + var err error + var found bool + found, err = HasDomainCertAuthority(certAuthName) + if err != nil { + return err + } + // repeat the create http request until the broker has the certificate authority + for !found { + _, _, err = testcontext.SEMP().Config().DomainCertAuthorityApi.CreateDomainCertAuthority( + testcontext.SEMP().ConfigCtx(), config.DomainCertAuthority{ + CertAuthorityName: certAuthName, + CertContent: certContent, + }, nil) + if err != nil { + return err + } + // wait for base semp service to reload + err = testcontext.WaitForSEMPReachable() + if err != nil { + return err + } + // ensure domain certification authority exists on the broker + // wait up to 30 secs after the service is back is overkill however to have an exit condition to prevent hung tests + for i := 0; i < 30; i++ { + found, err = HasDomainCertAuthority(certAuthName) + + if err != nil { + // the broker can sometimes fail to have semp up after cert auth change + time.Sleep(1 * time.Second) + } else { + break + } + } + if err != nil { + return err + } + } + return nil +} + +// EnsureDeleteCertAuthrity function +func EnsureDeleteDomainCertAuthority(certAuthName string) error { + var found bool + var err error + found, err = HasDomainCertAuthority(certAuthName) + if err != nil { + return err + } + for found { + _, _, err = testcontext.SEMP().Config().DomainCertAuthorityApi.DeleteDomainCertAuthority( + testcontext.SEMP().ConfigCtx(), + certAuthName, + ) + if err != nil { + return err + } + err = testcontext.WaitForSEMPReachable() + if err != nil { + return err + } + // ensure domain certification authority does not exist on the broker + // wait up to 30 secs after the service is back is overkill however to have an exit condition to prevent hung tests + for i := 0; i < 30; i++ { + found, err = HasDomainCertAuthority(certAuthName) + if err != nil { + // the broker can sometimes fail to have semp up after cert auth change + time.Sleep(1 * time.Second) + } else { + break + } + } + if err != nil { + return err + } + } + return nil +} diff --git a/test/helpers/toxic_helpers.go b/test/helpers/toxic_helpers.go new file mode 100644 index 0000000..3fe5cb9 --- /dev/null +++ b/test/helpers/toxic_helpers.go @@ -0,0 +1,51 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package helpers + +import ( + "fmt" + + "solace.dev/go/messaging-trace/opentelemetry/test/testcontext" + "solace.dev/go/messaging/pkg/solace/config" + + //lint:ignore ST1001 dot import is fine for tests + . "github.com/onsi/ginkgo/v2" +) + +// ToxicConfiguration function +func ToxicConfiguration() config.ServicePropertyMap { + if testcontext.Toxi() == testcontext.ToxiProxy(nil) { + return nil + } + connectionDetails := testcontext.Messaging() + toxiProxyConfig := testcontext.Toxi().Config() + url := fmt.Sprintf("%s:%d", toxiProxyConfig.Host, toxiProxyConfig.PlaintextPort) + config := config.ServicePropertyMap{ + config.ServicePropertyVPNName: connectionDetails.VPN, + config.TransportLayerPropertyHost: url, + config.AuthenticationPropertySchemeBasicUserName: connectionDetails.Authentication.BasicUsername, + config.AuthenticationPropertySchemeBasicPassword: connectionDetails.Authentication.BasicPassword, + } + return config +} + +// CheckToxiProxy function +func CheckToxiProxy() { + if testcontext.Toxi() == nil { + Skip("No toxiproxy found") + } +} diff --git a/test/main_test.go b/test/main_test.go new file mode 100644 index 0000000..3e1f1b7 --- /dev/null +++ b/test/main_test.go @@ -0,0 +1,96 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package test + +import ( + "bytes" + "runtime" + "sync" + "testing" + + "solace.dev/go/messaging-trace/opentelemetry/test/testcontext" + "solace.dev/go/messaging/pkg/solace/logging" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +// Bootstrap for Ginkgo tests +func TestPubSubPlus(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "Main Suite") +} + +// Allocate the logger buffer +var loggerBuffer *threadSafeBuffer = &threadSafeBuffer{buffer: &bytes.Buffer{}} + +// This flag can be set to true to always attach the logs to the test results. +// This could eventually be factored out into a build flag too if we want to +// have the property parameterized on run. +const alwaysAttachLogs = false + +// Add a reporter after each individual test setting the logs data to the contents of the buffer +var _ = ReportAfterEach(func(sr SpecReport) { + // We should only attach the debug logs when we fail, otherwise discard them + // This is because the reports are ridiculously large when attached to every test + if alwaysAttachLogs || sr.Failed() { + AddReportEntry("logs", ReportEntryVisibilityFailureOrVerbose, loggerBuffer.String()) + } + loggerBuffer.Reset() +}) + +var _ = BeforeSuite(func() { + // Setup logging + setLogLevel() + logging.SetLogOutput(loggerBuffer) + // Setup test context + err := testcontext.Setup() + Expect(err).ToNot(HaveOccurred()) +}) + +var _ = AfterSuite(func() { + // Teardown + err := testcontext.Teardown() + Expect(err).ToNot(HaveOccurred()) + runtime.GC() + runtime.GC() + runtime.GC() +}) + +// A quick and dirty threadsafe writer implementation that can be used for log captures on the suite +type threadSafeBuffer struct { + sync.Mutex + buffer *bytes.Buffer +} + +func (buffer *threadSafeBuffer) Write(p []byte) (n int, err error) { + buffer.Lock() + defer buffer.Unlock() + return buffer.buffer.Write(p) +} + +func (buffer *threadSafeBuffer) String() string { + buffer.Lock() + defer buffer.Unlock() + return buffer.buffer.String() +} + +func (buffer *threadSafeBuffer) Reset() { + buffer.Lock() + defer buffer.Unlock() + buffer.buffer.Reset() +} diff --git a/test/message_test.go b/test/message_test.go new file mode 100644 index 0000000..02faa9f --- /dev/null +++ b/test/message_test.go @@ -0,0 +1,697 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package test + +import ( + "encoding/hex" + "time" + + "solace.dev/go/messaging" + sol_propagation "solace.dev/go/messaging-trace/opentelemetry" + "solace.dev/go/messaging-trace/opentelemetry/logging" + "solace.dev/go/messaging-trace/opentelemetry/test/helpers" + "solace.dev/go/messaging/pkg/solace" + "solace.dev/go/messaging/pkg/solace/config" + "solace.dev/go/messaging/pkg/solace/message" + "solace.dev/go/messaging/pkg/solace/resource" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +// MessageWithTracingSupport represents a message received by a consumer. +type MessageWithTracingSupport interface { + + // GetCreationTraceContext will return the trace context metadata used for distributed message tracing message + GetCreationTraceContext() (traceID [16]byte, spanID [8]byte, sampled bool, traceState string, ok bool) + + // SetTraceContext will set creation trace context metadata used for distributed message tracing. + SetCreationTraceContext(traceID [16]byte, spanID [8]byte, sampled bool, traceState *string) (ok bool) + + // GetTransportTraceContext will return the trace context metadata used for distributed message tracing + GetTransportTraceContext() (traceID [16]byte, spanID [8]byte, sampled bool, traceState string, ok bool) + + // SetTraceContext will set transport trace context metadata used for distributed message tracing. + SetTransportTraceContext(traceID [16]byte, spanID [8]byte, sampled bool, traceState *string) (ok bool) + + // GetBaggage will return the baggage string associated with the message + GetBaggage() (baggage string, ok bool) + + // SetBaggage will set the baggage string associated with the message + SetBaggage(baggage string) error +} + +var _ = Describe("Local MessageBuilder Tests", func() { + var messageBuilder solace.OutboundMessageBuilder + + // set the log level to Debug + logging.SetLogLevel(logging.LogLevelDebug) + + // We are intentionally doing this outside of the BeforeEach block in order to not allocate hundreds of messaging services + // as they are expensive to create and can cause issues with number of open files on some test systems + messagingService, _ := messaging.NewMessagingServiceBuilder().FromConfigurationProvider(config.ServicePropertyMap{ + config.AuthenticationPropertySchemeBasicUserName: "default", + config.AuthenticationPropertySchemeBasicPassword: "default", + config.TransportLayerPropertyHost: "localhost", + config.ServicePropertyVPNName: "default", + }).Build() + + BeforeEach(func() { + messageBuilder = messagingService.MessageBuilder() + }) + + Describe("OutboundMessage Carrier setters and getters", func() { + + It("does not panic when calling Set(TraceParent) on carrier message", func() { + msg, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + var carrier = sol_propagation.NewOutboundMessageCarrier(msg) + traceParent1 := "00-79f90916c9a3dad1eb4b328e00469e45-3b364712c4e1f17f-00" // creation context + carrier.Set(sol_propagation.TracingPropertyName.TraceParent, traceParent1) + Expect(carrier.Get(sol_propagation.TracingPropertyName.TraceParent)).ToNot(BeEmpty()) + }) + + It("does not panic when calling Set(TraceState) on carrier message", func() { + msg, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + var carrier = sol_propagation.NewOutboundMessageCarrier(msg) + traceState1 := "trace1=value1;trace2=value2;trace322=ewrHB554CGF" // creation trace state + carrier.Set(sol_propagation.TracingPropertyName.TraceState, traceState1) + Expect(carrier.Get(sol_propagation.TracingPropertyName.TraceState)).ToNot(BeEmpty()) + }) + + It("does not panic when calling Set(Baggage) on carrier message", func() { + msg, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + var carrier = sol_propagation.NewOutboundMessageCarrier(msg) + baggageStr := "newbaggage=Oseme,example=yammer,foo=bar" + carrier.Set(sol_propagation.TracingPropertyName.Baggage, baggageStr) + Expect(carrier.Get(sol_propagation.TracingPropertyName.Baggage)).ToNot(BeEmpty()) + }) + + It("does not panic when calling Get(TraceParent) on carrier message", func() { + msg, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + var carrier = sol_propagation.NewOutboundMessageCarrier(msg) + Expect(func() { carrier.Get(sol_propagation.TracingPropertyName.TraceParent) }).ToNot(Panic()) + }) + + It("does not panic when calling Get(TraceState) on carrier message", func() { + msg, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + var carrier = sol_propagation.NewOutboundMessageCarrier(msg) + Expect(func() { carrier.Get(sol_propagation.TracingPropertyName.TraceState) }).ToNot(Panic()) + }) + + It("does not panic when calling Get(Baggage) on carrier message", func() { + msg, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + var carrier = sol_propagation.NewOutboundMessageCarrier(msg) + Expect(func() { carrier.Get(sol_propagation.TracingPropertyName.Baggage) }).ToNot(Panic()) + }) + + }) + +}) + +var _ = Describe("Remote Message Tests", func() { + + const topic = "remote-message-tests" + + var messagingService solace.MessagingService + var messageBuilder solace.OutboundMessageBuilder + + // set the log level to Debug + logging.SetLogLevel(logging.LogLevelDebug) + + BeforeEach(func() { + builder := messaging.NewMessagingServiceBuilder(). + FromConfigurationProvider(helpers.DefaultConfiguration()). + FromConfigurationProvider(config.ServicePropertyMap{ + config.ServicePropertyGenerateSendTimestamps: true, + config.ServicePropertyGenerateReceiveTimestamps: true, + config.ServicePropertyGenerateSenderID: true, + }) + + var err error + messagingService, err = builder.Build() + Expect(err).ToNot(HaveOccurred()) + messageBuilder = messagingService.MessageBuilder() + }) + + Describe("Received InboundMessage Carrier setters and getters", func() { + var publisher solace.DirectMessagePublisher + var receiver solace.DirectMessageReceiver + var inboundMessageChannel chan message.InboundMessage + + BeforeEach(func() { + var err error + err = messagingService.Connect() + Expect(err).ToNot(HaveOccurred()) + + publisher, err = messagingService.CreateDirectMessagePublisherBuilder().Build() + Expect(err).ToNot(HaveOccurred()) + receiver, err = messagingService.CreateDirectMessageReceiverBuilder().WithSubscriptions(resource.TopicSubscriptionOf(topic)).Build() + Expect(err).ToNot(HaveOccurred()) + + err = publisher.Start() + Expect(err).ToNot(HaveOccurred()) + + inboundMessageChannel = make(chan message.InboundMessage) + receiver.ReceiveAsync(func(inboundMessage message.InboundMessage) { + inboundMessageChannel <- inboundMessage + }) + + err = receiver.Start() + Expect(err).ToNot(HaveOccurred()) + }) + + AfterEach(func() { + var err error + err = publisher.Terminate(10 * time.Second) + Expect(err).ToNot(HaveOccurred()) + err = receiver.Terminate(10 * time.Second) + Expect(err).ToNot(HaveOccurred()) + + err = messagingService.Disconnect() + Expect(err).ToNot(HaveOccurred()) + }) + + It("does not panic when calling Set(TraceParent) on carrier inbound message", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case msg := <-inboundMessageChannel: + var carrier = sol_propagation.NewInboundMessageCarrier(msg) + traceParent1 := "00-79f90916c9a3dad1eb4b328e00469e45-3b364712c4e1f17f-01" // creation context + carrier.Set(sol_propagation.TracingPropertyName.TraceParent, traceParent1) + Expect(carrier.Get(sol_propagation.TracingPropertyName.TraceParent)).ToNot(BeEmpty()) + + msgWithTracingSupport := msg.(MessageWithTracingSupport) + traceID, spanID, sampled, traceState, ok := msgWithTracingSupport.GetCreationTraceContext() + Expect(ok).To(BeTrue()) + Expect(traceID).ToNot(BeEmpty()) // not be empty + Expect(spanID).ToNot(BeEmpty()) // not be empty + Expect(sampled).To(BeTrue()) + Expect(traceState).To(Equal("")) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("does not panic when calling Set(TraceState) on carrier inbound message", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case msg := <-inboundMessageChannel: + var carrier = sol_propagation.NewInboundMessageCarrier(msg) + traceParent1 := "00-79f90916c9a3dad1eb4b328e00469e45-3b364712c4e1f17f-01" // creation context + carrier.Set(sol_propagation.TracingPropertyName.TraceParent, traceParent1) + + traceState1 := "trace1=value1;trace2=value2;trace322=ewrHB554CGF" // creation trace state + carrier.Set(sol_propagation.TracingPropertyName.TraceState, traceState1) + Expect(carrier.Get(sol_propagation.TracingPropertyName.TraceState)).ToNot(BeEmpty()) + + msgWithTracingSupport := msg.(MessageWithTracingSupport) + traceID, spanID, sampled, traceState, ok := msgWithTracingSupport.GetCreationTraceContext() + Expect(ok).To(BeTrue()) + Expect(traceID).ToNot(BeEmpty()) // not be empty + Expect(spanID).ToNot(BeEmpty()) // not be empty + Expect(sampled).To(BeTrue()) + Expect(traceState).To(Equal(traceState1)) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("does not panic when calling Set(Baggage) on carrier inbound message", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case msg := <-inboundMessageChannel: + var carrier = sol_propagation.NewInboundMessageCarrier(msg) + baggageStr := "newbaggage=Oseme,example=yammer,foo=bar" + carrier.Set(sol_propagation.TracingPropertyName.Baggage, baggageStr) + Expect(carrier.Get(sol_propagation.TracingPropertyName.Baggage)).ToNot(BeEmpty()) + + msgWithTracingSupport := msg.(MessageWithTracingSupport) + baggage, ok := msgWithTracingSupport.GetBaggage() + Expect(ok).To(BeTrue()) + Expect(baggage).To(Equal(baggageStr)) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("does not panic when calling Get(TraceParent) on carrier inbound message", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case msg := <-inboundMessageChannel: + var carrier = sol_propagation.NewInboundMessageCarrier(msg) + Expect(func() { carrier.Get(sol_propagation.TracingPropertyName.TraceParent) }).ToNot(Panic()) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("does not panic when calling Get(TraceState) on carrier inbound message", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case msg := <-inboundMessageChannel: + var carrier = sol_propagation.NewInboundMessageCarrier(msg) + Expect(func() { carrier.Get(sol_propagation.TracingPropertyName.TraceState) }).ToNot(Panic()) + + msgWithTracingSupport := msg.(MessageWithTracingSupport) + _, _, _, traceState, _ := msgWithTracingSupport.GetCreationTraceContext() + Expect(traceState).To(BeEmpty()) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("does not panic when calling Get(Baggage) on carrier inbound message", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case msg := <-inboundMessageChannel: + var carrier = sol_propagation.NewInboundMessageCarrier(msg) + Expect(func() { carrier.Get(sol_propagation.TracingPropertyName.Baggage) }).ToNot(Panic()) + + msgWithTracingSupport := msg.(MessageWithTracingSupport) + baggage, _ := msgWithTracingSupport.GetBaggage() + Expect(baggage).To(Equal("")) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + }) + + Describe("Published and received message with Distributed Tracing support", func() { + var publisher solace.DirectMessagePublisher + var receiver solace.DirectMessageReceiver + var inboundMessageChannel chan MessageWithTracingSupport + + BeforeEach(func() { + var err error + err = messagingService.Connect() + Expect(err).ToNot(HaveOccurred()) + + publisher, err = messagingService.CreateDirectMessagePublisherBuilder().Build() + Expect(err).ToNot(HaveOccurred()) + receiver, err = messagingService.CreateDirectMessageReceiverBuilder().WithSubscriptions(resource.TopicSubscriptionOf(topic)).Build() + Expect(err).ToNot(HaveOccurred()) + + err = publisher.Start() + Expect(err).ToNot(HaveOccurred()) + + inboundMessageChannel = make(chan MessageWithTracingSupport) + receiver.ReceiveAsync(func(inboundMessage message.InboundMessage) { + inboundMessageChannel <- inboundMessage.(MessageWithTracingSupport) + }) + + err = receiver.Start() + Expect(err).ToNot(HaveOccurred()) + }) + + AfterEach(func() { + var err error + err = publisher.Terminate(10 * time.Second) + Expect(err).ToNot(HaveOccurred()) + err = receiver.Terminate(10 * time.Second) + Expect(err).ToNot(HaveOccurred()) + + err = messagingService.Disconnect() + Expect(err).ToNot(HaveOccurred()) + }) + + It("should be able to publish/receive a message with no creation context", func() { + message, err := messageBuilder.Build() // no creation context is set on message + Expect(err).ToNot(HaveOccurred()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case message := <-inboundMessageChannel: + traceID, spanID, sampled, traceState, ok := message.GetCreationTraceContext() + Expect(ok).To(BeFalse()) + Expect(traceID).To(Equal([16]byte{})) // empty + Expect(spanID).To(Equal([8]byte{})) // empty + Expect(sampled).To(BeFalse()) + Expect(traceState).To(Equal("")) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("should be able to publish/receive a message with a valid creation context", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + // cast the message to the extended interface that has message tracing support + messageWithDT := message.(MessageWithTracingSupport) + + // set creation context on message + creationCtxTraceID, _ := hex.DecodeString("79f90916c9a3dad1eb4b328e00469e45") + creationCtxSpanID, _ := hex.DecodeString("3b364712c4e1f17f") + sampledValue := true + traceStateValue := "sometrace=Example" + + var creationCtxTraceID16 [16]byte + var creationCtxSpanID8 [8]byte + copy(creationCtxTraceID16[:], creationCtxTraceID) + copy(creationCtxSpanID8[:], creationCtxSpanID) + ok := messageWithDT.SetCreationTraceContext(creationCtxTraceID16, creationCtxSpanID8, sampledValue, &traceStateValue) + Expect(ok).To(BeTrue()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case message := <-inboundMessageChannel: + traceID, spanID, sampled, traceState, ok := message.GetCreationTraceContext() + Expect(ok).To(BeTrue()) + Expect(traceID).To(Equal(creationCtxTraceID16)) // should be equal + Expect(spanID).To(Equal(creationCtxSpanID8)) // should be equal + Expect(sampled).To(Equal(sampledValue)) + Expect(traceState).To(Equal(traceStateValue)) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("should be able to publish/receive a message with a valid creation context without trace state", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + // cast the message to the extended interface that has message tracing support + messageWithDT := message.(MessageWithTracingSupport) + + // set creation context on message + creationCtxTraceID, _ := hex.DecodeString("79f90916c9a3dad1eb4b328e00469e45") + creationCtxSpanID, _ := hex.DecodeString("3b364712c4e1f17f") + sampledValue := true + + var creationCtxTraceID16 [16]byte + var creationCtxSpanID8 [8]byte + copy(creationCtxTraceID16[:], creationCtxTraceID) + copy(creationCtxSpanID8[:], creationCtxSpanID) + ok := messageWithDT.SetCreationTraceContext(creationCtxTraceID16, creationCtxSpanID8, sampledValue, nil) // no trace state + Expect(ok).To(BeTrue()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case message := <-inboundMessageChannel: + traceID, spanID, sampled, traceState, ok := message.GetCreationTraceContext() + Expect(ok).To(BeTrue()) + Expect(traceID).To(Equal(creationCtxTraceID16)) // should be equal + Expect(spanID).To(Equal(creationCtxSpanID8)) // should be equal + Expect(sampled).To(Equal(sampledValue)) + Expect(traceState).To(Equal("")) // should be empty + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("should be able to publish/receive a message with no tranport context", func() { + message, err := messageBuilder.Build() // no creation context is set on message + Expect(err).ToNot(HaveOccurred()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case message := <-inboundMessageChannel: + traceID, spanID, sampled, traceState, ok := message.GetTransportTraceContext() + Expect(ok).To(BeFalse()) + Expect(traceID).To(Equal([16]byte{})) // empty + Expect(spanID).To(Equal([8]byte{})) // empty + Expect(sampled).To(BeFalse()) + Expect(traceState).To(Equal("")) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("should be able to publish/receive a message with a valid transport context", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + // cast the message to the extended interface that has message tracing support + messageWithDT := message.(MessageWithTracingSupport) + + // set transport context on message + transportCtxTraceID, _ := hex.DecodeString("55d30916c9a3dad1eb4b328e00469e45") + transportCtxSpanID, _ := hex.DecodeString("a7164712c4e1f17f") + + sampledValue := true + traceStateValue := "trace=Sample" + + var transportCtxTraceID16 [16]byte + var transportCtxSpanID8 [8]byte + copy(transportCtxTraceID16[:], transportCtxTraceID) + copy(transportCtxSpanID8[:], transportCtxSpanID) + ok := messageWithDT.SetTransportTraceContext(transportCtxTraceID16, transportCtxSpanID8, sampledValue, &traceStateValue) + Expect(ok).To(BeTrue()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case message := <-inboundMessageChannel: + traceID, spanID, sampled, traceState, ok := message.GetTransportTraceContext() + Expect(ok).To(BeTrue()) + Expect(traceID).To(Equal(transportCtxTraceID16)) // should be equal + Expect(spanID).To(Equal(transportCtxSpanID8)) // should be equal + Expect(sampled).To(BeTrue()) + Expect(traceState).To(Equal(traceStateValue)) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("should be able to publish/receive a message with a valid transport context without trace state", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + // cast the message to the extended interface that has message tracing support + messageWithDT := message.(MessageWithTracingSupport) + + // set transport context on message + transportCtxTraceID, _ := hex.DecodeString("55d30916c9a3dad1eb4b328e00469e45") + transportCtxSpanID, _ := hex.DecodeString("a7164712c4e1f17f") + sampledValue := true + + var transportCtxTraceID16 [16]byte + var transportCtxSpanID8 [8]byte + copy(transportCtxTraceID16[:], transportCtxTraceID) + copy(transportCtxSpanID8[:], transportCtxSpanID) + ok := messageWithDT.SetTransportTraceContext(transportCtxTraceID16, transportCtxSpanID8, sampledValue, nil) + Expect(ok).To(BeTrue()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case message := <-inboundMessageChannel: + traceID, spanID, sampled, traceState, ok := message.GetTransportTraceContext() + Expect(ok).To(BeTrue()) + Expect(traceID).To(Equal(transportCtxTraceID16)) // should be equal + Expect(spanID).To(Equal(transportCtxSpanID8)) // should be equal + Expect(sampled).To(BeTrue()) + Expect(traceState).To(Equal("")) // should be empty + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("should be able to publish/receive a message with a valid creation context and no transport context", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + // cast the message to the extended interface that has message tracing support + messageWithDT := message.(MessageWithTracingSupport) + + // set creation context on message + creationCtxTraceID, _ := hex.DecodeString("79f90916c9a3dad1eb4b328e00469e45") + creationCtxSpanID, _ := hex.DecodeString("3b364712c4e1f17f") + sampledValue := true + traceStateValue := "sometrace=Example" + + var creationCtxTraceID16 [16]byte + var creationCtxSpanID8 [8]byte + copy(creationCtxTraceID16[:], creationCtxTraceID) + copy(creationCtxSpanID8[:], creationCtxSpanID) + ok := messageWithDT.SetCreationTraceContext(creationCtxTraceID16, creationCtxSpanID8, sampledValue, &traceStateValue) + Expect(ok).To(BeTrue()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case message := <-inboundMessageChannel: + creationTraceID, creationSpanID, creationSampled, creationTraceState, creationOk := message.GetCreationTraceContext() + transportTraceID, transportSpanID, transportSampled, transportTraceState, transportOk := message.GetTransportTraceContext() + + Expect(creationOk).To(BeTrue()) + Expect(creationTraceID).To(Equal(creationCtxTraceID16)) // should be equal + Expect(creationSpanID).To(Equal(creationCtxSpanID8)) // should be equal + Expect(creationSampled).To(BeTrue()) + Expect(creationTraceState).To(Equal(traceStateValue)) + + Expect(transportOk).To(BeFalse()) + Expect(transportTraceID).To(Equal([16]byte{})) // empty + Expect(transportSpanID).To(Equal([8]byte{})) // empty + Expect(transportSampled).To(BeFalse()) + Expect(transportTraceState).To(Equal("")) + + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("should be able to publish/receive a message with different creation context and transport context", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + // cast the message to the extended interface that has message tracing support + messageWithDT := message.(MessageWithTracingSupport) + + // set creation context on message + creationCtxTraceID, _ := hex.DecodeString("79f90916c9a3dad1eb4b328e00469e45") + creationCtxSpanID, _ := hex.DecodeString("3b364712c4e1f17f") + creationCtxTraceState := "sometrace1=example1" + + // set transport context on message + transportCtxTraceID, _ := hex.DecodeString("55d30916c9a3dad1eb4b328e00469e45") + transportCtxSpanID, _ := hex.DecodeString("a7164712c4e1f17f") + transportCtxTraceState := "sometrace2=example2" + + var creationCtxTraceID16, transportCtxTraceID16 [16]byte + var creationCtxSpanID8, transportCtxSpanID8 [8]byte + copy(creationCtxTraceID16[:], creationCtxTraceID) + copy(creationCtxSpanID8[:], creationCtxSpanID) + setCreationCtxOk := messageWithDT.SetCreationTraceContext(creationCtxTraceID16, creationCtxSpanID8, true, &creationCtxTraceState) + Expect(setCreationCtxOk).To(BeTrue()) + + copy(transportCtxTraceID16[:], transportCtxTraceID) + copy(transportCtxSpanID8[:], transportCtxSpanID) + setTransportCtxOk := messageWithDT.SetTransportTraceContext(transportCtxTraceID16, transportCtxSpanID8, true, &transportCtxTraceState) + Expect(setTransportCtxOk).To(BeTrue()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case message := <-inboundMessageChannel: + creationTraceID, creationSpanID, creationSampled, creationTraceState, creationOk := message.GetCreationTraceContext() + transportTraceID, transportSpanID, transportSampled, transportTraceState, transportOk := message.GetTransportTraceContext() + + Expect(creationOk).To(BeTrue()) + Expect(creationTraceID).To(Equal(creationCtxTraceID16)) // should be equal + Expect(creationSpanID).To(Equal(creationCtxSpanID8)) // should be equal + Expect(creationSampled).To(BeTrue()) + Expect(creationTraceState).To(Equal(creationCtxTraceState)) + + Expect(transportOk).To(BeTrue()) + Expect(transportTraceID).ToNot(Equal([16]byte{})) // not empty + Expect(transportTraceID).To(Equal(transportCtxTraceID16)) // should be equal + + Expect(transportSpanID).ToNot(Equal([8]byte{})) // not empty + Expect(transportSpanID).To(Equal(transportCtxSpanID8)) // should be equal + + Expect(transportSampled).To(BeTrue()) + Expect(transportTraceState).To(Equal(transportCtxTraceState)) + + Expect(creationTraceID).ToNot(Equal(transportTraceID)) // should be not be equal + Expect(creationSpanID).ToNot(Equal(transportSpanID)) // should be not be equal + Expect(creationTraceState).ToNot(Equal(transportTraceState)) // should be not be equal + + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("should be able to publish/receive a message with no baggage", func() { + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + // cast the message to the extended interface that has message tracing support + messageWithDT := message.(MessageWithTracingSupport) + + baggageErr := messageWithDT.SetBaggage("") // set empty baggage + Expect(baggageErr).To(BeNil()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case message := <-inboundMessageChannel: + baggage, ok := message.GetBaggage() + Expect(ok).To(BeTrue()) + Expect(baggage).To(Equal("")) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + It("should be able to publish/receive a message with a valid baggage", func() { + baggage := "baggage1=baggage1" + message, err := messageBuilder.Build() + Expect(err).ToNot(HaveOccurred()) + + // cast the message to the extended interface that has message tracing support + messageWithDT := message.(MessageWithTracingSupport) + + baggageErr := messageWithDT.SetBaggage(baggage) // set a valid baggage string + Expect(baggageErr).To(BeNil()) + + publisher.Publish(message, resource.TopicOf(topic)) + + select { + case message := <-inboundMessageChannel: + receivedBaggage, ok := message.GetBaggage() + Expect(ok).To(BeTrue()) + Expect(receivedBaggage).To(Equal(baggage)) + case <-time.After(1 * time.Second): + Fail("timed out waiting for message to be delivered") + } + }) + + }) + +}) diff --git a/test/sempclient/Dockerfile b/test/sempclient/Dockerfile new file mode 100644 index 0000000..46cc2e0 --- /dev/null +++ b/test/sempclient/Dockerfile @@ -0,0 +1,28 @@ +# pubsubplus-opentelemetry-go-integration +# +# Copyright 2024 Solace Corporation. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Based on https://github.com/swagger-api/swagger-codegen/blob/3.0.0/modules/swagger-codegen-cli/Dockerfile as general reference +# specifically using https://github.com/swagger-api/swagger-codegen/blob/v3.0.40/modules/swagger-codegen-cli/Dockerfile as reference +# use openjdk:8-jre-alpine as base as multi arch is supported for x86_64 and arm64 +FROM openjdk:8-jre-alpine +#pull codegen jar from maven.org +ARG SWAGGER_VER=3.0.40 +ENV SWAGGER_VERSION=${SWAGGER_VER} +ADD https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/${SWAGGER_VERSION}/swagger-codegen-cli-${SWAGGER_VERSION}.jar /opt/swagger-codegen-cli/swagger-codegen-cli.jar +# use entrypoint and cmd from reference dockerfile +ENTRYPOINT ["java", "-jar", "/opt/swagger-codegen-cli/swagger-codegen-cli.jar"] + +CMD ["help"] diff --git a/test/sempclient/action/go.mod b/test/sempclient/action/go.mod new file mode 100644 index 0000000..b8b31e9 --- /dev/null +++ b/test/sempclient/action/go.mod @@ -0,0 +1,7 @@ +module solace.dev/go/messaging-trace/opentelemetry/test/sempclient/action + +go 1.13 + +require ( + github.com/antihax/optional v1.0.0 +) diff --git a/test/sempclient/action/go.sum b/test/sempclient/action/go.sum new file mode 100644 index 0000000..9846953 --- /dev/null +++ b/test/sempclient/action/go.sum @@ -0,0 +1,369 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/test/sempclient/config/go.mod b/test/sempclient/config/go.mod new file mode 100644 index 0000000..b8b5ba5 --- /dev/null +++ b/test/sempclient/config/go.mod @@ -0,0 +1,7 @@ +module solace.dev/go/messaging-trace/opentelemetry/test/sempclient/config + +go 1.13 + +require ( + github.com/antihax/optional v1.0.0 +) diff --git a/test/sempclient/config/go.sum b/test/sempclient/config/go.sum new file mode 100644 index 0000000..9846953 --- /dev/null +++ b/test/sempclient/config/go.sum @@ -0,0 +1,369 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/test/sempclient/makeclean b/test/sempclient/makeclean new file mode 100755 index 0000000..73e6007 --- /dev/null +++ b/test/sempclient/makeclean @@ -0,0 +1,49 @@ +#! /bin/sh + +# pubsubplus-opentelemetry-go-integration +# +# Copyright 2024 Solace Corporation. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +# generates a command equivalent to: +# rm -rf /output/action/api /output/action/docs /output/action/.swagger-codegen* /output/action/*.go /output/action/*.sh /output/action/*.md /output/action/*.yml /output/action/.gitignore /output/monitor/api /output/monitor/docs /output/monitor/.swagger-codegen* /output/monitor/*.go /output/monitor/*.sh /output/monitor/*.md /output/monitor/*.yml /output/monitor/.gitignore /output/config/api /output/config/docs /output/action/.swagger-codegen* /output/config/*.go /output/config/*.sh /output/config/*.md /output/config/*.yml /output/config/.gitignore +# This command can be run from the host or from the codegen container +# The files to delete can change over time + +BASEDIR=$(cd $(dirname $0) && pwd) + +function cleanup_files() { + echo "from `pwd` cleanup $*" + rm -rf $* +} +function cleanup() { + echo "args $*" + echo "script dir $BASEDIR" + echo "Current dir `pwd`" + + local gen_root_dir=${BASEDIR} + local gen_dirs=" action config monitor " + local sub_gen_dirs=".swagger-codegen* docs api" + local gen_files=" *.go *.sh *.md *.yml .gitignore .*.yml" + + for topdir in $gen_dirs ; do + local cur_dir=$gen_root_dir/$topdir + if [[ -e $cur_dir ]]; then + (cd $cur_dir; cleanup_files $sub_gen_dirs ) && (cd $cur_dir; cleanup_files $gen_files ) + fi + done + +} +cleanup $* diff --git a/test/sempclient/monitor/go.mod b/test/sempclient/monitor/go.mod new file mode 100644 index 0000000..0026116 --- /dev/null +++ b/test/sempclient/monitor/go.mod @@ -0,0 +1,7 @@ +module solace.dev/go/messaging-trace/opentelemetry/test/sempclient/monitor + +go 1.13 + +require ( + github.com/antihax/optional v1.0.0 +) diff --git a/test/sempclient/monitor/go.sum b/test/sempclient/monitor/go.sum new file mode 100644 index 0000000..9846953 --- /dev/null +++ b/test/sempclient/monitor/go.sum @@ -0,0 +1,369 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/test/sempclient/semp-client.go b/test/sempclient/semp-client.go new file mode 100644 index 0000000..823d128 --- /dev/null +++ b/test/sempclient/semp-client.go @@ -0,0 +1,27 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package sempclient contains generated SEMPv2 code +package sempclient + +// create docker image based off of swaggerapi/swagger-codegen-cli-v3 +//go:generate docker build -f Dockerfile -t solace-semp-swagger-codegen-cli:3.0.27 --build-arg SWAGGER_VER=3.0.27 $PWD +// clean previously generated semp files if any +//go:generate docker run --rm -v "$PWD:/output" --entrypoint /bin/sh solace-semp-swagger-codegen-cli:3.0.27 -c "/output/makeclean" +// generate new semp client files using umask 0000 to avoid host mahcine modidifcation after generation +//go:generate docker run --rm -v "$PWD/spec:/schema" -v "$PWD:/output" --entrypoint /bin/sh solace-semp-swagger-codegen-cli:3.0.27 -c "umask 0000; java -jar /opt/swagger-codegen-cli/swagger-codegen-cli.jar generate -l go -i /schema/spec_action.json -o /output/action --type-mappings boolean=*bool --additional-properties packageName=action" +//go:generate docker run --rm -v "$PWD/spec:/schema" -v "$PWD:/output" --entrypoint /bin/sh solace-semp-swagger-codegen-cli:3.0.27 -c "umask 0000; java -jar /opt/swagger-codegen-cli/swagger-codegen-cli.jar generate -l go -i /schema/spec_config.json -o /output/config --type-mappings boolean=*bool --additional-properties packageName=config" +//go:generate docker run --rm -v "$PWD/spec:/schema" -v "$PWD:/output" --entrypoint /bin/sh solace-semp-swagger-codegen-cli:3.0.27 -c "umask 0000; java -jar /opt/swagger-codegen-cli/swagger-codegen-cli.jar generate -l go -i /schema/spec_monitor.json -o /output/monitor --type-mappings boolean=*bool --additional-properties packageName=monitor" diff --git a/test/sempclient/spec/spec_action.json b/test/sempclient/spec/spec_action.json new file mode 100644 index 0000000..3188c8b --- /dev/null +++ b/test/sempclient/spec/spec_action.json @@ -0,0 +1,8398 @@ +{ + "basePath": "/SEMP/v2/action", + "consumes": [ + "application/json" + ], + "definitions": { + "About": { + "properties": {}, + "type": "object" + }, + "AboutApi": { + "properties": { + "platform": { + "description": "The platform running the SEMP API.", + "type": "string" + }, + "sempVersion": { + "description": "The version of the SEMP API.", + "type": "string" + } + }, + "type": "object" + }, + "AboutApiLinks": { + "properties": { + "uri": { + "description": "The URI of this API Description object.", + "type": "string" + } + }, + "type": "object" + }, + "AboutApiResponse": { + "properties": { + "data": { + "$ref": "#/definitions/AboutApi" + }, + "links": { + "$ref": "#/definitions/AboutApiLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutLinks": { + "properties": { + "apiUri": { + "description": "The URI of this About's API Description object. Available since 2.11.", + "type": "string" + }, + "uri": { + "description": "The URI of this About object.", + "type": "string" + }, + "userUri": { + "description": "The URI of this About's User object. Available since 2.11.", + "type": "string" + } + }, + "type": "object" + }, + "AboutResponse": { + "properties": { + "data": { + "$ref": "#/definitions/About" + }, + "links": { + "$ref": "#/definitions/AboutLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutUser": { + "properties": { + "globalAccessLevel": { + "description": "The global access level of the User. The allowed values and their meaning are:\n\n
\n\"admin\" - Full administrative access.\n\"none\" - No access.\n\"read-only\" - Read only access.\n\"read-write\" - Read and write access.\n
\n", + "enum": [ + "admin", + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "sessionActive": { + "description": "Indicates whether a session is active for this request. Available since 2.24.", + "type": "boolean" + }, + "sessionCreateTime": { + "description": "The timestamp of when the session was created. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "sessionCurrentTime": { + "description": "The current server timestamp. This is provided as a reference point for the other timestamps provided. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "sessionHardExpiryTime": { + "description": "The hard expiry time for the session. After this time the session will be invalid, regardless of activity. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "sessionId": { + "description": "An identifier for the session to differentiate this session from other sessions for the same user. This value is not guaranteed to be unique between active sessions for different users. Available since 2.21.", + "type": "string" + }, + "sessionIdleExpiryTime": { + "description": "The session idle expiry time. After this time the session will be invalid if there has been no activity. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "username": { + "description": "The username of the User. Available since 2.17.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserLinks": { + "properties": { + "logoutUri": { + "description": "The URI of this User's Logout action. Available since 2.21.", + "type": "string" + }, + "msgVpnsUri": { + "description": "The URI of this User's collection of User Message VPN objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this User object.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserLogout": { + "properties": {}, + "type": "object" + }, + "AboutUserMsgVpn": { + "properties": { + "accessLevel": { + "description": "The Message VPN access level of the User. The allowed values and their meaning are:\n\n
\n\"none\" - No access.\n\"read-only\" - Read only access.\n\"read-write\" - Read and write access.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserMsgVpnLinks": { + "properties": { + "uri": { + "description": "The URI of this User Message VPN object.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserMsgVpnResponse": { + "properties": { + "data": { + "$ref": "#/definitions/AboutUserMsgVpn" + }, + "links": { + "$ref": "#/definitions/AboutUserMsgVpnLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutUserMsgVpnsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/AboutUserMsgVpn" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/AboutUserMsgVpnLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutUserResponse": { + "properties": { + "data": { + "$ref": "#/definitions/AboutUser" + }, + "links": { + "$ref": "#/definitions/AboutUserLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "Broker": { + "properties": {}, + "type": "object" + }, + "BrokerLinks": { + "properties": { + "aboutUri": { + "description": "The URI of this Broker's About object.", + "type": "string" + }, + "certAuthoritiesUri": { + "description": "The URI of this Broker's collection of Certificate Authority objects. Deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "clientCertAuthoritiesUri": { + "description": "The URI of this Broker's collection of Client Certificate Authority objects. Available since 2.19.", + "type": "string" + }, + "configSyncAssertLeaderMsgVpnUri": { + "description": "The URI of this Broker's Assert Leader Message VPN action. Available since 2.22.", + "type": "string" + }, + "configSyncAssertLeaderRouterUri": { + "description": "The URI of this Broker's Assert Leader Router action. Available since 2.22.", + "type": "string" + }, + "configSyncResyncFollowerMsgVpnUri": { + "description": "The URI of this Broker's Resync Follower Message VPN action. Available since 2.22.", + "type": "string" + }, + "configSyncResyncLeaderMsgVpnUri": { + "description": "The URI of this Broker's Resync Leader Message VPN action. Available since 2.22.", + "type": "string" + }, + "configSyncResyncLeaderRouterUri": { + "description": "The URI of this Broker's Resync Leader Router action. Available since 2.22.", + "type": "string" + }, + "guaranteedMsgingDefragmentMsgSpoolFilesStartUri": { + "description": "The URI of this Broker's Start Defragmentation action. Available since 2.18.", + "type": "string" + }, + "guaranteedMsgingDefragmentMsgSpoolFilesStopUri": { + "description": "The URI of this Broker's Stop Defragmentation action. Available since 2.18.", + "type": "string" + }, + "msgVpnsUri": { + "description": "The URI of this Broker's collection of Message VPN objects. Available since 2.11.", + "type": "string" + }, + "oauthProfilesUri": { + "description": "The URI of this Broker's collection of OAuth Profile objects. Available since 2.24.", + "type": "string" + }, + "sessionsUri": { + "description": "The URI of this Broker's collection of SEMP Session objects. Available since 2.21.", + "type": "string" + }, + "uri": { + "description": "The URI of this Broker object.", + "type": "string" + } + }, + "type": "object" + }, + "BrokerResponse": { + "properties": { + "data": { + "$ref": "#/definitions/Broker" + }, + "links": { + "$ref": "#/definitions/BrokerLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "CertAuthoritiesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/CertAuthority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/CertAuthorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "CertAuthority": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority. Deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + } + }, + "type": "object" + }, + "CertAuthorityLinks": { + "properties": { + "refreshCrlUri": { + "description": "The URI of this Certificate Authority's Refresh CRL action. Deprecated since 2.19. Replaced by clientCertAuthorities.", + "type": "string" + }, + "uri": { + "description": "The URI of this Certificate Authority object.", + "type": "string" + } + }, + "type": "object" + }, + "CertAuthorityRefreshCrl": { + "properties": {}, + "type": "object" + }, + "CertAuthorityResponse": { + "properties": { + "data": { + "$ref": "#/definitions/CertAuthority" + }, + "links": { + "$ref": "#/definitions/CertAuthorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ClientCertAuthoritiesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/ClientCertAuthority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/ClientCertAuthorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ClientCertAuthority": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority.", + "type": "string" + } + }, + "type": "object" + }, + "ClientCertAuthorityLinks": { + "properties": { + "refreshCrlUri": { + "description": "The URI of this Client Certificate Authority's Refresh CRL action.", + "type": "string" + }, + "uri": { + "description": "The URI of this Client Certificate Authority object.", + "type": "string" + } + }, + "type": "object" + }, + "ClientCertAuthorityRefreshCrl": { + "properties": {}, + "type": "object" + }, + "ClientCertAuthorityResponse": { + "properties": { + "data": { + "$ref": "#/definitions/ClientCertAuthority" + }, + "links": { + "$ref": "#/definitions/ClientCertAuthorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ConfigSyncAssertLeaderMsgVpn": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "ConfigSyncAssertLeaderRouter": { + "properties": {}, + "type": "object" + }, + "ConfigSyncResyncFollowerMsgVpn": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "ConfigSyncResyncLeaderMsgVpn": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "ConfigSyncResyncLeaderRouter": { + "properties": {}, + "type": "object" + }, + "GuaranteedMsgingDefragmentMsgSpoolFilesStart": { + "properties": {}, + "type": "object" + }, + "GuaranteedMsgingDefragmentMsgSpoolFilesStop": { + "properties": {}, + "type": "object" + }, + "MsgVpn": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfile": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileClearStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileLinks": { + "properties": { + "clearStatsUri": { + "description": "The URI of this OAuth Profile's Clear Stats action.", + "type": "string" + }, + "uri": { + "description": "The URI of this OAuth Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfile" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfilesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProvider": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "type": "string" + }, + "oauthProviderName": { + "description": "The name of the OAuth Provider. Deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProviderClearStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnAuthenticationOauthProviderLinks": { + "properties": { + "clearStatsUri": { + "description": "The URI of this OAuth Provider's Clear Stats action. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "uri": { + "description": "The URI of this OAuth Provider object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProviderResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvider" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProvidersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvider" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridge": { + "properties": { + "bridgeName": { + "description": "The name of the Bridge.", + "type": "string" + }, + "bridgeVirtualRouter": { + "description": "The virtual router of the Bridge. The allowed values and their meaning are:\n\n
\n\"primary\" - The Bridge is used for the primary virtual router.\n\"backup\" - The Bridge is used for the backup virtual router.\n\"auto\" - The Bridge is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeClearEvent": { + "properties": { + "eventName": { + "description": "The name of the event. The allowed values and their meaning are:\n\n
\n\"ttl-exceeded\" - Time to live exceeded event.\n
\n", + "enum": [ + "ttl-exceeded" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeClearStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnBridgeDisconnect": { + "properties": {}, + "type": "object" + }, + "MsgVpnBridgeLinks": { + "properties": { + "clearEventUri": { + "description": "The URI of this Bridge's Clear Event action.", + "type": "string" + }, + "clearStatsUri": { + "description": "The URI of this Bridge's Clear Stats action.", + "type": "string" + }, + "disconnectUri": { + "description": "The URI of this Bridge's Disconnect action.", + "type": "string" + }, + "uri": { + "description": "The URI of this Bridge object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnBridge" + }, + "links": { + "$ref": "#/definitions/MsgVpnBridgeLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnBridge" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClearMsgSpoolStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnClearReplicationStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnClearServiceStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnClearStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnClient": { + "properties": { + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientClearEvent": { + "properties": { + "eventName": { + "description": "The name of the event. The allowed values and their meaning are:\n\n
\n\"large-message\" - The Client large message received event.\n\"message-too-big\" - The Client message too big event.\n\"parse-error\" - The Client parse error event.\n\"max-eliding-topic-count\" - The Client maximum eliding topics reached event.\n
\n", + "enum": [ + "large-message", + "message-too-big", + "parse-error", + "max-eliding-topic-count" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientClearStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnClientDisconnect": { + "properties": {}, + "type": "object" + }, + "MsgVpnClientLinks": { + "properties": { + "clearEventUri": { + "description": "The URI of this Client's Clear Event action. Available since 2.12.", + "type": "string" + }, + "clearStatsUri": { + "description": "The URI of this Client's Clear Stats action.", + "type": "string" + }, + "disconnectUri": { + "description": "The URI of this Client's Disconnect action.", + "type": "string" + }, + "transactedSessionsUri": { + "description": "The URI of this Client's collection of Client Transacted Session objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Client object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnClient" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientTransactedSession": { + "properties": { + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "sessionName": { + "description": "The name of the Transacted Session.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientTransactedSessionDelete": { + "properties": {}, + "type": "object" + }, + "MsgVpnClientTransactedSessionLinks": { + "properties": { + "deleteUri": { + "description": "The URI of this Client Transacted Session's Delete action.", + "type": "string" + }, + "uri": { + "description": "The URI of this Client Transacted Session object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientTransactedSessionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnClientTransactedSession" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientTransactedSessionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientTransactedSession" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClient" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCache": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheCluster": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstance": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "instanceName": { + "description": "The name of the Cache Instance.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceBackupCachedMsgs": { + "properties": { + "filename": { + "description": "The filename for storing the cached messages.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceCancelBackupCachedMsgs": { + "properties": {}, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceCancelRestoreCachedMsgs": { + "properties": {}, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceClearEvent": { + "properties": { + "eventName": { + "description": "The name of the event. The allowed values and their meaning are:\n\n
\n\"lost-message\" - Lost message event.\n
\n", + "enum": [ + "lost-message" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceClearStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceDeleteMsgs": { + "properties": { + "topic": { + "description": "The topic covering the messages to delete.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceLinks": { + "properties": { + "backupCachedMsgsUri": { + "description": "The URI of this Cache Instance's Backup Cached Messages action.", + "type": "string" + }, + "cancelBackupCachedMsgsUri": { + "description": "The URI of this Cache Instance's Cancel Backup Cached Messages action.", + "type": "string" + }, + "cancelRestoreCachedMsgsUri": { + "description": "The URI of this Cache Instance's Cancel Restore Cached Messages action.", + "type": "string" + }, + "clearEventUri": { + "description": "The URI of this Cache Instance's Clear Event action.", + "type": "string" + }, + "clearStatsUri": { + "description": "The URI of this Cache Instance's Clear Stats action.", + "type": "string" + }, + "deleteMsgsUri": { + "description": "The URI of this Cache Instance's Delete Messages action.", + "type": "string" + }, + "restoreCachedMsgsUri": { + "description": "The URI of this Cache Instance's Restore Cached Messages action.", + "type": "string" + }, + "startUri": { + "description": "The URI of this Cache Instance's Start Cache Instance action.", + "type": "string" + }, + "uri": { + "description": "The URI of this Cache Instance object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstance" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRestoreCachedMsgs": { + "properties": { + "filename": { + "description": "The filename for restoring the cached messages.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceStart": { + "properties": {}, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstancesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstance" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterLinks": { + "properties": { + "instancesUri": { + "description": "The URI of this Cache Cluster's collection of Cache Instance objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Cache Cluster object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheCluster" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClustersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheCluster" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheLinks": { + "properties": { + "clustersUri": { + "description": "The URI of this Distributed Cache's collection of Cache Cluster objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Distributed Cache object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnDistributedCache" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCachesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCache" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnLinks": { + "properties": { + "authenticationOauthProfilesUri": { + "description": "The URI of this Message VPN's collection of OAuth Profile objects. Available since 2.25.", + "type": "string" + }, + "authenticationOauthProvidersUri": { + "description": "The URI of this Message VPN's collection of OAuth Provider objects. Deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "type": "string" + }, + "bridgesUri": { + "description": "The URI of this Message VPN's collection of Bridge objects.", + "type": "string" + }, + "clearMsgSpoolStatsUri": { + "description": "The URI of this Message VPN's Clear Stats action.", + "type": "string" + }, + "clearReplicationStatsUri": { + "description": "The URI of this Message VPN's Clear Stats action.", + "type": "string" + }, + "clearServiceStatsUri": { + "description": "The URI of this Message VPN's Clear Stats action.", + "type": "string" + }, + "clearStatsUri": { + "description": "The URI of this Message VPN's Clear Stats action.", + "type": "string" + }, + "clientsUri": { + "description": "The URI of this Message VPN's collection of Client objects.", + "type": "string" + }, + "distributedCachesUri": { + "description": "The URI of this Message VPN's collection of Distributed Cache objects.", + "type": "string" + }, + "mqttSessionsUri": { + "description": "The URI of this Message VPN's collection of MQTT Session objects.", + "type": "string" + }, + "queuesUri": { + "description": "The URI of this Message VPN's collection of Queue objects.", + "type": "string" + }, + "replayLogsUri": { + "description": "The URI of this Message VPN's collection of Replay Log objects.", + "type": "string" + }, + "restDeliveryPointsUri": { + "description": "The URI of this Message VPN's collection of REST Delivery Point objects.", + "type": "string" + }, + "topicEndpointsUri": { + "description": "The URI of this Message VPN's collection of Topic Endpoint objects.", + "type": "string" + }, + "transactionsUri": { + "description": "The URI of this Message VPN's collection of Replicated Local Transaction or XA Transaction objects. Available since 2.12.", + "type": "string" + }, + "uri": { + "description": "The URI of this Message VPN object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttSession": { + "properties": { + "mqttSessionClientId": { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "type": "string" + }, + "mqttSessionVirtualRouter": { + "description": "The virtual router of the MQTT Session. The allowed values and their meaning are:\n\n
\n\"primary\" - The MQTT Session belongs to the primary virtual router.\n\"backup\" - The MQTT Session belongs to the backup virtual router.\n\"auto\" - The MQTT Session is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionClearStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnMqttSessionLinks": { + "properties": { + "clearStatsUri": { + "description": "The URI of this MQTT Session's Clear Stats action.", + "type": "string" + }, + "uri": { + "description": "The URI of this MQTT Session object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnMqttSession" + }, + "links": { + "$ref": "#/definitions/MsgVpnMqttSessionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttSessionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSession" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSessionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueue": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueName": { + "description": "The name of the Queue.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueCancelReplay": { + "properties": { + "forceComplete": { + "description": "Force cancellation to complete without waiting for client unbind ack.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnQueueClearStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnQueueCopyMsgFromQueue": { + "properties": { + "replicationGroupMsgId": { + "description": "The Message to copy, identified by its Replication Group Message ID.", + "type": "string" + }, + "sourceQueueName": { + "description": "The name of the Queue to copy the message from.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueCopyMsgFromReplayLog": { + "properties": { + "replicationGroupMsgId": { + "description": "The Message to copy, identified by its Replication Group Message ID.", + "type": "string" + }, + "sourceReplayLogName": { + "description": "The name of the Replay Log to copy the message from.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueCopyMsgFromTopicEndpoint": { + "properties": { + "replicationGroupMsgId": { + "description": "The Message to copy, identified by its Replication Group Message ID.", + "type": "string" + }, + "sourceTopicEndpointName": { + "description": "The name of the Topic Endpoint to copy the message from.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueDeleteMsgs": { + "properties": {}, + "type": "object" + }, + "MsgVpnQueueLinks": { + "properties": { + "cancelReplayUri": { + "description": "The URI of this Queue's Cancel Replay action.", + "type": "string" + }, + "clearStatsUri": { + "description": "The URI of this Queue's Clear Stats action.", + "type": "string" + }, + "copyMsgFromQueueUri": { + "description": "The URI of this Queue's Copy Message From Queue action. Available since 2.29.", + "type": "string" + }, + "copyMsgFromReplayLogUri": { + "description": "The URI of this Queue's Copy Message From Replay Log action. Available since 2.29.", + "type": "string" + }, + "copyMsgFromTopicEndpointUri": { + "description": "The URI of this Queue's Copy Message From Topic Endpoint action. Available since 2.29.", + "type": "string" + }, + "deleteMsgsUri": { + "description": "The URI of this Queue's Delete All Messages action. Available since 2.28.", + "type": "string" + }, + "msgsUri": { + "description": "The URI of this Queue's collection of Queue Message objects.", + "type": "string" + }, + "startReplayUri": { + "description": "The URI of this Queue's Start Replay action.", + "type": "string" + }, + "uri": { + "description": "The URI of this Queue object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueMsg": { + "properties": { + "msgId": { + "description": "The identifier (ID) of the Message.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueName": { + "description": "The name of the Queue.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueMsgDelete": { + "properties": {}, + "type": "object" + }, + "MsgVpnQueueMsgLinks": { + "properties": { + "deleteUri": { + "description": "The URI of this Queue Message's Delete action.", + "type": "string" + }, + "uri": { + "description": "The URI of this Queue Message object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueMsgResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnQueueMsg" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueueMsgLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueMsgsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueueMsg" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueueMsgLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnQueue" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueueLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueStartReplay": { + "properties": { + "afterMsg": { + "description": "The Message after which to begin replay, identified by its Replication Group Message ID. Available since 2.21.", + "type": "string" + }, + "fromTime": { + "description": "The time to begin replaying messages from. The value must be no less than the time that the replay log was created. To play back the whole log, this parameter must be omitted. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "replayLogName": { + "description": "The name of the Replay Log.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueuesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueue" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueueLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLog": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "replayLogName": { + "description": "The name of the Replay Log.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplayLogLinks": { + "properties": { + "trimLoggedMsgsUri": { + "description": "The URI of this Replay Log's Trim Logged Messages action.", + "type": "string" + }, + "uri": { + "description": "The URI of this Replay Log object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplayLogResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnReplayLog" + }, + "links": { + "$ref": "#/definitions/MsgVpnReplayLogLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLogTrimLoggedMsgs": { + "properties": { + "olderThanTime": { + "description": "The time to use for trimming older messages. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnReplayLogsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLog" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpn" + }, + "links": { + "$ref": "#/definitions/MsgVpnLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPoint": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointLinks": { + "properties": { + "restConsumersUri": { + "description": "The URI of this REST Delivery Point's collection of REST Consumer objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this REST Delivery Point object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPoint" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumer": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "restConsumerName": { + "description": "The name of the REST Consumer.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerClearStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerLinks": { + "properties": { + "clearStatsUri": { + "description": "The URI of this REST Consumer's Clear Stats action.", + "type": "string" + }, + "uri": { + "description": "The URI of this REST Consumer object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumer" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumer" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPoint" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpoint": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "topicEndpointName": { + "description": "The name of the Topic Endpoint.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointCancelReplay": { + "properties": { + "forceComplete": { + "description": "Force cancellation to complete without waiting for client unbind ack.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointClearStats": { + "properties": {}, + "type": "object" + }, + "MsgVpnTopicEndpointCopyMsgFromQueue": { + "properties": { + "replicationGroupMsgId": { + "description": "The Message to copy, identified by its Replication Group Message ID.", + "type": "string" + }, + "sourceQueueName": { + "description": "The name of the Queue to copy the message from.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointCopyMsgFromReplayLog": { + "properties": { + "replicationGroupMsgId": { + "description": "The Message to copy, identified by its Replication Group Message ID.", + "type": "string" + }, + "sourceReplayLogName": { + "description": "The name of the Replay Log to copy the message from.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointCopyMsgFromTopicEndpoint": { + "properties": { + "replicationGroupMsgId": { + "description": "The Message to copy, identified by its Replication Group Message ID.", + "type": "string" + }, + "sourceTopicEndpointName": { + "description": "The name of the Topic Endpoint to copy the message from.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointDeleteMsgs": { + "properties": {}, + "type": "object" + }, + "MsgVpnTopicEndpointLinks": { + "properties": { + "cancelReplayUri": { + "description": "The URI of this Topic Endpoint's Cancel Replay action.", + "type": "string" + }, + "clearStatsUri": { + "description": "The URI of this Topic Endpoint's Clear Stats action.", + "type": "string" + }, + "copyMsgFromQueueUri": { + "description": "The URI of this Topic Endpoint's Copy Message From Queue action. Available since 2.29.", + "type": "string" + }, + "copyMsgFromReplayLogUri": { + "description": "The URI of this Topic Endpoint's Copy Message From Replay Log action. Available since 2.29.", + "type": "string" + }, + "copyMsgFromTopicEndpointUri": { + "description": "The URI of this Topic Endpoint's Copy Message From Topic Endpoint action. Available since 2.29.", + "type": "string" + }, + "deleteMsgsUri": { + "description": "The URI of this Topic Endpoint's Delete All Messages action. Available since 2.28.", + "type": "string" + }, + "msgsUri": { + "description": "The URI of this Topic Endpoint's collection of Topic Endpoint Message objects.", + "type": "string" + }, + "startReplayUri": { + "description": "The URI of this Topic Endpoint's Start Replay action.", + "type": "string" + }, + "uri": { + "description": "The URI of this Topic Endpoint object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointMsg": { + "properties": { + "msgId": { + "description": "The identifier (ID) of the Message.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "topicEndpointName": { + "description": "The name of the Topic Endpoint.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointMsgDelete": { + "properties": {}, + "type": "object" + }, + "MsgVpnTopicEndpointMsgLinks": { + "properties": { + "deleteUri": { + "description": "The URI of this Topic Endpoint Message's Delete action.", + "type": "string" + }, + "uri": { + "description": "The URI of this Topic Endpoint Message object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointMsgResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsg" + }, + "links": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointMsgsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsg" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnTopicEndpoint" + }, + "links": { + "$ref": "#/definitions/MsgVpnTopicEndpointLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointStartReplay": { + "properties": { + "afterMsg": { + "description": "The Message after which to begin replay, identified by its Replication Group Message ID. Available since 2.21.", + "type": "string" + }, + "fromTime": { + "description": "The time to begin replaying messages from. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "replayLogName": { + "description": "The name of the Replay Log.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpoint" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTransaction": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "xid": { + "description": "The identifier (ID) of the Transaction.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTransactionCommit": { + "properties": {}, + "type": "object" + }, + "MsgVpnTransactionDelete": { + "properties": {}, + "type": "object" + }, + "MsgVpnTransactionLinks": { + "properties": { + "commitUri": { + "description": "The URI of this Replicated Local Transaction or XA Transaction's Commit action.", + "type": "string" + }, + "deleteUri": { + "description": "The URI of this Replicated Local Transaction or XA Transaction's Delete action.", + "type": "string" + }, + "rollbackUri": { + "description": "The URI of this Replicated Local Transaction or XA Transaction's Rollback action.", + "type": "string" + }, + "uri": { + "description": "The URI of this Replicated Local Transaction or XA Transaction object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTransactionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnTransaction" + }, + "links": { + "$ref": "#/definitions/MsgVpnTransactionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTransactionRollback": { + "properties": {}, + "type": "object" + }, + "MsgVpnTransactionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTransaction" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTransactionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpn" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfile": { + "properties": { + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClearStats": { + "properties": {}, + "type": "object" + }, + "OauthProfileLinks": { + "properties": { + "clearStatsUri": { + "description": "The URI of this OAuth Profile's Clear Stats action.", + "type": "string" + }, + "uri": { + "description": "The URI of this OAuth Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileResponse": { + "properties": { + "data": { + "$ref": "#/definitions/OauthProfile" + }, + "links": { + "$ref": "#/definitions/OauthProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfilesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/OauthProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "SempError": { + "properties": { + "code": { + "description": "The error code which uniquely identifies the error that has occurred.", + "format": "int32", + "type": "integer" + }, + "description": { + "description": "The verbose description of the problem.", + "type": "string" + }, + "status": { + "description": "The terse status string associated with `code`.", + "type": "string" + } + }, + "required": [ + "code", + "status", + "description" + ], + "type": "object" + }, + "SempMeta": { + "properties": { + "count": { + "description": "The total number of objects requested, irrespective of page size. This may be a count of all objects in a collection or a filtered subset. It represents a snapshot in time and may change when paging through results.", + "format": "int64", + "type": "integer" + }, + "error": { + "$ref": "#/definitions/SempError" + }, + "paging": { + "$ref": "#/definitions/SempPaging" + }, + "request": { + "$ref": "#/definitions/SempRequest" + }, + "responseCode": { + "description": "The HTTP response code, one of 200 (success), 4xx (client error), or 5xx (server error).", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "request", + "responseCode" + ], + "type": "object" + }, + "SempMetaOnlyResponse": { + "properties": { + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "SempPaging": { + "properties": { + "cursorQuery": { + "description": "The cursor, or position, for the next page of objects. Use this as the `cursor` query parameter of the next request.", + "type": "string" + }, + "nextPageUri": { + "description": "The URI of the next page of objects. `cursorQuery` is already embedded within this URI.", + "type": "string" + } + }, + "required": [ + "cursorQuery", + "nextPageUri" + ], + "type": "object" + }, + "SempRequest": { + "properties": { + "method": { + "description": "The HTTP method of the request which resulted in this response.", + "type": "string" + }, + "uri": { + "description": "The URI of the request which resulted in this response.", + "type": "string" + } + }, + "required": [ + "method" + ], + "type": "object" + }, + "Session": { + "properties": { + "sessionId": { + "description": "The unique identifier for the session.", + "type": "string" + }, + "sessionUsername": { + "description": "The username used for authorization.", + "type": "string" + } + }, + "type": "object" + }, + "SessionDelete": { + "properties": {}, + "type": "object" + }, + "SessionLinks": { + "properties": { + "deleteUri": { + "description": "The URI of this SEMP Session's Delete action.", + "type": "string" + }, + "uri": { + "description": "The URI of this SEMP Session object.", + "type": "string" + } + }, + "type": "object" + }, + "SessionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/Session" + }, + "links": { + "$ref": "#/definitions/SessionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "SessionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/Session" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/SessionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + } + }, + "host": "www.solace.com", + "info": { + "contact": { + "email": "support@solace.com", + "name": "Solace", + "url": "http://www.solace.com" + }, + "description": "SEMP (starting in `v2`, see note 1) is a RESTful API for configuring, monitoring, and administering a Solace PubSub+ broker.\n\nSEMP uses URIs to address manageable **resources** of the Solace PubSub+ broker. Resources are individual **objects**, **collections** of objects, or (exclusively in the action API) **actions**. This document applies to the following API:\n\n\nAPI|Base Path|Purpose|Comments\n:---|:---|:---|:---\nAction|/SEMP/v2/action|Performing actions|See note 2\n\n\n\nThe following APIs are also available:\n\n\nAPI|Base Path|Purpose|Comments\n:---|:---|:---|:---\nConfiguration|/SEMP/v2/config|Reading and writing config state|See note 2\nMonitoring|/SEMP/v2/monitor|Querying operational parameters|See note 2\n\n\n\nResources are always nouns, with individual objects being singular and collections being plural.\n\nObjects within a collection are identified by an `obj-id`, which follows the collection name with the form `collection-name/obj-id`.\n\nActions within an object are identified by an `action-id`, which follows the object name with the form `obj-id/action-id`.\n\nSome examples:\n\n```\n/SEMP/v2/config/msgVpns ; MsgVpn collection\n/SEMP/v2/config/msgVpns/a ; MsgVpn object named \"a\"\n/SEMP/v2/config/msgVpns/a/queues ; Queue collection in MsgVpn \"a\"\n/SEMP/v2/config/msgVpns/a/queues/b ; Queue object named \"b\" in MsgVpn \"a\"\n/SEMP/v2/action/msgVpns/a/queues/b/startReplay ; Action that starts a replay on Queue \"b\" in MsgVpn \"a\"\n/SEMP/v2/monitor/msgVpns/a/clients ; Client collection in MsgVpn \"a\"\n/SEMP/v2/monitor/msgVpns/a/clients/c ; Client object named \"c\" in MsgVpn \"a\"\n```\n\n## Collection Resources\n\nCollections are unordered lists of objects (unless described as otherwise), and are described by JSON arrays. Each item in the array represents an object in the same manner as the individual object would normally be represented. In the configuration API, the creation of a new object is done through its collection resource.\n\n## Object and Action Resources\n\nObjects are composed of attributes, actions, collections, and other objects. They are described by JSON objects as name/value pairs. The collections and actions of an object are not contained directly in the object's JSON content; rather the content includes an attribute containing a URI which points to the collections and actions. These contained resources must be managed through this URI. At a minimum, every object has one or more identifying attributes, and its own `uri` attribute which contains the URI pointing to itself.\n\nActions are also composed of attributes, and are described by JSON objects as name/value pairs. Unlike objects, however, they are not members of a collection and cannot be retrieved, only performed. Actions only exist in the action API.\n\nAttributes in an object or action may have any combination of the following properties:\n\n\nProperty|Meaning|Comments\n:---|:---|:---\nIdentifying|Attribute is involved in unique identification of the object, and appears in its URI|\nConst|Attribute value can only be chosen during object creation|\nRequired|Attribute must be provided in the request|\nRead-Only|Attribute can only be read, not written.|See note 3\nWrite-Only|Attribute can only be written, not read, unless the attribute is also opaque|See the documentation for the opaque property\nRequires-Disable|Attribute cannot be changed while the object (or the relevant part of the object) is administratively enabled|\nAuto-Disable|Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as one or more attributes will be temporarily disabled to apply the change|\nDeprecated|Attribute is deprecated, and will disappear in the next SEMP version|\nOpaque|Attribute can be set or retrieved in opaque form when the `opaquePassword` query parameter is present|See the `opaquePassword` query parameter documentation\n\n\n\nIn some requests, certain attributes may only be provided in certain combinations with other attributes:\n\n\nRelationship|Meaning\n:---|:---\nRequires|Attribute may only be changed by a request if a particular attribute or combination of attributes is also provided in the request\nConflicts|Attribute may only be provided in a request if a particular attribute or combination of attributes is not also provided in the request\n\n\n\nIn the monitoring API, any non-identifying attribute may not be returned in a GET.\n\n## HTTP Methods\n\nThe following HTTP methods manipulate resources in accordance with these general principles. Note that some methods are only used in certain APIs:\n\n\nMethod|Resource|Meaning|Request Body|Response Body|Notes\n:---|:---|:---|:---|:---|:---\nPOST|Collection|Create object|Initial attribute values|Object attributes and metadata|Absent attributes are set to default. If object already exists, a 400 error is returned\nPUT|Object|Update object|New attribute values|Object attributes and metadata|If does not exist, the object is first created. Absent attributes are set to default, with certain exceptions (see note 4)\nPUT|Action|Performs action|Action arguments|Action metadata|\nPATCH|Object|Update object|New attribute values|Object attributes and metadata|Absent attributes are left unchanged. If the object does not exist, a 404 error is returned\nDELETE|Object|Delete object|Empty|Object metadata|If the object does not exist, a 404 is returned\nGET|Object|Get object|Empty|Object attributes and metadata|If the object does not exist, a 404 is returned\nGET|Collection|Get collection|Empty|Object attributes and collection metadata|If the collection is empty, then an empty collection is returned with a 200 code\n\n\n\n## Common Query Parameters\n\nThe following are some common query parameters that are supported by many method/URI combinations. Individual URIs may document additional parameters. Note that multiple query parameters can be used together in a single URI, separated by the ampersand character. For example:\n\n```\n; Request for the MsgVpns collection using two hypothetical query parameters\n; \"q1\" and \"q2\" with values \"val1\" and \"val2\" respectively\n/SEMP/v2/action/msgVpns?q1=val1&q2=val2\n```\n\n### select\n\nInclude in the response only selected attributes of the object, or exclude from the response selected attributes of the object. Use this query parameter to limit the size of the returned data for each returned object, return only those fields that are desired, or exclude fields that are not desired.\n\nThe value of `select` is a comma-separated list of attribute names. If the list contains attribute names that are not prefaced by `-`, only those attributes are included in the response. If the list contains attribute names that are prefaced by `-`, those attributes are excluded from the response. If the list contains both types, then the difference of the first set of attributes and the second set of attributes is returned. If the list is empty (i.e. `select=`), it is treated the same as if no `select` was provided: all attribute are returned.\n\nAll attributes that are prefaced by `-` must follow all attributes that are not prefaced by `-`. In addition, each attribute name in the list must match at least one attribute in the object.\n\nNames may include the `*` wildcard (zero or more characters). Nested attribute names are supported using periods (e.g. `parentName.childName`).\n\nSome examples:\n\n```\n; List of all MsgVpn names\n/SEMP/v2/action/msgVpns?select=msgVpnName\n; List of all MsgVpn and their attributes except for their names\n/SEMP/v2/action/msgVpns?select=-msgVpnName\n; Authentication attributes of MsgVpn \"finance\"\n/SEMP/v2/action/msgVpns/finance?select=authentication%2A\n; All attributes of MsgVpn \"finance\" except for authentication attributes\n/SEMP/v2/action/msgVpns/finance?select=-authentication%2A\n; Access related attributes of Queue \"orderQ\" of MsgVpn \"finance\"\n/SEMP/v2/action/msgVpns/finance/queues/orderQ?select=owner,permission\n```\n\n### where\n\nInclude in the response only objects where certain conditions are true. Use this query parameter to limit which objects are returned to those whose attribute values meet the given conditions.\n\nThe value of `where` is a comma-separated list of expressions. All expressions must be true for the object to be included in the response. Each expression takes the form:\n\n```\nexpression = attribute-name OP value\nOP = '==' | '!=' | '<' | '>' | '<=' | '>='\n```\n\n`value` may be a number, string, `true`, or `false`, as appropriate for the type of `attribute-name`. Greater-than and less-than comparisons only work for numbers. A `*` in a string `value` is interpreted as a wildcard (zero or more characters). Some examples:\n\n```\n; Only enabled MsgVpns\n/SEMP/v2/action/msgVpns?where=enabled%3D%3Dtrue\n; Only MsgVpns using basic non-LDAP authentication\n/SEMP/v2/action/msgVpns?where=authenticationBasicEnabled%3D%3Dtrue,authenticationBasicType%21%3Dldap\n; Only MsgVpns that allow more than 100 client connections\n/SEMP/v2/action/msgVpns?where=maxConnectionCount%3E100\n; Only MsgVpns with msgVpnName starting with \"B\":\n/SEMP/v2/action/msgVpns?where=msgVpnName%3D%3DB%2A\n```\n\n### count\n\nLimit the count of objects in the response. This can be useful to limit the size of the response for large collections. The minimum value for `count` is `1` and the default is `10`. There is also a per-collection maximum value to limit request handling time.\n\n`count` does not guarantee that a minimum number of objects will be returned. A page may contain fewer than `count` objects or even be empty. Additional objects may nonetheless be available for retrieval on subsequent pages. See the `cursor` query parameter documentation for more information on paging.\n\nFor example:\n```\n; Up to 25 MsgVpns\n/SEMP/v2/action/msgVpns?count=25\n```\n\n### cursor\n\nThe cursor, or position, for the next page of objects. Cursors are opaque data that should not be created or interpreted by SEMP clients, and should only be used as described below.\n\nWhen a request is made for a collection and there may be additional objects available for retrieval that are not included in the initial response, the response will include a `cursorQuery` field containing a cursor. The value of this field can be specified in the `cursor` query parameter of a subsequent request to retrieve the next page of objects.\n\nApplications must continue to use the `cursorQuery` if one is provided in order to retrieve the full set of objects associated with the request, even if a page contains fewer than the requested number of objects (see the `count` query parameter documentation) or is empty.\n\n### opaquePassword\n\nAttributes with the opaque property are also write-only and so cannot normally be retrieved in a GET. However, when a password is provided in the `opaquePassword` query parameter, attributes with the opaque property are retrieved in a GET in opaque form, encrypted with this password. The query parameter can also be used on a POST, PATCH, or PUT to set opaque attributes using opaque attribute values retrieved in a GET, so long as:\n\n1. the same password that was used to retrieve the opaque attribute values is provided; and\n\n2. the broker to which the request is being sent has the same major and minor SEMP version as the broker that produced the opaque attribute values.\n\nThe password provided in the query parameter must be a minimum of 8 characters and a maximum of 128 characters.\n\nThe query parameter can only be used in the configuration API, and only over HTTPS.\n\n## Authentication\n\nWhen a client makes its first SEMPv2 request, it must supply a username and password using HTTP Basic authentication, or an OAuth token or tokens using HTTP Bearer authentication.\n\nWhen HTTP Basic authentication is used, the broker returns a cookie containing a session key. The client can omit the username and password from subsequent requests, because the broker can use the session cookie for authentication instead. When the session expires or is deleted, the client must provide the username and password again, and the broker creates a new session.\n\nThere are a limited number of session slots available on the broker. The broker returns 529 No SEMP Session Available if it is not able to allocate a session.\n\nIf certain attributes\u2014such as a user's password\u2014are changed, the broker automatically deletes the affected sessions. These attributes are documented below. However, changes in external user configuration data stored on a RADIUS or LDAP server do not trigger the broker to delete the associated session(s), therefore you must do this manually, if required.\n\nA client can retrieve its current session information using the /about/user endpoint and delete its own session using the /about/user/logout endpoint. A client with appropriate permissions can also manage all sessions using the /sessions endpoint.\n\nSessions are not created when authenticating with an OAuth token or tokens using HTTP Bearer authentication. If a session cookie is provided, it is ignored.\n\n## Help\n\nVisit [our website](https://solace.com) to learn more about Solace.\n\nYou can also download the SEMP API specifications by clicking [here](https://solace.com/downloads/).\n\nIf you need additional support, please contact us at [support@solace.com](mailto:support@solace.com).\n\n## Notes\n\nNote|Description\n:---:|:---\n1|This specification defines SEMP starting in \"v2\", and not the original SEMP \"v1\" interface. Request and response formats between \"v1\" and \"v2\" are entirely incompatible, although both protocols share a common port configuration on the Solace PubSub+ broker. They are differentiated by the initial portion of the URI path, one of either \"/SEMP/\" or \"/SEMP/v2/\"\n2|This API is partially implemented. Only a subset of all objects are available.\n3|Read-only attributes may appear in POST and PUT/PATCH requests. However, if a read-only attribute is not marked as identifying, it will be ignored during a PUT/PATCH.\n4|On a PUT, if the SEMP user is not authorized to modify the attribute, its value is left unchanged rather than set to default. In addition, the values of write-only attributes are not set to their defaults on a PUT, except in the following two cases: there is a mutual requires relationship with another non-write-only attribute, both attributes are absent from the request, and the non-write-only attribute is not currently set to its default value; or the attribute is also opaque and the `opaquePassword` query parameter is provided in the request.\n\n", + "title": "SEMP (Solace Element Management Protocol)", + "version": "2.34" + }, + "parameters": { + "countQuery": { + "default": 10, + "description": "Limit the count of objects in the response. See the documentation for the `count` parameter.", + "in": "query", + "minimum": 1, + "name": "count", + "required": false, + "type": "integer" + }, + "cursorQuery": { + "description": "The cursor, or position, for the next page of objects. See the documentation for the `cursor` parameter.", + "in": "query", + "name": "cursor", + "required": false, + "type": "string" + }, + "selectQuery": { + "collectionFormat": "csv", + "description": "Include in the response only selected attributes of the object, or exclude from the response selected attributes of the object. See the documentation for the `select` parameter.", + "in": "query", + "items": { + "type": "string" + }, + "name": "select", + "required": false, + "type": "array" + }, + "whereQuery": { + "collectionFormat": "csv", + "description": "Include in the response only objects where certain conditions are true. See the the documentation for the `where` parameter.", + "in": "query", + "items": { + "type": "string" + }, + "name": "where", + "required": false, + "type": "array" + } + }, + "paths": { + "/": { + "get": { + "description": "Get a Broker object.\n\nThis object contains global configuration for the message broker.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.13.", + "operationId": "getBroker", + "parameters": [ + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Broker object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/BrokerResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Broker object.", + "tags": [ + "all" + ] + } + }, + "/about": { + "get": { + "description": "Get an About object.\n\nThis provides metadata about the SEMP API, such as the version of the API supported by the broker.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.13.", + "operationId": "getAbout", + "parameters": [ + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The About object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an About object.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/api": { + "get": { + "description": "Get an API Description object.\n\nThe API Description object provides metadata about the SEMP API.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getAboutApi", + "parameters": [ + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The API Description object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutApiResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an API Description object.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/user": { + "get": { + "description": "Get a User object.\n\nSession and access level information about the user accessing the SEMP API.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getAboutUser", + "parameters": [ + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The User object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutUserResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a User object.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/user/logout": { + "put": { + "description": "Logout of the current session.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "doAboutUserLogout", + "parameters": [ + { + "description": "The Logout action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AboutUserLogout" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Logout of the current session.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/user/msgVpns": { + "get": { + "description": "Get a list of User Message VPN objects.\n\nThis provides information about the Message VPN access level for the username used to access the SEMP API.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getAboutUserMsgVpns", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of User Message VPN objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutUserMsgVpnsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of User Message VPN objects.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/user/msgVpns/{msgVpnName}": { + "get": { + "description": "Get a User Message VPN object.\n\nThis provides information about the Message VPN access level for the username used to access the SEMP API.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getAboutUserMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The User Message VPN object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutUserMsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a User Message VPN object.", + "tags": [ + "all", + "about" + ] + } + }, + "/certAuthorities": { + "get": { + "deprecated": true, + "description": "Get a list of Certificate Authority objects.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "operationId": "getCertAuthorities", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Authority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthoritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Authority objects.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/certAuthorities/{certAuthorityName}": { + "get": { + "deprecated": true, + "description": "Get a Certificate Authority object.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "operationId": "getCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Authority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Authority object.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/certAuthorities/{certAuthorityName}/refreshCrl": { + "put": { + "deprecated": true, + "description": "Refresh the CRL file for the Certificate Authority.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities.", + "operationId": "doCertAuthorityRefreshCrl", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The Refresh CRL action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CertAuthorityRefreshCrl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Refresh the CRL file for the Certificate Authority.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/clientCertAuthorities": { + "get": { + "description": "Get a list of Client Certificate Authority objects.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getClientCertAuthorities", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Certificate Authority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthoritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Certificate Authority objects.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/clientCertAuthorities/{certAuthorityName}": { + "get": { + "description": "Get a Client Certificate Authority object.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getClientCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Certificate Authority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Certificate Authority object.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/clientCertAuthorities/{certAuthorityName}/refreshCrl": { + "put": { + "description": "Refresh the CRL file for the Client Certificate Authority.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "doClientCertAuthorityRefreshCrl", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The Refresh CRL action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ClientCertAuthorityRefreshCrl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Refresh the CRL file for the Client Certificate Authority.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/configSyncAssertLeaderMsgVpn": { + "put": { + "description": "Assert leadership of the specified Config Sync table, forcing any other leader's content to be overwritten with our own. Use whenever a High Availability pair fall out of sync. Config Sync must be a leader for the selected table.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.22.", + "operationId": "doConfigSyncAssertLeaderMsgVpn", + "parameters": [ + { + "description": "The Assert Leader Message VPN action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ConfigSyncAssertLeaderMsgVpn" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Assert leadership of the specified Config Sync table, forcing any other leader's content to be overwritten with our own. Use whenever a High Availability pair fall out of sync. Config Sync must be a leader for the selected table.", + "tags": [ + "all" + ] + } + }, + "/configSyncAssertLeaderRouter": { + "put": { + "description": "Assert leadership of the specified Config Sync table, forcing any other leader's content to be overwritten with our own. Use whenever a High Availability pair fall out of sync. Config Sync must be a leader for the selected table.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.22.", + "operationId": "doConfigSyncAssertLeaderRouter", + "parameters": [ + { + "description": "The Assert Leader Router action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ConfigSyncAssertLeaderRouter" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Assert leadership of the specified Config Sync table, forcing any other leader's content to be overwritten with our own. Use whenever a High Availability pair fall out of sync. Config Sync must be a leader for the selected table.", + "tags": [ + "all" + ] + } + }, + "/configSyncResyncFollowerMsgVpn": { + "put": { + "description": "Resync the selected Config Sync table, forcing this follower's content to be overwritten with that from a leader. Config Sync must be a follower for the selected table.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.22.", + "operationId": "doConfigSyncResyncFollowerMsgVpn", + "parameters": [ + { + "description": "The Resync Follower Message VPN action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ConfigSyncResyncFollowerMsgVpn" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Resync the selected Config Sync table, forcing this follower's content to be overwritten with that from a leader. Config Sync must be a follower for the selected table.", + "tags": [ + "all" + ] + } + }, + "/configSyncResyncLeaderMsgVpn": { + "put": { + "description": "Resync the selected Config Sync table, forcing this leader's content to be overwritten with that from a leader. Config Sync must be a leader for the selected table.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.22.", + "operationId": "doConfigSyncResyncLeaderMsgVpn", + "parameters": [ + { + "description": "The Resync Leader Message VPN action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ConfigSyncResyncLeaderMsgVpn" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Resync the selected Config Sync table, forcing this leader's content to be overwritten with that from a leader. Config Sync must be a leader for the selected table.", + "tags": [ + "all" + ] + } + }, + "/configSyncResyncLeaderRouter": { + "put": { + "description": "Resync the selected Config Sync table, forcing this leader's content to be overwritten with that from a leader. Config Sync must be a leader for the selected table.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.22.", + "operationId": "doConfigSyncResyncLeaderRouter", + "parameters": [ + { + "description": "The Resync Leader Router action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ConfigSyncResyncLeaderRouter" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Resync the selected Config Sync table, forcing this leader's content to be overwritten with that from a leader. Config Sync must be a leader for the selected table.", + "tags": [ + "all" + ] + } + }, + "/guaranteedMsgingDefragmentMsgSpoolFilesStart": { + "put": { + "description": "Start a spool file defragmentation run.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.18.", + "operationId": "doGuaranteedMsgingDefragmentMsgSpoolFilesStart", + "parameters": [ + { + "description": "The Start Defragmentation action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GuaranteedMsgingDefragmentMsgSpoolFilesStart" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Start a spool file defragmentation run.", + "tags": [ + "all" + ] + } + }, + "/guaranteedMsgingDefragmentMsgSpoolFilesStop": { + "put": { + "description": "Stop a spool file defragmentation run.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.18.", + "operationId": "doGuaranteedMsgingDefragmentMsgSpoolFilesStop", + "parameters": [ + { + "description": "The Stop Defragmentation action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GuaranteedMsgingDefragmentMsgSpoolFilesStop" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Stop a spool file defragmentation run.", + "tags": [ + "all" + ] + } + }, + "/msgVpns": { + "get": { + "description": "Get a list of Message VPN objects.\n\nMessage VPNs (Virtual Private Networks) allow for the segregation of topic space and clients. They also group clients connecting to a network of message brokers, such that messages published within a particular group are only visible to that group's clients.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpns", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Message VPN objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Message VPN objects.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}": { + "get": { + "description": "Get a Message VPN object.\n\nMessage VPNs (Virtual Private Networks) allow for the segregation of topic space and clients. They also group clients connecting to a network of message brokers, such that messages published within a particular group are only visible to that group's clients.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Message VPN object.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles": { + "get": { + "description": "Get a list of OAuth Profile objects.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfiles", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OAuth Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OAuth Profile objects.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}": { + "get": { + "description": "Get an OAuth Profile object.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OAuth Profile object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}/clearStats": { + "put": { + "description": "Clear the statistics for the OAuth Profile.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "doMsgVpnAuthenticationOauthProfileClearStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the statistics for the OAuth Profile.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProviders": { + "get": { + "deprecated": true, + "description": "Get a list of OAuth Provider objects.\n\nOAuth Providers contain information about the issuer of an OAuth token that is needed to validate the token and derive a client username from it.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|x\noauthProviderName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "operationId": "getMsgVpnAuthenticationOauthProviders", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OAuth Provider objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvidersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OAuth Provider objects.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProviders/{oauthProviderName}": { + "get": { + "deprecated": true, + "description": "Get an OAuth Provider object.\n\nOAuth Providers contain information about the issuer of an OAuth token that is needed to validate the token and derive a client username from it.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|x\noauthProviderName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "operationId": "getMsgVpnAuthenticationOauthProvider", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth Provider.", + "in": "path", + "name": "oauthProviderName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Provider object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OAuth Provider object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProviders/{oauthProviderName}/clearStats": { + "put": { + "deprecated": true, + "description": "Clear the statistics for the OAuth Provider.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "operationId": "doMsgVpnAuthenticationOauthProviderClearStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth Provider.", + "in": "path", + "name": "oauthProviderName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the statistics for the OAuth Provider.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges": { + "get": { + "description": "Get a list of Bridge objects.\n\nBridges can be used to link two Message VPNs so that messages published to one Message VPN that match the topic subscriptions set for the bridge are also delivered to the linked Message VPN.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|\nbridgeVirtualRouter|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnBridges", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Bridge objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Bridge objects.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}": { + "get": { + "description": "Get a Bridge object.\n\nBridges can be used to link two Message VPNs so that messages published to one Message VPN that match the topic subscriptions set for the bridge are also delivered to the linked Message VPN.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|\nbridgeVirtualRouter|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Bridge object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Bridge object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/clearEvent": { + "put": { + "description": "Clear an event for the Bridge so it can be generated anew.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\neventName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnBridgeClearEvent", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The Clear Event action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridgeClearEvent" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear an event for the Bridge so it can be generated anew.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/clearStats": { + "put": { + "description": "Clear the statistics for the Bridge.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnBridgeClearStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridgeClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the statistics for the Bridge.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/disconnect": { + "put": { + "description": "Disconnect the Bridge.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnBridgeDisconnect", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The Disconnect action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridgeDisconnect" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Disconnect the Bridge.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/clearMsgSpoolStats": { + "put": { + "description": "Clear the message spool statistics for the Message VPN.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnClearMsgSpoolStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClearMsgSpoolStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the message spool statistics for the Message VPN.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}/clearReplicationStats": { + "put": { + "description": "Clear the replication statistics for the Message VPN.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnClearReplicationStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClearReplicationStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the replication statistics for the Message VPN.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}/clearServiceStats": { + "put": { + "description": "Clear the service statistics for the Message VPN.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnClearServiceStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClearServiceStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the service statistics for the Message VPN.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}/clearStats": { + "put": { + "description": "Clear the client statistics for the Message VPN.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnClearStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the client statistics for the Message VPN.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}/clients": { + "get": { + "description": "Get a list of Client objects.\n\nApplications or devices that connect to message brokers to send and/or receive messages are represented as Clients.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnClients", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client objects.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}": { + "get": { + "description": "Get a Client object.\n\nApplications or devices that connect to message brokers to send and/or receive messages are represented as Clients.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnClient", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client object.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/clearEvent": { + "put": { + "description": "Clear an event for the Client so it can be generated anew.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\neventName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "doMsgVpnClientClearEvent", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Event action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientClearEvent" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear an event for the Client so it can be generated anew.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/clearStats": { + "put": { + "description": "Clear the statistics for the Client.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnClientClearStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the statistics for the Client.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/disconnect": { + "put": { + "description": "Disconnect the Client.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnClientDisconnect", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "description": "The Disconnect action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientDisconnect" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Disconnect the Client.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/transactedSessions": { + "get": { + "description": "Get a list of Client Transacted Session objects.\n\nTransacted Sessions enable clients to group multiple message send and/or receive operations together in single, atomic units known as local transactions.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nmsgVpnName|x|\nsessionName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnClientTransactedSessions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Transacted Session objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Transacted Session objects.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/transactedSessions/{sessionName}": { + "get": { + "description": "Get a Client Transacted Session object.\n\nTransacted Sessions enable clients to group multiple message send and/or receive operations together in single, atomic units known as local transactions.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nmsgVpnName|x|\nsessionName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnClientTransactedSession", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Transacted Session.", + "in": "path", + "name": "sessionName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Transacted Session object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Transacted Session object.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/transactedSessions/{sessionName}/delete": { + "put": { + "description": "Delete the Transacted Session.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnClientTransactedSessionDelete", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Transacted Session.", + "in": "path", + "name": "sessionName", + "required": true, + "type": "string" + }, + { + "description": "The Delete action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionDelete" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete the Transacted Session.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches": { + "get": { + "description": "Get a list of Distributed Cache objects.\n\nA Distributed Cache is a collection of one or more Cache Clusters that belong to the same Message VPN. Each Cache Cluster in a Distributed Cache is configured to subscribe to a different set of topics. This effectively divides up the configured topic space, to provide scaling to very large topic spaces or very high cached message throughput.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCaches", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Distributed Cache objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCachesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Distributed Cache objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}": { + "get": { + "description": "Get a Distributed Cache object.\n\nA Distributed Cache is a collection of one or more Cache Clusters that belong to the same Message VPN. Each Cache Cluster in a Distributed Cache is configured to subscribe to a different set of topics. This effectively divides up the configured topic space, to provide scaling to very large topic spaces or very high cached message throughput.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Distributed Cache object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Distributed Cache object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters": { + "get": { + "description": "Get a list of Cache Cluster objects.\n\nA Cache Cluster is a collection of one or more Cache Instances that subscribe to exactly the same topics. Cache Instances are grouped together in a Cache Cluster for the purpose of fault tolerance and load balancing. As published messages are received, the message broker message bus sends these live data messages to the Cache Instances in the Cache Cluster. This enables client cache requests to be served by any of Cache Instances in the Cache Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusters", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Cache Cluster objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClustersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Cache Cluster objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}": { + "get": { + "description": "Get a Cache Cluster object.\n\nA Cache Cluster is a collection of one or more Cache Instances that subscribe to exactly the same topics. Cache Instances are grouped together in a Cache Cluster for the purpose of fault tolerance and load balancing. As published messages are received, the message broker message bus sends these live data messages to the Cache Instances in the Cache Cluster. This enables client cache requests to be served by any of Cache Instances in the Cache Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Cluster object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances": { + "get": { + "description": "Get a list of Cache Instance objects.\n\nA Cache Instance is a single Cache process that belongs to a single Cache Cluster. A Cache Instance object provisioned on the broker is used to disseminate configuration information to the Cache process. Cache Instances listen for and cache live data messages that match the topic subscriptions configured for their parent Cache Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\ninstanceName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterInstances", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Cache Instance objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstancesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Cache Instance objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}": { + "get": { + "description": "Get a Cache Instance object.\n\nA Cache Instance is a single Cache process that belongs to a single Cache Cluster. A Cache Instance object provisioned on the broker is used to disseminate configuration information to the Cache process. Cache Instances listen for and cache live data messages that match the topic subscriptions configured for their parent Cache Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\ninstanceName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterInstance", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Instance object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Cache Instance object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/backupCachedMsgs": { + "put": { + "description": "Backup cached messages of the Cache Instance to disk.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnDistributedCacheClusterInstanceBackupCachedMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The Backup Cached Messages action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceBackupCachedMsgs" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Backup cached messages of the Cache Instance to disk.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/cancelBackupCachedMsgs": { + "put": { + "description": "Cancel the backup of cached messages from the Cache Instance.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnDistributedCacheClusterInstanceCancelBackupCachedMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The Cancel Backup Cached Messages action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceCancelBackupCachedMsgs" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Cancel the backup of cached messages from the Cache Instance.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/cancelRestoreCachedMsgs": { + "put": { + "description": "Cancel the restore of cached messages to the Cache Instance.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnDistributedCacheClusterInstanceCancelRestoreCachedMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The Cancel Restore Cached Messages action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceCancelRestoreCachedMsgs" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Cancel the restore of cached messages to the Cache Instance.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/clearEvent": { + "put": { + "description": "Clear an event for the Cache Instance so it can be generated anew.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\neventName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnDistributedCacheClusterInstanceClearEvent", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Event action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceClearEvent" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear an event for the Cache Instance so it can be generated anew.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/clearStats": { + "put": { + "description": "Clear the statistics for the Cache Instance.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnDistributedCacheClusterInstanceClearStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the statistics for the Cache Instance.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/deleteMsgs": { + "put": { + "description": "Delete messages covered by the given topic in the Cache Instance.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\ntopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnDistributedCacheClusterInstanceDeleteMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The Delete Messages action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceDeleteMsgs" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete messages covered by the given topic in the Cache Instance.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/restoreCachedMsgs": { + "put": { + "description": "Restore cached messages for the Cache Instance from disk.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnDistributedCacheClusterInstanceRestoreCachedMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The Restore Cached Messages action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRestoreCachedMsgs" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Restore cached messages for the Cache Instance from disk.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/start": { + "put": { + "description": "Start the Cache Instance.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnDistributedCacheClusterInstanceStart", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The Start Cache Instance action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceStart" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Start the Cache Instance.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions": { + "get": { + "description": "Get a list of MQTT Session objects.\n\nAn MQTT Session object is a virtual representation of an MQTT client connection. An MQTT session holds the state of an MQTT client (that is, it is used to contain a client's QoS 0 and QoS 1 subscription sets and any undelivered QoS 1 messages).\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmqttSessionClientId|x|\nmqttSessionVirtualRouter|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnMqttSessions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of MQTT Session objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of MQTT Session objects.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions/{mqttSessionClientId},{mqttSessionVirtualRouter}": { + "get": { + "description": "Get an MQTT Session object.\n\nAn MQTT Session object is a virtual representation of an MQTT client connection. An MQTT session holds the state of an MQTT client (that is, it is used to contain a client's QoS 0 and QoS 1 subscription sets and any undelivered QoS 1 messages).\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmqttSessionClientId|x|\nmqttSessionVirtualRouter|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnMqttSession", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Session object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an MQTT Session object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions/{mqttSessionClientId},{mqttSessionVirtualRouter}/clearStats": { + "put": { + "description": "Clear the statistics for the MQTT Session.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnMqttSessionClearStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the statistics for the MQTT Session.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/queues": { + "get": { + "description": "Get a list of Queue objects.\n\nA Queue acts as both a destination that clients can publish messages to, and as an endpoint that clients can bind consumers to and consume messages from.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnQueues", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueuesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue objects.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}": { + "get": { + "description": "Get a Queue object.\n\nA Queue acts as both a destination that clients can publish messages to, and as an endpoint that clients can bind consumers to and consume messages from.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/cancelReplay": { + "put": { + "description": "Cancel the replay of messages to the Queue.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnQueueCancelReplay", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The Cancel Replay action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueCancelReplay" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Cancel the replay of messages to the Queue.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/clearStats": { + "put": { + "description": "Clear the statistics for the Queue.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnQueueClearStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the statistics for the Queue.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/copyMsgFromQueue": { + "put": { + "description": "Copy a message from another Queue to this Queue.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\nreplicationGroupMsgId|x|\nsourceQueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.29.", + "operationId": "doMsgVpnQueueCopyMsgFromQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The Copy Message From Queue action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueCopyMsgFromQueue" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Copy a message from another Queue to this Queue.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/copyMsgFromReplayLog": { + "put": { + "description": "Copy a message from a Replay Log to this Queue.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\nreplicationGroupMsgId|x|\nsourceReplayLogName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.29.", + "operationId": "doMsgVpnQueueCopyMsgFromReplayLog", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The Copy Message From Replay Log action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueCopyMsgFromReplayLog" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Copy a message from a Replay Log to this Queue.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/copyMsgFromTopicEndpoint": { + "put": { + "description": "Copy a message from a Topic Endpoint to this Queue.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\nreplicationGroupMsgId|x|\nsourceTopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.29.", + "operationId": "doMsgVpnQueueCopyMsgFromTopicEndpoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The Copy Message From Topic Endpoint action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueCopyMsgFromTopicEndpoint" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Copy a message from a Topic Endpoint to this Queue.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/deleteMsgs": { + "put": { + "description": "Delete all spooled messages from the Queue.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "doMsgVpnQueueDeleteMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The Delete All Messages action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueDeleteMsgs" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete all spooled messages from the Queue.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/msgs": { + "get": { + "description": "Get a list of Queue Message objects.\n\nA Queue Message is a packet of information sent from producers to consumers using the Queue.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnQueueMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue Message objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueMsgsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue Message objects.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/msgs/{msgId}": { + "get": { + "description": "Get a Queue Message object.\n\nA Queue Message is a packet of information sent from producers to consumers using the Queue.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnQueueMsg", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Message.", + "in": "path", + "name": "msgId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Message object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueMsgResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue Message object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/msgs/{msgId}/delete": { + "put": { + "description": "Delete the Message from the Queue.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnQueueMsgDelete", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Message.", + "in": "path", + "name": "msgId", + "required": true, + "type": "string" + }, + { + "description": "The Delete action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueMsgDelete" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete the Message from the Queue.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/startReplay": { + "put": { + "description": "Start the replay of messages to the Queue.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnQueueStartReplay", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The Start Replay action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueStartReplay" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Start the replay of messages to the Queue.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs": { + "get": { + "description": "Get a list of Replay Log objects.\n\nWhen the Message Replay feature is enabled, message brokers store persistent messages in a Replay Log. These messages are kept until the log is full, after which the oldest messages are removed to free up space for new messages.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nreplayLogName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnReplayLogs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Replay Log objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Replay Log objects.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs/{replayLogName}": { + "get": { + "description": "Get a Replay Log object.\n\nWhen the Message Replay feature is enabled, message brokers store persistent messages in a Replay Log. These messages are kept until the log is full, after which the oldest messages are removed to free up space for new messages.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nreplayLogName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnReplayLog", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replay Log object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Replay Log object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs/{replayLogName}/trimLoggedMsgs": { + "put": { + "description": "Trim (delete) messages from the Replay Log.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\nolderThanTime|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnReplayLogTrimLoggedMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "description": "The Trim Logged Messages action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogTrimLoggedMsgs" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Trim (delete) messages from the Replay Log.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints": { + "get": { + "description": "Get a list of REST Delivery Point objects.\n\nA REST Delivery Point manages delivery of messages from queues to a named list of REST Consumers.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnRestDeliveryPoints", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of REST Delivery Point objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of REST Delivery Point objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}": { + "get": { + "description": "Get a REST Delivery Point object.\n\nA REST Delivery Point manages delivery of messages from queues to a named list of REST Consumers.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnRestDeliveryPoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Delivery Point object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a REST Delivery Point object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers": { + "get": { + "description": "Get a list of REST Consumer objects.\n\nREST Consumer objects establish HTTP connectivity to REST consumer applications who wish to receive messages from a broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nrestConsumerName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumers", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of REST Consumer objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of REST Consumer objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}": { + "get": { + "description": "Get a REST Consumer object.\n\nREST Consumer objects establish HTTP connectivity to REST consumer applications who wish to receive messages from a broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nrestConsumerName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumer", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Consumer object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a REST Consumer object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}/clearStats": { + "put": { + "description": "Clear the statistics for the REST Consumer.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnRestDeliveryPointRestConsumerClearStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the statistics for the REST Consumer.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints": { + "get": { + "description": "Get a list of Topic Endpoint objects.\n\nA Topic Endpoint attracts messages published to a topic for which the Topic Endpoint has a matching topic subscription. The topic subscription for the Topic Endpoint is specified in the client request to bind a Flow to that Topic Endpoint. Queues are significantly more flexible than Topic Endpoints and are the recommended approach for most applications. The use of Topic Endpoints should be restricted to JMS applications.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnTopicEndpoints", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Endpoint objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Endpoint objects.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}": { + "get": { + "description": "Get a Topic Endpoint object.\n\nA Topic Endpoint attracts messages published to a topic for which the Topic Endpoint has a matching topic subscription. The topic subscription for the Topic Endpoint is specified in the client request to bind a Flow to that Topic Endpoint. Queues are significantly more flexible than Topic Endpoints and are the recommended approach for most applications. The use of Topic Endpoints should be restricted to JMS applications.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnTopicEndpoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Endpoint object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/cancelReplay": { + "put": { + "description": "Cancel the replay of messages to the Topic Endpoint.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnTopicEndpointCancelReplay", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The Cancel Replay action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointCancelReplay" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Cancel the replay of messages to the Topic Endpoint.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/clearStats": { + "put": { + "description": "Clear the statistics for the Topic Endpoint.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnTopicEndpointClearStats", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the statistics for the Topic Endpoint.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/copyMsgFromQueue": { + "put": { + "description": "Copy a message from a Queue to this Topic Endpoint.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\nreplicationGroupMsgId|x|\nsourceQueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.29.", + "operationId": "doMsgVpnTopicEndpointCopyMsgFromQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The Copy Message From Queue action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointCopyMsgFromQueue" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Copy a message from a Queue to this Topic Endpoint.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/copyMsgFromReplayLog": { + "put": { + "description": "Copy a message from a Replay Log to this Topic Endpoint.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\nreplicationGroupMsgId|x|\nsourceReplayLogName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.29.", + "operationId": "doMsgVpnTopicEndpointCopyMsgFromReplayLog", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The Copy Message From Replay Log action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointCopyMsgFromReplayLog" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Copy a message from a Replay Log to this Topic Endpoint.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/copyMsgFromTopicEndpoint": { + "put": { + "description": "Copy a message from another Topic Endpoint to this Topic Endpoint.\n\n\nAttribute|Required|Deprecated\n:---|:---:|:---:\nreplicationGroupMsgId|x|\nsourceTopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.29.", + "operationId": "doMsgVpnTopicEndpointCopyMsgFromTopicEndpoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The Copy Message From Topic Endpoint action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointCopyMsgFromTopicEndpoint" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Copy a message from another Topic Endpoint to this Topic Endpoint.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/deleteMsgs": { + "put": { + "description": "Delete all spooled messages from the Topic Endpoint.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "doMsgVpnTopicEndpointDeleteMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The Delete All Messages action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointDeleteMsgs" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete all spooled messages from the Topic Endpoint.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/msgs": { + "get": { + "description": "Get a list of Topic Endpoint Message objects.\n\nA Topic Endpoint Message is a packet of information sent from producers to consumers using the Topic Endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\ntopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnTopicEndpointMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Endpoint Message objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Endpoint Message objects.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/msgs/{msgId}": { + "get": { + "description": "Get a Topic Endpoint Message object.\n\nA Topic Endpoint Message is a packet of information sent from producers to consumers using the Topic Endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\ntopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnTopicEndpointMsg", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Message.", + "in": "path", + "name": "msgId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint Message object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Endpoint Message object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/msgs/{msgId}/delete": { + "put": { + "description": "Delete the Message from the Topic Endpoint.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnTopicEndpointMsgDelete", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Message.", + "in": "path", + "name": "msgId", + "required": true, + "type": "string" + }, + { + "description": "The Delete action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgDelete" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete the Message from the Topic Endpoint.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/startReplay": { + "put": { + "description": "Start the replay of messages to the Topic Endpoint.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "doMsgVpnTopicEndpointStartReplay", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The Start Replay action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointStartReplay" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Start the replay of messages to the Topic Endpoint.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions": { + "get": { + "description": "Get a list of Replicated Local Transaction or XA Transaction objects.\n\nTransactions can be used to group a set of Guaranteed messages to be published or consumed or both as an atomic unit of work.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nxid|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTransactions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Replicated Local Transaction or XA Transaction objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTransactionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Replicated Local Transaction or XA Transaction objects.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions/{xid}": { + "get": { + "description": "Get a Replicated Local Transaction or XA Transaction object.\n\nTransactions can be used to group a set of Guaranteed messages to be published or consumed or both as an atomic unit of work.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nxid|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTransaction", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Transaction.", + "in": "path", + "name": "xid", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replicated Local Transaction or XA Transaction object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTransactionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Replicated Local Transaction or XA Transaction object.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions/{xid}/commit": { + "put": { + "description": "Commit the Transaction.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "doMsgVpnTransactionCommit", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Transaction.", + "in": "path", + "name": "xid", + "required": true, + "type": "string" + }, + { + "description": "The Commit action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTransactionCommit" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Commit the Transaction.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions/{xid}/delete": { + "put": { + "description": "Delete the Transaction.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "doMsgVpnTransactionDelete", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Transaction.", + "in": "path", + "name": "xid", + "required": true, + "type": "string" + }, + { + "description": "The Delete action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTransactionDelete" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete the Transaction.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions/{xid}/rollback": { + "put": { + "description": "Rollback the Transaction.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "doMsgVpnTransactionRollback", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Transaction.", + "in": "path", + "name": "xid", + "required": true, + "type": "string" + }, + { + "description": "The Rollback action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTransactionRollback" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Rollback the Transaction.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/oauthProfiles": { + "get": { + "description": "Get a list of OAuth Profile objects.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfiles", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OAuth Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OAuth Profile objects.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}": { + "get": { + "description": "Get an OAuth Profile object.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfile", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OAuth Profile object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clearStats": { + "put": { + "description": "Clear the statistics for the OAuth Profile.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "doOauthProfileClearStats", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Clear Stats action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileClearStats" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Clear the statistics for the OAuth Profile.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/sessions": { + "get": { + "description": "Get a list of SEMP Session objects.\n\nAdministrative sessions for configuration and monitoring.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nsessionId|x|\nsessionUsername|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "getSessions", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of SEMP Session objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/SessionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of SEMP Session objects.", + "tags": [ + "all", + "session" + ] + } + }, + "/sessions/{sessionUsername},{sessionId}": { + "get": { + "description": "Get a SEMP Session object.\n\nAdministrative sessions for configuration and monitoring.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nsessionId|x|\nsessionUsername|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "getSession", + "parameters": [ + { + "description": "The username used for authorization.", + "in": "path", + "name": "sessionUsername", + "required": true, + "type": "string" + }, + { + "description": "The unique identifier for the session.", + "in": "path", + "name": "sessionId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The SEMP Session object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/SessionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a SEMP Session object.", + "tags": [ + "all", + "session" + ] + } + }, + "/sessions/{sessionUsername},{sessionId}/delete": { + "put": { + "description": "Delete the SEMP session.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "doSessionDelete", + "parameters": [ + { + "description": "The username used for authorization.", + "in": "path", + "name": "sessionUsername", + "required": true, + "type": "string" + }, + { + "description": "The unique identifier for the session.", + "in": "path", + "name": "sessionId", + "required": true, + "type": "string" + }, + { + "description": "The Delete action's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SessionDelete" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The action was successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The action was not successfully performed.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete the SEMP session.", + "tags": [ + "all", + "session" + ] + } + } + }, + "produces": [ + "application/json" + ], + "schemes": [ + "http", + "https" + ], + "securityDefinitions": { + "basicAuth": { + "description": "basic authentication", + "type": "basic" + } + }, + "swagger": "2.0", + "tags": [] +} \ No newline at end of file diff --git a/test/sempclient/spec/spec_config.json b/test/sempclient/spec/spec_config.json new file mode 100644 index 0000000..e14b76b --- /dev/null +++ b/test/sempclient/spec/spec_config.json @@ -0,0 +1,34135 @@ +{ + "basePath": "/SEMP/v2/config", + "consumes": [ + "application/json" + ], + "definitions": { + "About": { + "properties": {}, + "type": "object" + }, + "AboutApi": { + "properties": { + "platform": { + "description": "The platform running the SEMP API.", + "type": "string" + }, + "sempVersion": { + "description": "The version of the SEMP API.", + "type": "string" + } + }, + "type": "object" + }, + "AboutApiLinks": { + "properties": { + "uri": { + "description": "The URI of this API Description object.", + "type": "string" + } + }, + "type": "object" + }, + "AboutApiResponse": { + "properties": { + "data": { + "$ref": "#/definitions/AboutApi" + }, + "links": { + "$ref": "#/definitions/AboutApiLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutLinks": { + "properties": { + "apiUri": { + "description": "The URI of this About's API Description object. Available since 2.2.", + "type": "string" + }, + "uri": { + "description": "The URI of this About object.", + "type": "string" + }, + "userUri": { + "description": "The URI of this About's User object. Available since 2.2.", + "type": "string" + } + }, + "type": "object" + }, + "AboutResponse": { + "properties": { + "data": { + "$ref": "#/definitions/About" + }, + "links": { + "$ref": "#/definitions/AboutLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutUser": { + "properties": { + "globalAccessLevel": { + "description": "The global access level of the User. The allowed values and their meaning are:\n\n
\n\"admin\" - Full administrative access.\n\"none\" - No access.\n\"read-only\" - Read only access.\n\"read-write\" - Read and write access.\n
\n", + "enum": [ + "admin", + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "sessionActive": { + "description": "Indicates whether a session is active for this request. Available since 2.24.", + "type": "boolean" + }, + "sessionCreateTime": { + "description": "The timestamp of when the session was created. This attribute may not be returned in a GET. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "sessionCurrentTime": { + "description": "The current server timestamp. This is provided as a reference point for the other timestamps provided. This attribute may not be returned in a GET. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "sessionHardExpiryTime": { + "description": "The hard expiry time for the session. After this time the session will be invalid, regardless of activity. This attribute may not be returned in a GET. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "sessionId": { + "description": "An identifier for the session to differentiate this session from other sessions for the same user. This value is not guaranteed to be unique between active sessions for different users. This attribute may not be returned in a GET. Available since 2.21.", + "type": "string" + }, + "sessionIdleExpiryTime": { + "description": "The session idle expiry time. After this time the session will be invalid if there has been no activity. This attribute may not be returned in a GET. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "username": { + "description": "The username of the User. Available since 2.21.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserLinks": { + "properties": { + "msgVpnsUri": { + "description": "The URI of this User's collection of User Message VPN objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this User object.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserMsgVpn": { + "properties": { + "accessLevel": { + "description": "The Message VPN access level of the User. The allowed values and their meaning are:\n\n
\n\"none\" - No access.\n\"read-only\" - Read only access.\n\"read-write\" - Read and write access.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserMsgVpnLinks": { + "properties": { + "uri": { + "description": "The URI of this User Message VPN object.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserMsgVpnResponse": { + "properties": { + "data": { + "$ref": "#/definitions/AboutUserMsgVpn" + }, + "links": { + "$ref": "#/definitions/AboutUserMsgVpnLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutUserMsgVpnsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/AboutUserMsgVpn" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/AboutUserMsgVpnLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutUserResponse": { + "properties": { + "data": { + "$ref": "#/definitions/AboutUser" + }, + "links": { + "$ref": "#/definitions/AboutUserLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "Broker": { + "properties": { + "authClientCertRevocationCheckMode": { + "description": "The client certificate revocation checking mode used when a client authenticates with a client certificate. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"none\"`. The allowed values and their meaning are:\n\n
\n\"none\" - Do not perform any certificate revocation checking.\n\"ocsp\" - Use the Open Certificate Status Protcol (OCSP) for certificate revocation checking.\n\"crl\" - Use Certificate Revocation Lists (CRL) for certificate revocation checking.\n\"ocsp-crl\" - Use OCSP first, but if OCSP fails to return an unambiguous result, then check via CRL.\n
\n", + "enum": [ + "none", + "ocsp", + "crl", + "ocsp-crl" + ], + "type": "string" + }, + "configSyncAuthenticationClientCertMaxChainDepth": { + "description": "The maximum depth for a client certificate chain. The depth of a chain is defined as the number of signing CA certificates that are present in the chain back to a trusted self-signed root CA certificate. The default value is `3`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncAuthenticationClientCertValidateDateEnabled": { + "description": "Enable or disable validation of the \"Not Before\" and \"Not After\" validity dates in the authentication certificate(s). The default value is `true`. Available since 2.22.", + "type": "boolean" + }, + "configSyncClientProfileTcpInitialCongestionWindow": { + "description": "The TCP initial congestion window size for Config Sync clients, in multiples of the TCP Maximum Segment Size (MSS). Changing the value from its default of 2 results in non-compliance with RFC 2581. Contact support before changing this value. The default value is `2`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncClientProfileTcpKeepaliveCount": { + "description": "The number of TCP keepalive retransmissions to a client using the Client Profile before declaring that it is not available. The default value is `5`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncClientProfileTcpKeepaliveIdle": { + "description": "The amount of time a client connection using the Client Profile must remain idle before TCP begins sending keepalive probes, in seconds. The default value is `3`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncClientProfileTcpKeepaliveInterval": { + "description": "The amount of time between TCP keepalive retransmissions to a client using the Client Profile when no acknowledgement is received, in seconds. The default value is `1`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncClientProfileTcpMaxWindow": { + "description": "The TCP maximum window size for clients using the Client Profile, in kilobytes. Changes are applied to all existing connections. The default value is `256`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncClientProfileTcpMss": { + "description": "The TCP maximum segment size for clients using the Client Profile, in bytes. Changes are applied to all existing connections. The default value is `1460`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncEnabled": { + "description": "Enable or disable configuration synchronization for High Availability or Disaster Recovery. The default value is `false`. Available since 2.22.", + "type": "boolean" + }, + "configSyncSynchronizeUsernameEnabled": { + "description": "Enable or disable the synchronizing of usernames within High Availability groups. The transition from not synchronizing to synchronizing will cause the High Availability mate to fall out of sync. Recommendation: leave this as enabled. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`. Available since 2.22.", + "type": "boolean" + }, + "configSyncTlsEnabled": { + "description": "Enable or disable the use of TLS encryption of the configuration synchronization communications between brokers in High Availability groups and/or Disaster Recovery sites. The default value is `false`. Available since 2.22.", + "type": "boolean" + }, + "guaranteedMsgingDefragmentationScheduleDayList": { + "description": "The days of the week to schedule defragmentation runs, specified as \"daily\" or as a comma-separated list of days. Days must be specified as \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri, or \"Sat\", with no spaces, and in sorted order from Sunday to Saturday. Please note \"Sun,Mon,Tue,Wed,Thu,Fri,Sat\" is not allowed, use \"daily\" instead. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"daily\"`. Available since 2.25.", + "type": "string" + }, + "guaranteedMsgingDefragmentationScheduleEnabled": { + "description": "Enable or disable schedule-based defragmentation of Guaranteed Messaging spool files. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.25.", + "type": "boolean" + }, + "guaranteedMsgingDefragmentationScheduleTimeList": { + "description": "The times of the day to schedule defragmentation runs, specified as \"hourly\" or as a comma-separated list of 24-hour times in the form hh:mm, or h:mm. There must be no spaces, and times (up to 4) must be in sorted order from 0:00 to 23:59. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"0:00\"`. Available since 2.25.", + "type": "string" + }, + "guaranteedMsgingDefragmentationThresholdEnabled": { + "description": "Enable or disable threshold-based defragmentation of Guaranteed Messaging spool files. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.25.", + "type": "boolean" + }, + "guaranteedMsgingDefragmentationThresholdFragmentationPercentage": { + "description": "Percentage of spool fragmentation needed to trigger defragmentation run. The minimum value allowed is 30%. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `50`. Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingDefragmentationThresholdMinInterval": { + "description": "Minimum interval of time (in minutes) between defragmentation runs triggered by thresholds. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `15`. Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingDefragmentationThresholdUsagePercentage": { + "description": "Percentage of spool usage needed to trigger defragmentation run. The minimum value allowed is 30%. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `50`. Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingEnabled": { + "description": "Enable or disable Guaranteed Messaging. The default value is `false`. Available since 2.18.", + "type": "boolean" + }, + "guaranteedMsgingEventCacheUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventDeliveredUnackedThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "guaranteedMsgingEventDiskUsageThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "guaranteedMsgingEventEgressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventEndpointCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventIngressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventMsgCountThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "guaranteedMsgingEventMsgSpoolFileCountThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "guaranteedMsgingEventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventTransactedSessionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventTransactedSessionResourceCountThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "guaranteedMsgingEventTransactionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingMaxCacheUsage": { + "description": "Guaranteed messaging cache usage limit. Expressed as a maximum percentage of the NAB's egress queueing. resources that the guaranteed message cache is allowed to use. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `10`. Available since 2.18.", + "format": "int32", + "type": "integer" + }, + "guaranteedMsgingMaxMsgSpoolUsage": { + "description": "The maximum total message spool usage allowed across all VPNs on this broker, in megabytes. Recommendation: the maximum value should be less than 90% of the disk space allocated for the guaranteed message spool. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `1500`. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingMsgSpoolSyncMirroredMsgAckTimeout": { + "description": "The maximum time, in milliseconds, that can be tolerated for remote acknowledgement of synchronization messages before which the remote system will be considered out of sync. The default value is `10000`. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingMsgSpoolSyncMirroredSpoolFileAckTimeout": { + "description": "The maximum time, in milliseconds, that can be tolerated for remote disk writes before which the remote system will be considered out of sync. The default value is `10000`. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingTransactionReplicationCompatibilityMode": { + "description": "The replication compatibility mode for the router. The default value is `\"legacy\"`. The allowed values and their meaning are:\"legacy\" - All transactions originated by clients are replicated to the standby site without using transactions.\"transacted\" - All transactions originated by clients are replicated to the standby site using transactions. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"legacy\"`. The allowed values and their meaning are:\n\n
\n\"legacy\" - All transactions originated by clients are replicated to the standby site without using transactions.\n\"transacted\" - All transactions originated by clients are replicated to the standby site using transactions.\n
\n Available since 2.18.", + "enum": [ + "legacy", + "transacted" + ], + "type": "string" + }, + "oauthProfileDefault": { + "description": "The default OAuth profile for OAuth authenticated SEMP requests. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`. Available since 2.24.", + "type": "string" + }, + "serviceAmqpEnabled": { + "description": "Enable or disable the AMQP service. When disabled new AMQP Clients may not connect through the global or per-VPN AMQP listen-ports, and all currently connected AMQP Clients are immediately disconnected. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.17.", + "type": "boolean" + }, + "serviceAmqpTlsListenPort": { + "description": "TCP port number that AMQP clients can use to connect to the broker using raw TCP over TLS. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceAmqpEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `0`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceEventConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "serviceHealthCheckEnabled": { + "description": "Enable or disable the plain-text health-check service. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.17.", + "type": "boolean" + }, + "serviceHealthCheckListenPort": { + "description": "The port number for the plain-text health-check service. The port must be unique across the message backbone. The health-check service must be disabled to change the port. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceHealthCheckEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `5550`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceHealthCheckTlsEnabled": { + "description": "Enable or disable the TLS health-check service. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.34.", + "type": "boolean" + }, + "serviceHealthCheckTlsListenPort": { + "description": "The port number for the TLS health-check service. The port must be unique across the message backbone. The health-check service must be disabled to change the port. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceHealthCheckTlsEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `0`. Available since 2.34.", + "format": "int64", + "type": "integer" + }, + "serviceMateLinkEnabled": { + "description": "Enable or disable the mate-link service. The default value is `true`. Available since 2.17.", + "type": "boolean" + }, + "serviceMateLinkListenPort": { + "description": "The port number for the mate-link service. The port must be unique across the message backbone. The mate-link service must be disabled to change the port. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceMateLinkEnabled will be temporarily set to false to apply the change. The default value is `8741`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceMqttEnabled": { + "description": "Enable or disable the MQTT service. When disabled new MQTT Clients may not connect through the per-VPN MQTT listen-ports, and all currently connected MQTT Clients are immediately disconnected. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.17.", + "type": "boolean" + }, + "serviceMsgBackboneEnabled": { + "description": "Enable or disable the msg-backbone service. When disabled new Clients may not connect through global or per-VPN listen-ports, and all currently connected Clients are immediately disconnected. The default value is `true`. Available since 2.17.", + "type": "boolean" + }, + "serviceRedundancyEnabled": { + "description": "Enable or disable the redundancy service. The default value is `true`. Available since 2.17.", + "type": "boolean" + }, + "serviceRedundancyFirstListenPort": { + "description": "The first listen-port used for the redundancy service. Redundancy uses this port and the subsequent 2 ports. These port must be unique across the message backbone. The redundancy service must be disabled to change this port. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceRedundancyEnabled will be temporarily set to false to apply the change. The default value is `8300`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceRestEventOutgoingConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "serviceRestIncomingEnabled": { + "description": "Enable or disable the REST service incoming connections on the router. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.17.", + "type": "boolean" + }, + "serviceRestOutgoingEnabled": { + "description": "Enable or disable the REST service outgoing connections on the router. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.17.", + "type": "boolean" + }, + "serviceSempCorsAllowAnyHostEnabled": { + "description": "Enable or disable cross origin resource requests for the SEMP service. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`. Available since 2.24.", + "type": "boolean" + }, + "serviceSempLegacyTimeoutEnabled": { + "description": "Enable or disable extended SEMP timeouts for paged GETs. When a request times out, it returns the current page of content, even if the page is not full. When enabled, the timeout is 60 seconds. When disabled, the timeout is 5 seconds. The recommended setting is disabled (no legacy-timeout). This parameter is intended as a temporary workaround to be used until SEMP clients can handle short pages. This setting will be removed in a future release. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.18.", + "type": "boolean" + }, + "serviceSempPlainTextEnabled": { + "description": "Enable or disable plain-text SEMP service. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`. Available since 2.17.", + "type": "boolean" + }, + "serviceSempPlainTextListenPort": { + "description": "The TCP port for plain-text SEMP client connections. This attribute cannot be cannot be changed while serviceSempPlainTextEnabled are set to true. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `80`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceSempSessionIdleTimeout": { + "description": "The session idle timeout, in minutes. Sessions will be invalidated if there is no activity in this period of time. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `15`. Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "serviceSempSessionMaxLifetime": { + "description": "The maximum lifetime of a session, in minutes. Sessions will be invalidated after this period of time, regardless of activity. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `43200`. Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "serviceSempTlsEnabled": { + "description": "Enable or disable TLS SEMP service. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`. Available since 2.17.", + "type": "boolean" + }, + "serviceSempTlsListenPort": { + "description": "The TCP port for TLS SEMP client connections. This attribute cannot be cannot be changed while serviceSempTlsEnabled are set to true. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `1943`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceSmfCompressionListenPort": { + "description": "TCP port number that SMF clients can use to connect to the broker using raw compression TCP. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceSmfEnabled will be temporarily set to false to apply the change. The default value is `55003`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceSmfEnabled": { + "description": "Enable or disable the SMF service. When disabled new SMF Clients may not connect through the global listen-ports, and all currently connected SMF Clients are immediately disconnected. The default value is `true`. Available since 2.17.", + "type": "boolean" + }, + "serviceSmfEventConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "serviceSmfPlainTextListenPort": { + "description": "TCP port number that SMF clients can use to connect to the broker using raw TCP. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceSmfEnabled will be temporarily set to false to apply the change. The default value is `55555`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceSmfRoutingControlListenPort": { + "description": "TCP port number that SMF clients can use to connect to the broker using raw routing control TCP. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceSmfEnabled will be temporarily set to false to apply the change. The default value is `55556`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceSmfTlsListenPort": { + "description": "TCP port number that SMF clients can use to connect to the broker using raw TCP over TLS. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceSmfEnabled will be temporarily set to false to apply the change. The default value is `55443`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceTlsEventConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "serviceWebTransportEnabled": { + "description": "Enable or disable the web-transport service. When disabled new web-transport Clients may not connect through the global listen-ports, and all currently connected web-transport Clients are immediately disconnected. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.17.", + "type": "boolean" + }, + "serviceWebTransportPlainTextListenPort": { + "description": "The TCP port for plain-text WEB client connections. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceWebTransportEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `8008`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceWebTransportTlsListenPort": { + "description": "The TCP port for TLS WEB client connections. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceWebTransportEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `1443`. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceWebTransportWebUrlSuffix": { + "description": "Used to specify the Web URL suffix that will be used by Web clients when communicating with the broker. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceWebTransportEnabled will be temporarily set to false to apply the change. The default value is `\"\"`. Available since 2.17.", + "type": "string" + }, + "tlsBlockVersion11Enabled": { + "description": "Enable or disable the blocking of TLS version 1.1 connections. When blocked, all existing incoming and outgoing TLS 1.1 connections with Clients, SEMP users, and LDAP servers remain connected while new connections are blocked. Note that support for TLS 1.1 will eventually be discontinued, at which time TLS 1.1 connections will be blocked regardless of this setting. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "tlsCipherSuiteManagementList": { + "description": "The colon-separated list of cipher suites used for TLS management connections (e.g. SEMP, LDAP). The value \"default\" implies all supported suites ordered from most secure to least secure. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"default\"`.", + "type": "string" + }, + "tlsCipherSuiteMsgBackboneList": { + "description": "The colon-separated list of cipher suites used for TLS data connections (e.g. client pub/sub). The value \"default\" implies all supported suites ordered from most secure to least secure. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"default\"`.", + "type": "string" + }, + "tlsCipherSuiteSecureShellList": { + "description": "The colon-separated list of cipher suites used for TLS secure shell connections (e.g. SSH, SFTP, SCP). The value \"default\" implies all supported suites ordered from most secure to least secure. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"default\"`.", + "type": "string" + }, + "tlsCrimeExploitProtectionEnabled": { + "description": "Enable or disable protection against the CRIME exploit. When enabled, TLS+compressed messaging performance is degraded. This protection should only be disabled if sufficient ACL and authentication features are being employed such that a potential attacker does not have sufficient access to trigger the exploit. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "tlsServerCertContent": { + "description": "The PEM formatted content for the server certificate used for TLS connections. It must consist of a private key and between one and three certificates comprising the certificate trust chain. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changing this attribute requires an HTTPS connection. The default value is `\"\"`.", + "type": "string", + "x-requires-https": true + }, + "tlsServerCertPassword": { + "description": "The password for the server certificate used for TLS connections. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changing this attribute requires an HTTPS connection. The default value is `\"\"`.", + "type": "string", + "x-requires-https": true + }, + "tlsStandardDomainCertificateAuthoritiesEnabled": { + "description": "Enable or disable the standard domain certificate authority list. The default value is `true`. Available since 2.19.", + "type": "boolean" + }, + "tlsTicketLifetime": { + "description": "The TLS ticket lifetime in seconds. When a client connects with TLS, a session with a session ticket is created using the TLS ticket lifetime which determines how long the client has to resume the session. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `86400`.", + "format": "int32", + "type": "integer" + }, + "webManagerAllowUnencryptedWizardsEnabled": { + "description": "Enable or disable the use of unencrypted wizards in the Web-based Manager UI. This setting should be left at its default on all production systems or other systems that need to be secure. Enabling this option will permit the broker to forward plain-text data to other brokers, making important information or credentials available for snooping. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Available since 2.28.", + "type": "boolean" + }, + "webManagerCustomization": { + "description": "Reserved for internal use by Solace. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`. Available since 2.25.", + "type": "string" + }, + "webManagerRedirectHttpEnabled": { + "description": "Enable or disable redirection of HTTP requests for the broker manager to HTTPS. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`. Available since 2.24.", + "type": "boolean" + }, + "webManagerRedirectHttpOverrideTlsPort": { + "description": "The HTTPS port that HTTP requests will be redirected towards in a HTTP 301 redirect response. Zero is a special value that means use the value specified for the SEMP TLS port value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `0`. Available since 2.24.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerLinks": { + "properties": { + "aboutUri": { + "description": "The URI of this Broker's About object.", + "type": "string" + }, + "certAuthoritiesUri": { + "description": "The URI of this Broker's collection of Certificate Authority objects. Deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "clientCertAuthoritiesUri": { + "description": "The URI of this Broker's collection of Client Certificate Authority objects. Available since 2.19.", + "type": "string" + }, + "dmrClustersUri": { + "description": "The URI of this Broker's collection of Cluster objects. Available since 2.11.", + "type": "string" + }, + "domainCertAuthoritiesUri": { + "description": "The URI of this Broker's collection of Domain Certificate Authority objects. Available since 2.19.", + "type": "string" + }, + "msgVpnsUri": { + "description": "The URI of this Broker's collection of Message VPN objects. Available since 2.0.", + "type": "string" + }, + "oauthProfilesUri": { + "description": "The URI of this Broker's collection of OAuth Profile objects. Available since 2.24.", + "type": "string" + }, + "systemInformationUri": { + "description": "The URI of this Broker's System Information object. Deprecated since 2.2. /systemInformation was replaced by /about/api.", + "type": "string" + }, + "uri": { + "description": "The URI of this Broker object.", + "type": "string" + }, + "virtualHostnamesUri": { + "description": "The URI of this Broker's collection of Virtual Hostname objects. Available since 2.17.", + "type": "string" + } + }, + "type": "object" + }, + "BrokerResponse": { + "properties": { + "data": { + "$ref": "#/definitions/Broker" + }, + "links": { + "$ref": "#/definitions/BrokerLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "CertAuthoritiesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/CertAuthority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/CertAuthorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "CertAuthority": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority. Deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "certContent": { + "description": "The PEM formatted content for the trusted root certificate of a Certificate Authority. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "crlDayList": { + "description": "The scheduled CRL refresh day(s), specified as \"daily\" or a comma-separated list of days. Days must be specified as \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", or \"Sat\", with no spaces, and in sorted order from Sunday to Saturday. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"daily\"`. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "crlTimeList": { + "description": "The scheduled CRL refresh time(s), specified as \"hourly\" or a comma-separated list of 24-hour times in the form hh:mm, or h:mm. There must be no spaces, and times must be in sorted order from 0:00 to 23:59. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"3:00\"`. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "crlUrl": { + "description": "The URL for the CRL source. This is a required attribute for CRL to be operational and the URL must be complete with http:// included. IPv6 addresses must be enclosed in square-brackets. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as revocationCheckEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "ocspNonResponderCertEnabled": { + "description": "Enable or disable allowing a non-responder certificate to sign an OCSP response. Typically used with an OCSP override URL in cases where a single certificate is used to sign client certificates and OCSP responses. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "boolean" + }, + "ocspOverrideUrl": { + "description": "The OCSP responder URL to use for overriding the one supplied in the client certificate. The URL must be complete with http:// included. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "ocspTimeout": { + "description": "The timeout in seconds to receive a response from the OCSP responder after sending a request or making the initial connection attempt. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `5`. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "format": "int64", + "type": "integer" + }, + "revocationCheckEnabled": { + "description": "Enable or disable Certificate Authority revocation checking. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "boolean" + } + }, + "type": "object" + }, + "CertAuthorityLinks": { + "properties": { + "ocspTlsTrustedCommonNamesUri": { + "description": "The URI of this Certificate Authority's collection of OCSP Responder Trusted Common Name objects. Deprecated since 2.19. Replaced by clientCertAuthorities.", + "type": "string" + }, + "uri": { + "description": "The URI of this Certificate Authority object.", + "type": "string" + } + }, + "type": "object" + }, + "CertAuthorityOcspTlsTrustedCommonName": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority. Deprecated since 2.19. Replaced by clientCertAuthorities.", + "type": "string" + }, + "ocspTlsTrustedCommonName": { + "description": "The expected Trusted Common Name of the OCSP responder remote certificate. Deprecated since 2.19. Replaced by clientCertAuthorities.", + "type": "string" + } + }, + "type": "object" + }, + "CertAuthorityOcspTlsTrustedCommonNameLinks": { + "properties": { + "uri": { + "description": "The URI of this OCSP Responder Trusted Common Name object.", + "type": "string" + } + }, + "type": "object" + }, + "CertAuthorityOcspTlsTrustedCommonNameResponse": { + "properties": { + "data": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonName" + }, + "links": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "CertAuthorityOcspTlsTrustedCommonNamesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonName" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "CertAuthorityResponse": { + "properties": { + "data": { + "$ref": "#/definitions/CertAuthority" + }, + "links": { + "$ref": "#/definitions/CertAuthorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ClientCertAuthoritiesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/ClientCertAuthority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/ClientCertAuthorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ClientCertAuthority": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority.", + "type": "string" + }, + "certContent": { + "description": "The PEM formatted content for the trusted root certificate of a client Certificate Authority. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "crlDayList": { + "description": "The scheduled CRL refresh day(s), specified as \"daily\" or a comma-separated list of days. Days must be specified as \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", or \"Sat\", with no spaces, and in sorted order from Sunday to Saturday. The empty-string (\"\") can also be specified, indicating no schedule is configured (\"crlTimeList\" must also be configured to the empty-string). Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"daily\"`.", + "type": "string" + }, + "crlTimeList": { + "description": "The scheduled CRL refresh time(s), specified as \"hourly\" or a comma-separated list of 24-hour times in the form hh:mm, or h:mm. There must be no spaces, and times (up to 4) must be in sorted order from 0:00 to 23:59. The empty-string (\"\") can also be specified, indicating no schedule is configured (\"crlDayList\" must also be configured to the empty-string). Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"3:00\"`.", + "type": "string" + }, + "crlUrl": { + "description": "The URL for the CRL source. This is a required attribute for CRL to be operational and the URL must be complete with http:// included. IPv6 addresses must be enclosed in square-brackets. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as revocationCheckEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "ocspNonResponderCertEnabled": { + "description": "Enable or disable allowing a non-responder certificate to sign an OCSP response. Typically used with an OCSP override URL in cases where a single certificate is used to sign client certificates and OCSP responses. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "ocspOverrideUrl": { + "description": "The OCSP responder URL to use for overriding the one supplied in the client certificate. The URL must be complete with http:// included. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "ocspTimeout": { + "description": "The timeout in seconds to receive a response from the OCSP responder after sending a request or making the initial connection attempt. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `5`.", + "format": "int64", + "type": "integer" + }, + "revocationCheckEnabled": { + "description": "Enable or disable Certificate Authority revocation checking. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + } + }, + "type": "object" + }, + "ClientCertAuthorityLinks": { + "properties": { + "ocspTlsTrustedCommonNamesUri": { + "description": "The URI of this Client Certificate Authority's collection of OCSP Responder Trusted Common Name objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Client Certificate Authority object.", + "type": "string" + } + }, + "type": "object" + }, + "ClientCertAuthorityOcspTlsTrustedCommonName": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority.", + "type": "string" + }, + "ocspTlsTrustedCommonName": { + "description": "The expected Trusted Common Name of the OCSP responder remote certificate.", + "type": "string" + } + }, + "type": "object" + }, + "ClientCertAuthorityOcspTlsTrustedCommonNameLinks": { + "properties": { + "uri": { + "description": "The URI of this OCSP Responder Trusted Common Name object.", + "type": "string" + } + }, + "type": "object" + }, + "ClientCertAuthorityOcspTlsTrustedCommonNameResponse": { + "properties": { + "data": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonName" + }, + "links": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ClientCertAuthorityOcspTlsTrustedCommonNamesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonName" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ClientCertAuthorityResponse": { + "properties": { + "data": { + "$ref": "#/definitions/ClientCertAuthority" + }, + "links": { + "$ref": "#/definitions/ClientCertAuthorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrCluster": { + "properties": { + "authenticationBasicEnabled": { + "description": "Enable or disable basic authentication for Cluster Links. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "authenticationBasicPassword": { + "description": "The password used to authenticate incoming Cluster Links when using basic internal authentication. The same password is also used by outgoing Cluster Links if a per-Link password is not configured. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "authenticationBasicType": { + "description": "The type of basic authentication to use for Cluster Links. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"internal\"`. The allowed values and their meaning are:\n\n
\n\"internal\" - Use locally configured password.\n\"none\" - No authentication.\n
\n", + "enum": [ + "internal", + "none" + ], + "type": "string" + }, + "authenticationClientCertContent": { + "description": "The PEM formatted content for the client certificate used to login to the remote node. It must consist of a private key and between one and three certificates comprising the certificate trust chain. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changing this attribute requires an HTTPS connection. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. The default value is `\"\"`.", + "type": "string", + "x-requires-https": true + }, + "authenticationClientCertEnabled": { + "description": "Enable or disable client certificate authentication for Cluster Links. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "authenticationClientCertPassword": { + "description": "The password for the client certificate. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changing this attribute requires an HTTPS connection. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. The default value is `\"\"`.", + "type": "string", + "x-requires-https": true + }, + "directOnlyEnabled": { + "description": "Enable or disable direct messaging only. Guaranteed messages will not be transmitted through the cluster. The default value is `false`.", + "type": "boolean" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "enabled": { + "description": "Enable or disable the Cluster. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "nodeName": { + "description": "The name of this node in the Cluster. This is the name that this broker (or redundant group of brokers) is know by to other nodes in the Cluster. The name is chosen automatically to be either this broker's Router Name or Mate Router Name, depending on which Active Standby Role (primary or backup) this broker plays in its redundancy group.", + "type": "string" + }, + "tlsServerCertEnforceTrustedCommonNameEnabled": { + "description": "Enable or disable the enforcing of the common name provided by the remote broker against the list of trusted common names configured for the Link. If enabled, the certificate's common name must match one of the trusted common names for the Link to be accepted. Common Name validation is not performed if Server Certificate Name Validation is enabled, even if Common Name validation is enabled. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "boolean" + }, + "tlsServerCertMaxChainDepth": { + "description": "The maximum allowed depth of a certificate chain. The depth of a chain is defined as the number of signing CA certificates that are present in the chain back to a trusted self-signed root CA certificate. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `3`.", + "format": "int64", + "type": "integer" + }, + "tlsServerCertValidateDateEnabled": { + "description": "Enable or disable the validation of the \"Not Before\" and \"Not After\" validity dates in the certificate. When disabled, the certificate is accepted even if the certificate is not valid based on these dates. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "tlsServerCertValidateNameEnabled": { + "description": "Enable or disable the standard TLS authentication mechanism of verifying the name used to connect to the bridge. If enabled, the name used to connect to the bridge is checked against the names specified in the certificate returned by the remote router. Legacy Common Name validation is not performed if Server Certificate Name Validation is enabled, even if Common Name validation is also enabled. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`. Available since 2.18.", + "type": "boolean" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRule": { + "properties": { + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "enabled": { + "description": "Enable or disable a certificate matching rule. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleAttributeFilter": { + "properties": { + "attributeName": { + "description": "Link Attribute to be tested. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "attributeValue": { + "description": "Expected attribute value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "filterName": { + "description": "The name of the filter.", + "type": "string" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleAttributeFilterLinks": { + "properties": { + "uri": { + "description": "The URI of this Certificate Matching Rule Attribute Filter object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleAttributeFilterResponse": { + "properties": { + "data": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilter" + }, + "links": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCertMatchingRuleAttributeFiltersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilter" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCertMatchingRuleCondition": { + "properties": { + "attribute": { + "description": "Link Attribute to be compared with certificate content. Either an attribute or an expression must be provided on creation, but not both. The default value is `\"\"`.", + "type": "string" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "expression": { + "description": "Glob expression to be matched with certificate content. Either an expression or an attribute must be provided on creation, but not both. The default value is `\"\"`.", + "type": "string" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + }, + "source": { + "description": "Certificate field to be compared with the Attribute. The allowed values and their meaning are:\n\n
\n\"certificate-thumbprint\" - The attribute is computed as the SHA-1 hash over the entire DER-encoded contents of the client certificate.\n\"common-name\" - The attribute is extracted from the certificate's first instance of the Common Name attribute in the Subject DN.\n\"common-name-last\" - The attribute is extracted from the certificate's last instance of the Common Name attribute in the Subject DN.\n\"subject-alternate-name-msupn\" - The attribute is extracted from the certificate's Other Name type of the Subject Alternative Name and must have the msUPN signature.\n\"uid\" - The attribute is extracted from the certificate's first instance of the User Identifier attribute in the Subject DN.\n\"uid-last\" - The attribute is extracted from the certificate's last instance of the User Identifier attribute in the Subject DN.\n\"org-unit\" - The attribute is extracted from the certificate's first instance of the Org Unit attribute in the Subject DN.\n\"org-unit-last\" - The attribute is extracted from the certificate's last instance of the Org Unit attribute in the Subject DN.\n\"issuer\" - The attribute is extracted from the certificate's Issuer DN.\n\"subject\" - The attribute is extracted from the certificate's Subject DN.\n\"serial-number\" - The attribute is extracted from the certificate's Serial Number.\n\"dns-name\" - The attribute is extracted from the certificate's Subject Alt Name DNSName.\n\"ip-address\" - The attribute is extracted from the certificate's Subject Alt Name IPAddress.\n
\n", + "enum": [ + "certificate-thumbprint", + "common-name", + "common-name-last", + "subject-alternate-name-msupn", + "uid", + "uid-last", + "org-unit", + "org-unit-last", + "issuer", + "subject", + "serial-number", + "dns-name", + "ip-address" + ], + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleConditionLinks": { + "properties": { + "uri": { + "description": "The URI of this Certificate Matching Rule Condition object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleConditionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleCondition" + }, + "links": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCertMatchingRuleConditionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleCondition" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCertMatchingRuleLinks": { + "properties": { + "attributeFiltersUri": { + "description": "The URI of this Certificate Matching Rule's collection of Certificate Matching Rule Attribute Filter objects.", + "type": "string" + }, + "conditionsUri": { + "description": "The URI of this Certificate Matching Rule's collection of Certificate Matching Rule Condition objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Certificate Matching Rule object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleResponse": { + "properties": { + "data": { + "$ref": "#/definitions/DmrClusterCertMatchingRule" + }, + "links": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCertMatchingRulesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRule" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLink": { + "properties": { + "authenticationBasicPassword": { + "description": "The password used to authenticate with the remote node when using basic internal authentication. If this per-Link password is not configured, the Cluster's password is used instead. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "authenticationScheme": { + "description": "The authentication scheme to be used by the Link which initiates connections to the remote node. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"basic\"`. The allowed values and their meaning are:\n\n
\n\"basic\" - Basic Authentication Scheme (via username and password).\n\"client-certificate\" - Client Certificate Authentication Scheme (via certificate file or content).\n
\n", + "enum": [ + "basic", + "client-certificate" + ], + "type": "string" + }, + "clientProfileQueueControl1MaxDepth": { + "description": "The maximum depth of the \"Control 1\" (C-1) priority queue, in work units. Each work unit is 2048 bytes of message data. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `20000`.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueControl1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Control 1\" (C-1) priority queue, regardless of the `clientProfileQueueControl1MaxDepth` value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `4`.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect1MaxDepth": { + "description": "The maximum depth of the \"Direct 1\" (D-1) priority queue, in work units. Each work unit is 2048 bytes of message data. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `20000`.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 1\" (D-1) priority queue, regardless of the `clientProfileQueueDirect1MaxDepth` value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `4`.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect2MaxDepth": { + "description": "The maximum depth of the \"Direct 2\" (D-2) priority queue, in work units. Each work unit is 2048 bytes of message data. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `20000`.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect2MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 2\" (D-2) priority queue, regardless of the `clientProfileQueueDirect2MaxDepth` value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `4`.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect3MaxDepth": { + "description": "The maximum depth of the \"Direct 3\" (D-3) priority queue, in work units. Each work unit is 2048 bytes of message data. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `20000`.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect3MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 3\" (D-3) priority queue, regardless of the `clientProfileQueueDirect3MaxDepth` value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `4`.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueGuaranteed1MaxDepth": { + "description": "The maximum depth of the \"Guaranteed 1\" (G-1) priority queue, in work units. Each work unit is 2048 bytes of message data. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `20000`.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueGuaranteed1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Guaranteed 1\" (G-3) priority queue, regardless of the `clientProfileQueueGuaranteed1MaxDepth` value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `255`.", + "format": "int32", + "type": "integer" + }, + "clientProfileTcpCongestionWindowSize": { + "description": "The TCP initial congestion window size, in multiples of the TCP Maximum Segment Size (MSS). Changing the value from its default of 2 results in non-compliance with RFC 2581. Contact support before changing this value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `2`.", + "format": "int64", + "type": "integer" + }, + "clientProfileTcpKeepaliveCount": { + "description": "The number of TCP keepalive retransmissions to be carried out before declaring that the remote end is not available. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `5`.", + "format": "int64", + "type": "integer" + }, + "clientProfileTcpKeepaliveIdleTime": { + "description": "The amount of time a connection must remain idle before TCP begins sending keepalive probes, in seconds. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `3`.", + "format": "int64", + "type": "integer" + }, + "clientProfileTcpKeepaliveInterval": { + "description": "The amount of time between TCP keepalive retransmissions when no acknowledgement is received, in seconds. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `1`.", + "format": "int64", + "type": "integer" + }, + "clientProfileTcpMaxSegmentSize": { + "description": "The TCP maximum segment size, in bytes. Changes are applied to all existing connections. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `1460`.", + "format": "int64", + "type": "integer" + }, + "clientProfileTcpMaxWindowSize": { + "description": "The TCP maximum window size, in kilobytes. Changes are applied to all existing connections. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `256`.", + "format": "int64", + "type": "integer" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "egressFlowWindowSize": { + "description": "The number of outstanding guaranteed messages that can be sent over the Link before acknowledgement is received by the sender. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `255`.", + "format": "int64", + "type": "integer" + }, + "enabled": { + "description": "Enable or disable the Link. When disabled, subscription sets of this and the remote node are not kept up-to-date, and messages are not exchanged with the remote node. Published guaranteed messages will be queued up for future delivery based on current subscription sets. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "initiator": { + "description": "The initiator of the Link's TCP connections. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"lexical\"`. The allowed values and their meaning are:\n\n
\n\"lexical\" - The \"higher\" node-name initiates.\n\"local\" - The local node initiates.\n\"remote\" - The remote node initiates.\n
\n", + "enum": [ + "lexical", + "local", + "remote" + ], + "type": "string" + }, + "queueDeadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ) used by the Queue for discarded messages. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"#DEAD_MSG_QUEUE\"`.", + "type": "string" + }, + "queueEventSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueMaxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow for the Queue. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `1000000`.", + "format": "int64", + "type": "integer" + }, + "queueMaxMsgSpoolUsage": { + "description": "The maximum message spool usage by the Queue (quota), in megabytes (MB). Changes to this attribute are synchronized to HA mates via config-sync. The default value is `800000`.", + "format": "int64", + "type": "integer" + }, + "queueMaxRedeliveryCount": { + "description": "The maximum number of times the Queue will attempt redelivery of a message prior to it being discarded or moved to the DMQ. A value of 0 means to retry forever. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "queueMaxTtl": { + "description": "The maximum time in seconds a message can stay in the Queue when `queueRespectTtlEnabled` is `true`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `queueMaxTtl` configured for the Queue, is exceeded. A value of 0 disables expiry. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "queueRejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"always\"`. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-queue-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Queue is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n", + "enum": [ + "always", + "when-queue-enabled", + "never" + ], + "type": "string" + }, + "queueRespectTtlEnabled": { + "description": "Enable or disable the respecting of the time-to-live (TTL) for messages in the Queue. When enabled, expired messages are discarded or moved to the DMQ. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the Link.", + "type": "string" + }, + "span": { + "description": "The span of the Link, either internal or external. Internal Links connect nodes within the same Cluster. External Links connect nodes within different Clusters. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"external\"`. The allowed values and their meaning are:\n\n
\n\"internal\" - Link to same cluster.\n\"external\" - Link to other cluster.\n
\n", + "enum": [ + "internal", + "external" + ], + "type": "string" + }, + "transportCompressedEnabled": { + "description": "Enable or disable compression on the Link. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "transportTlsEnabled": { + "description": "Enable or disable encryption (TLS) on the Link. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + } + }, + "type": "object" + }, + "DmrClusterLinkAttribute": { + "properties": { + "attributeName": { + "description": "The name of the Attribute.", + "type": "string" + }, + "attributeValue": { + "description": "The value of the Attribute.", + "type": "string" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the Link.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkAttributeLinks": { + "properties": { + "uri": { + "description": "The URI of this Link Attribute object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkAttributeResponse": { + "properties": { + "data": { + "$ref": "#/definitions/DmrClusterLinkAttribute" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinkAttributeLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkAttributesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/DmrClusterLinkAttribute" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinkAttributeLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkLinks": { + "properties": { + "attributesUri": { + "description": "The URI of this Link's collection of Link Attribute objects. Available since 2.28.", + "type": "string" + }, + "remoteAddressesUri": { + "description": "The URI of this Link's collection of Remote Address objects.", + "type": "string" + }, + "tlsTrustedCommonNamesUri": { + "description": "The URI of this Link's collection of Trusted Common Name objects. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "uri": { + "description": "The URI of this Link object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkRemoteAddress": { + "properties": { + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "remoteAddress": { + "description": "The FQDN or IP address (and optional port) of the remote node. If a port is not provided, it will vary based on the transport encoding: 55555 (plain-text), 55443 (encrypted), or 55003 (compressed).", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the Link.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkRemoteAddressLinks": { + "properties": { + "uri": { + "description": "The URI of this Remote Address object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkRemoteAddressResponse": { + "properties": { + "data": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddress" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkRemoteAddressesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddress" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkResponse": { + "properties": { + "data": { + "$ref": "#/definitions/DmrClusterLink" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinkLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkTlsTrustedCommonName": { + "properties": { + "dmrClusterName": { + "description": "The name of the Cluster. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the Link. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "tlsTrustedCommonName": { + "description": "The expected trusted common name of the remote certificate. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkTlsTrustedCommonNameLinks": { + "properties": { + "uri": { + "description": "The URI of this Trusted Common Name object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkTlsTrustedCommonNameResponse": { + "properties": { + "data": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonName" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkTlsTrustedCommonNamesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonName" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinks": { + "properties": { + "certMatchingRulesUri": { + "description": "The URI of this Cluster's collection of Certificate Matching Rule objects. Available since 2.28.", + "type": "string" + }, + "linksUri": { + "description": "The URI of this Cluster's collection of Link objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Cluster object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinksResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/DmrClusterLink" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinkLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterResponse": { + "properties": { + "data": { + "$ref": "#/definitions/DmrCluster" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClustersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/DmrCluster" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DomainCertAuthoritiesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/DomainCertAuthority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DomainCertAuthorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DomainCertAuthority": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority.", + "type": "string" + }, + "certContent": { + "description": "The PEM formatted content for the trusted root certificate of a domain Certificate Authority. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + } + }, + "type": "object" + }, + "DomainCertAuthorityLinks": { + "properties": { + "uri": { + "description": "The URI of this Domain Certificate Authority object.", + "type": "string" + } + }, + "type": "object" + }, + "DomainCertAuthorityResponse": { + "properties": { + "data": { + "$ref": "#/definitions/DomainCertAuthority" + }, + "links": { + "$ref": "#/definitions/DomainCertAuthorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "EventThreshold": { + "properties": { + "clearPercent": { + "description": "The clear threshold for the value of this counter as a percentage of its maximum value. Falling below this value will trigger a corresponding event. This attribute may not be returned in a GET.", + "format": "int64", + "type": "integer" + }, + "clearValue": { + "description": "The clear threshold for the absolute value of this counter. Falling below this value will trigger a corresponding event. This attribute may not be returned in a GET.", + "format": "int64", + "type": "integer" + }, + "setPercent": { + "description": "The set threshold for the value of this counter as a percentage of its maximum value. Exceeding this value will trigger a corresponding event. This attribute may not be returned in a GET.", + "format": "int64", + "type": "integer" + }, + "setValue": { + "description": "The set threshold for the absolute value of this counter. Exceeding this value will trigger a corresponding event. This attribute may not be returned in a GET.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "EventThresholdByPercent": { + "properties": { + "clearPercent": { + "description": "The clear threshold for the value of this counter as a percentage of its maximum value. Falling below this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + }, + "setPercent": { + "description": "The set threshold for the value of this counter as a percentage of its maximum value. Exceeding this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "EventThresholdByValue": { + "properties": { + "clearValue": { + "description": "The clear threshold for the absolute value of this counter or rate. Falling below this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + }, + "setValue": { + "description": "The set threshold for the absolute value of this counter or rate. Exceeding this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpn": { + "properties": { + "alias": { + "description": "The name of another Message VPN which this Message VPN is an alias for. When this Message VPN is enabled, the alias has no effect. When this Message VPN is disabled, Clients (but not Bridges and routing Links) logging into this Message VPN are automatically logged in to the other Message VPN, and authentication and authorization take place in the context of the other Message VPN.\n\nAliases may form a non-circular chain, cascading one to the next. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.14.", + "type": "string" + }, + "authenticationBasicEnabled": { + "description": "Enable or disable basic authentication for clients connecting to the Message VPN. Basic authentication is authentication that involves the use of a username and password to prove identity. If a user provides credentials for a different authentication scheme, this setting is not applicable. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "authenticationBasicProfileName": { + "description": "The name of the RADIUS or LDAP Profile to use for basic authentication. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"default\"`.", + "type": "string" + }, + "authenticationBasicRadiusDomain": { + "description": "The RADIUS domain to use for basic authentication. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "authenticationBasicType": { + "description": "The type of basic authentication to use for clients connecting to the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"radius\"`. The allowed values and their meaning are:\n\n
\n\"internal\" - Internal database. Authentication is against Client Usernames.\n\"ldap\" - LDAP authentication. An LDAP profile name must be provided.\n\"radius\" - RADIUS authentication. A RADIUS profile name must be provided.\n\"none\" - No authentication. Anonymous login allowed.\n
\n", + "enum": [ + "internal", + "ldap", + "radius", + "none" + ], + "type": "string" + }, + "authenticationClientCertAllowApiProvidedUsernameEnabled": { + "description": "Enable or disable allowing a client to specify a Client Username via the API connect method. When disabled, the certificate CN (Common Name) is always used. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "authenticationClientCertCertificateMatchingRulesEnabled": { + "description": "Enable or disable certificate matching rules. When disabled, any valid certificate is accepted. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.27.", + "type": "boolean" + }, + "authenticationClientCertEnabled": { + "description": "Enable or disable client certificate authentication in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "authenticationClientCertMaxChainDepth": { + "description": "The maximum depth for a client certificate chain. The depth of a chain is defined as the number of signing CA certificates that are present in the chain back to a trusted self-signed root CA certificate. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int64", + "type": "integer" + }, + "authenticationClientCertRevocationCheckMode": { + "description": "The desired behavior for client certificate revocation checking. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"allow-valid\"`. The allowed values and their meaning are:\n\n
\n\"allow-all\" - Allow the client to authenticate, the result of client certificate revocation check is ignored.\n\"allow-unknown\" - Allow the client to authenticate even if the revocation status of his certificate cannot be determined.\n\"allow-valid\" - Allow the client to authenticate only when the revocation check returned an explicit positive response.\n
\n Available since 2.6.", + "enum": [ + "allow-all", + "allow-unknown", + "allow-valid" + ], + "type": "string" + }, + "authenticationClientCertUsernameSource": { + "description": "The field from the client certificate to use as the client username. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"common-name\"`. The allowed values and their meaning are:\n\n
\n\"certificate-thumbprint\" - The username is computed as the SHA-1 hash over the entire DER-encoded contents of the client certificate.\n\"common-name\" - The username is extracted from the certificate's first instance of the Common Name attribute in the Subject DN.\n\"common-name-last\" - The username is extracted from the certificate's last instance of the Common Name attribute in the Subject DN.\n\"subject-alternate-name-msupn\" - The username is extracted from the certificate's Other Name type of the Subject Alternative Name and must have the msUPN signature.\n\"uid\" - The username is extracted from the certificate's first instance of the User Identifier attribute in the Subject DN.\n\"uid-last\" - The username is extracted from the certificate's last instance of the User Identifier attribute in the Subject DN.\n
\n Available since 2.6.", + "enum": [ + "certificate-thumbprint", + "common-name", + "common-name-last", + "subject-alternate-name-msupn", + "uid", + "uid-last" + ], + "type": "string" + }, + "authenticationClientCertValidateDateEnabled": { + "description": "Enable or disable validation of the \"Not Before\" and \"Not After\" validity dates in the client certificate. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "authenticationKerberosAllowApiProvidedUsernameEnabled": { + "description": "Enable or disable allowing a client to specify a Client Username via the API connect method. When disabled, the Kerberos Principal name is always used. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "authenticationKerberosEnabled": { + "description": "Enable or disable Kerberos authentication in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "authenticationOauthDefaultProfileName": { + "description": "The name of the profile to use when the client does not supply a profile name. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.25.", + "type": "string" + }, + "authenticationOauthDefaultProviderName": { + "description": "The name of the provider to use when the client does not supply a provider name. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Deprecated since 2.25. authenticationOauthDefaultProviderName and authenticationOauthProviders replaced by authenticationOauthDefaultProfileName and authenticationOauthProfiles.", + "type": "string" + }, + "authenticationOauthEnabled": { + "description": "Enable or disable OAuth authentication. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.13.", + "type": "boolean" + }, + "authorizationLdapGroupMembershipAttributeName": { + "description": "The name of the attribute that is retrieved from the LDAP server as part of the LDAP search when authorizing a client connecting to the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"memberOf\"`.", + "type": "string" + }, + "authorizationLdapTrimClientUsernameDomainEnabled": { + "description": "Enable or disable client-username domain trimming for LDAP lookups of client connections. When enabled, the value of $CLIENT_USERNAME (when used for searching) will be truncated at the first occurance of the @ character. For example, if the client-username is in the form of an email address, then the domain portion will be removed. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.13.", + "type": "boolean" + }, + "authorizationProfileName": { + "description": "The name of the LDAP Profile to use for client authorization. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "authorizationType": { + "description": "The type of authorization to use for clients connecting to the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"internal\"`. The allowed values and their meaning are:\n\n
\n\"ldap\" - LDAP authorization.\n\"internal\" - Internal authorization.\n
\n", + "enum": [ + "ldap", + "internal" + ], + "type": "string" + }, + "bridgingTlsServerCertEnforceTrustedCommonNameEnabled": { + "description": "Enable or disable validation of the Common Name (CN) in the server certificate from the remote broker. If enabled, the Common Name is checked against the list of Trusted Common Names configured for the Bridge. Common Name validation is not performed if Server Certificate Name Validation is enabled, even if Common Name validation is enabled. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "boolean" + }, + "bridgingTlsServerCertMaxChainDepth": { + "description": "The maximum depth for a server certificate chain. The depth of a chain is defined as the number of signing CA certificates that are present in the chain back to a trusted self-signed root CA certificate. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int64", + "type": "integer" + }, + "bridgingTlsServerCertValidateDateEnabled": { + "description": "Enable or disable validation of the \"Not Before\" and \"Not After\" validity dates in the server certificate. When disabled, a certificate will be accepted even if the certificate is not valid based on these dates. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "bridgingTlsServerCertValidateNameEnabled": { + "description": "Enable or disable the standard TLS authentication mechanism of verifying the name used to connect to the bridge. If enabled, the name used to connect to the bridge is checked against the names specified in the certificate returned by the remote router. Legacy Common Name validation is not performed if Server Certificate Name Validation is enabled, even if Common Name validation is also enabled. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`. Available since 2.18.", + "type": "boolean" + }, + "distributedCacheManagementEnabled": { + "description": "Enable or disable managing of cache instances over the message bus. The default value is `true`. Deprecated since 2.28. Distributed cache mangement is now redundancy aware and thus no longer requires administrative intervention for operational state.", + "type": "boolean" + }, + "dmrEnabled": { + "description": "Enable or disable Dynamic Message Routing (DMR) for the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.11.", + "type": "boolean" + }, + "enabled": { + "description": "Enable or disable the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "eventConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventEgressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventEgressMsgRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "eventEndpointCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventIngressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventIngressMsgRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "eventLargeMsgThreshold": { + "description": "The threshold, in kilobytes, after which a message is considered to be large for the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1024`.", + "format": "int64", + "type": "integer" + }, + "eventLogTag": { + "description": "A prefix applied to all published Events in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "eventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventPublishClientEnabled": { + "description": "Enable or disable Client level Event message publishing. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "eventPublishMsgVpnEnabled": { + "description": "Enable or disable Message VPN level Event message publishing. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "eventPublishSubscriptionMode": { + "description": "Subscription level Event message publishing mode. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"off\"`. The allowed values and their meaning are:\n\n
\n\"off\" - Disable client level event message publishing.\n\"on-with-format-v1\" - Enable client level event message publishing with format v1.\n\"on-with-no-unsubscribe-events-on-disconnect-format-v1\" - As \"on-with-format-v1\", but unsubscribe events are not generated when a client disconnects. Unsubscribe events are still raised when a client explicitly unsubscribes from its subscriptions.\n\"on-with-format-v2\" - Enable client level event message publishing with format v2.\n\"on-with-no-unsubscribe-events-on-disconnect-format-v2\" - As \"on-with-format-v2\", but unsubscribe events are not generated when a client disconnects. Unsubscribe events are still raised when a client explicitly unsubscribes from its subscriptions.\n
\n", + "enum": [ + "off", + "on-with-format-v1", + "on-with-no-unsubscribe-events-on-disconnect-format-v1", + "on-with-format-v2", + "on-with-no-unsubscribe-events-on-disconnect-format-v2" + ], + "type": "string" + }, + "eventPublishTopicFormatMqttEnabled": { + "description": "Enable or disable Event publish topics in MQTT format. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "eventPublishTopicFormatSmfEnabled": { + "description": "Enable or disable Event publish topics in SMF format. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "eventServiceAmqpConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceMqttConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceRestIncomingConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceSmfConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceWebConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventSubscriptionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventTransactedSessionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventTransactionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "exportSubscriptionsEnabled": { + "description": "Enable or disable the export of subscriptions in the Message VPN to other routers in the network over Neighbor links. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "jndiEnabled": { + "description": "Enable or disable JNDI access for clients in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.2.", + "type": "boolean" + }, + "maxConnectionCount": { + "description": "The maximum number of client connections to the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is the maximum value supported by the platform.", + "format": "int64", + "type": "integer" + }, + "maxEgressFlowCount": { + "description": "The maximum number of transmit flows that can be created in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`.", + "format": "int64", + "type": "integer" + }, + "maxEndpointCount": { + "description": "The maximum number of Queues and Topic Endpoints that can be created in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`.", + "format": "int64", + "type": "integer" + }, + "maxIngressFlowCount": { + "description": "The maximum number of receive flows that can be created in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`.", + "format": "int64", + "type": "integer" + }, + "maxMsgSpoolUsage": { + "description": "The maximum message spool usage by the Message VPN, in megabytes. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "maxSubscriptionCount": { + "description": "The maximum number of local client subscriptions that can be added to the Message VPN. This limit is not enforced when a subscription is added using a management interface, such as CLI or SEMP. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default varies by platform.", + "format": "int64", + "type": "integer" + }, + "maxTransactedSessionCount": { + "description": "The maximum number of transacted sessions that can be created in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default varies by platform.", + "format": "int64", + "type": "integer" + }, + "maxTransactionCount": { + "description": "The maximum number of transactions that can be created in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default varies by platform.", + "format": "int64", + "type": "integer" + }, + "mqttRetainMaxMemory": { + "description": "The maximum total memory usage of the MQTT Retain feature for this Message VPN, in MB. If the maximum memory is reached, any arriving retain messages that require more memory are discarded. A value of -1 indicates that the memory is bounded only by the global max memory limit. A value of 0 prevents MQTT Retain from becoming operational. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `-1`. Available since 2.11.", + "format": "int32", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "replicationAckPropagationIntervalMsgCount": { + "description": "The acknowledgement (ACK) propagation interval for the replication Bridge, in number of replicated messages. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `20`.", + "format": "int64", + "type": "integer" + }, + "replicationBridgeAuthenticationBasicClientUsername": { + "description": "The Client Username the replication Bridge uses to login to the remote Message VPN. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "replicationBridgeAuthenticationBasicPassword": { + "description": "The password for the Client Username. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "replicationBridgeAuthenticationClientCertContent": { + "description": "The PEM formatted content for the client certificate used by this bridge to login to the Remote Message VPN. It must consist of a private key and between one and three certificates comprising the certificate trust chain. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changing this attribute requires an HTTPS connection. The default value is `\"\"`. Available since 2.9.", + "type": "string", + "x-requires-https": true + }, + "replicationBridgeAuthenticationClientCertPassword": { + "description": "The password for the client certificate. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changing this attribute requires an HTTPS connection. The default value is `\"\"`. Available since 2.9.", + "type": "string", + "x-requires-https": true + }, + "replicationBridgeAuthenticationScheme": { + "description": "The authentication scheme for the replication Bridge in the Message VPN. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"basic\"`. The allowed values and their meaning are:\n\n
\n\"basic\" - Basic Authentication Scheme (via username and password).\n\"client-certificate\" - Client Certificate Authentication Scheme (via certificate file or content).\n
\n", + "enum": [ + "basic", + "client-certificate" + ], + "type": "string" + }, + "replicationBridgeCompressedDataEnabled": { + "description": "Enable or disable use of compression for the replication Bridge. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "replicationBridgeEgressFlowWindowSize": { + "description": "The size of the window used for guaranteed messages published to the replication Bridge, in messages. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `255`.", + "format": "int64", + "type": "integer" + }, + "replicationBridgeRetryDelay": { + "description": "The number of seconds that must pass before retrying the replication Bridge connection. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `3`.", + "format": "int64", + "type": "integer" + }, + "replicationBridgeTlsEnabled": { + "description": "Enable or disable use of encryption (TLS) for the replication Bridge connection. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "replicationBridgeUnidirectionalClientProfileName": { + "description": "The Client Profile for the unidirectional replication Bridge in the Message VPN. It is used only for the TCP parameters. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"#client-profile\"`.", + "type": "string" + }, + "replicationEnabled": { + "description": "Enable or disable replication for the Message VPN. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "replicationEnabledQueueBehavior": { + "description": "The behavior to take when enabling replication for the Message VPN, depending on the existence of the replication Queue. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"fail-on-existing-queue\"`. The allowed values and their meaning are:\n\n
\n\"fail-on-existing-queue\" - The data replication queue must not already exist.\n\"force-use-existing-queue\" - The data replication queue must already exist. Any data messages on the Queue will be forwarded to interested applications. IMPORTANT: Before using this mode be certain that the messages are not stale or otherwise unsuitable to be forwarded. This mode can only be specified when the existing queue is configured the same as is currently specified under replication configuration otherwise the enabling of replication will fail.\n\"force-recreate-queue\" - The data replication queue must already exist. Any data messages on the Queue will be discarded. IMPORTANT: Before using this mode be certain that the messages on the existing data replication queue are not needed by interested applications.\n
\n", + "enum": [ + "fail-on-existing-queue", + "force-use-existing-queue", + "force-recreate-queue" + ], + "type": "string" + }, + "replicationQueueMaxMsgSpoolUsage": { + "description": "The maximum message spool usage by the replication Bridge local Queue (quota), in megabytes. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `60000`.", + "format": "int64", + "type": "integer" + }, + "replicationQueueRejectMsgToSenderOnDiscardEnabled": { + "description": "Enable or disable whether messages discarded on the replication Bridge local Queue are rejected back to the sender. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "replicationRejectMsgWhenSyncIneligibleEnabled": { + "description": "Enable or disable whether guaranteed messages published to synchronously replicated Topics are rejected back to the sender when synchronous replication becomes ineligible. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "replicationRole": { + "description": "The replication role for the Message VPN. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"standby\"`. The allowed values and their meaning are:\n\n
\n\"active\" - Assume the Active role in replication for the Message VPN.\n\"standby\" - Assume the Standby role in replication for the Message VPN.\n
\n", + "enum": [ + "active", + "standby" + ], + "type": "string" + }, + "replicationTransactionMode": { + "description": "The transaction replication mode for all transactions within the Message VPN. Changing this value during operation will not affect existing transactions; it is only used upon starting a transaction. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"async\"`. The allowed values and their meaning are:\n\n
\n\"sync\" - Messages are acknowledged when replicated (spooled remotely).\n\"async\" - Messages are acknowledged when pending replication (spooled locally).\n
\n", + "enum": [ + "sync", + "async" + ], + "type": "string" + }, + "restTlsServerCertEnforceTrustedCommonNameEnabled": { + "description": "Enable or disable validation of the Common Name (CN) in the server certificate from the remote REST Consumer. If enabled, the Common Name is checked against the list of Trusted Common Names configured for the REST Consumer. Common Name validation is not performed if Server Certificate Name Validation is enabled, even if Common Name validation is enabled. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Deprecated since 2.17. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "boolean" + }, + "restTlsServerCertMaxChainDepth": { + "description": "The maximum depth for a REST Consumer server certificate chain. The depth of a chain is defined as the number of signing CA certificates that are present in the chain back to a trusted self-signed root CA certificate. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int64", + "type": "integer" + }, + "restTlsServerCertValidateDateEnabled": { + "description": "Enable or disable validation of the \"Not Before\" and \"Not After\" validity dates in the REST Consumer server certificate. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "restTlsServerCertValidateNameEnabled": { + "description": "Enable or disable the standard TLS authentication mechanism of verifying the name used to connect to the remote REST Consumer. If enabled, the name used to connect to the remote REST Consumer is checked against the names specified in the certificate returned by the remote router. Legacy Common Name validation is not performed if Server Certificate Name Validation is enabled, even if Common Name validation is also enabled. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`. Available since 2.17.", + "type": "boolean" + }, + "sempOverMsgBusAdminClientEnabled": { + "description": "Enable or disable \"admin client\" SEMP over the message bus commands for the current Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "sempOverMsgBusAdminDistributedCacheEnabled": { + "description": "Enable or disable \"admin distributed-cache\" SEMP over the message bus commands for the current Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "sempOverMsgBusAdminEnabled": { + "description": "Enable or disable \"admin\" SEMP over the message bus commands for the current Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "sempOverMsgBusEnabled": { + "description": "Enable or disable SEMP over the message bus for the current Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "sempOverMsgBusShowEnabled": { + "description": "Enable or disable \"show\" SEMP over the message bus commands for the current Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "serviceAmqpMaxConnectionCount": { + "description": "The maximum number of AMQP client connections that can be simultaneously connected to the Message VPN. This value may be higher than supported by the platform. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is the maximum value supported by the platform. Available since 2.7.", + "format": "int64", + "type": "integer" + }, + "serviceAmqpPlainTextEnabled": { + "description": "Enable or disable the plain-text AMQP service in the Message VPN. Disabling causes clients connected to the corresponding listen-port to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.7.", + "type": "boolean" + }, + "serviceAmqpPlainTextListenPort": { + "description": "The port number for plain-text AMQP clients that connect to the Message VPN. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceAmqpPlainTextEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.7.", + "format": "int64", + "type": "integer" + }, + "serviceAmqpTlsEnabled": { + "description": "Enable or disable the use of encryption (TLS) for the AMQP service in the Message VPN. Disabling causes clients currently connected over TLS to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.7.", + "type": "boolean" + }, + "serviceAmqpTlsListenPort": { + "description": "The port number for AMQP clients that connect to the Message VPN over TLS. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceAmqpTlsEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.7.", + "format": "int64", + "type": "integer" + }, + "serviceMqttAuthenticationClientCertRequest": { + "description": "Determines when to request a client certificate from an incoming MQTT client connecting via a TLS port. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"when-enabled-in-message-vpn\"`. The allowed values and their meaning are:\n\n
\n\"always\" - Always ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"never\" - Never ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"when-enabled-in-message-vpn\" - Only ask for a client-certificate if client certificate authentication is enabled under \"message-vpn >  authentication > client-certificate > shutdown\".\n
\n Available since 2.21.", + "enum": [ + "always", + "never", + "when-enabled-in-message-vpn" + ], + "type": "string" + }, + "serviceMqttMaxConnectionCount": { + "description": "The maximum number of MQTT client connections that can be simultaneously connected to the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is the maximum value supported by the platform. Available since 2.1.", + "format": "int64", + "type": "integer" + }, + "serviceMqttPlainTextEnabled": { + "description": "Enable or disable the plain-text MQTT service in the Message VPN. Disabling causes clients currently connected to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.1.", + "type": "boolean" + }, + "serviceMqttPlainTextListenPort": { + "description": "The port number for plain-text MQTT clients that connect to the Message VPN. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceMqttPlainTextEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.1.", + "format": "int64", + "type": "integer" + }, + "serviceMqttTlsEnabled": { + "description": "Enable or disable the use of encryption (TLS) for the MQTT service in the Message VPN. Disabling causes clients currently connected over TLS to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.1.", + "type": "boolean" + }, + "serviceMqttTlsListenPort": { + "description": "The port number for MQTT clients that connect to the Message VPN over TLS. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceMqttTlsEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.1.", + "format": "int64", + "type": "integer" + }, + "serviceMqttTlsWebSocketEnabled": { + "description": "Enable or disable the use of encrypted WebSocket (WebSocket over TLS) for the MQTT service in the Message VPN. Disabling causes clients currently connected by encrypted WebSocket to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.1.", + "type": "boolean" + }, + "serviceMqttTlsWebSocketListenPort": { + "description": "The port number for MQTT clients that connect to the Message VPN using WebSocket over TLS. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceMqttTlsWebSocketEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.1.", + "format": "int64", + "type": "integer" + }, + "serviceMqttWebSocketEnabled": { + "description": "Enable or disable the use of WebSocket for the MQTT service in the Message VPN. Disabling causes clients currently connected by WebSocket to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.1.", + "type": "boolean" + }, + "serviceMqttWebSocketListenPort": { + "description": "The port number for plain-text MQTT clients that connect to the Message VPN using WebSocket. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceMqttWebSocketEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.1.", + "format": "int64", + "type": "integer" + }, + "serviceRestIncomingAuthenticationClientCertRequest": { + "description": "Determines when to request a client certificate from an incoming REST Producer connecting via a TLS port. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"when-enabled-in-message-vpn\"`. The allowed values and their meaning are:\n\n
\n\"always\" - Always ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"never\" - Never ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"when-enabled-in-message-vpn\" - Only ask for a client-certificate if client certificate authentication is enabled under \"message-vpn >  authentication > client-certificate > shutdown\".\n
\n Available since 2.21.", + "enum": [ + "always", + "never", + "when-enabled-in-message-vpn" + ], + "type": "string" + }, + "serviceRestIncomingAuthorizationHeaderHandling": { + "description": "The handling of Authorization headers for incoming REST connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"drop\"`. The allowed values and their meaning are:\n\n
\n\"drop\" - Do not attach the Authorization header to the message as a user property. This configuration is most secure.\n\"forward\" - Forward the Authorization header, attaching it to the message as a user property in the same way as other headers. For best security, use the drop setting.\n\"legacy\" - If the Authorization header was used for authentication to the broker, do not attach it to the message. If the Authorization header was not used for authentication to the broker, attach it to the message as a user property in the same way as other headers. For best security, use the drop setting.\n
\n Available since 2.19.", + "enum": [ + "drop", + "forward", + "legacy" + ], + "type": "string" + }, + "serviceRestIncomingMaxConnectionCount": { + "description": "The maximum number of REST incoming client connections that can be simultaneously connected to the Message VPN. This value may be higher than supported by the platform. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is the maximum value supported by the platform.", + "format": "int64", + "type": "integer" + }, + "serviceRestIncomingPlainTextEnabled": { + "description": "Enable or disable the plain-text REST service for incoming clients in the Message VPN. Disabling causes clients currently connected to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "serviceRestIncomingPlainTextListenPort": { + "description": "The port number for incoming plain-text REST clients that connect to the Message VPN. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceRestIncomingPlainTextEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "serviceRestIncomingTlsEnabled": { + "description": "Enable or disable the use of encryption (TLS) for the REST service for incoming clients in the Message VPN. Disabling causes clients currently connected over TLS to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "serviceRestIncomingTlsListenPort": { + "description": "The port number for incoming REST clients that connect to the Message VPN over TLS. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as serviceRestIncomingTlsEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "serviceRestMode": { + "description": "The REST service mode for incoming REST clients that connect to the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"messaging\"`. The allowed values and their meaning are:\n\n
\n\"gateway\" - Act as a message gateway through which REST messages are propagated.\n\"messaging\" - Act as a message broker on which REST messages are queued.\n
\n Available since 2.6.", + "enum": [ + "gateway", + "messaging" + ], + "type": "string" + }, + "serviceRestOutgoingMaxConnectionCount": { + "description": "The maximum number of REST Consumer (outgoing) client connections that can be simultaneously connected to the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default varies by platform.", + "format": "int64", + "type": "integer" + }, + "serviceSmfMaxConnectionCount": { + "description": "The maximum number of SMF client connections that can be simultaneously connected to the Message VPN. This value may be higher than supported by the platform. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default varies by platform.", + "format": "int64", + "type": "integer" + }, + "serviceSmfPlainTextEnabled": { + "description": "Enable or disable the plain-text SMF service in the Message VPN. Disabling causes clients currently connected to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "serviceSmfTlsEnabled": { + "description": "Enable or disable the use of encryption (TLS) for the SMF service in the Message VPN. Disabling causes clients currently connected over TLS to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "serviceWebAuthenticationClientCertRequest": { + "description": "Determines when to request a client certificate from a Web Transport client connecting via a TLS port. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"when-enabled-in-message-vpn\"`. The allowed values and their meaning are:\n\n
\n\"always\" - Always ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"never\" - Never ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"when-enabled-in-message-vpn\" - Only ask for a client-certificate if client certificate authentication is enabled under \"message-vpn >  authentication > client-certificate > shutdown\".\n
\n Available since 2.21.", + "enum": [ + "always", + "never", + "when-enabled-in-message-vpn" + ], + "type": "string" + }, + "serviceWebMaxConnectionCount": { + "description": "The maximum number of Web Transport client connections that can be simultaneously connected to the Message VPN. This value may be higher than supported by the platform. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is the maximum value supported by the platform.", + "format": "int64", + "type": "integer" + }, + "serviceWebPlainTextEnabled": { + "description": "Enable or disable the plain-text Web Transport service in the Message VPN. Disabling causes clients currently connected to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "serviceWebTlsEnabled": { + "description": "Enable or disable the use of TLS for the Web Transport service in the Message VPN. Disabling causes clients currently connected over TLS to be disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "tlsAllowDowngradeToPlainTextEnabled": { + "description": "Enable or disable the allowing of TLS SMF clients to downgrade their connections to plain-text connections. Changing this will not affect existing connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnAclProfile": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile.", + "type": "string" + }, + "clientConnectDefaultAction": { + "description": "The default action to take when a client using the ACL Profile connects to the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"disallow\"`. The allowed values and their meaning are:\n\n
\n\"allow\" - Allow client connection unless an exception is found for it.\n\"disallow\" - Disallow client connection unless an exception is found for it.\n
\n", + "enum": [ + "allow", + "disallow" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "publishTopicDefaultAction": { + "description": "The default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"disallow\"`. The allowed values and their meaning are:\n\n
\n\"allow\" - Allow topic unless an exception is found for it.\n\"disallow\" - Disallow topic unless an exception is found for it.\n
\n", + "enum": [ + "allow", + "disallow" + ], + "type": "string" + }, + "subscribeShareNameDefaultAction": { + "description": "The default action to take when a client using the ACL Profile subscribes to a share-name subscription in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"allow\"`. The allowed values and their meaning are:\n\n
\n\"allow\" - Allow topic unless an exception is found for it.\n\"disallow\" - Disallow topic unless an exception is found for it.\n
\n Available since 2.14.", + "enum": [ + "allow", + "disallow" + ], + "type": "string" + }, + "subscribeTopicDefaultAction": { + "description": "The default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"disallow\"`. The allowed values and their meaning are:\n\n
\n\"allow\" - Allow topic unless an exception is found for it.\n\"disallow\" - Disallow topic unless an exception is found for it.\n
\n", + "enum": [ + "allow", + "disallow" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileClientConnectException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile.", + "type": "string" + }, + "clientConnectExceptionAddress": { + "description": "The IP address/netmask of the client connect exception in canonical CIDR form.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileClientConnectExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Connect Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileClientConnectExceptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileClientConnectExceptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileLinks": { + "properties": { + "clientConnectExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Client Connect Exception objects.", + "type": "string" + }, + "publishExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Publish Topic Exception objects. Deprecated since 2.14. Replaced by publishTopicExceptions.", + "type": "string" + }, + "publishTopicExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Publish Topic Exception objects. Available since 2.14.", + "type": "string" + }, + "subscribeExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Subscribe Topic Exception objects. Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "type": "string" + }, + "subscribeShareNameExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Subscribe Share Name Exception objects. Available since 2.14.", + "type": "string" + }, + "subscribeTopicExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Subscribe Topic Exception objects. Available since 2.14.", + "type": "string" + }, + "uri": { + "description": "The URI of this ACL Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfilePublishException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile. Deprecated since 2.14. Replaced by publishTopicExceptions.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.14. Replaced by publishTopicExceptions.", + "type": "string" + }, + "publishExceptionTopic": { + "description": "The topic for the exception to the default action taken. May include wildcard characters. Deprecated since 2.14. Replaced by publishTopicExceptions.", + "type": "string" + }, + "topicSyntax": { + "description": "The syntax of the topic for the exception to the default action taken. The allowed values and their meaning are:\n\n
\n\"smf\" - Topic uses SMF syntax.\n\"mqtt\" - Topic uses MQTT syntax.\n
\n Deprecated since 2.14. Replaced by publishTopicExceptions.", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfilePublishExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Publish Topic Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfilePublishExceptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAclProfilePublishException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfilePublishExceptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfilePublishException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfilePublishTopicException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "publishTopicException": { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "type": "string" + }, + "publishTopicExceptionSyntax": { + "description": "The syntax of the topic for the exception to the default action taken. The allowed values and their meaning are:\n\n
\n\"smf\" - Topic uses SMF syntax.\n\"mqtt\" - Topic uses MQTT syntax.\n
\n", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfilePublishTopicExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Publish Topic Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfilePublishTopicExceptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfilePublishTopicExceptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAclProfile" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile. Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "type": "string" + }, + "subscribeExceptionTopic": { + "description": "The topic for the exception to the default action taken. May include wildcard characters. Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "type": "string" + }, + "topicSyntax": { + "description": "The syntax of the topic for the exception to the default action taken. The allowed values and their meaning are:\n\n
\n\"smf\" - Topic uses SMF syntax.\n\"mqtt\" - Topic uses MQTT syntax.\n
\n Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Subscribe Topic Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeExceptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeExceptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeShareNameException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "subscribeShareNameException": { + "description": "The subscribe share name exception to the default action taken. May include wildcard characters.", + "type": "string" + }, + "subscribeShareNameExceptionSyntax": { + "description": "The syntax of the subscribe share name for the exception to the default action taken. The allowed values and their meaning are:\n\n
\n\"smf\" - Topic uses SMF syntax.\n\"mqtt\" - Topic uses MQTT syntax.\n
\n", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeShareNameExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Subscribe Share Name Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeShareNameExceptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeShareNameExceptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeTopicException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "subscribeTopicException": { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "type": "string" + }, + "subscribeTopicExceptionSyntax": { + "description": "The syntax of the topic for the exception to the default action taken. The allowed values and their meaning are:\n\n
\n\"smf\" - Topic uses SMF syntax.\n\"mqtt\" - Topic uses MQTT syntax.\n
\n", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeTopicExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Subscribe Topic Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeTopicExceptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeTopicExceptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfilesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfile": { + "properties": { + "authorizationGroupsClaimName": { + "description": "The name of the groups claim. If non-empty, the specified claim will be used to determine groups for authorization. If empty, the authorizationType attribute of the Message VPN will be used to determine authorization. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"groups\"`.", + "type": "string" + }, + "authorizationGroupsClaimStringFormat": { + "description": "The format of the authorization groups claim value when it is a string. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"single\"`. The allowed values and their meaning are:\n\n
\n\"single\" - When the claim is a string, it is interpreted as a single group.\n\"space-delimited\" - When the claim is a string, it is interpreted as a space-delimited list of groups, similar to the \"scope\" claim.\n
\n Available since 2.32.", + "enum": [ + "single", + "space-delimited" + ], + "type": "string" + }, + "clientId": { + "description": "The OAuth client id. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "clientRequiredType": { + "description": "The required value for the TYP field in the ID token header. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"JWT\"`.", + "type": "string" + }, + "clientSecret": { + "description": "The OAuth client secret. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "clientValidateTypeEnabled": { + "description": "Enable or disable verification of the TYP field in the ID token header. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "disconnectOnTokenExpirationEnabled": { + "description": "Enable or disable the disconnection of clients when their tokens expire. Changing this value does not affect existing clients, only new client connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "enabled": { + "description": "Enable or disable the OAuth profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "endpointDiscovery": { + "description": "The OpenID Connect discovery endpoint or OAuth Authorization Server Metadata endpoint. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "endpointDiscoveryRefreshInterval": { + "description": "The number of seconds between discovery endpoint requests. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `86400`.", + "format": "int32", + "type": "integer" + }, + "endpointIntrospection": { + "description": "The OAuth introspection endpoint. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "endpointIntrospectionTimeout": { + "description": "The maximum time in seconds a token introspection request is allowed to take. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1`.", + "format": "int32", + "type": "integer" + }, + "endpointJwks": { + "description": "The OAuth JWKS endpoint. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "endpointJwksRefreshInterval": { + "description": "The number of seconds between JWKS endpoint requests. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `86400`.", + "format": "int32", + "type": "integer" + }, + "endpointUserinfo": { + "description": "The OpenID Connect Userinfo endpoint. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "endpointUserinfoTimeout": { + "description": "The maximum time in seconds a userinfo request is allowed to take. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1`.", + "format": "int32", + "type": "integer" + }, + "issuer": { + "description": "The Issuer Identifier for the OAuth provider. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "mqttUsernameValidateEnabled": { + "description": "Enable or disable whether the API provided MQTT client username will be validated against the username calculated from the token(s). When enabled, connection attempts by MQTT clients are rejected if they differ. Note that this value only applies to MQTT clients; SMF client usernames will not be validated. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + }, + "oauthRole": { + "description": "The OAuth role of the broker. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"client\"`. The allowed values and their meaning are:\n\n
\n\"client\" - The broker is in the OAuth client role.\n\"resource-server\" - The broker is in the OAuth resource server role.\n
\n", + "enum": [ + "client", + "resource-server" + ], + "type": "string" + }, + "resourceServerParseAccessTokenEnabled": { + "description": "Enable or disable parsing of the access token as a JWT. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "resourceServerRequiredAudience": { + "description": "The required audience value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "resourceServerRequiredIssuer": { + "description": "The required issuer value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "resourceServerRequiredScope": { + "description": "A space-separated list of scopes that must be present in the scope claim. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "resourceServerRequiredType": { + "description": "The required TYP value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"at+jwt\"`.", + "type": "string" + }, + "resourceServerValidateAudienceEnabled": { + "description": "Enable or disable verification of the audience claim in the access token or introspection response. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "resourceServerValidateIssuerEnabled": { + "description": "Enable or disable verification of the issuer claim in the access token or introspection response. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "resourceServerValidateScopeEnabled": { + "description": "Enable or disable verification of the scope claim in the access token or introspection response. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "resourceServerValidateTypeEnabled": { + "description": "Enable or disable verification of the TYP field in the access token header. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "usernameClaimName": { + "description": "The name of the username claim. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"sub\"`.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileClientRequiredClaim": { + "properties": { + "clientRequiredClaimName": { + "description": "The name of the ID token claim to verify.", + "type": "string" + }, + "clientRequiredClaimValue": { + "description": "The required claim value.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileClientRequiredClaimLinks": { + "properties": { + "uri": { + "description": "The URI of this Required Claim object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileClientRequiredClaimResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaim" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileClientRequiredClaimsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaim" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileLinks": { + "properties": { + "clientRequiredClaimsUri": { + "description": "The URI of this OAuth Profile's collection of Required Claim objects.", + "type": "string" + }, + "resourceServerRequiredClaimsUri": { + "description": "The URI of this OAuth Profile's collection of Required Claim objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this OAuth Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResourceServerRequiredClaim": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + }, + "resourceServerRequiredClaimName": { + "description": "The name of the access token claim to verify.", + "type": "string" + }, + "resourceServerRequiredClaimValue": { + "description": "The required claim value.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimLinks": { + "properties": { + "uri": { + "description": "The URI of this Required Claim object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaim" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaim" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfile" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfilesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProvider": { + "properties": { + "audienceClaimName": { + "description": "The audience claim name, indicating which part of the object to use for determining the audience. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"aud\"`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "audienceClaimSource": { + "description": "The audience claim source, indicating where to search for the audience value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"id-token\"`. The allowed values and their meaning are:\n\n
\n\"access-token\" - The OAuth v2 access_token.\n\"id-token\" - The OpenID Connect id_token.\n\"introspection\" - The result of introspecting the OAuth v2 access_token.\n
\n Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "enum": [ + "access-token", + "id-token", + "introspection" + ], + "type": "string" + }, + "audienceClaimValue": { + "description": "The required audience value for a token to be considered valid. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "audienceValidationEnabled": { + "description": "Enable or disable audience validation. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + }, + "authorizationGroupClaimName": { + "description": "The authorization group claim name, indicating which part of the object to use for determining the authorization group. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"scope\"`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "authorizationGroupClaimSource": { + "description": "The authorization group claim source, indicating where to search for the authorization group name. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"id-token\"`. The allowed values and their meaning are:\n\n
\n\"access-token\" - The OAuth v2 access_token.\n\"id-token\" - The OpenID Connect id_token.\n\"introspection\" - The result of introspecting the OAuth v2 access_token.\n
\n Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "enum": [ + "access-token", + "id-token", + "introspection" + ], + "type": "string" + }, + "authorizationGroupEnabled": { + "description": "Enable or disable OAuth based authorization. When enabled, the configured authorization type for OAuth clients is overridden. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + }, + "disconnectOnTokenExpirationEnabled": { + "description": "Enable or disable the disconnection of clients when their tokens expire. Changing this value does not affect existing clients, only new client connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + }, + "enabled": { + "description": "Enable or disable OAuth Provider client authentication. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + }, + "jwksRefreshInterval": { + "description": "The number of seconds between forced JWKS public key refreshing. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `86400`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int32", + "type": "integer" + }, + "jwksUri": { + "description": "The URI where the OAuth provider publishes its JWKS public keys. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "type": "string" + }, + "oauthProviderName": { + "description": "The name of the OAuth Provider. Deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "type": "string" + }, + "tokenIgnoreTimeLimitsEnabled": { + "description": "Enable or disable whether to ignore time limits and accept tokens that are not yet valid or are no longer valid. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + }, + "tokenIntrospectionParameterName": { + "description": "The parameter name used to identify the token during access token introspection. A standards compliant OAuth introspection server expects \"token\". Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"token\"`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "tokenIntrospectionPassword": { + "description": "The password to use when logging into the token introspection URI. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "tokenIntrospectionTimeout": { + "description": "The maximum time in seconds a token introspection is allowed to take. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int32", + "type": "integer" + }, + "tokenIntrospectionUri": { + "description": "The token introspection URI of the OAuth authentication server. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "tokenIntrospectionUsername": { + "description": "The username to use when logging into the token introspection URI. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "usernameClaimName": { + "description": "The username claim name, indicating which part of the object to use for determining the username. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"sub\"`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "usernameClaimSource": { + "description": "The username claim source, indicating where to search for the username value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"id-token\"`. The allowed values and their meaning are:\n\n
\n\"access-token\" - The OAuth v2 access_token.\n\"id-token\" - The OpenID Connect id_token.\n\"introspection\" - The result of introspecting the OAuth v2 access_token.\n
\n Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "enum": [ + "access-token", + "id-token", + "introspection" + ], + "type": "string" + }, + "usernameValidateEnabled": { + "description": "Enable or disable whether the API provided username will be validated against the username calculated from the token(s); the connection attempt is rejected if they differ. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProviderLinks": { + "properties": { + "uri": { + "description": "The URI of this OAuth Provider object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProviderResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvider" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProvidersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvider" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthorizationGroup": { + "properties": { + "aclProfileName": { + "description": "The ACL Profile of the Authorization Group. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"default\"`.", + "type": "string" + }, + "authorizationGroupName": { + "description": "The name of the Authorization Group. For LDAP groups, special care is needed if the group name contains special characters such as '#', '+', ';', '=' as the value of the group name returned from the LDAP server might prepend those characters with '\\'. For example a group name called 'test#,lab,com' will be returned from the LDAP server as 'test\\#,lab,com'.", + "type": "string" + }, + "clientProfileName": { + "description": "The Client Profile of the Authorization Group. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"default\"`.", + "type": "string" + }, + "enabled": { + "description": "Enable or disable the Authorization Group in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "orderAfterAuthorizationGroupName": { + "description": "Lower the priority to be less than this group. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is not applicable.", + "type": "string" + }, + "orderBeforeAuthorizationGroupName": { + "description": "Raise the priority to be greater than this group. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is not applicable.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthorizationGroupLinks": { + "properties": { + "uri": { + "description": "The URI of this Authorization Group object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthorizationGroupResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnAuthorizationGroup" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthorizationGroupsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthorizationGroup" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridge": { + "properties": { + "bridgeName": { + "description": "The name of the Bridge.", + "type": "string" + }, + "bridgeVirtualRouter": { + "description": "The virtual router of the Bridge. The allowed values and their meaning are:\n\n
\n\"primary\" - The Bridge is used for the primary virtual router.\n\"backup\" - The Bridge is used for the backup virtual router.\n\"auto\" - The Bridge is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "enabled": { + "description": "Enable or disable the Bridge. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "maxTtl": { + "description": "The maximum time-to-live (TTL) in hops. Messages are discarded if their TTL exceeds this value. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `8`.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "remoteAuthenticationBasicClientUsername": { + "description": "The Client Username the Bridge uses to login to the remote Message VPN. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "remoteAuthenticationBasicPassword": { + "description": "The password for the Client Username. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "remoteAuthenticationClientCertContent": { + "description": "The PEM formatted content for the client certificate used by the Bridge to login to the remote Message VPN. It must consist of a private key and between one and three certificates comprising the certificate trust chain. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changing this attribute requires an HTTPS connection. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. The default value is `\"\"`. Available since 2.9.", + "type": "string", + "x-requires-https": true + }, + "remoteAuthenticationClientCertPassword": { + "description": "The password for the client certificate. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changing this attribute requires an HTTPS connection. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. The default value is `\"\"`. Available since 2.9.", + "type": "string", + "x-requires-https": true + }, + "remoteAuthenticationScheme": { + "description": "The authentication scheme for the remote Message VPN. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"basic\"`. The allowed values and their meaning are:\n\n
\n\"basic\" - Basic Authentication Scheme (via username and password).\n\"client-certificate\" - Client Certificate Authentication Scheme (via certificate file or content).\n
\n", + "enum": [ + "basic", + "client-certificate" + ], + "type": "string" + }, + "remoteConnectionRetryCount": { + "description": "The maximum number of retry attempts to establish a connection to the remote Message VPN. A value of 0 means to retry forever. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "remoteConnectionRetryDelay": { + "description": "The number of seconds the broker waits for the bridge connection to be established before attempting a new connection. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int64", + "type": "integer" + }, + "remoteDeliverToOnePriority": { + "description": "The priority for deliver-to-one (DTO) messages transmitted from the remote Message VPN. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"p1\"`. The allowed values and their meaning are:\n\n
\n\"p1\" - The 1st or highest priority.\n\"p2\" - The 2nd highest priority.\n\"p3\" - The 3rd highest priority.\n\"p4\" - The 4th highest priority.\n\"da\" - Ignore priority and deliver always.\n
\n", + "enum": [ + "p1", + "p2", + "p3", + "p4", + "da" + ], + "type": "string" + }, + "tlsCipherSuiteList": { + "description": "The colon-separated list of cipher suites supported for TLS connections to the remote Message VPN. The value \"default\" implies all supported suites ordered from most secure to least secure. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"default\"`.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeLinks": { + "properties": { + "remoteMsgVpnsUri": { + "description": "The URI of this Bridge's collection of Remote Message VPN objects.", + "type": "string" + }, + "remoteSubscriptionsUri": { + "description": "The URI of this Bridge's collection of Remote Subscription objects.", + "type": "string" + }, + "tlsTrustedCommonNamesUri": { + "description": "The URI of this Bridge's collection of Trusted Common Name objects. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "uri": { + "description": "The URI of this Bridge object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeRemoteMsgVpn": { + "properties": { + "bridgeName": { + "description": "The name of the Bridge.", + "type": "string" + }, + "bridgeVirtualRouter": { + "description": "The virtual router of the Bridge. The allowed values and their meaning are:\n\n
\n\"primary\" - The Bridge is used for the primary virtual router.\n\"backup\" - The Bridge is used for the backup virtual router.\n\"auto\" - The Bridge is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "clientUsername": { + "description": "The Client Username the Bridge uses to login to the remote Message VPN. This per remote Message VPN value overrides the value provided for the Bridge overall. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "compressedDataEnabled": { + "description": "Enable or disable data compression for the remote Message VPN connection. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "connectOrder": { + "description": "The preference given to incoming connections from remote Message VPN hosts, from 1 (highest priority) to 4 (lowest priority). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `4`.", + "format": "int32", + "type": "integer" + }, + "egressFlowWindowSize": { + "description": "The number of outstanding guaranteed messages that can be transmitted over the remote Message VPN connection before an acknowledgement is received. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `255`.", + "format": "int64", + "type": "integer" + }, + "enabled": { + "description": "Enable or disable the remote Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "password": { + "description": "The password for the Client Username. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "queueBinding": { + "description": "The queue binding of the Bridge in the remote Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "remoteMsgVpnInterface": { + "description": "The physical interface on the local Message VPN host for connecting to the remote Message VPN. By default, an interface is chosen automatically (recommended), but if specified, `remoteMsgVpnLocation` must not be a virtual router name.", + "type": "string" + }, + "remoteMsgVpnLocation": { + "description": "The location of the remote Message VPN as either an FQDN with port, IP address with port, or virtual router name (starting with \"v:\").", + "type": "string" + }, + "remoteMsgVpnName": { + "description": "The name of the remote Message VPN.", + "type": "string" + }, + "tlsEnabled": { + "description": "Enable or disable encryption (TLS) for the remote Message VPN connection. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "unidirectionalClientProfile": { + "description": "The Client Profile for the unidirectional Bridge of the remote Message VPN. The Client Profile must exist in the local Message VPN, and it is used only for the TCP parameters. Note that the default client profile has a TCP maximum window size of 2MB. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"#client-profile\"`.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeRemoteMsgVpnLinks": { + "properties": { + "uri": { + "description": "The URI of this Remote Message VPN object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeRemoteMsgVpnResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpn" + }, + "links": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeRemoteMsgVpnsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpn" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeRemoteSubscription": { + "properties": { + "bridgeName": { + "description": "The name of the Bridge.", + "type": "string" + }, + "bridgeVirtualRouter": { + "description": "The virtual router of the Bridge. The allowed values and their meaning are:\n\n
\n\"primary\" - The Bridge is used for the primary virtual router.\n\"backup\" - The Bridge is used for the backup virtual router.\n\"auto\" - The Bridge is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "deliverAlwaysEnabled": { + "description": "Enable or disable deliver-always for the Bridge remote subscription topic instead of a deliver-to-one remote priority. A given topic for the Bridge may be deliver-to-one or deliver-always but not both.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "remoteSubscriptionTopic": { + "description": "The topic of the Bridge remote subscription.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeRemoteSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Remote Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeRemoteSubscriptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeRemoteSubscriptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnBridge" + }, + "links": { + "$ref": "#/definitions/MsgVpnBridgeLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeTlsTrustedCommonName": { + "properties": { + "bridgeName": { + "description": "The name of the Bridge. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "bridgeVirtualRouter": { + "description": "The virtual router of the Bridge. The allowed values and their meaning are:\n\n
\n\"primary\" - The Bridge is used for the primary virtual router.\n\"backup\" - The Bridge is used for the backup virtual router.\n\"auto\" - The Bridge is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "tlsTrustedCommonName": { + "description": "The expected trusted common name of the remote certificate. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeTlsTrustedCommonNameLinks": { + "properties": { + "uri": { + "description": "The URI of this Trusted Common Name object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeTlsTrustedCommonNameResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonName" + }, + "links": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeTlsTrustedCommonNamesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonName" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnBridge" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRule": { + "properties": { + "enabled": { + "description": "Enable or disable a certificate matching rule. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleAttributeFilter": { + "properties": { + "attributeName": { + "description": "Client Username Attribute to be tested. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "attributeValue": { + "description": "Expected attribute value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "filterName": { + "description": "The name of the filter.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleAttributeFilterLinks": { + "properties": { + "uri": { + "description": "The URI of this Certificate Matching Rule Attribute Filter object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleAttributeFilterResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilter" + }, + "links": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRuleAttributeFiltersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilter" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRuleCondition": { + "properties": { + "attribute": { + "description": "Client Username Attribute to be compared with certificate content. Either an attribute or an expression must be provided on creation, but not both. The default value is `\"\"`.", + "type": "string" + }, + "expression": { + "description": "Glob expression to be matched with certificate content. Either an expression or an attribute must be provided on creation, but not both. The default value is `\"\"`.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + }, + "source": { + "description": "Certificate field to be compared with the Attribute. The allowed values and their meaning are:\n\n
\n\"certificate-thumbprint\" - The attribute is computed as the SHA-1 hash over the entire DER-encoded contents of the client certificate.\n\"common-name\" - The attribute is extracted from the certificate's first instance of the Common Name attribute in the Subject DN.\n\"common-name-last\" - The attribute is extracted from the certificate's last instance of the Common Name attribute in the Subject DN.\n\"subject-alternate-name-msupn\" - The attribute is extracted from the certificate's Other Name type of the Subject Alternative Name and must have the msUPN signature.\n\"uid\" - The attribute is extracted from the certificate's first instance of the User Identifier attribute in the Subject DN.\n\"uid-last\" - The attribute is extracted from the certificate's last instance of the User Identifier attribute in the Subject DN.\n\"org-unit\" - The attribute is extracted from the certificate's first instance of the Org Unit attribute in the Subject DN.\n\"org-unit-last\" - The attribute is extracted from the certificate's last instance of the Org Unit attribute in the Subject DN.\n\"issuer\" - The attribute is extracted from the certificate's Issuer DN.\n\"subject\" - The attribute is extracted from the certificate's Subject DN.\n\"serial-number\" - The attribute is extracted from the certificate's Serial Number.\n\"dns-name\" - The attribute is extracted from the certificate's Subject Alt Name DNSName.\n\"ip-address\" - The attribute is extracted from the certificate's Subject Alt Name IPAddress.\n
\n", + "enum": [ + "certificate-thumbprint", + "common-name", + "common-name-last", + "subject-alternate-name-msupn", + "uid", + "uid-last", + "org-unit", + "org-unit-last", + "issuer", + "subject", + "serial-number", + "dns-name", + "ip-address" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleConditionLinks": { + "properties": { + "uri": { + "description": "The URI of this Certificate Matching Rule Condition object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleConditionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleCondition" + }, + "links": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRuleConditionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleCondition" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRuleLinks": { + "properties": { + "attributeFiltersUri": { + "description": "The URI of this Certificate Matching Rule's collection of Certificate Matching Rule Attribute Filter objects. Available since 2.28.", + "type": "string" + }, + "conditionsUri": { + "description": "The URI of this Certificate Matching Rule's collection of Certificate Matching Rule Condition objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Certificate Matching Rule object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnCertMatchingRule" + }, + "links": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRulesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRule" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientProfile": { + "properties": { + "allowBridgeConnectionsEnabled": { + "description": "Enable or disable allowing Bridge clients using the Client Profile to connect. Changing this setting does not affect existing Bridge client connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "allowCutThroughForwardingEnabled": { + "description": "Enable or disable allowing clients using the Client Profile to bind to endpoints with the cut-through forwarding delivery mode. Changing this value does not affect existing client connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Deprecated since 2.22. This attribute has been deprecated. Please visit the Solace Product Lifecycle Policy web page for details on deprecated features.", + "type": "boolean" + }, + "allowGuaranteedEndpointCreateDurability": { + "description": "The types of Queues and Topic Endpoints that clients using the client-profile can create. Changing this value does not affect existing client connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"all\"`. The allowed values and their meaning are:\n\n
\n\"all\" - Client can create any type of endpoint.\n\"durable\" - Client can create only durable endpoints.\n\"non-durable\" - Client can create only non-durable endpoints.\n
\n Available since 2.14.", + "enum": [ + "all", + "durable", + "non-durable" + ], + "type": "string" + }, + "allowGuaranteedEndpointCreateEnabled": { + "description": "Enable or disable allowing clients using the Client Profile to create topic endponts or queues. Changing this value does not affect existing client connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "allowGuaranteedMsgReceiveEnabled": { + "description": "Enable or disable allowing clients using the Client Profile to receive guaranteed messages. Changing this setting does not affect existing client connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "allowGuaranteedMsgSendEnabled": { + "description": "Enable or disable allowing clients using the Client Profile to send guaranteed messages. Changing this setting does not affect existing client connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "allowSharedSubscriptionsEnabled": { + "description": "Enable or disable allowing shared subscriptions. Changing this setting does not affect existing subscriptions. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.11.", + "type": "boolean" + }, + "allowTransactedSessionsEnabled": { + "description": "Enable or disable allowing clients using the Client Profile to establish transacted sessions. Changing this setting does not affect existing client connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "apiQueueManagementCopyFromOnCreateName": { + "description": "The name of a queue to copy settings from when a new queue is created by a client using the Client Profile. The referenced queue must exist in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Deprecated since 2.14. This attribute has been replaced with `apiQueueManagementCopyFromOnCreateTemplateName`.", + "type": "string" + }, + "apiQueueManagementCopyFromOnCreateTemplateName": { + "description": "The name of a queue template to copy settings from when a new queue is created by a client using the Client Profile. If the referenced queue template does not exist, queue creation will fail when it tries to resolve this template. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.14.", + "type": "string" + }, + "apiTopicEndpointManagementCopyFromOnCreateName": { + "description": "The name of a topic endpoint to copy settings from when a new topic endpoint is created by a client using the Client Profile. The referenced topic endpoint must exist in the Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Deprecated since 2.14. This attribute has been replaced with `apiTopicEndpointManagementCopyFromOnCreateTemplateName`.", + "type": "string" + }, + "apiTopicEndpointManagementCopyFromOnCreateTemplateName": { + "description": "The name of a topic endpoint template to copy settings from when a new topic endpoint is created by a client using the Client Profile. If the referenced topic endpoint template does not exist, topic endpoint creation will fail when it tries to resolve this template. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.14.", + "type": "string" + }, + "clientProfileName": { + "description": "The name of the Client Profile.", + "type": "string" + }, + "compressionEnabled": { + "description": "Enable or disable allowing clients using the Client Profile to use compression. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`. Available since 2.10.", + "type": "boolean" + }, + "elidingDelay": { + "description": "The amount of time to delay the delivery of messages to clients using the Client Profile after the initial message has been delivered (the eliding delay interval), in milliseconds. A value of 0 means there is no delay in delivering messages to clients. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "elidingEnabled": { + "description": "Enable or disable message eliding for clients using the Client Profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "elidingMaxTopicCount": { + "description": "The maximum number of topics tracked for message eliding per client connection using the Client Profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `256`.", + "format": "int64", + "type": "integer" + }, + "eventClientProvisionedEndpointSpoolUsageThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "eventConnectionCountPerClientUsernameThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventEgressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventEndpointCountPerClientUsernameThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventIngressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceSmfConnectionCountPerClientUsernameThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceWebConnectionCountPerClientUsernameThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventSubscriptionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventTransactedSessionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventTransactionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "maxConnectionCountPerClientUsername": { + "description": "The maximum number of client connections per Client Username using the Client Profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is the maximum value supported by the platform.", + "format": "int64", + "type": "integer" + }, + "maxEgressFlowCount": { + "description": "The maximum number of transmit flows that can be created by one client using the Client Profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`.", + "format": "int64", + "type": "integer" + }, + "maxEndpointCountPerClientUsername": { + "description": "The maximum number of queues and topic endpoints that can be created by clients with the same Client Username using the Client Profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`.", + "format": "int64", + "type": "integer" + }, + "maxIngressFlowCount": { + "description": "The maximum number of receive flows that can be created by one client using the Client Profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`.", + "format": "int64", + "type": "integer" + }, + "maxMsgsPerTransaction": { + "description": "The maximum number of publisher and consumer messages combined that is allowed within a transaction for each client associated with this client-profile. Exceeding this limit will result in a transaction prepare or commit failure. Changing this value during operation will not affect existing sessions. It is only validated at transaction creation time. Large transactions consume more resources and are more likely to require retrieving messages from the ADB or from disk to process the transaction prepare or commit requests. The transaction processing rate may diminish if a large number of messages must be retrieved from the ADB or from disk. Care should be taken to not use excessively large transactions needlessly to avoid exceeding resource limits and to avoid reducing the overall broker performance. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `256`. Available since 2.20.", + "format": "int32", + "type": "integer" + }, + "maxSubscriptionCount": { + "description": "The maximum number of subscriptions per client using the Client Profile. This limit is not enforced when a client adds a subscription to an endpoint, except for MQTT QoS 1 subscriptions. In addition, this limit is not enforced when a subscription is added using a management interface, such as CLI or SEMP. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default varies by platform.", + "format": "int64", + "type": "integer" + }, + "maxTransactedSessionCount": { + "description": "The maximum number of transacted sessions that can be created by one client using the Client Profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10`.", + "format": "int64", + "type": "integer" + }, + "maxTransactionCount": { + "description": "The maximum number of transactions that can be created by one client using the Client Profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default varies by platform.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueControl1MaxDepth": { + "description": "The maximum depth of the \"Control 1\" (C-1) priority queue, in work units. Each work unit is 2048 bytes of message data. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `20000`.", + "format": "int32", + "type": "integer" + }, + "queueControl1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Control 1\" (C-1) priority queue, regardless of the `queueControl1MaxDepth` value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `4`.", + "format": "int32", + "type": "integer" + }, + "queueDirect1MaxDepth": { + "description": "The maximum depth of the \"Direct 1\" (D-1) priority queue, in work units. Each work unit is 2048 bytes of message data. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `20000`.", + "format": "int32", + "type": "integer" + }, + "queueDirect1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 1\" (D-1) priority queue, regardless of the `queueDirect1MaxDepth` value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `4`.", + "format": "int32", + "type": "integer" + }, + "queueDirect2MaxDepth": { + "description": "The maximum depth of the \"Direct 2\" (D-2) priority queue, in work units. Each work unit is 2048 bytes of message data. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `20000`.", + "format": "int32", + "type": "integer" + }, + "queueDirect2MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 2\" (D-2) priority queue, regardless of the `queueDirect2MaxDepth` value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `4`.", + "format": "int32", + "type": "integer" + }, + "queueDirect3MaxDepth": { + "description": "The maximum depth of the \"Direct 3\" (D-3) priority queue, in work units. Each work unit is 2048 bytes of message data. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `20000`.", + "format": "int32", + "type": "integer" + }, + "queueDirect3MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 3\" (D-3) priority queue, regardless of the `queueDirect3MaxDepth` value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `4`.", + "format": "int32", + "type": "integer" + }, + "queueGuaranteed1MaxDepth": { + "description": "The maximum depth of the \"Guaranteed 1\" (G-1) priority queue, in work units. Each work unit is 2048 bytes of message data. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `20000`.", + "format": "int32", + "type": "integer" + }, + "queueGuaranteed1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Guaranteed 1\" (G-3) priority queue, regardless of the `queueGuaranteed1MaxDepth` value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `255`.", + "format": "int32", + "type": "integer" + }, + "rejectMsgToSenderOnNoSubscriptionMatchEnabled": { + "description": "Enable or disable the sending of a negative acknowledgement (NACK) to a client using the Client Profile when discarding a guaranteed message due to no matching subscription found. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.2.", + "type": "boolean" + }, + "replicationAllowClientConnectWhenStandbyEnabled": { + "description": "Enable or disable allowing clients using the Client Profile to connect to the Message VPN when its replication state is standby. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "serviceMinKeepaliveTimeout": { + "description": "The minimum client keepalive timeout which will be enforced for client connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `30`. Available since 2.19.", + "format": "int32", + "type": "integer" + }, + "serviceSmfMaxConnectionCountPerClientUsername": { + "description": "The maximum number of SMF client connections per Client Username using the Client Profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is the maximum value supported by the platform.", + "format": "int64", + "type": "integer" + }, + "serviceSmfMinKeepaliveEnabled": { + "description": "Enable or disable the enforcement of a minimum keepalive timeout for SMF clients. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.19.", + "type": "boolean" + }, + "serviceWebInactiveTimeout": { + "description": "The timeout for inactive Web Transport client sessions using the Client Profile, in seconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `30`.", + "format": "int64", + "type": "integer" + }, + "serviceWebMaxConnectionCountPerClientUsername": { + "description": "The maximum number of Web Transport client connections per Client Username using the Client Profile. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is the maximum value supported by the platform.", + "format": "int64", + "type": "integer" + }, + "serviceWebMaxPayload": { + "description": "The maximum Web Transport payload size before fragmentation occurs for clients using the Client Profile, in bytes. The size of the header is not included. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000000`.", + "format": "int64", + "type": "integer" + }, + "tcpCongestionWindowSize": { + "description": "The TCP initial congestion window size for clients using the Client Profile, in multiples of the TCP Maximum Segment Size (MSS). Changing the value from its default of 2 results in non-compliance with RFC 2581. Contact support before changing this value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `2`.", + "format": "int64", + "type": "integer" + }, + "tcpKeepaliveCount": { + "description": "The number of TCP keepalive retransmissions to a client using the Client Profile before declaring that it is not available. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `5`.", + "format": "int64", + "type": "integer" + }, + "tcpKeepaliveIdleTime": { + "description": "The amount of time a client connection using the Client Profile must remain idle before TCP begins sending keepalive probes, in seconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int64", + "type": "integer" + }, + "tcpKeepaliveInterval": { + "description": "The amount of time between TCP keepalive retransmissions to a client using the Client Profile when no acknowledgement is received, in seconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1`.", + "format": "int64", + "type": "integer" + }, + "tcpMaxSegmentSize": { + "description": "The TCP maximum segment size for clients using the Client Profile, in bytes. Changes are applied to all existing connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1460`.", + "format": "int64", + "type": "integer" + }, + "tcpMaxWindowSize": { + "description": "The TCP maximum window size for clients using the Client Profile, in kilobytes. Changes are applied to all existing connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `256`.", + "format": "int64", + "type": "integer" + }, + "tlsAllowDowngradeToPlainTextEnabled": { + "description": "Enable or disable allowing a client using the Client Profile to downgrade an encrypted connection to plain text. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`. Available since 2.8.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnClientProfileLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientProfileResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnClientProfile" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientProfilesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientUsername": { + "properties": { + "aclProfileName": { + "description": "The ACL Profile of the Client Username. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"default\"`.", + "type": "string" + }, + "clientProfileName": { + "description": "The Client Profile of the Client Username. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"default\"`.", + "type": "string" + }, + "clientUsername": { + "description": "The name of the Client Username.", + "type": "string" + }, + "enabled": { + "description": "Enable or disable the Client Username. When disabled, all clients currently connected as the Client Username are disconnected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "guaranteedEndpointPermissionOverrideEnabled": { + "description": "Enable or disable guaranteed endpoint permission override for the Client Username. When enabled all guaranteed endpoints may be accessed, modified or deleted with the same permission as the owner. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "password": { + "description": "The password for the Client Username. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "subscriptionManagerEnabled": { + "description": "Enable or disable the subscription management capability of the Client Username. This is the ability to manage subscriptions on behalf of other Client Usernames. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnClientUsernameAttribute": { + "properties": { + "attributeName": { + "description": "The name of the Attribute.", + "type": "string" + }, + "attributeValue": { + "description": "The value of the Attribute.", + "type": "string" + }, + "clientUsername": { + "description": "The name of the Client Username.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientUsernameAttributeLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Username Attribute object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientUsernameAttributeResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnClientUsernameAttribute" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributeLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientUsernameAttributesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientUsernameAttribute" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributeLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientUsernameLinks": { + "properties": { + "attributesUri": { + "description": "The URI of this Client Username's collection of Client Username Attribute objects. Available since 2.27.", + "type": "string" + }, + "uri": { + "description": "The URI of this Client Username object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientUsernameResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnClientUsername" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientUsernameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientUsernamesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientUsername" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientUsernameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCache": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "cacheVirtualRouter": { + "description": "The virtual router of the Distributed Cache. The default value is `\"auto\"`. The allowed values and their meaning are:\n\n
\n\"auto\" - The Distributed Cache is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n Available since 2.28.", + "enum": [ + "auto" + ], + "type": "string" + }, + "enabled": { + "description": "Enable or disable the Distributed Cache. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "heartbeat": { + "description": "The heartbeat interval, in seconds, used by the Cache Instances to monitor connectivity with the message broker. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10`.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "scheduledDeleteMsgDayList": { + "description": "The scheduled delete message day(s), specified as \"daily\" or a comma-separated list of days. Days must be specified as \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", or \"Sat\", with no spaces, and in sorted order from Sunday to Saturday. The empty-string (\"\") can also be specified, indicating no schedule is configured (\"scheduledDeleteMsgTimeList\" must also be configured to the empty-string). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "scheduledDeleteMsgTimeList": { + "description": "The scheduled delete message time(s), specified as \"hourly\" or a comma-separated list of 24-hour times in the form hh:mm, or h:mm. There must be no spaces, and times (up to 4) must be in sorted order from 0:00 to 23:59. The empty-string (\"\") can also be specified, indicating no schedule is configured (\"scheduledDeleteMsgDayList\" must also be configured to the empty-string). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheCluster": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "deliverToOneOverrideEnabled": { + "description": "Enable or disable deliver-to-one override for the Cache Cluster. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "enabled": { + "description": "Enable or disable the Cache Cluster. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "eventDataByteRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "eventDataMsgRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "eventMaxMemoryThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "eventMaxTopicsThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "eventRequestQueueDepthThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "eventRequestRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "eventResponseRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "globalCachingEnabled": { + "description": "Enable or disable global caching for the Cache Cluster. When enabled, the Cache Instances will fetch topics from remote Home Cache Clusters when requested, and subscribe to those topics to cache them locally. When disabled, the Cache Instances will remove all subscriptions and cached messages for topics from remote Home Cache Clusters. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "globalCachingHeartbeat": { + "description": "The heartbeat interval, in seconds, used by the Cache Instances to monitor connectivity with the remote Home Cache Clusters. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int64", + "type": "integer" + }, + "globalCachingTopicLifetime": { + "description": "The topic lifetime, in seconds. If no client requests are received for a given global topic over the duration of the topic lifetime, then the Cache Instance will remove the subscription and cached messages for that topic. A value of 0 disables aging. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3600`.", + "format": "int64", + "type": "integer" + }, + "maxMemory": { + "description": "The maximum memory usage, in megabytes (MB), for each Cache Instance in the Cache Cluster. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `2048`.", + "format": "int64", + "type": "integer" + }, + "maxMsgsPerTopic": { + "description": "The maximum number of messages per topic for each Cache Instance in the Cache Cluster. When at the maximum, old messages are removed as new messages arrive. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1`.", + "format": "int64", + "type": "integer" + }, + "maxRequestQueueDepth": { + "description": "The maximum queue depth for cache requests received by the Cache Cluster. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `100000`.", + "format": "int64", + "type": "integer" + }, + "maxTopicCount": { + "description": "The maximum number of topics for each Cache Instance in the Cache Cluster. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `2000000`.", + "format": "int64", + "type": "integer" + }, + "msgLifetime": { + "description": "The message lifetime, in seconds. If a message remains cached for the duration of its lifetime, the Cache Instance will remove the message. A lifetime of 0 results in the message being retained indefinitely. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "newTopicAdvertisementEnabled": { + "description": "Enable or disable the advertising, onto the message bus, of new topics learned by each Cache Instance in the Cache Cluster. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeCluster": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "homeClusterName": { + "description": "The name of the remote Home Cache Cluster.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterLinks": { + "properties": { + "topicPrefixesUri": { + "description": "The URI of this Home Cache Cluster's collection of Topic Prefix objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Home Cache Cluster object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeCluster" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "homeClusterName": { + "description": "The name of the remote Home Cache Cluster.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "topicPrefix": { + "description": "A topic prefix for global topics available from the remote Home Cache Cluster. A wildcard (/>) is implied at the end of the prefix.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic Prefix object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClustersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeCluster" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstance": { + "properties": { + "autoStartEnabled": { + "description": "Enable or disable auto-start for the Cache Instance. When enabled, the Cache Instance will automatically attempt to transition from the Stopped operational state to Up whenever it restarts or reconnects to the message broker. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "enabled": { + "description": "Enable or disable the Cache Instance. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "instanceName": { + "description": "The name of the Cache Instance.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "stopOnLostMsgEnabled": { + "description": "Enable or disable stop-on-lost-message for the Cache Instance. When enabled, the Cache Instance will transition to the stopped operational state upon losing a message. When stopped, it cannot accept or respond to cache requests, but continues to cache messages. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceLinks": { + "properties": { + "uri": { + "description": "The URI of this Cache Instance object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstance" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstancesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstance" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterLinks": { + "properties": { + "globalCachingHomeClustersUri": { + "description": "The URI of this Cache Cluster's collection of Home Cache Cluster objects.", + "type": "string" + }, + "instancesUri": { + "description": "The URI of this Cache Cluster's collection of Cache Instance objects.", + "type": "string" + }, + "topicsUri": { + "description": "The URI of this Cache Cluster's collection of Topic objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Cache Cluster object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheCluster" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterTopic": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "topic": { + "description": "The value of the Topic in the form a/b/c.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterTopicLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterTopicResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopic" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterTopicsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopic" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClustersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheCluster" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheLinks": { + "properties": { + "clustersUri": { + "description": "The URI of this Distributed Cache's collection of Cache Cluster objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Distributed Cache object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnDistributedCache" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCachesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCache" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDmrBridge": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "remoteMsgVpnName": { + "description": "The remote Message VPN of the DMR Bridge. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the DMR Bridge.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDmrBridgeLinks": { + "properties": { + "uri": { + "description": "The URI of this DMR Bridge object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDmrBridgeResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnDmrBridge" + }, + "links": { + "$ref": "#/definitions/MsgVpnDmrBridgeLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDmrBridgesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDmrBridge" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDmrBridgeLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiConnectionFactoriesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactory" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiConnectionFactory": { + "properties": { + "allowDuplicateClientIdEnabled": { + "description": "Enable or disable whether new JMS connections can use the same Client identifier (ID) as an existing connection. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.3.", + "type": "boolean" + }, + "clientDescription": { + "description": "The description of the Client. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "clientId": { + "description": "The Client identifier (ID). If not specified, a unique value for it will be generated. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "connectionFactoryName": { + "description": "The name of the JMS Connection Factory.", + "type": "string" + }, + "dtoReceiveOverrideEnabled": { + "description": "Enable or disable overriding by the Subscriber (Consumer) of the deliver-to-one (DTO) property on messages. When enabled, the Subscriber can receive all DTO tagged messages. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "dtoReceiveSubscriberLocalPriority": { + "description": "The priority for receiving deliver-to-one (DTO) messages by the Subscriber (Consumer) if the messages are published on the local broker that the Subscriber is directly connected to. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1`.", + "format": "int32", + "type": "integer" + }, + "dtoReceiveSubscriberNetworkPriority": { + "description": "The priority for receiving deliver-to-one (DTO) messages by the Subscriber (Consumer) if the messages are published on a remote broker. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1`.", + "format": "int32", + "type": "integer" + }, + "dtoSendEnabled": { + "description": "Enable or disable the deliver-to-one (DTO) property on messages sent by the Publisher (Producer). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "dynamicEndpointCreateDurableEnabled": { + "description": "Enable or disable whether a durable endpoint will be dynamically created on the broker when the client calls \"Session.createDurableSubscriber()\" or \"Session.createQueue()\". The created endpoint respects the message time-to-live (TTL) according to the \"dynamicEndpointRespectTtlEnabled\" property. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "dynamicEndpointRespectTtlEnabled": { + "description": "Enable or disable whether dynamically created durable and non-durable endpoints respect the message time-to-live (TTL) property. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "guaranteedReceiveAckTimeout": { + "description": "The timeout for sending the acknowledgement (ACK) for guaranteed messages received by the Subscriber (Consumer), in milliseconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`.", + "format": "int32", + "type": "integer" + }, + "guaranteedReceiveReconnectRetryCount": { + "description": "The maximum number of attempts to reconnect to the host or list of hosts after the guaranteed messaging connection has been lost. The value \"-1\" means to retry forever. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `-1`. Available since 2.14.", + "format": "int32", + "type": "integer" + }, + "guaranteedReceiveReconnectRetryWait": { + "description": "The amount of time to wait before making another attempt to connect or reconnect to the host after the guaranteed messaging connection has been lost, in milliseconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3000`. Available since 2.14.", + "format": "int32", + "type": "integer" + }, + "guaranteedReceiveWindowSize": { + "description": "The size of the window for guaranteed messages received by the Subscriber (Consumer), in messages. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `18`.", + "format": "int32", + "type": "integer" + }, + "guaranteedReceiveWindowSizeAckThreshold": { + "description": "The threshold for sending the acknowledgement (ACK) for guaranteed messages received by the Subscriber (Consumer) as a percentage of `guaranteedReceiveWindowSize`. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `60`.", + "format": "int32", + "type": "integer" + }, + "guaranteedSendAckTimeout": { + "description": "The timeout for receiving the acknowledgement (ACK) for guaranteed messages sent by the Publisher (Producer), in milliseconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `2000`.", + "format": "int32", + "type": "integer" + }, + "guaranteedSendWindowSize": { + "description": "The size of the window for non-persistent guaranteed messages sent by the Publisher (Producer), in messages. For persistent messages the window size is fixed at 1. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `255`.", + "format": "int32", + "type": "integer" + }, + "messagingDefaultDeliveryMode": { + "description": "The default delivery mode for messages sent by the Publisher (Producer). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"persistent\"`. The allowed values and their meaning are:\n\n
\n\"persistent\" - The broker spools messages (persists in the Message Spool) as part of the send operation.\n\"non-persistent\" - The broker does not spool messages (does not persist in the Message Spool) as part of the send operation.\n
\n", + "enum": [ + "persistent", + "non-persistent" + ], + "type": "string" + }, + "messagingDefaultDmqEligibleEnabled": { + "description": "Enable or disable whether messages sent by the Publisher (Producer) are Dead Message Queue (DMQ) eligible by default. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "messagingDefaultElidingEligibleEnabled": { + "description": "Enable or disable whether messages sent by the Publisher (Producer) are Eliding eligible by default. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "messagingJmsxUserIdEnabled": { + "description": "Enable or disable inclusion (adding or replacing) of the JMSXUserID property in messages sent by the Publisher (Producer). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "messagingTextInXmlPayloadEnabled": { + "description": "Enable or disable encoding of JMS text messages in Publisher (Producer) messages as XML payload. When disabled, JMS text messages are encoded as a binary attachment. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "transportCompressionLevel": { + "description": "The ZLIB compression level for the connection to the broker. The value \"0\" means no compression, and the value \"-1\" means the compression level is specified in the JNDI Properties file. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `-1`.", + "format": "int32", + "type": "integer" + }, + "transportConnectRetryCount": { + "description": "The maximum number of retry attempts to establish an initial connection to the host or list of hosts. The value \"0\" means a single attempt (no retries), and the value \"-1\" means to retry forever. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int32", + "type": "integer" + }, + "transportConnectRetryPerHostCount": { + "description": "The maximum number of retry attempts to establish an initial connection to each host on the list of hosts. The value \"0\" means a single attempt (no retries), and the value \"-1\" means to retry forever. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int32", + "type": "integer" + }, + "transportConnectTimeout": { + "description": "The timeout for establishing an initial connection to the broker, in milliseconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `30000`.", + "format": "int32", + "type": "integer" + }, + "transportDirectTransportEnabled": { + "description": "Enable or disable usage of Direct Transport mode. When enabled, NON-PERSISTENT messages are sent as direct messages and non-durable topic consumers and temporary queue consumers consume using direct subscriptions rather than from guaranteed endpoints. If disabled all messaging uses guaranteed transport. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "transportKeepaliveCount": { + "description": "The maximum number of consecutive application-level keepalive messages sent without the broker response before the connection to the broker is closed. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int32", + "type": "integer" + }, + "transportKeepaliveEnabled": { + "description": "Enable or disable usage of application-level keepalive messages to maintain a connection with the broker. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "transportKeepaliveInterval": { + "description": "The interval between application-level keepalive messages, in milliseconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3000`.", + "format": "int32", + "type": "integer" + }, + "transportMsgCallbackOnIoThreadEnabled": { + "description": "Enable or disable delivery of asynchronous messages directly from the I/O thread. Contact support before enabling this property. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "transportOptimizeDirectEnabled": { + "description": "Enable or disable optimization for the Direct Transport delivery mode. If enabled, the client application is limited to one Publisher (Producer) and one non-durable Subscriber (Consumer). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "transportPort": { + "description": "The connection port number on the broker for SMF clients. The value \"-1\" means the port is specified in the JNDI Properties file. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `-1`.", + "format": "int32", + "type": "integer" + }, + "transportReadTimeout": { + "description": "The timeout for reading a reply from the broker, in milliseconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000`.", + "format": "int32", + "type": "integer" + }, + "transportReceiveBufferSize": { + "description": "The size of the receive socket buffer, in bytes. It corresponds to the SO_RCVBUF socket option. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `65536`.", + "format": "int32", + "type": "integer" + }, + "transportReconnectRetryCount": { + "description": "The maximum number of attempts to reconnect to the host or list of hosts after the connection has been lost. The value \"-1\" means to retry forever. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int32", + "type": "integer" + }, + "transportReconnectRetryWait": { + "description": "The amount of time before making another attempt to connect or reconnect to the host after the connection has been lost, in milliseconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3000`.", + "format": "int32", + "type": "integer" + }, + "transportSendBufferSize": { + "description": "The size of the send socket buffer, in bytes. It corresponds to the SO_SNDBUF socket option. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `65536`.", + "format": "int32", + "type": "integer" + }, + "transportTcpNoDelayEnabled": { + "description": "Enable or disable the TCP_NODELAY option. When enabled, Nagle's algorithm for TCP/IP congestion control (RFC 896) is disabled. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "xaEnabled": { + "description": "Enable or disable this as an XA Connection Factory. When enabled, the Connection Factory can be cast to \"XAConnectionFactory\", \"XAQueueConnectionFactory\" or \"XATopicConnectionFactory\". Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnJndiConnectionFactoryLinks": { + "properties": { + "uri": { + "description": "The URI of this JNDI Connection Factory object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnJndiConnectionFactoryResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactory" + }, + "links": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiQueue": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "physicalName": { + "description": "The physical name of the JMS Queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "queueName": { + "description": "The JNDI name of the JMS Queue.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnJndiQueueLinks": { + "properties": { + "uri": { + "description": "The URI of this JNDI Queue object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnJndiQueueResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnJndiQueue" + }, + "links": { + "$ref": "#/definitions/MsgVpnJndiQueueLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiQueuesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnJndiQueue" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnJndiQueueLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiTopic": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "physicalName": { + "description": "The physical name of the JMS Topic. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "topicName": { + "description": "The JNDI name of the JMS Topic.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnJndiTopicLinks": { + "properties": { + "uri": { + "description": "The URI of this JNDI Topic object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnJndiTopicResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnJndiTopic" + }, + "links": { + "$ref": "#/definitions/MsgVpnJndiTopicLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiTopicsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnJndiTopic" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnJndiTopicLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnLinks": { + "properties": { + "aclProfilesUri": { + "description": "The URI of this Message VPN's collection of ACL Profile objects.", + "type": "string" + }, + "authenticationOauthProfilesUri": { + "description": "The URI of this Message VPN's collection of OAuth Profile objects. Available since 2.25.", + "type": "string" + }, + "authenticationOauthProvidersUri": { + "description": "The URI of this Message VPN's collection of OAuth Provider objects. Deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "type": "string" + }, + "authorizationGroupsUri": { + "description": "The URI of this Message VPN's collection of Authorization Group objects.", + "type": "string" + }, + "bridgesUri": { + "description": "The URI of this Message VPN's collection of Bridge objects.", + "type": "string" + }, + "certMatchingRulesUri": { + "description": "The URI of this Message VPN's collection of Certificate Matching Rule objects. Available since 2.27.", + "type": "string" + }, + "clientProfilesUri": { + "description": "The URI of this Message VPN's collection of Client Profile objects.", + "type": "string" + }, + "clientUsernamesUri": { + "description": "The URI of this Message VPN's collection of Client Username objects.", + "type": "string" + }, + "distributedCachesUri": { + "description": "The URI of this Message VPN's collection of Distributed Cache objects. Available since 2.11.", + "type": "string" + }, + "dmrBridgesUri": { + "description": "The URI of this Message VPN's collection of DMR Bridge objects. Available since 2.11.", + "type": "string" + }, + "jndiConnectionFactoriesUri": { + "description": "The URI of this Message VPN's collection of JNDI Connection Factory objects. Available since 2.2.", + "type": "string" + }, + "jndiQueuesUri": { + "description": "The URI of this Message VPN's collection of JNDI Queue objects. Available since 2.2.", + "type": "string" + }, + "jndiTopicsUri": { + "description": "The URI of this Message VPN's collection of JNDI Topic objects. Available since 2.2.", + "type": "string" + }, + "mqttRetainCachesUri": { + "description": "The URI of this Message VPN's collection of MQTT Retain Cache objects. Available since 2.11.", + "type": "string" + }, + "mqttSessionsUri": { + "description": "The URI of this Message VPN's collection of MQTT Session objects. Available since 2.1.", + "type": "string" + }, + "queueTemplatesUri": { + "description": "The URI of this Message VPN's collection of Queue Template objects. Available since 2.14.", + "type": "string" + }, + "queuesUri": { + "description": "The URI of this Message VPN's collection of Queue objects.", + "type": "string" + }, + "replayLogsUri": { + "description": "The URI of this Message VPN's collection of Replay Log objects. Available since 2.10.", + "type": "string" + }, + "replicatedTopicsUri": { + "description": "The URI of this Message VPN's collection of Replicated Topic objects. Available since 2.1.", + "type": "string" + }, + "restDeliveryPointsUri": { + "description": "The URI of this Message VPN's collection of REST Delivery Point objects.", + "type": "string" + }, + "sequencedTopicsUri": { + "description": "The URI of this Message VPN's collection of Sequenced Topic objects.", + "type": "string" + }, + "telemetryProfilesUri": { + "description": "The URI of this Message VPN's collection of Telemetry Profile objects. Available since 2.31.", + "type": "string" + }, + "topicEndpointTemplatesUri": { + "description": "The URI of this Message VPN's collection of Topic Endpoint Template objects. Available since 2.14.", + "type": "string" + }, + "topicEndpointsUri": { + "description": "The URI of this Message VPN's collection of Topic Endpoint objects. Available since 2.1.", + "type": "string" + }, + "uri": { + "description": "The URI of this Message VPN object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttRetainCache": { + "properties": { + "cacheName": { + "description": "The name of the MQTT Retain Cache.", + "type": "string" + }, + "enabled": { + "description": "Enable or disable this MQTT Retain Cache. When the cache is disabled, neither retain messages nor retain requests will be delivered by the cache. However, live retain messages will continue to be delivered to currently connected MQTT clients. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "msgLifetime": { + "description": "The message lifetime, in seconds. If a message remains cached for the duration of its lifetime, the cache will remove the message. A lifetime of 0 results in the message being retained indefinitely, otherwise it must be 3 seconds or more. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttRetainCacheLinks": { + "properties": { + "uri": { + "description": "The URI of this MQTT Retain Cache object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttRetainCacheResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnMqttRetainCache" + }, + "links": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttRetainCachesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnMqttRetainCache" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttSession": { + "properties": { + "enabled": { + "description": "Enable or disable the MQTT Session. When disabled, the client is disconnected, new messages matching QoS 0 subscriptions are discarded, and new messages matching QoS 1 subscriptions are stored for future delivery. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "mqttSessionClientId": { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "type": "string" + }, + "mqttSessionVirtualRouter": { + "description": "The virtual router of the MQTT Session. The allowed values and their meaning are:\n\n
\n\"primary\" - The MQTT Session belongs to the primary virtual router.\n\"backup\" - The MQTT Session belongs to the backup virtual router.\n\"auto\" - The MQTT Session is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "owner": { + "description": "The owner of the MQTT Session. For externally-created sessions this defaults to the Client Username of the connecting client. For management-created sessions this defaults to empty. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "queueConsumerAckPropagationEnabled": { + "description": "Enable or disable the propagation of consumer acknowledgements (ACKs) received on the active replication Message VPN to the standby replication Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`. Available since 2.14.", + "type": "boolean" + }, + "queueDeadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ) used by the MQTT Session Queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"#DEAD_MSG_QUEUE\"`. Available since 2.14.", + "type": "string" + }, + "queueEventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueEventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueEventRejectLowPriorityMsgLimitThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueMaxBindCount": { + "description": "The maximum number of consumer flows that can bind to the MQTT Session Queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueMaxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow for the MQTT Session Queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000`. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueMaxMsgSize": { + "description": "The maximum message size allowed in the MQTT Session Queue, in bytes (B). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000000`. Available since 2.14.", + "format": "int32", + "type": "integer" + }, + "queueMaxMsgSpoolUsage": { + "description": "The maximum message spool usage allowed by the MQTT Session Queue, in megabytes (MB). A value of 0 only allows spooling of the last message received and disables quota checking. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `5000`. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueMaxRedeliveryCount": { + "description": "The maximum number of times the MQTT Session Queue will attempt redelivery of a message prior to it being discarded or moved to the DMQ. A value of 0 means to retry forever. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueMaxTtl": { + "description": "The maximum time in seconds a message can stay in the MQTT Session Queue when `queueRespectTtlEnabled` is `\"true\"`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `queueMaxTtl` configured for the MQTT Session Queue, is exceeded. A value of 0 disables expiry. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueRejectLowPriorityMsgEnabled": { + "description": "Enable or disable the checking of low priority messages against the `queueRejectLowPriorityMsgLimit`. This may only be enabled if `queueRejectMsgToSenderOnDiscardBehavior` does not have a value of `\"never\"`. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.14.", + "type": "boolean" + }, + "queueRejectLowPriorityMsgLimit": { + "description": "The number of messages of any priority in the MQTT Session Queue above which low priority messages are not admitted but higher priority messages are allowed. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueRejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as queueRejectLowPriorityMsgEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"when-queue-enabled\"`. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-queue-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Queue is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n Available since 2.14.", + "enum": [ + "always", + "when-queue-enabled", + "never" + ], + "type": "string" + }, + "queueRespectTtlEnabled": { + "description": "Enable or disable the respecting of the time-to-live (TTL) for messages in the MQTT Session Queue. When enabled, expired messages are discarded or moved to the DMQ. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.14.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionLinks": { + "properties": { + "subscriptionsUri": { + "description": "The URI of this MQTT Session's collection of Subscription objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this MQTT Session object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnMqttSession" + }, + "links": { + "$ref": "#/definitions/MsgVpnMqttSessionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttSessionSubscription": { + "properties": { + "mqttSessionClientId": { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "type": "string" + }, + "mqttSessionVirtualRouter": { + "description": "The virtual router of the MQTT Session. The allowed values and their meaning are:\n\n
\n\"primary\" - The MQTT Session belongs to the primary virtual router.\n\"backup\" - The MQTT Session belongs to the backup virtual router.\n\"auto\" - The MQTT Session is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "subscriptionQos": { + "description": "The quality of service (QoS) for the subscription as either 0 (deliver at most once) or 1 (deliver at least once). QoS 2 is not supported, but QoS 2 messages attracted by QoS 0 or QoS 1 subscriptions are accepted and delivered accordingly. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "subscriptionTopic": { + "description": "The MQTT subscription topic.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionSubscriptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttSessionSubscriptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttSessionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSession" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSessionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueue": { + "properties": { + "accessType": { + "description": "The access type for delivering messages to consumer flows bound to the Queue. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"exclusive\"`. The allowed values and their meaning are:\n\n
\n\"exclusive\" - Exclusive delivery of messages to the first bound consumer flow.\n\"non-exclusive\" - Non-exclusive delivery of messages to all bound consumer flows in a round-robin fashion.\n
\n", + "enum": [ + "exclusive", + "non-exclusive" + ], + "type": "string" + }, + "consumerAckPropagationEnabled": { + "description": "Enable or disable the propagation of consumer acknowledgements (ACKs) received on the active replication Message VPN to the standby replication Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "deadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ) used by the Queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"#DEAD_MSG_QUEUE\"`. Available since 2.2.", + "type": "string" + }, + "deliveryCountEnabled": { + "description": "Enable or disable the ability for client applications to query the message delivery count of messages received from the Queue. This is a controlled availability feature. Please contact support to find out if this feature is supported for your use case. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.19.", + "type": "boolean" + }, + "deliveryDelay": { + "description": "The delay, in seconds, to apply to messages arriving on the Queue before the messages are eligible for delivery. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "egressEnabled": { + "description": "Enable or disable the transmission of messages from the Queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "eventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventRejectLowPriorityMsgLimitThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "ingressEnabled": { + "description": "Enable or disable the reception of messages to the Queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "maxBindCount": { + "description": "The maximum number of consumer flows that can bind to the Queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`.", + "format": "int64", + "type": "integer" + }, + "maxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow for the Queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000`.", + "format": "int64", + "type": "integer" + }, + "maxMsgSize": { + "description": "The maximum message size allowed in the Queue, in bytes (B). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000000`.", + "format": "int32", + "type": "integer" + }, + "maxMsgSpoolUsage": { + "description": "The maximum message spool usage allowed by the Queue, in megabytes (MB). A value of 0 only allows spooling of the last message received and disables quota checking. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `5000`.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryCount": { + "description": "The maximum number of times the Queue will attempt redelivery of a message prior to it being discarded or moved to the DMQ. A value of 0 means to retry forever. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "maxTtl": { + "description": "The maximum time in seconds a message can stay in the Queue when `respectTtlEnabled` is `\"true\"`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `maxTtl` configured for the Queue, is exceeded. A value of 0 disables expiry. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "owner": { + "description": "The Client Username that owns the Queue and has permission equivalent to `\"delete\"`. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "partitionCount": { + "description": "The count of partitions of the queue. Only relevant for queues with an access type of non-exclusive. When zero, bound clients receive messages round-robin. Otherwise, bound clients receive messages from individually assigned partitions. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since (will be released in next SEMP version).", + "format": "int32", + "type": "integer" + }, + "partitionRebalanceDelay": { + "description": "The delay (in seconds) before a partition rebalance is started once needed. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `5`. Available since (will be released in next SEMP version).", + "format": "int64", + "type": "integer" + }, + "partitionRebalanceMaxHandoffTime": { + "description": "The maximum time (in seconds) to wait before handing off a partition while rebalancing. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`. Available since (will be released in next SEMP version).", + "format": "int64", + "type": "integer" + }, + "permission": { + "description": "The permission level for all consumers of the Queue, excluding the owner. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"no-access\"`. The allowed values and their meaning are:\n\n
\n\"no-access\" - Disallows all access.\n\"read-only\" - Read-only access to the messages.\n\"consume\" - Consume (read and remove) messages.\n\"modify-topic\" - Consume messages or modify the topic/selector.\n\"delete\" - Consume messages, modify the topic/selector or delete the Client created endpoint altogether.\n
\n", + "enum": [ + "no-access", + "read-only", + "consume", + "modify-topic", + "delete" + ], + "type": "string" + }, + "queueName": { + "description": "The name of the Queue.", + "type": "string" + }, + "redeliveryDelayEnabled": { + "description": "Enable or disable a message redelivery delay. When false, messages are redelivered as soon as possible. When true, messages are redelivered according to the initial, max and multiplier. This should only be enabled when redelivery is enabled. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.33.", + "type": "boolean" + }, + "redeliveryDelayInitialInterval": { + "description": "The delay to be used between the first 2 redelivery attempts. This value is in milliseconds. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMaxInterval": { + "description": "The maximum delay to be used between any 2 redelivery attempts. This value is in milliseconds. Due to technical limitations, some redelivery attempt delays may slightly exceed this value. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `64000`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMultiplier": { + "description": "The amount each delay interval is multiplied by after each failed delivery attempt. This number is in a fixed-point decimal format in which you must divide by 100 to get the floating point value. For example, a value of 125 would cause the delay to be multiplied by 1.25. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `200`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryEnabled": { + "description": "Enable or disable message redelivery. When enabled, the number of redelivery attempts is controlled by maxRedeliveryCount. When disabled, the message will never be delivered from the queue more than once. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`. Available since 2.18.", + "type": "boolean" + }, + "rejectLowPriorityMsgEnabled": { + "description": "Enable or disable the checking of low priority messages against the `rejectLowPriorityMsgLimit`. This may only be enabled if `rejectMsgToSenderOnDiscardBehavior` does not have a value of `\"never\"`. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "rejectLowPriorityMsgLimit": { + "description": "The number of messages of any priority in the Queue above which low priority messages are not admitted but higher priority messages are allowed. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "rejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as rejectLowPriorityMsgEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"when-queue-enabled\"`. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-queue-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Queue is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n Available since 2.1.", + "enum": [ + "always", + "when-queue-enabled", + "never" + ], + "type": "string" + }, + "respectMsgPriorityEnabled": { + "description": "Enable or disable the respecting of message priority. When enabled, messages contained in the Queue are delivered in priority order, from 9 (highest) to 0 (lowest). MQTT queues do not support enabling message priority. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled and ingressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.8.", + "type": "boolean" + }, + "respectTtlEnabled": { + "description": "Enable or disable the respecting of the time-to-live (TTL) for messages in the Queue. When enabled, expired messages are discarded or moved to the DMQ. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnQueueLinks": { + "properties": { + "subscriptionsUri": { + "description": "The URI of this Queue's collection of Queue Subscription objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Queue object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnQueue" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueueLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueSubscription": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueName": { + "description": "The name of the Queue.", + "type": "string" + }, + "subscriptionTopic": { + "description": "The topic of the Subscription.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Queue Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueSubscriptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnQueueSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueSubscriptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueueSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueTemplate": { + "properties": { + "accessType": { + "description": "The access type for delivering messages to consumer flows. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"exclusive\"`. The allowed values and their meaning are:\n\n
\n\"exclusive\" - Exclusive delivery of messages to the first bound consumer flow.\n\"non-exclusive\" - Non-exclusive delivery of messages to bound consumer flows in a round-robin (if partition count is zero) or partitioned (if partition count is non-zero) fashion.\n
\n", + "enum": [ + "exclusive", + "non-exclusive" + ], + "type": "string" + }, + "consumerAckPropagationEnabled": { + "description": "Enable or disable the propagation of consumer acknowledgements (ACKs) received on the active replication Message VPN to the standby replication Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "deadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"#DEAD_MSG_QUEUE\"`.", + "type": "string" + }, + "deliveryDelay": { + "description": "The delay, in seconds, to apply to messages arriving on the Queue before the messages are eligible for delivery. This attribute does not apply to MQTT queues created from this template, but it may apply in future releases. Therefore, to maintain forward compatibility, do not set this value on templates that might be used for MQTT queues. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "durabilityOverride": { + "description": "Controls the durability of queues created from this template. If non-durable, the created queue will be non-durable, regardless of the specified durability. If none, the created queue will have the requested durability. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"none\"`. The allowed values and their meaning are:\n\n
\n\"none\" - The durability of the endpoint will be as requested on create.\n\"non-durable\" - The durability of the created queue will be non-durable, regardless of what was requested.\n
\n", + "enum": [ + "none", + "non-durable" + ], + "type": "string" + }, + "eventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventRejectLowPriorityMsgLimitThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "maxBindCount": { + "description": "The maximum number of consumer flows that can bind. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`.", + "format": "int64", + "type": "integer" + }, + "maxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000`.", + "format": "int64", + "type": "integer" + }, + "maxMsgSize": { + "description": "The maximum message size allowed, in bytes (B). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000000`.", + "format": "int32", + "type": "integer" + }, + "maxMsgSpoolUsage": { + "description": "The maximum message spool usage allowed, in megabytes (MB). A value of 0 only allows spooling of the last message received and disables quota checking. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `5000`.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryCount": { + "description": "The maximum number of message redelivery attempts that will occur prior to the message being discarded or moved to the DMQ. A value of 0 means to retry forever. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "maxTtl": { + "description": "The maximum time in seconds a message can stay in a Queue when `respectTtlEnabled` is `\"true\"`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `maxTtl` configured for the Queue, is exceeded. A value of 0 disables expiry. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "permission": { + "description": "The permission level for all consumers, excluding the owner. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"no-access\"`. The allowed values and their meaning are:\n\n
\n\"no-access\" - Disallows all access.\n\"read-only\" - Read-only access to the messages.\n\"consume\" - Consume (read and remove) messages.\n\"modify-topic\" - Consume messages or modify the topic/selector.\n\"delete\" - Consume messages, modify the topic/selector or delete the Client created endpoint altogether.\n
\n", + "enum": [ + "no-access", + "read-only", + "consume", + "modify-topic", + "delete" + ], + "type": "string" + }, + "queueNameFilter": { + "description": "A wildcardable pattern used to determine which Queues use settings from this Template. Two different wildcards are supported: * and >. Similar to topic filters or subscription patterns, a > matches anything (but only when used at the end), and a * matches zero or more characters but never a slash (/). A > is only a wildcard when used at the end, after a /. A * is only allowed at the end, after a slash (/). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "queueTemplateName": { + "description": "The name of the Queue Template.", + "type": "string" + }, + "redeliveryDelayEnabled": { + "description": "Enable or disable a message redelivery delay. When false, messages are redelivered as soon as possible. When true, messages are redelivered according to the initial, max and multiplier. This should only be enabled when redelivery is enabled. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.33.", + "type": "boolean" + }, + "redeliveryDelayInitialInterval": { + "description": "The delay to be used between the first 2 redelivery attempts. This value is in milliseconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMaxInterval": { + "description": "The maximum delay to be used between any 2 redelivery attempts. This value is in milliseconds. Due to technical limitations, some redelivery attempt delays may slightly exceed this value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `64000`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMultiplier": { + "description": "The amount each delay interval is multiplied by after each failed delivery attempt. This number is in a fixed-point decimal format in which you must divide by 100 to get the floating point value. For example, a value of 125 would cause the delay to be multiplied by 1.25. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `200`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryEnabled": { + "description": "Enable or disable message redelivery. When enabled, the number of redelivery attempts is controlled by maxRedeliveryCount. When disabled, the message will never be delivered from the queue more than once. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`. Available since 2.18.", + "type": "boolean" + }, + "rejectLowPriorityMsgEnabled": { + "description": "Enable or disable the checking of low priority messages against the `rejectLowPriorityMsgLimit`. This may only be enabled if `rejectMsgToSenderOnDiscardBehavior` does not have a value of `\"never\"`. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "rejectLowPriorityMsgLimit": { + "description": "The number of messages of any priority above which low priority messages are not admitted but higher priority messages are allowed. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "rejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs prevent the message from being delivered to any destination and Transacted Session commits to fail. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as rejectLowPriorityMsgEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"when-queue-enabled\"`. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-queue-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Queue is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n", + "enum": [ + "always", + "when-queue-enabled", + "never" + ], + "type": "string" + }, + "respectMsgPriorityEnabled": { + "description": "Enable or disable the respecting of message priority. When enabled, messages are delivered in priority order, from 9 (highest) to 0 (lowest). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "respectTtlEnabled": { + "description": "Enable or disable the respecting of the time-to-live (TTL) for messages. When enabled, expired messages are discarded or moved to the DMQ. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnQueueTemplateLinks": { + "properties": { + "uri": { + "description": "The URI of this Queue Template object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueTemplateResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnQueueTemplate" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueueTemplateLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueTemplatesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueueTemplate" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueueTemplateLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueuesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueue" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueueLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLog": { + "properties": { + "egressEnabled": { + "description": "Enable or disable the transmission of messages from the Replay Log. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "ingressEnabled": { + "description": "Enable or disable the reception of messages to the Replay Log. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "maxSpoolUsage": { + "description": "The maximum spool usage allowed by the Replay Log, in megabytes (MB). If this limit is exceeded, old messages will be trimmed. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "replayLogName": { + "description": "The name of the Replay Log.", + "type": "string" + }, + "topicFilterEnabled": { + "description": "Enable or disable topic filtering for the Replay Log. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.27.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnReplayLogLinks": { + "properties": { + "topicFilterSubscriptionsUri": { + "description": "The URI of this Replay Log's collection of Topic Filter Subscription objects. Available since 2.27.", + "type": "string" + }, + "uri": { + "description": "The URI of this Replay Log object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplayLogResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnReplayLog" + }, + "links": { + "$ref": "#/definitions/MsgVpnReplayLogLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLogTopicFilterSubscription": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "replayLogName": { + "description": "The name of the Replay Log.", + "type": "string" + }, + "topicFilterSubscription": { + "description": "The topic of the Subscription.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplayLogTopicFilterSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic Filter Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplayLogTopicFilterSubscriptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLogTopicFilterSubscriptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLogsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLog" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplicatedTopic": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "replicatedTopic": { + "description": "The topic for applying replication. Published messages matching this topic will be replicated to the standby site.", + "type": "string" + }, + "replicationMode": { + "description": "The replication mode for the Replicated Topic. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"async\"`. The allowed values and their meaning are:\n\n
\n\"sync\" - Messages are acknowledged when replicated (spooled remotely).\n\"async\" - Messages are acknowledged when pending replication (spooled locally).\n
\n", + "enum": [ + "sync", + "async" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplicatedTopicLinks": { + "properties": { + "uri": { + "description": "The URI of this Replicated Topic object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplicatedTopicResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnReplicatedTopic" + }, + "links": { + "$ref": "#/definitions/MsgVpnReplicatedTopicLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplicatedTopicsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnReplicatedTopic" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnReplicatedTopicLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpn" + }, + "links": { + "$ref": "#/definitions/MsgVpnLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPoint": { + "properties": { + "clientProfileName": { + "description": "The Client Profile of the REST Delivery Point. It must exist in the local Message VPN. Its TCP parameters are used for all REST Consumers in this RDP. Its queue properties are used by the RDP client. The Client Profile is used inside the auto-generated Client Username for this RDP. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"default\"`.", + "type": "string" + }, + "enabled": { + "description": "Enable or disable the REST Delivery Point. When disabled, no connections are initiated or messages delivered to any of the contained REST Consumers. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + }, + "service": { + "description": "The name of the service that this REST Delivery Point connects to. Internally the broker does not use this value; it is informational only. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.19.", + "type": "string" + }, + "vendor": { + "description": "The name of the vendor that this REST Delivery Point connects to. Internally the broker does not use this value; it is informational only. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.19.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointLinks": { + "properties": { + "queueBindingsUri": { + "description": "The URI of this REST Delivery Point's collection of Queue Binding objects.", + "type": "string" + }, + "restConsumersUri": { + "description": "The URI of this REST Delivery Point's collection of REST Consumer objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this REST Delivery Point object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBinding": { + "properties": { + "gatewayReplaceTargetAuthorityEnabled": { + "description": "Enable or disable whether the authority for the request-target is replaced with that configured for the REST Consumer remote. When enabled, the broker sends HTTP requests in absolute-form, with the request-target's authority taken from the REST Consumer's remote host and port configuration. When disabled, the broker sends HTTP requests whose request-target matches that of the original request message, including whether to use absolute-form or origin-form. This configuration is applicable only when the Message VPN is in REST gateway mode. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.6.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "postRequestTarget": { + "description": "The request-target string to use when sending requests. It identifies the target resource on the far-end REST Consumer upon which to apply the request. There are generally two common forms for the request-target. The origin-form is most often used in practice and contains the path and query components of the target URI. If the path component is empty then the client must generally send a \"/\" as the path. When making a request to a proxy, most often the absolute-form is required. This configuration is only applicable when the Message VPN is in REST messaging mode. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "queueBindingName": { + "description": "The name of a queue in the Message VPN.", + "type": "string" + }, + "requestTargetEvaluation": { + "description": "The type of evaluation to perform on the request target. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"none\"`. The allowed values and their meaning are:\n\n
\n\"none\" - Do not evaluate substitution expressions on the request target.\n\"substitution-expressions\" - Evaluate substitution expressions on the request target.\n
\n Available since 2.23.", + "enum": [ + "none", + "substitution-expressions" + ], + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingLinks": { + "properties": { + "protectedRequestHeadersUri": { + "description": "The URI of this Queue Binding's collection of Protected Request Header objects. Available since 2.30.", + "type": "string" + }, + "requestHeadersUri": { + "description": "The URI of this Queue Binding's collection of Request Header objects. Available since 2.23.", + "type": "string" + }, + "uri": { + "description": "The URI of this Queue Binding object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader": { + "properties": { + "headerName": { + "description": "The name of the protected HTTP request header.", + "type": "string" + }, + "headerValue": { + "description": "The value of the protected HTTP request header. Unlike a non-protected request header, this value cannot be displayed after it is set, and does not support substitution expressions. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueBindingName": { + "description": "The name of a queue in the Message VPN.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderLinks": { + "properties": { + "uri": { + "description": "The URI of this Protected Request Header object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeadersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingRequestHeader": { + "properties": { + "headerName": { + "description": "The name of the HTTP request header.", + "type": "string" + }, + "headerValue": { + "description": "A substitution expression for the value of the HTTP request header. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueBindingName": { + "description": "The name of a queue in the Message VPN.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingRequestHeaderLinks": { + "properties": { + "uri": { + "description": "The URI of this Request Header object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingRequestHeaderResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeader" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingRequestHeadersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeader" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBinding" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBinding" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPoint" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumer": { + "properties": { + "authenticationAwsAccessKeyId": { + "description": "The AWS access key id. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.26.", + "type": "string" + }, + "authenticationAwsRegion": { + "description": "The AWS region id. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.26.", + "type": "string" + }, + "authenticationAwsSecretAccessKey": { + "description": "The AWS secret access key. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.26.", + "type": "string" + }, + "authenticationAwsService": { + "description": "The AWS service id. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.26.", + "type": "string" + }, + "authenticationClientCertContent": { + "description": "The PEM formatted content for the client certificate that the REST Consumer will present to the REST host. It must consist of a private key and between one and three certificates comprising the certificate trust chain. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changing this attribute requires an HTTPS connection. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. The default value is `\"\"`. Available since 2.9.", + "type": "string", + "x-requires-https": true + }, + "authenticationClientCertPassword": { + "description": "The password for the client certificate. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changing this attribute requires an HTTPS connection. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. The default value is `\"\"`. Available since 2.9.", + "type": "string", + "x-requires-https": true + }, + "authenticationHttpBasicPassword": { + "description": "The password for the username. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "authenticationHttpBasicUsername": { + "description": "The username that the REST Consumer will use to login to the REST host. Normally a username is only configured when basic authentication is selected for the REST Consumer. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "authenticationHttpHeaderName": { + "description": "The authentication header name. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.15.", + "type": "string" + }, + "authenticationHttpHeaderValue": { + "description": "The authentication header value. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.15.", + "type": "string" + }, + "authenticationOauthClientId": { + "description": "The OAuth client ID. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.19.", + "type": "string" + }, + "authenticationOauthClientScope": { + "description": "The OAuth scope. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.19.", + "type": "string" + }, + "authenticationOauthClientSecret": { + "description": "The OAuth client secret. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.19.", + "type": "string" + }, + "authenticationOauthClientTokenEndpoint": { + "description": "The OAuth token endpoint URL that the REST Consumer will use to request a token for login to the REST host. Must begin with \"https\". Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.19.", + "type": "string" + }, + "authenticationOauthClientTokenExpiryDefault": { + "description": "The default expiry time for a token, in seconds. Only used when the token endpoint does not return an expiry time. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `900`. Available since 2.30.", + "format": "int32", + "type": "integer" + }, + "authenticationOauthJwtSecretKey": { + "description": "The OAuth secret key used to sign the token request JWT. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.21.", + "type": "string" + }, + "authenticationOauthJwtTokenEndpoint": { + "description": "The OAuth token endpoint URL that the REST Consumer will use to request a token for login to the REST host. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`. Available since 2.21.", + "type": "string" + }, + "authenticationOauthJwtTokenExpiryDefault": { + "description": "The default expiry time for a token, in seconds. Only used when the token endpoint does not return an expiry time. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `900`. Available since 2.30.", + "format": "int32", + "type": "integer" + }, + "authenticationScheme": { + "description": "The authentication scheme used by the REST Consumer to login to the REST host. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"none\"`. The allowed values and their meaning are:\n\n
\n\"none\" - Login with no authentication. This may be useful for anonymous connections or when a REST Consumer does not require authentication.\n\"http-basic\" - Login with a username and optional password according to HTTP Basic authentication as per RFC2616.\n\"client-certificate\" - Login with a client TLS certificate as per RFC5246. Client certificate authentication is only available on TLS connections.\n\"http-header\" - Login with a specified HTTP header.\n\"oauth-client\" - Login with OAuth 2.0 client credentials.\n\"oauth-jwt\" - Login with OAuth (RFC 7523 JWT Profile).\n\"transparent\" - Login using the Authorization header from the message properties, if present. Transparent authentication passes along existing Authorization header metadata instead of discarding it. Note that if the message is coming from a REST producer, the REST service must be configured to forward the Authorization header.\n\"aws\" - Login using AWS Signature Version 4 authentication (AWS4-HMAC-SHA256).\n
\n", + "enum": [ + "none", + "http-basic", + "client-certificate", + "http-header", + "oauth-client", + "oauth-jwt", + "transparent", + "aws" + ], + "type": "string" + }, + "enabled": { + "description": "Enable or disable the REST Consumer. When disabled, no connections are initiated or messages delivered to this particular REST Consumer. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "httpMethod": { + "description": "The HTTP method to use (POST or PUT). This is used only when operating in the REST service \"messaging\" mode and is ignored in \"gateway\" mode. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"post\"`. The allowed values and their meaning are:\n\n
\n\"post\" - Use the POST HTTP method.\n\"put\" - Use the PUT HTTP method.\n
\n Available since 2.17.", + "enum": [ + "post", + "put" + ], + "type": "string" + }, + "localInterface": { + "description": "The interface that will be used for all outgoing connections associated with the REST Consumer. When unspecified, an interface is automatically chosen. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "maxPostWaitTime": { + "description": "The maximum amount of time (in seconds) to wait for an HTTP POST response from the REST Consumer. Once this time is exceeded, the TCP connection is reset. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `30`.", + "format": "int32", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "outgoingConnectionCount": { + "description": "The number of concurrent TCP connections open to the REST Consumer. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int32", + "type": "integer" + }, + "remoteHost": { + "description": "The IP address or DNS name to which the broker is to connect to deliver messages for the REST Consumer. A host value must be configured for the REST Consumer to be operationally up. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "remotePort": { + "description": "The port associated with the host of the REST Consumer. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `8080`.", + "format": "int64", + "type": "integer" + }, + "restConsumerName": { + "description": "The name of the REST Consumer.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + }, + "retryDelay": { + "description": "The number of seconds that must pass before retrying the remote REST Consumer connection. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int32", + "type": "integer" + }, + "tlsCipherSuiteList": { + "description": "The colon-separated list of cipher suites the REST Consumer uses in its encrypted connection. The value `\"default\"` implies all supported suites ordered from most secure to least secure. The list of default cipher suites is available in the `tlsCipherSuiteMsgBackboneDefaultList` attribute of the Broker object in the Monitoring API. The REST Consumer should choose the first suite from this list that it supports. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"default\"`.", + "type": "string" + }, + "tlsEnabled": { + "description": "Enable or disable encryption (TLS) for the REST Consumer. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as enabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerLinks": { + "properties": { + "oauthJwtClaimsUri": { + "description": "The URI of this REST Consumer's collection of Claim objects. Available since 2.21.", + "type": "string" + }, + "tlsTrustedCommonNamesUri": { + "description": "The URI of this REST Consumer's collection of Trusted Common Name objects. Deprecated since (will be deprecated in next SEMP version). Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "uri": { + "description": "The URI of this REST Consumer object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerOauthJwtClaim": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "oauthJwtClaimName": { + "description": "The name of the additional claim. Cannot be \"exp\", \"iat\", or \"jti\".", + "type": "string" + }, + "oauthJwtClaimValue": { + "description": "The value of the additional claim, which must be a string containing a valid JSON value.", + "type": "string" + }, + "restConsumerName": { + "description": "The name of the REST Consumer.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimLinks": { + "properties": { + "uri": { + "description": "The URI of this Claim object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaim" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaim" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumer" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since (will be deprecated in next SEMP version). Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "restConsumerName": { + "description": "The name of the REST Consumer. Deprecated since (will be deprecated in next SEMP version). Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point. Deprecated since (will be deprecated in next SEMP version). Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "tlsTrustedCommonName": { + "description": "The expected trusted common name of the remote certificate. Deprecated since (will be deprecated in next SEMP version). Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameLinks": { + "properties": { + "uri": { + "description": "The URI of this Trusted Common Name object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNamesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumer" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPoint" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnSequencedTopic": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "sequencedTopic": { + "description": "Topic for applying sequence numbers.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnSequencedTopicLinks": { + "properties": { + "uri": { + "description": "The URI of this Sequenced Topic object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnSequencedTopicResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnSequencedTopic" + }, + "links": { + "$ref": "#/definitions/MsgVpnSequencedTopicLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnSequencedTopicsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnSequencedTopic" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnSequencedTopicLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfile": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueEventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueEventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueMaxBindCount": { + "description": "The maximum number of consumer flows that can bind to the Queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`.", + "format": "int64", + "type": "integer" + }, + "queueMaxMsgSpoolUsage": { + "description": "The maximum message spool usage allowed by the Queue, in megabytes (MB). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `800000`.", + "format": "int64", + "type": "integer" + }, + "receiverAclConnectDefaultAction": { + "description": "The default action to take when a receiver client connects to the broker. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"disallow\"`. The allowed values and their meaning are:\n\n
\n\"allow\" - Allow client connection unless an exception is found for it.\n\"disallow\" - Disallow client connection unless an exception is found for it.\n
\n", + "enum": [ + "allow", + "disallow" + ], + "type": "string" + }, + "receiverEnabled": { + "description": "Enable or disable the ability for receiver clients to consume from the #telemetry queue. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "receiverEventConnectionCountPerClientUsernameThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "receiverMaxConnectionCountPerClientUsername": { + "description": "The maximum number of receiver connections per Client Username. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default is the maximum value supported by the platform.", + "format": "int64", + "type": "integer" + }, + "receiverTcpCongestionWindowSize": { + "description": "The TCP initial congestion window size for clients using the Client Profile, in multiples of the TCP Maximum Segment Size (MSS). Changing the value from its default of 2 results in non-compliance with RFC 2581. Contact support before changing this value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `2`.", + "format": "int64", + "type": "integer" + }, + "receiverTcpKeepaliveCount": { + "description": "The number of TCP keepalive retransmissions to a client using the Client Profile before declaring that it is not available. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `5`.", + "format": "int64", + "type": "integer" + }, + "receiverTcpKeepaliveIdleTime": { + "description": "The amount of time a client connection using the Client Profile must remain idle before TCP begins sending keepalive probes, in seconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `3`.", + "format": "int64", + "type": "integer" + }, + "receiverTcpKeepaliveInterval": { + "description": "The amount of time between TCP keepalive retransmissions to a client using the Client Profile when no acknowledgement is received, in seconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1`.", + "format": "int64", + "type": "integer" + }, + "receiverTcpMaxSegmentSize": { + "description": "The TCP maximum segment size for clients using the Client Profile, in bytes. Changes are applied to all existing connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1460`.", + "format": "int64", + "type": "integer" + }, + "receiverTcpMaxWindowSize": { + "description": "The TCP maximum window size for clients using the Client Profile, in kilobytes. Changes are applied to all existing connections. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `256`.", + "format": "int64", + "type": "integer" + }, + "telemetryProfileName": { + "description": "The name of the Telemetry Profile.", + "type": "string" + }, + "traceEnabled": { + "description": "Enable or disable generation of all trace span data messages. When enabled, the state of configured trace filters control which messages get traced. When disabled, trace span data messages are never generated, regardless of the state of trace filters. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileLinks": { + "properties": { + "receiverAclConnectExceptionsUri": { + "description": "The URI of this Telemetry Profile's collection of Receiver ACL Connect Exception objects.", + "type": "string" + }, + "traceFiltersUri": { + "description": "The URI of this Telemetry Profile's collection of Trace Filter objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Telemetry Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileReceiverAclConnectException": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "receiverAclConnectExceptionAddress": { + "description": "The IP address/netmask of the receiver connect exception in CIDR form.", + "type": "string" + }, + "telemetryProfileName": { + "description": "The name of the Telemetry Profile.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileReceiverAclConnectExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Receiver ACL Connect Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileReceiverAclConnectExceptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectException" + }, + "links": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileReceiverAclConnectExceptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnTelemetryProfile" + }, + "links": { + "$ref": "#/definitions/MsgVpnTelemetryProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilter": { + "properties": { + "enabled": { + "description": "Enable or disable the trace filter. When the filter is disabled, the filter's subscriptions will not trigger a message to be traced. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "telemetryProfileName": { + "description": "The name of the Telemetry Profile.", + "type": "string" + }, + "traceFilterName": { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterLinks": { + "properties": { + "subscriptionsUri": { + "description": "The URI of this Trace Filter's collection of Telemetry Trace Filter Subscription objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Trace Filter object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilter" + }, + "links": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterSubscription": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "subscription": { + "description": "Messages matching this subscription will follow this filter's configuration.", + "type": "string" + }, + "subscriptionSyntax": { + "description": "The syntax of the trace filter subscription. The allowed values and their meaning are:\n\n
\n\"smf\" - Subscription uses SMF syntax.\n\"mqtt\" - Subscription uses MQTT syntax.\n
\n", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + }, + "telemetryProfileName": { + "description": "The name of the Telemetry Profile.", + "type": "string" + }, + "traceFilterName": { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Telemetry Trace Filter Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterSubscriptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterSubscriptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFiltersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilter" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfilesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpoint": { + "properties": { + "accessType": { + "description": "The access type for delivering messages to consumer flows bound to the Topic Endpoint. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"exclusive\"`. The allowed values and their meaning are:\n\n
\n\"exclusive\" - Exclusive delivery of messages to the first bound consumer flow.\n\"non-exclusive\" - Non-exclusive delivery of messages to all bound consumer flows in a round-robin fashion.\n
\n Available since 2.4.", + "enum": [ + "exclusive", + "non-exclusive" + ], + "type": "string" + }, + "consumerAckPropagationEnabled": { + "description": "Enable or disable the propagation of consumer acknowledgements (ACKs) received on the active replication Message VPN to the standby replication Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "deadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ) used by the Topic Endpoint. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"#DEAD_MSG_QUEUE\"`. Available since 2.2.", + "type": "string" + }, + "deliveryCountEnabled": { + "description": "Enable or disable the ability for client applications to query the message delivery count of messages received from the Topic Endpoint. This is a controlled availability feature. Please contact support to find out if this feature is supported for your use case. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.19.", + "type": "boolean" + }, + "deliveryDelay": { + "description": "The delay, in seconds, to apply to messages arriving on the Topic Endpoint before the messages are eligible for delivery. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "egressEnabled": { + "description": "Enable or disable the transmission of messages from the Topic Endpoint. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "eventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventRejectLowPriorityMsgLimitThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "ingressEnabled": { + "description": "Enable or disable the reception of messages to the Topic Endpoint. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "maxBindCount": { + "description": "The maximum number of consumer flows that can bind to the Topic Endpoint. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1`. Available since 2.4.", + "format": "int64", + "type": "integer" + }, + "maxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow for the Topic Endpoint. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000`.", + "format": "int64", + "type": "integer" + }, + "maxMsgSize": { + "description": "The maximum message size allowed in the Topic Endpoint, in bytes (B). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000000`.", + "format": "int32", + "type": "integer" + }, + "maxRedeliveryCount": { + "description": "The maximum number of times the Topic Endpoint will attempt redelivery of a message prior to it being discarded or moved to the DMQ. A value of 0 means to retry forever. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "maxSpoolUsage": { + "description": "The maximum message spool usage allowed by the Topic Endpoint, in megabytes (MB). A value of 0 only allows spooling of the last message received and disables quota checking. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `5000`.", + "format": "int64", + "type": "integer" + }, + "maxTtl": { + "description": "The maximum time in seconds a message can stay in the Topic Endpoint when `respectTtlEnabled` is `\"true\"`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `maxTtl` configured for the Topic Endpoint, is exceeded. A value of 0 disables expiry. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "owner": { + "description": "The Client Username that owns the Topic Endpoint and has permission equivalent to `\"delete\"`. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "permission": { + "description": "The permission level for all consumers of the Topic Endpoint, excluding the owner. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"no-access\"`. The allowed values and their meaning are:\n\n
\n\"no-access\" - Disallows all access.\n\"read-only\" - Read-only access to the messages.\n\"consume\" - Consume (read and remove) messages.\n\"modify-topic\" - Consume messages or modify the topic/selector.\n\"delete\" - Consume messages, modify the topic/selector or delete the Client created endpoint altogether.\n
\n", + "enum": [ + "no-access", + "read-only", + "consume", + "modify-topic", + "delete" + ], + "type": "string" + }, + "redeliveryDelayEnabled": { + "description": "Enable or disable a message redelivery delay. When false, messages are redelivered as-soon-as-possible. When true, messages are redelivered according to the initial, max and multiplier. This should only be enabled when redelivery is enabled. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.33.", + "type": "boolean" + }, + "redeliveryDelayInitialInterval": { + "description": "The delay to be used between the first 2 redelivery attempts. This value is in milliseconds. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMaxInterval": { + "description": "The maximum delay to be used between any 2 redelivery attempts. This value is in milliseconds. Due to technical limitations, some redelivery attempt delays may slightly exceed this value. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `64000`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMultiplier": { + "description": "The amount each delay interval is multiplied by after each failed delivery attempt. This number is in a fixed-point decimal format in which you must divide by 100 to get the floating point value. For example, a value of 125 would cause the delay to be multiplied by 1.25. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `200`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryEnabled": { + "description": "Enable or disable message redelivery. When enabled, the number of redelivery attempts is controlled by maxRedeliveryCount. When disabled, the message will never be delivered from the topic-endpoint more than once. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`. Available since 2.18.", + "type": "boolean" + }, + "rejectLowPriorityMsgEnabled": { + "description": "Enable or disable the checking of low priority messages against the `rejectLowPriorityMsgLimit`. This may only be enabled if `rejectMsgToSenderOnDiscardBehavior` does not have a value of `\"never\"`. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "rejectLowPriorityMsgLimit": { + "description": "The number of messages of any priority in the Topic Endpoint above which low priority messages are not admitted but higher priority messages are allowed. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "rejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as rejectLowPriorityMsgEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"never\"`. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-topic-endpoint-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Topic Endpoint is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n", + "enum": [ + "always", + "when-topic-endpoint-enabled", + "never" + ], + "type": "string" + }, + "respectMsgPriorityEnabled": { + "description": "Enable or disable the respecting of message priority. When enabled, messages contained in the Topic Endpoint are delivered in priority order, from 9 (highest) to 0 (lowest). Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as egressEnabled and ingressEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.8.", + "type": "boolean" + }, + "respectTtlEnabled": { + "description": "Enable or disable the respecting of the time-to-live (TTL) for messages in the Topic Endpoint. When enabled, expired messages are discarded or moved to the DMQ. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "topicEndpointName": { + "description": "The name of the Topic Endpoint.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic Endpoint object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnTopicEndpoint" + }, + "links": { + "$ref": "#/definitions/MsgVpnTopicEndpointLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointTemplate": { + "properties": { + "accessType": { + "description": "The access type for delivering messages to consumer flows. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"exclusive\"`. The allowed values and their meaning are:\n\n
\n\"exclusive\" - Exclusive delivery of messages to the first bound consumer flow.\n\"non-exclusive\" - Non-exclusive delivery of messages to bound consumer flows in a round-robin (if partition count is zero) or partitioned (if partition count is non-zero) fashion.\n
\n", + "enum": [ + "exclusive", + "non-exclusive" + ], + "type": "string" + }, + "consumerAckPropagationEnabled": { + "description": "Enable or disable the propagation of consumer acknowledgements (ACKs) received on the active replication Message VPN to the standby replication Message VPN. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`.", + "type": "boolean" + }, + "deadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"#DEAD_MSG_QUEUE\"`.", + "type": "string" + }, + "deliveryDelay": { + "description": "The delay, in seconds, to apply to messages arriving on the Topic Endpoint before the messages are eligible for delivery. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "eventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventRejectLowPriorityMsgLimitThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "maxBindCount": { + "description": "The maximum number of consumer flows that can bind. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1`.", + "format": "int64", + "type": "integer" + }, + "maxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000`.", + "format": "int64", + "type": "integer" + }, + "maxMsgSize": { + "description": "The maximum message size allowed, in bytes (B). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `10000000`.", + "format": "int32", + "type": "integer" + }, + "maxMsgSpoolUsage": { + "description": "The maximum message spool usage allowed, in megabytes (MB). A value of 0 only allows spooling of the last message received and disables quota checking. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `5000`.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryCount": { + "description": "The maximum number of message redelivery attempts that will occur prior to the message being discarded or moved to the DMQ. A value of 0 means to retry forever. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "maxTtl": { + "description": "The maximum time in seconds a message can stay in the Topic Endpoint when `respectTtlEnabled` is `\"true\"`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `maxTtl` configured for the Topic Endpoint, is exceeded. A value of 0 disables expiry. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "permission": { + "description": "The permission level for all consumers, excluding the owner. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"no-access\"`. The allowed values and their meaning are:\n\n
\n\"no-access\" - Disallows all access.\n\"read-only\" - Read-only access to the messages.\n\"consume\" - Consume (read and remove) messages.\n\"modify-topic\" - Consume messages or modify the topic/selector.\n\"delete\" - Consume messages, modify the topic/selector or delete the Client created endpoint altogether.\n
\n", + "enum": [ + "no-access", + "read-only", + "consume", + "modify-topic", + "delete" + ], + "type": "string" + }, + "redeliveryDelayEnabled": { + "description": "Enable or disable a message redelivery delay. When false, messages are redelivered as-soon-as-possible. When true, messages are redelivered according to the initial, max and multiplier. This should only be enabled when redelivery is enabled. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`. Available since 2.33.", + "type": "boolean" + }, + "redeliveryDelayInitialInterval": { + "description": "The delay to be used between the first 2 redelivery attempts. This value is in milliseconds. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `1000`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMaxInterval": { + "description": "The maximum delay to be used between any 2 redelivery attempts. This value is in milliseconds. Due to technical limitations, some redelivery attempt delays may slightly exceed this value. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `64000`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMultiplier": { + "description": "The amount each delay interval is multiplied by after each failed delivery attempt. This number is in a fixed-point decimal format in which you must divide by 100 to get the floating point value. For example, a value of 125 would cause the delay to be multiplied by 1.25. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `200`. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryEnabled": { + "description": "Enable or disable message redelivery. When enabled, the number of redelivery attempts is controlled by maxRedeliveryCount. When disabled, the message will never be delivered from the topic-endpoint more than once. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `true`. Available since 2.18.", + "type": "boolean" + }, + "rejectLowPriorityMsgEnabled": { + "description": "Enable or disable the checking of low priority messages against the `rejectLowPriorityMsgLimit`. This may only be enabled if `rejectMsgToSenderOnDiscardBehavior` does not have a value of `\"never\"`. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "rejectLowPriorityMsgLimit": { + "description": "The number of messages that are permitted before low priority messages are rejected. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `0`.", + "format": "int64", + "type": "integer" + }, + "rejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as rejectLowPriorityMsgEnabled will be temporarily set to false to apply the change. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"never\"`. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-topic-endpoint-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Topic Endpoint is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n", + "enum": [ + "always", + "when-topic-endpoint-enabled", + "never" + ], + "type": "string" + }, + "respectMsgPriorityEnabled": { + "description": "Enable or disable the respecting of message priority. When enabled, messages are delivered in priority order, from 9 (highest) to 0 (lowest). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "respectTtlEnabled": { + "description": "Enable or disable the respecting of the time-to-live (TTL) for messages. When enabled, expired messages are discarded or moved to the DMQ. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `false`.", + "type": "boolean" + }, + "topicEndpointNameFilter": { + "description": "A wildcardable pattern used to determine which Topic Endpoints use settings from this Template. Two different wildcards are supported: * and >. Similar to topic filters or subscription patterns, a > matches anything (but only when used at the end), and a * matches zero or more characters but never a slash (/). A > is only a wildcard when used at the end, after a /. A * is only allowed at the end, after a slash (/). Changes to this attribute are synchronized to HA mates and replication sites via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "topicEndpointTemplateName": { + "description": "The name of the Topic Endpoint Template.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointTemplateLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic Endpoint Template object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointTemplateResponse": { + "properties": { + "data": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplate" + }, + "links": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointTemplatesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplate" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpoint" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/MsgVpn" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfile": { + "properties": { + "accessLevelGroupsClaimName": { + "description": "The name of the groups claim. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"groups\"`.", + "type": "string" + }, + "accessLevelGroupsClaimStringFormat": { + "description": "The format of the access level groups claim value when it is a string. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"single\"`. The allowed values and their meaning are:\n\n
\n\"single\" - When the claim is a string, it is interpreted as a single group.\n\"space-delimited\" - When the claim is a string, it is interpreted as a space-delimited list of groups, similar to the \"scope\" claim.\n
\n Available since 2.32.", + "enum": [ + "single", + "space-delimited" + ], + "type": "string" + }, + "clientId": { + "description": "The OAuth client id. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "clientRedirectUri": { + "description": "The OAuth redirect URI. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "clientRequiredType": { + "description": "The required value for the TYP field in the ID token header. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"JWT\"`.", + "type": "string" + }, + "clientScope": { + "description": "The OAuth scope. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"openid email\"`.", + "type": "string" + }, + "clientSecret": { + "description": "The OAuth client secret. This attribute is absent from a GET and not updated when absent in a PUT, subject to the exceptions in note 4. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "clientValidateTypeEnabled": { + "description": "Enable or disable verification of the TYP field in the ID token header. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "defaultGlobalAccessLevel": { + "description": "The default global access level for this OAuth profile. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"none\"`. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to global data.\n\"read-only\" - User has read-only access to global data.\n\"read-write\" - User has read-write access to most global data.\n\"admin\" - User has read-write access to all global data.\n
\n", + "enum": [ + "none", + "read-only", + "read-write", + "admin" + ], + "type": "string" + }, + "defaultMsgVpnAccessLevel": { + "description": "The default message VPN access level for the OAuth profile. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"none\"`. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to a Message VPN.\n\"read-only\" - User has read-only access to a Message VPN.\n\"read-write\" - User has read-write access to most Message VPN settings.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "displayName": { + "description": "The user friendly name for the OAuth profile. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "enabled": { + "description": "Enable or disable the OAuth profile. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "endpointAuthorization": { + "description": "The OAuth authorization endpoint. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "endpointDiscovery": { + "description": "The OpenID Connect discovery endpoint or OAuth Authorization Server Metadata endpoint. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "endpointDiscoveryRefreshInterval": { + "description": "The number of seconds between discovery endpoint requests. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `86400`.", + "format": "int32", + "type": "integer" + }, + "endpointIntrospection": { + "description": "The OAuth introspection endpoint. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "endpointIntrospectionTimeout": { + "description": "The maximum time in seconds a token introspection request is allowed to take. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `1`.", + "format": "int32", + "type": "integer" + }, + "endpointJwks": { + "description": "The OAuth JWKS endpoint. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "endpointJwksRefreshInterval": { + "description": "The number of seconds between JWKS endpoint requests. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `86400`.", + "format": "int32", + "type": "integer" + }, + "endpointToken": { + "description": "The OAuth token endpoint. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "endpointTokenTimeout": { + "description": "The maximum time in seconds a token request is allowed to take. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `1`.", + "format": "int32", + "type": "integer" + }, + "endpointUserinfo": { + "description": "The OpenID Connect Userinfo endpoint. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "endpointUserinfoTimeout": { + "description": "The maximum time in seconds a userinfo request is allowed to take. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `1`.", + "format": "int32", + "type": "integer" + }, + "interactiveEnabled": { + "description": "Enable or disable interactive logins via this OAuth provider. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "interactivePromptForExpiredSession": { + "description": "The value of the prompt parameter provided to the OAuth authorization server for login requests where the session has expired. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "interactivePromptForNewSession": { + "description": "The value of the prompt parameter provided to the OAuth authorization server for login requests where the session is new or the user has explicitly logged out. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"select_account\"`.", + "type": "string" + }, + "issuer": { + "description": "The Issuer Identifier for the OAuth provider. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + }, + "oauthRole": { + "description": "The OAuth role of the broker. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"client\"`. The allowed values and their meaning are:\n\n
\n\"client\" - The broker is in the OAuth client role.\n\"resource-server\" - The broker is in the OAuth resource server role.\n
\n", + "enum": [ + "client", + "resource-server" + ], + "type": "string" + }, + "resourceServerParseAccessTokenEnabled": { + "description": "Enable or disable parsing of the access token as a JWT. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "resourceServerRequiredAudience": { + "description": "The required audience value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "resourceServerRequiredIssuer": { + "description": "The required issuer value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "resourceServerRequiredScope": { + "description": "A space-separated list of scopes that must be present in the scope claim. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "resourceServerRequiredType": { + "description": "The required TYP value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"at+jwt\"`.", + "type": "string" + }, + "resourceServerValidateAudienceEnabled": { + "description": "Enable or disable verification of the audience claim in the access token or introspection response. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "resourceServerValidateIssuerEnabled": { + "description": "Enable or disable verification of the issuer claim in the access token or introspection response. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "resourceServerValidateScopeEnabled": { + "description": "Enable or disable verification of the scope claim in the access token or introspection response. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "resourceServerValidateTypeEnabled": { + "description": "Enable or disable verification of the TYP field in the access token header. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "sempEnabled": { + "description": "Enable or disable authentication of SEMP requests with OAuth tokens. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `true`.", + "type": "boolean" + }, + "usernameClaimName": { + "description": "The name of the username claim. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"sub\"`.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroup": { + "properties": { + "description": { + "description": "A description for the group. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "globalAccessLevel": { + "description": "The global access level for this group. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"none\"`. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to global data.\n\"read-only\" - User has read-only access to global data.\n\"read-write\" - User has read-write access to most global data.\n\"admin\" - User has read-write access to all global data.\n
\n", + "enum": [ + "none", + "read-only", + "read-write", + "admin" + ], + "type": "string" + }, + "groupName": { + "description": "The name of the group.", + "type": "string" + }, + "msgVpnAccessLevel": { + "description": "The default message VPN access level for this group. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"none\"`. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to a Message VPN.\n\"read-only\" - User has read-only access to a Message VPN.\n\"read-write\" - User has read-write access to most Message VPN settings.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroupLinks": { + "properties": { + "msgVpnAccessLevelExceptionsUri": { + "description": "The URI of this Group Access Level's collection of Message VPN Access-Level Exception objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Group Access Level object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroupMsgVpnAccessLevelException": { + "properties": { + "accessLevel": { + "description": "The message VPN access level. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"none\"`. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to a Message VPN.\n\"read-only\" - User has read-only access to a Message VPN.\n\"read-write\" - User has read-write access to most Message VPN settings.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "groupName": { + "description": "The name of the group.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Message VPN Access-Level Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelException" + }, + "links": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileAccessLevelGroupResponse": { + "properties": { + "data": { + "$ref": "#/definitions/OauthProfileAccessLevelGroup" + }, + "links": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileAccessLevelGroupsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/OauthProfileAccessLevelGroup" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientAllowedHost": { + "properties": { + "allowedHost": { + "description": "An allowed value for the Host header.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientAllowedHostLinks": { + "properties": { + "uri": { + "description": "The URI of this Allowed Host Value object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientAllowedHostResponse": { + "properties": { + "data": { + "$ref": "#/definitions/OauthProfileClientAllowedHost" + }, + "links": { + "$ref": "#/definitions/OauthProfileClientAllowedHostLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientAllowedHostsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/OauthProfileClientAllowedHost" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileClientAllowedHostLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientAuthorizationParameter": { + "properties": { + "authorizationParameterName": { + "description": "The name of the authorization parameter.", + "type": "string" + }, + "authorizationParameterValue": { + "description": "The authorization parameter value. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientAuthorizationParameterLinks": { + "properties": { + "uri": { + "description": "The URI of this Authorization Parameter object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientAuthorizationParameterResponse": { + "properties": { + "data": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameter" + }, + "links": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientAuthorizationParametersResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameter" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientRequiredClaim": { + "properties": { + "clientRequiredClaimName": { + "description": "The name of the ID token claim to verify.", + "type": "string" + }, + "clientRequiredClaimValue": { + "description": "The required claim value, which must be a string containing a valid JSON value.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientRequiredClaimLinks": { + "properties": { + "uri": { + "description": "The URI of this Required Claim object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientRequiredClaimResponse": { + "properties": { + "data": { + "$ref": "#/definitions/OauthProfileClientRequiredClaim" + }, + "links": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientRequiredClaimsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/OauthProfileClientRequiredClaim" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileDefaultMsgVpnAccessLevelException": { + "properties": { + "accessLevel": { + "description": "The message VPN access level. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"none\"`. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to a Message VPN.\n\"read-only\" - User has read-only access to a Message VPN.\n\"read-write\" - User has read-write access to most Message VPN settings.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileDefaultMsgVpnAccessLevelExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Message VPN Access-Level Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileDefaultMsgVpnAccessLevelExceptionResponse": { + "properties": { + "data": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelException" + }, + "links": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileDefaultMsgVpnAccessLevelExceptionsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileLinks": { + "properties": { + "accessLevelGroupsUri": { + "description": "The URI of this OAuth Profile's collection of Group Access Level objects.", + "type": "string" + }, + "clientAllowedHostsUri": { + "description": "The URI of this OAuth Profile's collection of Allowed Host Value objects.", + "type": "string" + }, + "clientAuthorizationParametersUri": { + "description": "The URI of this OAuth Profile's collection of Authorization Parameter objects.", + "type": "string" + }, + "clientRequiredClaimsUri": { + "description": "The URI of this OAuth Profile's collection of Required Claim objects.", + "type": "string" + }, + "defaultMsgVpnAccessLevelExceptionsUri": { + "description": "The URI of this OAuth Profile's collection of Message VPN Access-Level Exception objects.", + "type": "string" + }, + "resourceServerRequiredClaimsUri": { + "description": "The URI of this OAuth Profile's collection of Required Claim objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this OAuth Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileResourceServerRequiredClaim": { + "properties": { + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + }, + "resourceServerRequiredClaimName": { + "description": "The name of the access token claim to verify.", + "type": "string" + }, + "resourceServerRequiredClaimValue": { + "description": "The required claim value, which must be a string containing a valid JSON value.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileResourceServerRequiredClaimLinks": { + "properties": { + "uri": { + "description": "The URI of this Required Claim object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileResourceServerRequiredClaimResponse": { + "properties": { + "data": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaim" + }, + "links": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileResourceServerRequiredClaimsResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaim" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileResponse": { + "properties": { + "data": { + "$ref": "#/definitions/OauthProfile" + }, + "links": { + "$ref": "#/definitions/OauthProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfilesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/OauthProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "SempError": { + "properties": { + "code": { + "description": "The error code which uniquely identifies the error that has occurred.", + "format": "int32", + "type": "integer" + }, + "description": { + "description": "The verbose description of the problem.", + "type": "string" + }, + "status": { + "description": "The terse status string associated with `code`.", + "type": "string" + } + }, + "required": [ + "code", + "status", + "description" + ], + "type": "object" + }, + "SempMeta": { + "properties": { + "count": { + "description": "The total number of objects requested, irrespective of page size. This may be a count of all objects in a collection or a filtered subset. It represents a snapshot in time and may change when paging through results.", + "format": "int64", + "type": "integer" + }, + "error": { + "$ref": "#/definitions/SempError" + }, + "paging": { + "$ref": "#/definitions/SempPaging" + }, + "request": { + "$ref": "#/definitions/SempRequest" + }, + "responseCode": { + "description": "The HTTP response code, one of 200 (success), 4xx (client error), or 5xx (server error).", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "request", + "responseCode" + ], + "type": "object" + }, + "SempMetaOnlyResponse": { + "properties": { + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "SempPaging": { + "properties": { + "cursorQuery": { + "description": "The cursor, or position, for the next page of objects. Use this as the `cursor` query parameter of the next request.", + "type": "string" + }, + "nextPageUri": { + "description": "The URI of the next page of objects. `cursorQuery` is already embedded within this URI.", + "type": "string" + } + }, + "required": [ + "cursorQuery", + "nextPageUri" + ], + "type": "object" + }, + "SempRequest": { + "properties": { + "method": { + "description": "The HTTP method of the request which resulted in this response.", + "type": "string" + }, + "uri": { + "description": "The URI of the request which resulted in this response.", + "type": "string" + } + }, + "required": [ + "method" + ], + "type": "object" + }, + "SystemInformation": { + "properties": { + "platform": { + "description": "The platform running the SEMP API. Deprecated since 2.2. /systemInformation was replaced by /about/api.", + "type": "string" + }, + "sempVersion": { + "description": "The version of the SEMP API. Deprecated since 2.2. /systemInformation was replaced by /about/api.", + "type": "string" + } + }, + "type": "object" + }, + "SystemInformationLinks": { + "properties": { + "uri": { + "description": "The URI of this System Information object.", + "type": "string" + } + }, + "type": "object" + }, + "SystemInformationResponse": { + "properties": { + "data": { + "$ref": "#/definitions/SystemInformation" + }, + "links": { + "$ref": "#/definitions/SystemInformationLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "VirtualHostname": { + "properties": { + "enabled": { + "description": "Enable or disable Virtual Hostname to Message VPN mapping. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `false`.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The message VPN to which this virtual hostname is mapped. Changes to this attribute are synchronized to HA mates via config-sync. The default value is `\"\"`.", + "type": "string" + }, + "virtualHostname": { + "description": "The virtual hostname.", + "type": "string" + } + }, + "type": "object" + }, + "VirtualHostnameLinks": { + "properties": { + "uri": { + "description": "The URI of this Virtual Hostname object.", + "type": "string" + } + }, + "type": "object" + }, + "VirtualHostnameResponse": { + "properties": { + "data": { + "$ref": "#/definitions/VirtualHostname" + }, + "links": { + "$ref": "#/definitions/VirtualHostnameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "VirtualHostnamesResponse": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/VirtualHostname" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/VirtualHostnameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + } + }, + "host": "www.solace.com", + "info": { + "contact": { + "email": "support@solace.com", + "name": "Solace", + "url": "http://www.solace.com" + }, + "description": "SEMP (starting in `v2`, see note 1) is a RESTful API for configuring, monitoring, and administering a Solace PubSub+ broker.\n\nSEMP uses URIs to address manageable **resources** of the Solace PubSub+ broker. Resources are individual **objects**, **collections** of objects, or (exclusively in the action API) **actions**. This document applies to the following API:\n\n\nAPI|Base Path|Purpose|Comments\n:---|:---|:---|:---\nConfiguration|/SEMP/v2/config|Reading and writing config state|See note 2\n\n\n\nThe following APIs are also available:\n\n\nAPI|Base Path|Purpose|Comments\n:---|:---|:---|:---\nAction|/SEMP/v2/action|Performing actions|See note 2\nMonitoring|/SEMP/v2/monitor|Querying operational parameters|See note 2\n\n\n\nResources are always nouns, with individual objects being singular and collections being plural.\n\nObjects within a collection are identified by an `obj-id`, which follows the collection name with the form `collection-name/obj-id`.\n\nActions within an object are identified by an `action-id`, which follows the object name with the form `obj-id/action-id`.\n\nSome examples:\n\n```\n/SEMP/v2/config/msgVpns ; MsgVpn collection\n/SEMP/v2/config/msgVpns/a ; MsgVpn object named \"a\"\n/SEMP/v2/config/msgVpns/a/queues ; Queue collection in MsgVpn \"a\"\n/SEMP/v2/config/msgVpns/a/queues/b ; Queue object named \"b\" in MsgVpn \"a\"\n/SEMP/v2/action/msgVpns/a/queues/b/startReplay ; Action that starts a replay on Queue \"b\" in MsgVpn \"a\"\n/SEMP/v2/monitor/msgVpns/a/clients ; Client collection in MsgVpn \"a\"\n/SEMP/v2/monitor/msgVpns/a/clients/c ; Client object named \"c\" in MsgVpn \"a\"\n```\n\n## Collection Resources\n\nCollections are unordered lists of objects (unless described as otherwise), and are described by JSON arrays. Each item in the array represents an object in the same manner as the individual object would normally be represented. In the configuration API, the creation of a new object is done through its collection resource.\n\n## Object and Action Resources\n\nObjects are composed of attributes, actions, collections, and other objects. They are described by JSON objects as name/value pairs. The collections and actions of an object are not contained directly in the object's JSON content; rather the content includes an attribute containing a URI which points to the collections and actions. These contained resources must be managed through this URI. At a minimum, every object has one or more identifying attributes, and its own `uri` attribute which contains the URI pointing to itself.\n\nActions are also composed of attributes, and are described by JSON objects as name/value pairs. Unlike objects, however, they are not members of a collection and cannot be retrieved, only performed. Actions only exist in the action API.\n\nAttributes in an object or action may have any combination of the following properties:\n\n\nProperty|Meaning|Comments\n:---|:---|:---\nIdentifying|Attribute is involved in unique identification of the object, and appears in its URI|\nConst|Attribute value can only be chosen during object creation|\nRequired|Attribute must be provided in the request|\nRead-Only|Attribute can only be read, not written.|See note 3\nWrite-Only|Attribute can only be written, not read, unless the attribute is also opaque|See the documentation for the opaque property\nRequires-Disable|Attribute cannot be changed while the object (or the relevant part of the object) is administratively enabled|\nAuto-Disable|Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as one or more attributes will be temporarily disabled to apply the change|\nDeprecated|Attribute is deprecated, and will disappear in the next SEMP version|\nOpaque|Attribute can be set or retrieved in opaque form when the `opaquePassword` query parameter is present|See the `opaquePassword` query parameter documentation\n\n\n\nIn some requests, certain attributes may only be provided in certain combinations with other attributes:\n\n\nRelationship|Meaning\n:---|:---\nRequires|Attribute may only be changed by a request if a particular attribute or combination of attributes is also provided in the request\nConflicts|Attribute may only be provided in a request if a particular attribute or combination of attributes is not also provided in the request\n\n\n\nIn the monitoring API, any non-identifying attribute may not be returned in a GET.\n\n## HTTP Methods\n\nThe following HTTP methods manipulate resources in accordance with these general principles. Note that some methods are only used in certain APIs:\n\n\nMethod|Resource|Meaning|Request Body|Response Body|Notes\n:---|:---|:---|:---|:---|:---\nPOST|Collection|Create object|Initial attribute values|Object attributes and metadata|Absent attributes are set to default. If object already exists, a 400 error is returned\nPUT|Object|Update object|New attribute values|Object attributes and metadata|If does not exist, the object is first created. Absent attributes are set to default, with certain exceptions (see note 4)\nPUT|Action|Performs action|Action arguments|Action metadata|\nPATCH|Object|Update object|New attribute values|Object attributes and metadata|Absent attributes are left unchanged. If the object does not exist, a 404 error is returned\nDELETE|Object|Delete object|Empty|Object metadata|If the object does not exist, a 404 is returned\nGET|Object|Get object|Empty|Object attributes and metadata|If the object does not exist, a 404 is returned\nGET|Collection|Get collection|Empty|Object attributes and collection metadata|If the collection is empty, then an empty collection is returned with a 200 code\n\n\n\n## Common Query Parameters\n\nThe following are some common query parameters that are supported by many method/URI combinations. Individual URIs may document additional parameters. Note that multiple query parameters can be used together in a single URI, separated by the ampersand character. For example:\n\n```\n; Request for the MsgVpns collection using two hypothetical query parameters\n; \"q1\" and \"q2\" with values \"val1\" and \"val2\" respectively\n/SEMP/v2/config/msgVpns?q1=val1&q2=val2\n```\n\n### select\n\nInclude in the response only selected attributes of the object, or exclude from the response selected attributes of the object. Use this query parameter to limit the size of the returned data for each returned object, return only those fields that are desired, or exclude fields that are not desired.\n\nThe value of `select` is a comma-separated list of attribute names. If the list contains attribute names that are not prefaced by `-`, only those attributes are included in the response. If the list contains attribute names that are prefaced by `-`, those attributes are excluded from the response. If the list contains both types, then the difference of the first set of attributes and the second set of attributes is returned. If the list is empty (i.e. `select=`), it is treated the same as if no `select` was provided: all attribute are returned.\n\nAll attributes that are prefaced by `-` must follow all attributes that are not prefaced by `-`. In addition, each attribute name in the list must match at least one attribute in the object.\n\nNames may include the `*` wildcard (zero or more characters). Nested attribute names are supported using periods (e.g. `parentName.childName`).\n\nSome examples:\n\n```\n; List of all MsgVpn names\n/SEMP/v2/config/msgVpns?select=msgVpnName\n; List of all MsgVpn and their attributes except for their names\n/SEMP/v2/config/msgVpns?select=-msgVpnName\n; Authentication attributes of MsgVpn \"finance\"\n/SEMP/v2/config/msgVpns/finance?select=authentication%2A\n; All attributes of MsgVpn \"finance\" except for authentication attributes\n/SEMP/v2/config/msgVpns/finance?select=-authentication%2A\n; Access related attributes of Queue \"orderQ\" of MsgVpn \"finance\"\n/SEMP/v2/config/msgVpns/finance/queues/orderQ?select=owner,permission\n```\n\n### where\n\nInclude in the response only objects where certain conditions are true. Use this query parameter to limit which objects are returned to those whose attribute values meet the given conditions.\n\nThe value of `where` is a comma-separated list of expressions. All expressions must be true for the object to be included in the response. Each expression takes the form:\n\n```\nexpression = attribute-name OP value\nOP = '==' | '!=' | '<' | '>' | '<=' | '>='\n```\n\n`value` may be a number, string, `true`, or `false`, as appropriate for the type of `attribute-name`. Greater-than and less-than comparisons only work for numbers. A `*` in a string `value` is interpreted as a wildcard (zero or more characters). Some examples:\n\n```\n; Only enabled MsgVpns\n/SEMP/v2/config/msgVpns?where=enabled%3D%3Dtrue\n; Only MsgVpns using basic non-LDAP authentication\n/SEMP/v2/config/msgVpns?where=authenticationBasicEnabled%3D%3Dtrue,authenticationBasicType%21%3Dldap\n; Only MsgVpns that allow more than 100 client connections\n/SEMP/v2/config/msgVpns?where=maxConnectionCount%3E100\n; Only MsgVpns with msgVpnName starting with \"B\":\n/SEMP/v2/config/msgVpns?where=msgVpnName%3D%3DB%2A\n```\n\n### count\n\nLimit the count of objects in the response. This can be useful to limit the size of the response for large collections. The minimum value for `count` is `1` and the default is `10`. There is also a per-collection maximum value to limit request handling time.\n\n`count` does not guarantee that a minimum number of objects will be returned. A page may contain fewer than `count` objects or even be empty. Additional objects may nonetheless be available for retrieval on subsequent pages. See the `cursor` query parameter documentation for more information on paging.\n\nFor example:\n```\n; Up to 25 MsgVpns\n/SEMP/v2/config/msgVpns?count=25\n```\n\n### cursor\n\nThe cursor, or position, for the next page of objects. Cursors are opaque data that should not be created or interpreted by SEMP clients, and should only be used as described below.\n\nWhen a request is made for a collection and there may be additional objects available for retrieval that are not included in the initial response, the response will include a `cursorQuery` field containing a cursor. The value of this field can be specified in the `cursor` query parameter of a subsequent request to retrieve the next page of objects.\n\nApplications must continue to use the `cursorQuery` if one is provided in order to retrieve the full set of objects associated with the request, even if a page contains fewer than the requested number of objects (see the `count` query parameter documentation) or is empty.\n\n### opaquePassword\n\nAttributes with the opaque property are also write-only and so cannot normally be retrieved in a GET. However, when a password is provided in the `opaquePassword` query parameter, attributes with the opaque property are retrieved in a GET in opaque form, encrypted with this password. The query parameter can also be used on a POST, PATCH, or PUT to set opaque attributes using opaque attribute values retrieved in a GET, so long as:\n\n1. the same password that was used to retrieve the opaque attribute values is provided; and\n\n2. the broker to which the request is being sent has the same major and minor SEMP version as the broker that produced the opaque attribute values.\n\nThe password provided in the query parameter must be a minimum of 8 characters and a maximum of 128 characters.\n\nThe query parameter can only be used in the configuration API, and only over HTTPS.\n\n## Authentication\n\nWhen a client makes its first SEMPv2 request, it must supply a username and password using HTTP Basic authentication, or an OAuth token or tokens using HTTP Bearer authentication.\n\nWhen HTTP Basic authentication is used, the broker returns a cookie containing a session key. The client can omit the username and password from subsequent requests, because the broker can use the session cookie for authentication instead. When the session expires or is deleted, the client must provide the username and password again, and the broker creates a new session.\n\nThere are a limited number of session slots available on the broker. The broker returns 529 No SEMP Session Available if it is not able to allocate a session.\n\nIf certain attributes\u2014such as a user's password\u2014are changed, the broker automatically deletes the affected sessions. These attributes are documented below. However, changes in external user configuration data stored on a RADIUS or LDAP server do not trigger the broker to delete the associated session(s), therefore you must do this manually, if required.\n\nA client can retrieve its current session information using the /about/user endpoint and delete its own session using the /about/user/logout endpoint. A client with appropriate permissions can also manage all sessions using the /sessions endpoint.\n\nSessions are not created when authenticating with an OAuth token or tokens using HTTP Bearer authentication. If a session cookie is provided, it is ignored.\n\n## Help\n\nVisit [our website](https://solace.com) to learn more about Solace.\n\nYou can also download the SEMP API specifications by clicking [here](https://solace.com/downloads/).\n\nIf you need additional support, please contact us at [support@solace.com](mailto:support@solace.com).\n\n## Notes\n\nNote|Description\n:---:|:---\n1|This specification defines SEMP starting in \"v2\", and not the original SEMP \"v1\" interface. Request and response formats between \"v1\" and \"v2\" are entirely incompatible, although both protocols share a common port configuration on the Solace PubSub+ broker. They are differentiated by the initial portion of the URI path, one of either \"/SEMP/\" or \"/SEMP/v2/\"\n2|This API is partially implemented. Only a subset of all objects are available.\n3|Read-only attributes may appear in POST and PUT/PATCH requests. However, if a read-only attribute is not marked as identifying, it will be ignored during a PUT/PATCH.\n4|On a PUT, if the SEMP user is not authorized to modify the attribute, its value is left unchanged rather than set to default. In addition, the values of write-only attributes are not set to their defaults on a PUT, except in the following two cases: there is a mutual requires relationship with another non-write-only attribute, both attributes are absent from the request, and the non-write-only attribute is not currently set to its default value; or the attribute is also opaque and the `opaquePassword` query parameter is provided in the request.\n\n", + "title": "SEMP (Solace Element Management Protocol)", + "version": "2.34" + }, + "parameters": { + "countQuery": { + "default": 10, + "description": "Limit the count of objects in the response. See the documentation for the `count` parameter.", + "in": "query", + "minimum": 1, + "name": "count", + "required": false, + "type": "integer" + }, + "cursorQuery": { + "description": "The cursor, or position, for the next page of objects. See the documentation for the `cursor` parameter.", + "in": "query", + "name": "cursor", + "required": false, + "type": "string" + }, + "opaquePasswordQuery": { + "description": "Accept opaque attributes in the request or return opaque attributes in the response, encrypted with the specified password. See the documentation for the `opaquePassword` parameter.", + "in": "query", + "name": "opaquePassword", + "required": false, + "type": "string" + }, + "selectQuery": { + "collectionFormat": "csv", + "description": "Include in the response only selected attributes of the object, or exclude from the response selected attributes of the object. See the documentation for the `select` parameter.", + "in": "query", + "items": { + "type": "string" + }, + "name": "select", + "required": false, + "type": "array" + }, + "whereQuery": { + "collectionFormat": "csv", + "description": "Include in the response only objects where certain conditions are true. See the the documentation for the `where` parameter.", + "in": "query", + "items": { + "type": "string" + }, + "name": "where", + "required": false, + "type": "array" + } + }, + "paths": { + "/": { + "get": { + "description": "Get a Broker object.\n\nThis object contains global configuration for the message broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ntlsServerCertContent||x||x\ntlsServerCertPassword||x||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation. Requests which include the following attributes require greater access scope/level:\n\n\nAttribute|Access Scope/Level\n:---|:---:\nconfigSyncAuthenticationClientCertMaxChainDepth|global/read-only\nconfigSyncAuthenticationClientCertValidateDateEnabled|global/read-only\nconfigSyncClientProfileTcpInitialCongestionWindow|global/read-only\nconfigSyncClientProfileTcpKeepaliveCount|global/read-only\nconfigSyncClientProfileTcpKeepaliveIdle|global/read-only\nconfigSyncClientProfileTcpKeepaliveInterval|global/read-only\nconfigSyncClientProfileTcpMaxWindow|global/read-only\nconfigSyncClientProfileTcpMss|global/read-only\nconfigSyncEnabled|global/read-only\nconfigSyncSynchronizeUsernameEnabled|global/read-only\nconfigSyncTlsEnabled|global/read-only\nguaranteedMsgingDefragmentationScheduleDayList|global/read-only\nguaranteedMsgingDefragmentationScheduleEnabled|global/read-only\nguaranteedMsgingDefragmentationScheduleTimeList|global/read-only\nguaranteedMsgingDefragmentationThresholdEnabled|global/read-only\nguaranteedMsgingDefragmentationThresholdFragmentationPercentage|global/read-only\nguaranteedMsgingDefragmentationThresholdMinInterval|global/read-only\nguaranteedMsgingDefragmentationThresholdUsagePercentage|global/read-only\nguaranteedMsgingEnabled|global/read-only\nguaranteedMsgingEventCacheUsageThreshold.clearPercent|global/read-only\nguaranteedMsgingEventCacheUsageThreshold.clearValue|global/read-only\nguaranteedMsgingEventCacheUsageThreshold.setPercent|global/read-only\nguaranteedMsgingEventCacheUsageThreshold.setValue|global/read-only\nguaranteedMsgingEventDeliveredUnackedThreshold.clearPercent|global/read-only\nguaranteedMsgingEventDeliveredUnackedThreshold.setPercent|global/read-only\nguaranteedMsgingEventDiskUsageThreshold.clearPercent|global/read-only\nguaranteedMsgingEventDiskUsageThreshold.setPercent|global/read-only\nguaranteedMsgingEventEgressFlowCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventEgressFlowCountThreshold.clearValue|global/read-only\nguaranteedMsgingEventEgressFlowCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventEgressFlowCountThreshold.setValue|global/read-only\nguaranteedMsgingEventEndpointCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventEndpointCountThreshold.clearValue|global/read-only\nguaranteedMsgingEventEndpointCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventEndpointCountThreshold.setValue|global/read-only\nguaranteedMsgingEventIngressFlowCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventIngressFlowCountThreshold.clearValue|global/read-only\nguaranteedMsgingEventIngressFlowCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventIngressFlowCountThreshold.setValue|global/read-only\nguaranteedMsgingEventMsgCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventMsgCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventMsgSpoolFileCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventMsgSpoolFileCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventMsgSpoolUsageThreshold.clearPercent|global/read-only\nguaranteedMsgingEventMsgSpoolUsageThreshold.clearValue|global/read-only\nguaranteedMsgingEventMsgSpoolUsageThreshold.setPercent|global/read-only\nguaranteedMsgingEventMsgSpoolUsageThreshold.setValue|global/read-only\nguaranteedMsgingEventTransactedSessionCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventTransactedSessionCountThreshold.clearValue|global/read-only\nguaranteedMsgingEventTransactedSessionCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventTransactedSessionCountThreshold.setValue|global/read-only\nguaranteedMsgingEventTransactedSessionResourceCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventTransactedSessionResourceCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventTransactionCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventTransactionCountThreshold.clearValue|global/read-only\nguaranteedMsgingEventTransactionCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventTransactionCountThreshold.setValue|global/read-only\nguaranteedMsgingMaxCacheUsage|global/read-only\nguaranteedMsgingMaxMsgSpoolUsage|global/read-only\nguaranteedMsgingMsgSpoolSyncMirroredMsgAckTimeout|global/read-only\nguaranteedMsgingMsgSpoolSyncMirroredSpoolFileAckTimeout|global/read-only\nguaranteedMsgingTransactionReplicationCompatibilityMode|global/read-only\noauthProfileDefault|global/read-only\nserviceAmqpEnabled|global/read-only\nserviceAmqpTlsListenPort|global/read-only\nserviceEventConnectionCountThreshold.clearPercent|global/read-only\nserviceEventConnectionCountThreshold.clearValue|global/read-only\nserviceEventConnectionCountThreshold.setPercent|global/read-only\nserviceEventConnectionCountThreshold.setValue|global/read-only\nserviceHealthCheckEnabled|global/read-only\nserviceHealthCheckListenPort|global/read-only\nserviceHealthCheckTlsEnabled|global/read-only\nserviceHealthCheckTlsListenPort|global/read-only\nserviceMateLinkEnabled|global/read-only\nserviceMateLinkListenPort|global/read-only\nserviceMqttEnabled|global/read-only\nserviceMsgBackboneEnabled|global/read-only\nserviceRedundancyEnabled|global/read-only\nserviceRedundancyFirstListenPort|global/read-only\nserviceRestEventOutgoingConnectionCountThreshold.clearPercent|global/read-only\nserviceRestEventOutgoingConnectionCountThreshold.clearValue|global/read-only\nserviceRestEventOutgoingConnectionCountThreshold.setPercent|global/read-only\nserviceRestEventOutgoingConnectionCountThreshold.setValue|global/read-only\nserviceRestIncomingEnabled|global/read-only\nserviceRestOutgoingEnabled|global/read-only\nserviceSempCorsAllowAnyHostEnabled|global/read-only\nserviceSempLegacyTimeoutEnabled|global/read-only\nserviceSempPlainTextEnabled|global/read-only\nserviceSempPlainTextListenPort|global/read-only\nserviceSempSessionIdleTimeout|global/read-only\nserviceSempSessionMaxLifetime|global/read-only\nserviceSempTlsEnabled|global/read-only\nserviceSempTlsListenPort|global/read-only\nserviceSmfCompressionListenPort|global/read-only\nserviceSmfEnabled|global/read-only\nserviceSmfEventConnectionCountThreshold.clearPercent|global/read-only\nserviceSmfEventConnectionCountThreshold.clearValue|global/read-only\nserviceSmfEventConnectionCountThreshold.setPercent|global/read-only\nserviceSmfEventConnectionCountThreshold.setValue|global/read-only\nserviceSmfPlainTextListenPort|global/read-only\nserviceSmfRoutingControlListenPort|global/read-only\nserviceSmfTlsListenPort|global/read-only\nserviceTlsEventConnectionCountThreshold.clearPercent|global/read-only\nserviceTlsEventConnectionCountThreshold.clearValue|global/read-only\nserviceTlsEventConnectionCountThreshold.setPercent|global/read-only\nserviceTlsEventConnectionCountThreshold.setValue|global/read-only\nserviceWebTransportEnabled|global/read-only\nserviceWebTransportPlainTextListenPort|global/read-only\nserviceWebTransportTlsListenPort|global/read-only\nserviceWebTransportWebUrlSuffix|global/read-only\ntlsBlockVersion11Enabled|global/read-only\ntlsCipherSuiteManagementList|global/read-only\ntlsCipherSuiteMsgBackboneList|global/read-only\ntlsCipherSuiteSecureShellList|global/read-only\ntlsCrimeExploitProtectionEnabled|global/read-only\ntlsServerCertContent|global/read-only\ntlsStandardDomainCertificateAuthoritiesEnabled|vpn/read-only\ntlsTicketLifetime|global/read-only\nwebManagerAllowUnencryptedWizardsEnabled|vpn/read-only\nwebManagerCustomization|vpn/read-only\nwebManagerRedirectHttpEnabled|vpn/read-only\nwebManagerRedirectHttpOverrideTlsPort|vpn/read-only\n\n\n\nThis has been available since 2.13.", + "operationId": "getBroker", + "parameters": [ + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Broker object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/BrokerResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Broker object.", + "tags": [ + "all" + ] + }, + "patch": { + "description": "Update a Broker object. Any attribute missing from the request will be left unchanged.\n\nThis object contains global configuration for the message broker.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nserviceAmqpTlsListenPort|||||x||\nserviceHealthCheckListenPort|||||x||\nserviceHealthCheckTlsListenPort|||||x||\nserviceMateLinkListenPort|||||x||\nserviceRedundancyFirstListenPort|||||x||\nserviceSempPlainTextListenPort||||x|||\nserviceSempTlsListenPort||||x|||\nserviceSmfCompressionListenPort|||||x||\nserviceSmfPlainTextListenPort|||||x||\nserviceSmfRoutingControlListenPort|||||x||\nserviceSmfTlsListenPort|||||x||\nserviceWebTransportPlainTextListenPort|||||x||\nserviceWebTransportTlsListenPort|||||x||\nserviceWebTransportWebUrlSuffix|||||x||\ntlsServerCertContent|||x||||x\ntlsServerCertPassword|||x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nBroker|tlsServerCertPassword|tlsServerCertContent|\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\nEventThresholdByPercent|clearPercent|setPercent|\nEventThresholdByPercent|setPercent|clearPercent|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation. Requests which include the following attributes require greater access scope/level:\n\n\nAttribute|Access Scope/Level\n:---|:---:\nauthClientCertRevocationCheckMode|global/admin\nconfigSyncAuthenticationClientCertMaxChainDepth|global/read-write\nconfigSyncAuthenticationClientCertValidateDateEnabled|global/read-write\nconfigSyncClientProfileTcpInitialCongestionWindow|global/read-write\nconfigSyncClientProfileTcpKeepaliveCount|global/read-write\nconfigSyncClientProfileTcpKeepaliveIdle|global/read-write\nconfigSyncClientProfileTcpKeepaliveInterval|global/read-write\nconfigSyncClientProfileTcpMaxWindow|global/read-write\nconfigSyncClientProfileTcpMss|global/read-write\nconfigSyncEnabled|global/read-write\nconfigSyncSynchronizeUsernameEnabled|global/read-write\nconfigSyncTlsEnabled|global/read-write\nguaranteedMsgingDefragmentationScheduleDayList|global/read-write\nguaranteedMsgingDefragmentationScheduleEnabled|global/read-write\nguaranteedMsgingDefragmentationScheduleTimeList|global/read-write\nguaranteedMsgingDefragmentationThresholdEnabled|global/read-write\nguaranteedMsgingDefragmentationThresholdFragmentationPercentage|global/read-write\nguaranteedMsgingDefragmentationThresholdMinInterval|global/read-write\nguaranteedMsgingDefragmentationThresholdUsagePercentage|global/read-write\nguaranteedMsgingEnabled|global/read-write\nguaranteedMsgingEventCacheUsageThreshold.clearPercent|global/read-write\nguaranteedMsgingEventCacheUsageThreshold.clearValue|global/read-write\nguaranteedMsgingEventCacheUsageThreshold.setPercent|global/read-write\nguaranteedMsgingEventCacheUsageThreshold.setValue|global/read-write\nguaranteedMsgingEventDeliveredUnackedThreshold.clearPercent|global/read-write\nguaranteedMsgingEventDeliveredUnackedThreshold.setPercent|global/read-write\nguaranteedMsgingEventDiskUsageThreshold.clearPercent|global/read-write\nguaranteedMsgingEventDiskUsageThreshold.setPercent|global/read-write\nguaranteedMsgingEventEgressFlowCountThreshold.clearPercent|global/read-write\nguaranteedMsgingEventEgressFlowCountThreshold.clearValue|global/read-write\nguaranteedMsgingEventEgressFlowCountThreshold.setPercent|global/read-write\nguaranteedMsgingEventEgressFlowCountThreshold.setValue|global/read-write\nguaranteedMsgingEventEndpointCountThreshold.clearPercent|global/read-write\nguaranteedMsgingEventEndpointCountThreshold.clearValue|global/read-write\nguaranteedMsgingEventEndpointCountThreshold.setPercent|global/read-write\nguaranteedMsgingEventEndpointCountThreshold.setValue|global/read-write\nguaranteedMsgingEventIngressFlowCountThreshold.clearPercent|global/read-write\nguaranteedMsgingEventIngressFlowCountThreshold.clearValue|global/read-write\nguaranteedMsgingEventIngressFlowCountThreshold.setPercent|global/read-write\nguaranteedMsgingEventIngressFlowCountThreshold.setValue|global/read-write\nguaranteedMsgingEventMsgCountThreshold.clearPercent|global/read-write\nguaranteedMsgingEventMsgCountThreshold.setPercent|global/read-write\nguaranteedMsgingEventMsgSpoolFileCountThreshold.clearPercent|global/read-write\nguaranteedMsgingEventMsgSpoolFileCountThreshold.setPercent|global/read-write\nguaranteedMsgingEventMsgSpoolUsageThreshold.clearPercent|global/read-write\nguaranteedMsgingEventMsgSpoolUsageThreshold.clearValue|global/read-write\nguaranteedMsgingEventMsgSpoolUsageThreshold.setPercent|global/read-write\nguaranteedMsgingEventMsgSpoolUsageThreshold.setValue|global/read-write\nguaranteedMsgingEventTransactedSessionCountThreshold.clearPercent|global/read-write\nguaranteedMsgingEventTransactedSessionCountThreshold.clearValue|global/read-write\nguaranteedMsgingEventTransactedSessionCountThreshold.setPercent|global/read-write\nguaranteedMsgingEventTransactedSessionCountThreshold.setValue|global/read-write\nguaranteedMsgingEventTransactedSessionResourceCountThreshold.clearPercent|global/read-write\nguaranteedMsgingEventTransactedSessionResourceCountThreshold.setPercent|global/read-write\nguaranteedMsgingEventTransactionCountThreshold.clearPercent|global/read-write\nguaranteedMsgingEventTransactionCountThreshold.clearValue|global/read-write\nguaranteedMsgingEventTransactionCountThreshold.setPercent|global/read-write\nguaranteedMsgingEventTransactionCountThreshold.setValue|global/read-write\nguaranteedMsgingMaxCacheUsage|global/read-write\nguaranteedMsgingMaxMsgSpoolUsage|global/read-write\nguaranteedMsgingMsgSpoolSyncMirroredMsgAckTimeout|global/read-write\nguaranteedMsgingMsgSpoolSyncMirroredSpoolFileAckTimeout|global/read-write\nguaranteedMsgingTransactionReplicationCompatibilityMode|global/read-write\noauthProfileDefault|global/admin\nserviceAmqpEnabled|global/read-write\nserviceAmqpTlsListenPort|global/read-write\nserviceEventConnectionCountThreshold.clearPercent|global/read-write\nserviceEventConnectionCountThreshold.clearValue|global/read-write\nserviceEventConnectionCountThreshold.setPercent|global/read-write\nserviceEventConnectionCountThreshold.setValue|global/read-write\nserviceHealthCheckEnabled|global/read-write\nserviceHealthCheckListenPort|global/read-write\nserviceHealthCheckTlsEnabled|global/read-write\nserviceHealthCheckTlsListenPort|global/read-write\nserviceMateLinkEnabled|global/read-write\nserviceMateLinkListenPort|global/read-write\nserviceMqttEnabled|global/read-write\nserviceMsgBackboneEnabled|global/read-write\nserviceRedundancyEnabled|global/read-write\nserviceRedundancyFirstListenPort|global/read-write\nserviceRestEventOutgoingConnectionCountThreshold.clearPercent|global/read-write\nserviceRestEventOutgoingConnectionCountThreshold.clearValue|global/read-write\nserviceRestEventOutgoingConnectionCountThreshold.setPercent|global/read-write\nserviceRestEventOutgoingConnectionCountThreshold.setValue|global/read-write\nserviceRestIncomingEnabled|global/read-write\nserviceRestOutgoingEnabled|global/read-write\nserviceSempCorsAllowAnyHostEnabled|global/read-write\nserviceSempLegacyTimeoutEnabled|global/read-write\nserviceSempPlainTextEnabled|global/read-write\nserviceSempPlainTextListenPort|global/read-write\nserviceSempSessionIdleTimeout|global/read-write\nserviceSempSessionMaxLifetime|global/read-write\nserviceSempTlsEnabled|global/read-write\nserviceSempTlsListenPort|global/read-write\nserviceSmfCompressionListenPort|global/read-write\nserviceSmfEnabled|global/read-write\nserviceSmfEventConnectionCountThreshold.clearPercent|global/read-write\nserviceSmfEventConnectionCountThreshold.clearValue|global/read-write\nserviceSmfEventConnectionCountThreshold.setPercent|global/read-write\nserviceSmfEventConnectionCountThreshold.setValue|global/read-write\nserviceSmfPlainTextListenPort|global/read-write\nserviceSmfRoutingControlListenPort|global/read-write\nserviceSmfTlsListenPort|global/read-write\nserviceTlsEventConnectionCountThreshold.clearPercent|global/read-write\nserviceTlsEventConnectionCountThreshold.clearValue|global/read-write\nserviceTlsEventConnectionCountThreshold.setPercent|global/read-write\nserviceTlsEventConnectionCountThreshold.setValue|global/read-write\nserviceWebTransportEnabled|global/read-write\nserviceWebTransportPlainTextListenPort|global/read-write\nserviceWebTransportTlsListenPort|global/read-write\nserviceWebTransportWebUrlSuffix|global/read-write\ntlsBlockVersion11Enabled|global/read-write\ntlsCipherSuiteManagementList|global/read-write\ntlsCipherSuiteMsgBackboneList|global/read-write\ntlsCipherSuiteSecureShellList|global/read-write\ntlsCrimeExploitProtectionEnabled|global/read-write\ntlsServerCertContent|global/read-write\ntlsServerCertPassword|global/read-write\ntlsStandardDomainCertificateAuthoritiesEnabled|global/read-write\ntlsTicketLifetime|global/read-write\nwebManagerAllowUnencryptedWizardsEnabled|global/read-write\nwebManagerCustomization|vpn/read-write\nwebManagerRedirectHttpEnabled|global/read-write\nwebManagerRedirectHttpOverrideTlsPort|global/read-write\n\n\n\nThis has been available since 2.13.", + "operationId": "updateBroker", + "parameters": [ + { + "description": "The Broker object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Broker" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Broker object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/BrokerResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Broker object.", + "tags": [ + "all" + ] + } + }, + "/about": { + "get": { + "description": "Get an About object.\n\nThis provides metadata about the SEMP API, such as the version of the API supported by the broker.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.13.", + "operationId": "getAbout", + "parameters": [ + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The About object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an About object.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/api": { + "get": { + "description": "Get an API Description object.\n\nThe API Description object provides metadata about the SEMP API.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "getAboutApi", + "parameters": [ + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The API Description object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutApiResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an API Description object.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/user": { + "get": { + "description": "Get a User object.\n\nSession and access level information about the user accessing the SEMP API.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "getAboutUser", + "parameters": [ + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The User object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutUserResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a User object.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/user/msgVpns": { + "get": { + "description": "Get a list of User Message VPN objects.\n\nThis provides information about the Message VPN access level for the username used to access the SEMP API.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "getAboutUserMsgVpns", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of User Message VPN objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutUserMsgVpnsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of User Message VPN objects.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/user/msgVpns/{msgVpnName}": { + "get": { + "description": "Get a User Message VPN object.\n\nThis provides information about the Message VPN access level for the username used to access the SEMP API.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "getAboutUserMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The User Message VPN object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutUserMsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a User Message VPN object.", + "tags": [ + "all", + "about" + ] + } + }, + "/certAuthorities": { + "get": { + "deprecated": true, + "description": "Get a list of Certificate Authority objects.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncertAuthorityName|x||x|\ncertContent|||x|\ncrlDayList|||x|\ncrlTimeList|||x|\ncrlUrl|||x|\nocspNonResponderCertEnabled|||x|\nocspOverrideUrl|||x|\nocspTimeout|||x|\nrevocationCheckEnabled|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "operationId": "getCertAuthorities", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Authority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthoritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Authority objects.", + "tags": [ + "all", + "certAuthority" + ] + }, + "post": { + "deprecated": true, + "description": "Create a Certificate Authority object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncertAuthorityName|x|x|||x|\ncertContent|||||x|\ncrlDayList|||||x|\ncrlTimeList|||||x|\ncrlUrl|||||x|\nocspNonResponderCertEnabled|||||x|\nocspOverrideUrl|||||x|\nocspTimeout|||||x|\nrevocationCheckEnabled|||||x|\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nCertAuthority|crlDayList|crlTimeList|\nCertAuthority|crlTimeList|crlDayList|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "operationId": "createCertAuthority", + "parameters": [ + { + "description": "The Certificate Authority object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CertAuthority" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Authority object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Certificate Authority object.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/certAuthorities/{certAuthorityName}": { + "delete": { + "deprecated": true, + "description": "Delete a Certificate Authority object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "operationId": "deleteCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Certificate Authority object.", + "tags": [ + "all", + "certAuthority" + ] + }, + "get": { + "deprecated": true, + "description": "Get a Certificate Authority object.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncertAuthorityName|x||x|\ncertContent|||x|\ncrlDayList|||x|\ncrlTimeList|||x|\ncrlUrl|||x|\nocspNonResponderCertEnabled|||x|\nocspOverrideUrl|||x|\nocspTimeout|||x|\nrevocationCheckEnabled|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "operationId": "getCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Authority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Authority object.", + "tags": [ + "all", + "certAuthority" + ] + }, + "patch": { + "deprecated": true, + "description": "Update a Certificate Authority object. Any attribute missing from the request will be left unchanged.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ncertAuthorityName|x|x||||x|\ncertContent||||||x|\ncrlDayList||||||x|\ncrlTimeList||||||x|\ncrlUrl|||||x|x|\nocspNonResponderCertEnabled||||||x|\nocspOverrideUrl||||||x|\nocspTimeout||||||x|\nrevocationCheckEnabled||||||x|\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nCertAuthority|crlDayList|crlTimeList|\nCertAuthority|crlTimeList|crlDayList|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "operationId": "updateCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Authority object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CertAuthority" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Authority object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Certificate Authority object.", + "tags": [ + "all", + "certAuthority" + ] + }, + "put": { + "deprecated": true, + "description": "Replace a Certificate Authority object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ncertAuthorityName|x||x||||x|\ncertContent|||||||x|\ncrlDayList|||||||x|\ncrlTimeList|||||||x|\ncrlUrl||||||x|x|\nocspNonResponderCertEnabled|||||||x|\nocspOverrideUrl|||||||x|\nocspTimeout|||||||x|\nrevocationCheckEnabled|||||||x|\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nCertAuthority|crlDayList|crlTimeList|\nCertAuthority|crlTimeList|crlDayList|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "operationId": "replaceCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Authority object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CertAuthority" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Authority object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Certificate Authority object.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/certAuthorities/{certAuthorityName}/ocspTlsTrustedCommonNames": { + "get": { + "deprecated": true, + "description": "Get a list of OCSP Responder Trusted Common Name objects.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncertAuthorityName|x||x|\nocspTlsTrustedCommonName|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities.", + "operationId": "getCertAuthorityOcspTlsTrustedCommonNames", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OCSP Responder Trusted Common Name objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OCSP Responder Trusted Common Name objects.", + "tags": [ + "all", + "certAuthority" + ] + }, + "post": { + "deprecated": true, + "description": "Create an OCSP Responder Trusted Common Name object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncertAuthorityName|x||x||x|\nocspTlsTrustedCommonName|x|x|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities.", + "operationId": "createCertAuthorityOcspTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The OCSP Responder Trusted Common Name object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonName" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OCSP Responder Trusted Common Name object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an OCSP Responder Trusted Common Name object.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/certAuthorities/{certAuthorityName}/ocspTlsTrustedCommonNames/{ocspTlsTrustedCommonName}": { + "delete": { + "deprecated": true, + "description": "Delete an OCSP Responder Trusted Common Name object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities.", + "operationId": "deleteCertAuthorityOcspTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The expected Trusted Common Name of the OCSP responder remote certificate.", + "in": "path", + "name": "ocspTlsTrustedCommonName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an OCSP Responder Trusted Common Name object.", + "tags": [ + "all", + "certAuthority" + ] + }, + "get": { + "deprecated": true, + "description": "Get an OCSP Responder Trusted Common Name object.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncertAuthorityName|x||x|\nocspTlsTrustedCommonName|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities.", + "operationId": "getCertAuthorityOcspTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The expected Trusted Common Name of the OCSP responder remote certificate.", + "in": "path", + "name": "ocspTlsTrustedCommonName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OCSP Responder Trusted Common Name object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OCSP Responder Trusted Common Name object.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/clientCertAuthorities": { + "get": { + "description": "Get a list of Client Certificate Authority objects.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncertAuthorityName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getClientCertAuthorities", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Certificate Authority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthoritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Certificate Authority objects.", + "tags": [ + "all", + "clientCertAuthority" + ] + }, + "post": { + "description": "Create a Client Certificate Authority object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncertAuthorityName|x|x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nClientCertAuthority|crlDayList|crlTimeList|\nClientCertAuthority|crlTimeList|crlDayList|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "createClientCertAuthority", + "parameters": [ + { + "description": "The Client Certificate Authority object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ClientCertAuthority" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Certificate Authority object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Client Certificate Authority object.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/clientCertAuthorities/{certAuthorityName}": { + "delete": { + "description": "Delete a Client Certificate Authority object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "deleteClientCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Client Certificate Authority object.", + "tags": [ + "all", + "clientCertAuthority" + ] + }, + "get": { + "description": "Get a Client Certificate Authority object.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncertAuthorityName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getClientCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Certificate Authority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Certificate Authority object.", + "tags": [ + "all", + "clientCertAuthority" + ] + }, + "patch": { + "description": "Update a Client Certificate Authority object. Any attribute missing from the request will be left unchanged.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ncertAuthorityName|x|x|||||\ncrlUrl|||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nClientCertAuthority|crlDayList|crlTimeList|\nClientCertAuthority|crlTimeList|crlDayList|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "updateClientCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The Client Certificate Authority object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ClientCertAuthority" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Certificate Authority object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Client Certificate Authority object.", + "tags": [ + "all", + "clientCertAuthority" + ] + }, + "put": { + "description": "Replace a Client Certificate Authority object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ncertAuthorityName|x||x|||||\ncrlUrl||||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nClientCertAuthority|crlDayList|crlTimeList|\nClientCertAuthority|crlTimeList|crlDayList|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "replaceClientCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The Client Certificate Authority object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ClientCertAuthority" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Certificate Authority object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Client Certificate Authority object.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/clientCertAuthorities/{certAuthorityName}/ocspTlsTrustedCommonNames": { + "get": { + "description": "Get a list of OCSP Responder Trusted Common Name objects.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncertAuthorityName|x|||\nocspTlsTrustedCommonName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getClientCertAuthorityOcspTlsTrustedCommonNames", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OCSP Responder Trusted Common Name objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OCSP Responder Trusted Common Name objects.", + "tags": [ + "all", + "clientCertAuthority" + ] + }, + "post": { + "description": "Create an OCSP Responder Trusted Common Name object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncertAuthorityName|x||x|||\nocspTlsTrustedCommonName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "createClientCertAuthorityOcspTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The OCSP Responder Trusted Common Name object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonName" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OCSP Responder Trusted Common Name object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an OCSP Responder Trusted Common Name object.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/clientCertAuthorities/{certAuthorityName}/ocspTlsTrustedCommonNames/{ocspTlsTrustedCommonName}": { + "delete": { + "description": "Delete an OCSP Responder Trusted Common Name object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "deleteClientCertAuthorityOcspTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The expected Trusted Common Name of the OCSP responder remote certificate.", + "in": "path", + "name": "ocspTlsTrustedCommonName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an OCSP Responder Trusted Common Name object.", + "tags": [ + "all", + "clientCertAuthority" + ] + }, + "get": { + "description": "Get an OCSP Responder Trusted Common Name object.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncertAuthorityName|x|||\nocspTlsTrustedCommonName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getClientCertAuthorityOcspTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The expected Trusted Common Name of the OCSP responder remote certificate.", + "in": "path", + "name": "ocspTlsTrustedCommonName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OCSP Responder Trusted Common Name object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OCSP Responder Trusted Common Name object.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/dmrClusters": { + "get": { + "description": "Get a list of Cluster objects.\n\nA Cluster is a provisioned object on a message broker that contains global DMR configuration parameters.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthenticationBasicPassword||x||x\nauthenticationClientCertContent||x||x\nauthenticationClientCertPassword||x||\ndmrClusterName|x|||\ntlsServerCertEnforceTrustedCommonNameEnabled|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusters", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Cluster objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClustersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Cluster objects.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "post": { + "description": "Create a Cluster object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nA Cluster is a provisioned object on a message broker that contains global DMR configuration parameters.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nauthenticationBasicPassword||||x||x\nauthenticationClientCertContent||||x||x\nauthenticationClientCertPassword||||x||\ndmrClusterName|x|x||||\nnodeName|||x|||\ntlsServerCertEnforceTrustedCommonNameEnabled|||||x|\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nDmrCluster|authenticationClientCertPassword|authenticationClientCertContent|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createDmrCluster", + "parameters": [ + { + "description": "The Cluster object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrCluster" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cluster object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Cluster object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}": { + "delete": { + "description": "Delete a Cluster object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nA Cluster is a provisioned object on a message broker that contains global DMR configuration parameters.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteDmrCluster", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Cluster object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "get": { + "description": "Get a Cluster object.\n\nA Cluster is a provisioned object on a message broker that contains global DMR configuration parameters.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthenticationBasicPassword||x||x\nauthenticationClientCertContent||x||x\nauthenticationClientCertPassword||x||\ndmrClusterName|x|||\ntlsServerCertEnforceTrustedCommonNameEnabled|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrCluster", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cluster object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Cluster object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "patch": { + "description": "Update a Cluster object. Any attribute missing from the request will be left unchanged.\n\nA Cluster is a provisioned object on a message broker that contains global DMR configuration parameters.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nauthenticationBasicPassword|||x||x||x\nauthenticationClientCertContent|||x||x||x\nauthenticationClientCertPassword|||x||x||\ndirectOnlyEnabled||x|||||\ndmrClusterName|x|x|||||\nnodeName||x|||||\ntlsServerCertEnforceTrustedCommonNameEnabled||||||x|\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nDmrCluster|authenticationClientCertPassword|authenticationClientCertContent|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "updateDmrCluster", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The Cluster object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrCluster" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cluster object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Cluster object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "put": { + "description": "Replace a Cluster object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Cluster is a provisioned object on a message broker that contains global DMR configuration parameters.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nauthenticationBasicPassword||||x||x||x\nauthenticationClientCertContent||||x||x||x\nauthenticationClientCertPassword||||x||x||\ndirectOnlyEnabled||x||||||\ndmrClusterName|x||x|||||\nnodeName|||x|||||\ntlsServerCertEnforceTrustedCommonNameEnabled|||||||x|\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nDmrCluster|authenticationClientCertPassword|authenticationClientCertContent|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "replaceDmrCluster", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The Cluster object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrCluster" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cluster object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Cluster object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules": { + "get": { + "description": "Get a list of Certificate Matching Rule objects.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given link.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ndmrClusterName|x|||\nruleName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRules", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRulesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule objects.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "post": { + "description": "Create a Certificate Matching Rule object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given link.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ndmrClusterName|x||x|||\nruleName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "createDmrClusterCertMatchingRule", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRule" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Certificate Matching Rule object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules/{ruleName}": { + "delete": { + "description": "Delete a Certificate Matching Rule object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given link.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "deleteDmrClusterCertMatchingRule", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Certificate Matching Rule object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "get": { + "description": "Get a Certificate Matching Rule object.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given link.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ndmrClusterName|x|||\nruleName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRule", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "patch": { + "description": "Update a Certificate Matching Rule object. Any attribute missing from the request will be left unchanged.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given link.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ndmrClusterName|x|x|||||\nruleName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "updateDmrClusterCertMatchingRule", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRule" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Certificate Matching Rule object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "put": { + "description": "Replace a Certificate Matching Rule object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given link.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ndmrClusterName|x||x|||||\nruleName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "replaceDmrClusterCertMatchingRule", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRule" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Certificate Matching Rule object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules/{ruleName}/attributeFilters": { + "get": { + "description": "Get a list of Certificate Matching Rule Attribute Filter objects.\n\nA Cert Matching Rule Attribute Filter compares a link attribute to a string.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ndmrClusterName|x|||\nfilterName|x|||\nruleName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRuleAttributeFilters", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule Attribute Filter objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFiltersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule Attribute Filter objects.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "post": { + "description": "Create a Certificate Matching Rule Attribute Filter object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nA Cert Matching Rule Attribute Filter compares a link attribute to a string.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ndmrClusterName|x||x|||\nfilterName|x|x||||\nruleName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "createDmrClusterCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule Attribute Filter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Attribute Filter object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules/{ruleName}/attributeFilters/{filterName}": { + "delete": { + "description": "Delete a Certificate Matching Rule Attribute Filter object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nA Cert Matching Rule Attribute Filter compares a link attribute to a string.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "deleteDmrClusterCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The name of the filter.", + "in": "path", + "name": "filterName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "get": { + "description": "Get a Certificate Matching Rule Attribute Filter object.\n\nA Cert Matching Rule Attribute Filter compares a link attribute to a string.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ndmrClusterName|x|||\nfilterName|x|||\nruleName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The name of the filter.", + "in": "path", + "name": "filterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Attribute Filter object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "patch": { + "description": "Update a Certificate Matching Rule Attribute Filter object. Any attribute missing from the request will be left unchanged.\n\nA Cert Matching Rule Attribute Filter compares a link attribute to a string.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ndmrClusterName|x|x|||||\nfilterName|x|x|||||\nruleName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "updateDmrClusterCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The name of the filter.", + "in": "path", + "name": "filterName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule Attribute Filter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Attribute Filter object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "put": { + "description": "Replace a Certificate Matching Rule Attribute Filter object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Cert Matching Rule Attribute Filter compares a link attribute to a string.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ndmrClusterName|x||x|||||\nfilterName|x||x|||||\nruleName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "replaceDmrClusterCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The name of the filter.", + "in": "path", + "name": "filterName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule Attribute Filter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Attribute Filter object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules/{ruleName}/conditions": { + "get": { + "description": "Get a list of Certificate Matching Rule Condition objects.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a link attribute or an expression.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ndmrClusterName|x|||\nruleName|x|||\nsource|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRuleConditions", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule Condition objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule Condition objects.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "post": { + "description": "Create a Certificate Matching Rule Condition object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a link attribute or an expression.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ndmrClusterName|x||x|||\nruleName|x||x|||\nsource|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "createDmrClusterCertMatchingRuleCondition", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule Condition object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleCondition" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Condition object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Certificate Matching Rule Condition object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules/{ruleName}/conditions/{source}": { + "delete": { + "description": "Delete a Certificate Matching Rule Condition object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a link attribute or an expression.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "deleteDmrClusterCertMatchingRuleCondition", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "Certificate field to be compared with the Attribute.", + "in": "path", + "name": "source", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Certificate Matching Rule Condition object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "get": { + "description": "Get a Certificate Matching Rule Condition object.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a link attribute or an expression.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ndmrClusterName|x|||\nruleName|x|||\nsource|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRuleCondition", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "Certificate field to be compared with the Attribute.", + "in": "path", + "name": "source", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Condition object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule Condition object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links": { + "get": { + "description": "Get a list of Link objects.\n\nA Link connects nodes (either within a Cluster or between two different Clusters) and allows them to exchange topology information, subscriptions and data.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthenticationBasicPassword||x||x\ndmrClusterName|x|||\nremoteNodeName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterLinks", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Link objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinksResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Link objects.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "post": { + "description": "Create a Link object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nA Link connects nodes (either within a Cluster or between two different Clusters) and allows them to exchange topology information, subscriptions and data.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nauthenticationBasicPassword||||x||x\ndmrClusterName|x||x|||\nremoteNodeName|x|x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createDmrClusterLink", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The Link object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterLink" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Link object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Link object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}": { + "delete": { + "description": "Delete a Link object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nA Link connects nodes (either within a Cluster or between two different Clusters) and allows them to exchange topology information, subscriptions and data.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteDmrClusterLink", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Link object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "get": { + "description": "Get a Link object.\n\nA Link connects nodes (either within a Cluster or between two different Clusters) and allows them to exchange topology information, subscriptions and data.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthenticationBasicPassword||x||x\ndmrClusterName|x|||\nremoteNodeName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterLink", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Link object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Link object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "patch": { + "description": "Update a Link object. Any attribute missing from the request will be left unchanged.\n\nA Link connects nodes (either within a Cluster or between two different Clusters) and allows them to exchange topology information, subscriptions and data.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nauthenticationBasicPassword|||x||x||x\nauthenticationScheme|||||x||\ndmrClusterName|x|x|||||\negressFlowWindowSize|||||x||\ninitiator|||||x||\nremoteNodeName|x|x|||||\nspan|||||x||\ntransportCompressedEnabled|||||x||\ntransportTlsEnabled|||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "updateDmrClusterLink", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The Link object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterLink" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Link object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Link object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "put": { + "description": "Replace a Link object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Link connects nodes (either within a Cluster or between two different Clusters) and allows them to exchange topology information, subscriptions and data.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nauthenticationBasicPassword||||x||x||x\nauthenticationScheme||||||x||\ndmrClusterName|x||x|||||\negressFlowWindowSize||||||x||\ninitiator||||||x||\nremoteNodeName|x||x|||||\nspan||||||x||\ntransportCompressedEnabled||||||x||\ntransportTlsEnabled||||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "replaceDmrClusterLink", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The Link object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterLink" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Link object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Link object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/attributes": { + "get": { + "description": "Get a list of Link Attribute objects.\n\nA Link Attribute is a key+value pair that can be used to locate a DMR Cluster Link, for example when using client certificate mapping.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nattributeName|x|||\nattributeValue|x|||\ndmrClusterName|x|||\nremoteNodeName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterLinkAttributes", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Link Attribute objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkAttributesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Link Attribute objects.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "post": { + "description": "Create a Link Attribute object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nA Link Attribute is a key+value pair that can be used to locate a DMR Cluster Link, for example when using client certificate mapping.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nattributeName|x|x||||\nattributeValue|x|x||||\ndmrClusterName|x||x|||\nremoteNodeName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "createDmrClusterLinkAttribute", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The Link Attribute object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterLinkAttribute" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Link Attribute object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkAttributeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Link Attribute object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/attributes/{attributeName},{attributeValue}": { + "delete": { + "description": "Delete a Link Attribute object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nA Link Attribute is a key+value pair that can be used to locate a DMR Cluster Link, for example when using client certificate mapping.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "deleteDmrClusterLinkAttribute", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Attribute.", + "in": "path", + "name": "attributeName", + "required": true, + "type": "string" + }, + { + "description": "The value of the Attribute.", + "in": "path", + "name": "attributeValue", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Link Attribute object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "get": { + "description": "Get a Link Attribute object.\n\nA Link Attribute is a key+value pair that can be used to locate a DMR Cluster Link, for example when using client certificate mapping.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nattributeName|x|||\nattributeValue|x|||\ndmrClusterName|x|||\nremoteNodeName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterLinkAttribute", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Attribute.", + "in": "path", + "name": "attributeName", + "required": true, + "type": "string" + }, + { + "description": "The value of the Attribute.", + "in": "path", + "name": "attributeValue", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Link Attribute object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkAttributeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Link Attribute object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/remoteAddresses": { + "get": { + "description": "Get a list of Remote Address objects.\n\nEach Remote Address, consisting of a FQDN or IP address and optional port, is used to connect to the remote node for this Link. Up to 4 addresses may be provided for each Link, and will be tried on a round-robin basis.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ndmrClusterName|x|||\nremoteAddress|x|||\nremoteNodeName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterLinkRemoteAddresses", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Remote Address objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Remote Address objects.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "post": { + "description": "Create a Remote Address object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nEach Remote Address, consisting of a FQDN or IP address and optional port, is used to connect to the remote node for this Link. Up to 4 addresses may be provided for each Link, and will be tried on a round-robin basis.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ndmrClusterName|x||x|||\nremoteAddress|x|x||||\nremoteNodeName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createDmrClusterLinkRemoteAddress", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The Remote Address object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddress" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Address object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Remote Address object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/remoteAddresses/{remoteAddress}": { + "delete": { + "description": "Delete a Remote Address object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nEach Remote Address, consisting of a FQDN or IP address and optional port, is used to connect to the remote node for this Link. Up to 4 addresses may be provided for each Link, and will be tried on a round-robin basis.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteDmrClusterLinkRemoteAddress", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The FQDN or IP address (and optional port) of the remote node. If a port is not provided, it will vary based on the transport encoding: 55555 (plain-text), 55443 (encrypted), or 55003 (compressed).", + "in": "path", + "name": "remoteAddress", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Remote Address object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "get": { + "description": "Get a Remote Address object.\n\nEach Remote Address, consisting of a FQDN or IP address and optional port, is used to connect to the remote node for this Link. Up to 4 addresses may be provided for each Link, and will be tried on a round-robin basis.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ndmrClusterName|x|||\nremoteAddress|x|||\nremoteNodeName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterLinkRemoteAddress", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The FQDN or IP address (and optional port) of the remote node. If a port is not provided, it will vary based on the transport encoding: 55555 (plain-text), 55443 (encrypted), or 55003 (compressed).", + "in": "path", + "name": "remoteAddress", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Address object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Remote Address object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/tlsTrustedCommonNames": { + "get": { + "deprecated": true, + "description": "Get a list of Trusted Common Name objects.\n\nThe Trusted Common Names for the Link are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ndmrClusterName|x||x|\nremoteNodeName|x||x|\ntlsTrustedCommonName|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getDmrClusterLinkTlsTrustedCommonNames", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Trusted Common Name objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Trusted Common Name objects.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "post": { + "deprecated": true, + "description": "Create a Trusted Common Name object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nThe Trusted Common Names for the Link are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ndmrClusterName|x||x||x|\nremoteNodeName|x||x||x|\ntlsTrustedCommonName|x|x|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "createDmrClusterLinkTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The Trusted Common Name object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonName" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trusted Common Name object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Trusted Common Name object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/tlsTrustedCommonNames/{tlsTrustedCommonName}": { + "delete": { + "deprecated": true, + "description": "Delete a Trusted Common Name object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nThe Trusted Common Names for the Link are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "deleteDmrClusterLinkTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The expected trusted common name of the remote certificate.", + "in": "path", + "name": "tlsTrustedCommonName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Trusted Common Name object.", + "tags": [ + "all", + "dmrCluster" + ] + }, + "get": { + "deprecated": true, + "description": "Get a Trusted Common Name object.\n\nThe Trusted Common Names for the Link are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ndmrClusterName|x||x|\nremoteNodeName|x||x|\ntlsTrustedCommonName|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getDmrClusterLinkTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The expected trusted common name of the remote certificate.", + "in": "path", + "name": "tlsTrustedCommonName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trusted Common Name object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Trusted Common Name object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/domainCertAuthorities": { + "get": { + "description": "Get a list of Domain Certificate Authority objects.\n\nCertificate Authorities trusted for domain verification.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncertAuthorityName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getDomainCertAuthorities", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Domain Certificate Authority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DomainCertAuthoritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Domain Certificate Authority objects.", + "tags": [ + "all", + "domainCertAuthority" + ] + }, + "post": { + "description": "Create a Domain Certificate Authority object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nCertificate Authorities trusted for domain verification.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncertAuthorityName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "createDomainCertAuthority", + "parameters": [ + { + "description": "The Domain Certificate Authority object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DomainCertAuthority" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Domain Certificate Authority object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/DomainCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Domain Certificate Authority object.", + "tags": [ + "all", + "domainCertAuthority" + ] + } + }, + "/domainCertAuthorities/{certAuthorityName}": { + "delete": { + "description": "Delete a Domain Certificate Authority object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nCertificate Authorities trusted for domain verification.\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "deleteDomainCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Domain Certificate Authority object.", + "tags": [ + "all", + "domainCertAuthority" + ] + }, + "get": { + "description": "Get a Domain Certificate Authority object.\n\nCertificate Authorities trusted for domain verification.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncertAuthorityName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getDomainCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Domain Certificate Authority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DomainCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Domain Certificate Authority object.", + "tags": [ + "all", + "domainCertAuthority" + ] + }, + "patch": { + "description": "Update a Domain Certificate Authority object. Any attribute missing from the request will be left unchanged.\n\nCertificate Authorities trusted for domain verification.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ncertAuthorityName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "updateDomainCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The Domain Certificate Authority object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DomainCertAuthority" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Domain Certificate Authority object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/DomainCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Domain Certificate Authority object.", + "tags": [ + "all", + "domainCertAuthority" + ] + }, + "put": { + "description": "Replace a Domain Certificate Authority object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nCertificate Authorities trusted for domain verification.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ncertAuthorityName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "replaceDomainCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The Domain Certificate Authority object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DomainCertAuthority" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Domain Certificate Authority object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/DomainCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Domain Certificate Authority object.", + "tags": [ + "all", + "domainCertAuthority" + ] + } + }, + "/msgVpns": { + "get": { + "description": "Get a list of Message VPN objects.\n\nMessage VPNs (Virtual Private Networks) allow for the segregation of topic space and clients. They also group clients connecting to a network of message brokers, such that messages published within a particular group are only visible to that group's clients.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthenticationOauthDefaultProviderName|||x|\nbridgingTlsServerCertEnforceTrustedCommonNameEnabled|||x|\ndistributedCacheManagementEnabled|||x|\nmsgVpnName|x|||\nreplicationBridgeAuthenticationBasicPassword||x||x\nreplicationBridgeAuthenticationClientCertContent||x||x\nreplicationBridgeAuthenticationClientCertPassword||x||\nreplicationEnabledQueueBehavior||x||\nrestTlsServerCertEnforceTrustedCommonNameEnabled|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpns", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Message VPN objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Message VPN objects.", + "tags": [ + "all", + "msgVpn" + ] + }, + "post": { + "description": "Create a Message VPN object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nMessage VPNs (Virtual Private Networks) allow for the segregation of topic space and clients. They also group clients connecting to a network of message brokers, such that messages published within a particular group are only visible to that group's clients.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nauthenticationOauthDefaultProviderName|||||x|\nbridgingTlsServerCertEnforceTrustedCommonNameEnabled|||||x|\ndistributedCacheManagementEnabled|||||x|\nmsgVpnName|x|x||||\nreplicationBridgeAuthenticationBasicPassword||||x||x\nreplicationBridgeAuthenticationClientCertContent||||x||x\nreplicationBridgeAuthenticationClientCertPassword||||x||\nreplicationEnabledQueueBehavior||||x||\nrestTlsServerCertEnforceTrustedCommonNameEnabled|||||x|\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\nEventThresholdByValue|clearValue|setValue|\nEventThresholdByValue|setValue|clearValue|\nMsgVpn|authenticationBasicProfileName|authenticationBasicType|\nMsgVpn|authorizationProfileName|authorizationType|\nMsgVpn|eventPublishTopicFormatMqttEnabled|eventPublishTopicFormatSmfEnabled|\nMsgVpn|eventPublishTopicFormatSmfEnabled|eventPublishTopicFormatMqttEnabled|\nMsgVpn|replicationBridgeAuthenticationBasicClientUsername|replicationBridgeAuthenticationBasicPassword|\nMsgVpn|replicationBridgeAuthenticationBasicPassword|replicationBridgeAuthenticationBasicClientUsername|\nMsgVpn|replicationBridgeAuthenticationClientCertPassword|replicationBridgeAuthenticationClientCertContent|\nMsgVpn|replicationEnabledQueueBehavior|replicationEnabled|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpn", + "parameters": [ + { + "description": "The Message VPN object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpn" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Message VPN object.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}": { + "delete": { + "description": "Delete a Message VPN object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nMessage VPNs (Virtual Private Networks) allow for the segregation of topic space and clients. They also group clients connecting to a network of message brokers, such that messages published within a particular group are only visible to that group's clients.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Message VPN object.", + "tags": [ + "all", + "msgVpn" + ] + }, + "get": { + "description": "Get a Message VPN object.\n\nMessage VPNs (Virtual Private Networks) allow for the segregation of topic space and clients. They also group clients connecting to a network of message brokers, such that messages published within a particular group are only visible to that group's clients.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthenticationOauthDefaultProviderName|||x|\nbridgingTlsServerCertEnforceTrustedCommonNameEnabled|||x|\ndistributedCacheManagementEnabled|||x|\nmsgVpnName|x|||\nreplicationBridgeAuthenticationBasicPassword||x||x\nreplicationBridgeAuthenticationClientCertContent||x||x\nreplicationBridgeAuthenticationClientCertPassword||x||\nreplicationEnabledQueueBehavior||x||\nrestTlsServerCertEnforceTrustedCommonNameEnabled|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Message VPN object.", + "tags": [ + "all", + "msgVpn" + ] + }, + "patch": { + "description": "Update a Message VPN object. Any attribute missing from the request will be left unchanged.\n\nMessage VPNs (Virtual Private Networks) allow for the segregation of topic space and clients. They also group clients connecting to a network of message brokers, such that messages published within a particular group are only visible to that group's clients.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nauthenticationOauthDefaultProviderName||||||x|\nbridgingTlsServerCertEnforceTrustedCommonNameEnabled||||||x|\ndistributedCacheManagementEnabled||||||x|\nmsgVpnName|x|x|||||\nreplicationBridgeAuthenticationBasicPassword|||x||||x\nreplicationBridgeAuthenticationClientCertContent|||x||||x\nreplicationBridgeAuthenticationClientCertPassword|||x||||\nreplicationEnabledQueueBehavior|||x||||\nrestTlsServerCertEnforceTrustedCommonNameEnabled||||||x|\nserviceAmqpPlainTextListenPort|||||x||\nserviceAmqpTlsListenPort|||||x||\nserviceMqttPlainTextListenPort|||||x||\nserviceMqttTlsListenPort|||||x||\nserviceMqttTlsWebSocketListenPort|||||x||\nserviceMqttWebSocketListenPort|||||x||\nserviceRestIncomingPlainTextListenPort|||||x||\nserviceRestIncomingTlsListenPort|||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\nEventThresholdByValue|clearValue|setValue|\nEventThresholdByValue|setValue|clearValue|\nMsgVpn|authenticationBasicProfileName|authenticationBasicType|\nMsgVpn|authorizationProfileName|authorizationType|\nMsgVpn|eventPublishTopicFormatMqttEnabled|eventPublishTopicFormatSmfEnabled|\nMsgVpn|eventPublishTopicFormatSmfEnabled|eventPublishTopicFormatMqttEnabled|\nMsgVpn|replicationBridgeAuthenticationBasicClientUsername|replicationBridgeAuthenticationBasicPassword|\nMsgVpn|replicationBridgeAuthenticationBasicPassword|replicationBridgeAuthenticationBasicClientUsername|\nMsgVpn|replicationBridgeAuthenticationClientCertPassword|replicationBridgeAuthenticationClientCertContent|\nMsgVpn|replicationEnabledQueueBehavior|replicationEnabled|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation. Requests which include the following attributes require greater access scope/level:\n\n\nAttribute|Access Scope/Level\n:---|:---:\nalias|global/read-write\nauthenticationBasicEnabled|global/read-write\nauthenticationBasicProfileName|global/read-write\nauthenticationBasicRadiusDomain|global/read-write\nauthenticationBasicType|global/read-write\nauthenticationClientCertAllowApiProvidedUsernameEnabled|global/read-write\nauthenticationClientCertCertificateMatchingRulesEnabled|global/read-write\nauthenticationClientCertEnabled|global/read-write\nauthenticationClientCertMaxChainDepth|global/read-write\nauthenticationClientCertRevocationCheckMode|global/read-write\nauthenticationClientCertUsernameSource|global/read-write\nauthenticationClientCertValidateDateEnabled|global/read-write\nauthenticationKerberosAllowApiProvidedUsernameEnabled|global/read-write\nauthenticationKerberosEnabled|global/read-write\nauthenticationOauthEnabled|global/read-write\nbridgingTlsServerCertEnforceTrustedCommonNameEnabled|global/read-write\nbridgingTlsServerCertMaxChainDepth|global/read-write\nbridgingTlsServerCertValidateDateEnabled|global/read-write\nbridgingTlsServerCertValidateNameEnabled|global/read-write\ndmrEnabled|global/read-write\nexportSubscriptionsEnabled|global/read-write\nmaxConnectionCount|global/read-write\nmaxEgressFlowCount|global/read-write\nmaxEndpointCount|global/read-write\nmaxIngressFlowCount|global/read-write\nmaxMsgSpoolUsage|global/read-write\nmaxSubscriptionCount|global/read-write\nmaxTransactedSessionCount|global/read-write\nmaxTransactionCount|global/read-write\nmqttRetainMaxMemory|global/read-write\nreplicationBridgeAuthenticationBasicClientUsername|global/read-write\nreplicationBridgeAuthenticationBasicPassword|global/read-write\nreplicationBridgeAuthenticationClientCertContent|global/read-write\nreplicationBridgeAuthenticationClientCertPassword|global/read-write\nreplicationBridgeAuthenticationScheme|global/read-write\nreplicationBridgeCompressedDataEnabled|global/read-write\nreplicationBridgeEgressFlowWindowSize|global/read-write\nreplicationBridgeRetryDelay|global/read-write\nreplicationBridgeTlsEnabled|global/read-write\nreplicationBridgeUnidirectionalClientProfileName|global/read-write\nreplicationEnabled|global/read-write\nreplicationEnabledQueueBehavior|global/read-write\nreplicationQueueMaxMsgSpoolUsage|global/read-write\nreplicationRole|global/read-write\nrestTlsServerCertEnforceTrustedCommonNameEnabled|global/read-write\nrestTlsServerCertMaxChainDepth|global/read-write\nrestTlsServerCertValidateDateEnabled|global/read-write\nrestTlsServerCertValidateNameEnabled|global/read-write\nsempOverMsgBusAdminClientEnabled|global/read-write\nsempOverMsgBusAdminDistributedCacheEnabled|global/read-write\nsempOverMsgBusAdminEnabled|global/read-write\nsempOverMsgBusEnabled|global/read-write\nsempOverMsgBusShowEnabled|global/read-write\nserviceAmqpMaxConnectionCount|global/read-write\nserviceAmqpPlainTextListenPort|global/read-write\nserviceAmqpTlsListenPort|global/read-write\nserviceMqttMaxConnectionCount|global/read-write\nserviceMqttPlainTextListenPort|global/read-write\nserviceMqttTlsListenPort|global/read-write\nserviceMqttTlsWebSocketListenPort|global/read-write\nserviceMqttWebSocketListenPort|global/read-write\nserviceRestIncomingMaxConnectionCount|global/read-write\nserviceRestIncomingPlainTextListenPort|global/read-write\nserviceRestIncomingTlsListenPort|global/read-write\nserviceRestOutgoingMaxConnectionCount|global/read-write\nserviceSmfMaxConnectionCount|global/read-write\nserviceWebMaxConnectionCount|global/read-write\n\n\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Message VPN object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpn" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Message VPN object.", + "tags": [ + "all", + "msgVpn" + ] + }, + "put": { + "description": "Replace a Message VPN object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nMessage VPNs (Virtual Private Networks) allow for the segregation of topic space and clients. They also group clients connecting to a network of message brokers, such that messages published within a particular group are only visible to that group's clients.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nauthenticationOauthDefaultProviderName|||||||x|\nbridgingTlsServerCertEnforceTrustedCommonNameEnabled|||||||x|\ndistributedCacheManagementEnabled|||||||x|\nmsgVpnName|x||x|||||\nreplicationBridgeAuthenticationBasicPassword||||x||||x\nreplicationBridgeAuthenticationClientCertContent||||x||||x\nreplicationBridgeAuthenticationClientCertPassword||||x||||\nreplicationEnabledQueueBehavior||||x||||\nrestTlsServerCertEnforceTrustedCommonNameEnabled|||||||x|\nserviceAmqpPlainTextListenPort||||||x||\nserviceAmqpTlsListenPort||||||x||\nserviceMqttPlainTextListenPort||||||x||\nserviceMqttTlsListenPort||||||x||\nserviceMqttTlsWebSocketListenPort||||||x||\nserviceMqttWebSocketListenPort||||||x||\nserviceRestIncomingPlainTextListenPort||||||x||\nserviceRestIncomingTlsListenPort||||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\nEventThresholdByValue|clearValue|setValue|\nEventThresholdByValue|setValue|clearValue|\nMsgVpn|authenticationBasicProfileName|authenticationBasicType|\nMsgVpn|authorizationProfileName|authorizationType|\nMsgVpn|eventPublishTopicFormatMqttEnabled|eventPublishTopicFormatSmfEnabled|\nMsgVpn|eventPublishTopicFormatSmfEnabled|eventPublishTopicFormatMqttEnabled|\nMsgVpn|replicationBridgeAuthenticationBasicClientUsername|replicationBridgeAuthenticationBasicPassword|\nMsgVpn|replicationBridgeAuthenticationBasicPassword|replicationBridgeAuthenticationBasicClientUsername|\nMsgVpn|replicationBridgeAuthenticationClientCertPassword|replicationBridgeAuthenticationClientCertContent|\nMsgVpn|replicationEnabledQueueBehavior|replicationEnabled|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation. Requests which include the following attributes require greater access scope/level:\n\n\nAttribute|Access Scope/Level\n:---|:---:\nalias|global/read-write\nauthenticationBasicEnabled|global/read-write\nauthenticationBasicProfileName|global/read-write\nauthenticationBasicRadiusDomain|global/read-write\nauthenticationBasicType|global/read-write\nauthenticationClientCertAllowApiProvidedUsernameEnabled|global/read-write\nauthenticationClientCertCertificateMatchingRulesEnabled|global/read-write\nauthenticationClientCertEnabled|global/read-write\nauthenticationClientCertMaxChainDepth|global/read-write\nauthenticationClientCertRevocationCheckMode|global/read-write\nauthenticationClientCertUsernameSource|global/read-write\nauthenticationClientCertValidateDateEnabled|global/read-write\nauthenticationKerberosAllowApiProvidedUsernameEnabled|global/read-write\nauthenticationKerberosEnabled|global/read-write\nauthenticationOauthEnabled|global/read-write\nbridgingTlsServerCertEnforceTrustedCommonNameEnabled|global/read-write\nbridgingTlsServerCertMaxChainDepth|global/read-write\nbridgingTlsServerCertValidateDateEnabled|global/read-write\nbridgingTlsServerCertValidateNameEnabled|global/read-write\ndmrEnabled|global/read-write\nexportSubscriptionsEnabled|global/read-write\nmaxConnectionCount|global/read-write\nmaxEgressFlowCount|global/read-write\nmaxEndpointCount|global/read-write\nmaxIngressFlowCount|global/read-write\nmaxMsgSpoolUsage|global/read-write\nmaxSubscriptionCount|global/read-write\nmaxTransactedSessionCount|global/read-write\nmaxTransactionCount|global/read-write\nmqttRetainMaxMemory|global/read-write\nreplicationBridgeAuthenticationBasicClientUsername|global/read-write\nreplicationBridgeAuthenticationBasicPassword|global/read-write\nreplicationBridgeAuthenticationClientCertContent|global/read-write\nreplicationBridgeAuthenticationClientCertPassword|global/read-write\nreplicationBridgeAuthenticationScheme|global/read-write\nreplicationBridgeCompressedDataEnabled|global/read-write\nreplicationBridgeEgressFlowWindowSize|global/read-write\nreplicationBridgeRetryDelay|global/read-write\nreplicationBridgeTlsEnabled|global/read-write\nreplicationBridgeUnidirectionalClientProfileName|global/read-write\nreplicationEnabled|global/read-write\nreplicationEnabledQueueBehavior|global/read-write\nreplicationQueueMaxMsgSpoolUsage|global/read-write\nreplicationRole|global/read-write\nrestTlsServerCertEnforceTrustedCommonNameEnabled|global/read-write\nrestTlsServerCertMaxChainDepth|global/read-write\nrestTlsServerCertValidateDateEnabled|global/read-write\nrestTlsServerCertValidateNameEnabled|global/read-write\nsempOverMsgBusAdminClientEnabled|global/read-write\nsempOverMsgBusAdminDistributedCacheEnabled|global/read-write\nsempOverMsgBusAdminEnabled|global/read-write\nsempOverMsgBusEnabled|global/read-write\nsempOverMsgBusShowEnabled|global/read-write\nserviceAmqpMaxConnectionCount|global/read-write\nserviceAmqpPlainTextListenPort|global/read-write\nserviceAmqpTlsListenPort|global/read-write\nserviceMqttMaxConnectionCount|global/read-write\nserviceMqttPlainTextListenPort|global/read-write\nserviceMqttTlsListenPort|global/read-write\nserviceMqttTlsWebSocketListenPort|global/read-write\nserviceMqttWebSocketListenPort|global/read-write\nserviceRestIncomingMaxConnectionCount|global/read-write\nserviceRestIncomingPlainTextListenPort|global/read-write\nserviceRestIncomingTlsListenPort|global/read-write\nserviceRestOutgoingMaxConnectionCount|global/read-write\nserviceSmfMaxConnectionCount|global/read-write\nserviceWebMaxConnectionCount|global/read-write\n\n\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Message VPN object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpn" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Message VPN object.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles": { + "get": { + "description": "Get a list of ACL Profile objects.\n\nAn ACL Profile controls whether an authenticated client is permitted to establish a connection with the message broker or permitted to publish and subscribe to specific topics.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnAclProfiles", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of ACL Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of ACL Profile objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "post": { + "description": "Create an ACL Profile object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nAn ACL Profile controls whether an authenticated client is permitted to establish a connection with the message broker or permitted to publish and subscribe to specific topics.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\naclProfileName|x|x||||\nmsgVpnName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnAclProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The ACL Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAclProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The ACL Profile object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an ACL Profile object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}": { + "delete": { + "description": "Delete an ACL Profile object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nAn ACL Profile controls whether an authenticated client is permitted to establish a connection with the message broker or permitted to publish and subscribe to specific topics.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnAclProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an ACL Profile object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "get": { + "description": "Get an ACL Profile object.\n\nAn ACL Profile controls whether an authenticated client is permitted to establish a connection with the message broker or permitted to publish and subscribe to specific topics.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnAclProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The ACL Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an ACL Profile object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "patch": { + "description": "Update an ACL Profile object. Any attribute missing from the request will be left unchanged.\n\nAn ACL Profile controls whether an authenticated client is permitted to establish a connection with the message broker or permitted to publish and subscribe to specific topics.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\naclProfileName|x|x|||||\nmsgVpnName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpnAclProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The ACL Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAclProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The ACL Profile object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update an ACL Profile object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "put": { + "description": "Replace an ACL Profile object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nAn ACL Profile controls whether an authenticated client is permitted to establish a connection with the message broker or permitted to publish and subscribe to specific topics.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\naclProfileName|x||x|||||\nmsgVpnName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpnAclProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The ACL Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAclProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The ACL Profile object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace an ACL Profile object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/clientConnectExceptions": { + "get": { + "description": "Get a list of Client Connect Exception objects.\n\nA Client Connect Exception is an exception to the default action to take when a client using the ACL Profile connects to the Message VPN. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x|||\nclientConnectExceptionAddress|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnAclProfileClientConnectExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Connect Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Connect Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "post": { + "description": "Create a Client Connect Exception object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Client Connect Exception is an exception to the default action to take when a client using the ACL Profile connects to the Message VPN. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\naclProfileName|x||x|||\nclientConnectExceptionAddress|x|x||||\nmsgVpnName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnAclProfileClientConnectException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Client Connect Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Connect Exception object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Client Connect Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/clientConnectExceptions/{clientConnectExceptionAddress}": { + "delete": { + "description": "Delete a Client Connect Exception object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Client Connect Exception is an exception to the default action to take when a client using the ACL Profile connects to the Message VPN. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnAclProfileClientConnectException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The IP address/netmask of the client connect exception in canonical CIDR form.", + "in": "path", + "name": "clientConnectExceptionAddress", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Client Connect Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "get": { + "description": "Get a Client Connect Exception object.\n\nA Client Connect Exception is an exception to the default action to take when a client using the ACL Profile connects to the Message VPN. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x|||\nclientConnectExceptionAddress|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnAclProfileClientConnectException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The IP address/netmask of the client connect exception in canonical CIDR form.", + "in": "path", + "name": "clientConnectExceptionAddress", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Connect Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Connect Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/publishExceptions": { + "get": { + "deprecated": true, + "description": "Get a list of Publish Topic Exception objects.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x||x|\nmsgVpnName|x||x|\npublishExceptionTopic|x||x|\ntopicSyntax|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by publishTopicExceptions.", + "operationId": "getMsgVpnAclProfilePublishExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Publish Topic Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Publish Topic Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "post": { + "deprecated": true, + "description": "Create a Publish Topic Exception object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\naclProfileName|x||x||x|\nmsgVpnName|x||x||x|\npublishExceptionTopic|x|x|||x|\ntopicSyntax|x|x|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by publishTopicExceptions.", + "operationId": "createMsgVpnAclProfilePublishException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Publish Topic Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Publish Topic Exception object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Publish Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/publishExceptions/{topicSyntax},{publishExceptionTopic}": { + "delete": { + "deprecated": true, + "description": "Delete a Publish Topic Exception object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by publishTopicExceptions.", + "operationId": "deleteMsgVpnAclProfilePublishException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "topicSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "publishExceptionTopic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Publish Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "get": { + "deprecated": true, + "description": "Get a Publish Topic Exception object.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x||x|\nmsgVpnName|x||x|\npublishExceptionTopic|x||x|\ntopicSyntax|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by publishTopicExceptions.", + "operationId": "getMsgVpnAclProfilePublishException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "topicSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "publishExceptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Publish Topic Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Publish Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/publishTopicExceptions": { + "get": { + "description": "Get a list of Publish Topic Exception objects.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x|||\nmsgVpnName|x|||\npublishTopicException|x|||\npublishTopicExceptionSyntax|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfilePublishTopicExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Publish Topic Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Publish Topic Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "post": { + "description": "Create a Publish Topic Exception object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\naclProfileName|x||x|||\nmsgVpnName|x||x|||\npublishTopicException|x|x||||\npublishTopicExceptionSyntax|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "createMsgVpnAclProfilePublishTopicException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Publish Topic Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Publish Topic Exception object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Publish Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/publishTopicExceptions/{publishTopicExceptionSyntax},{publishTopicException}": { + "delete": { + "description": "Delete a Publish Topic Exception object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "deleteMsgVpnAclProfilePublishTopicException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "publishTopicExceptionSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "publishTopicException", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Publish Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "get": { + "description": "Get a Publish Topic Exception object.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x|||\nmsgVpnName|x|||\npublishTopicException|x|||\npublishTopicExceptionSyntax|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfilePublishTopicException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "publishTopicExceptionSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "publishTopicException", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Publish Topic Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Publish Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeExceptions": { + "get": { + "deprecated": true, + "description": "Get a list of Subscribe Topic Exception objects.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x||x|\nmsgVpnName|x||x|\nsubscribeExceptionTopic|x||x|\ntopicSyntax|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "operationId": "getMsgVpnAclProfileSubscribeExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Subscribe Topic Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Subscribe Topic Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "post": { + "deprecated": true, + "description": "Create a Subscribe Topic Exception object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\naclProfileName|x||x||x|\nmsgVpnName|x||x||x|\nsubscribeExceptionTopic|x|x|||x|\ntopicSyntax|x|x|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "operationId": "createMsgVpnAclProfileSubscribeException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Subscribe Topic Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscribe Topic Exception object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Subscribe Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeExceptions/{topicSyntax},{subscribeExceptionTopic}": { + "delete": { + "deprecated": true, + "description": "Delete a Subscribe Topic Exception object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "operationId": "deleteMsgVpnAclProfileSubscribeException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "topicSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "subscribeExceptionTopic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Subscribe Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "get": { + "deprecated": true, + "description": "Get a Subscribe Topic Exception object.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x||x|\nmsgVpnName|x||x|\nsubscribeExceptionTopic|x||x|\ntopicSyntax|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "operationId": "getMsgVpnAclProfileSubscribeException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "topicSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "subscribeExceptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscribe Topic Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Subscribe Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeShareNameExceptions": { + "get": { + "description": "Get a list of Subscribe Share Name Exception objects.\n\nA Subscribe Share Name Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a share-name subscription in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x|||\nmsgVpnName|x|||\nsubscribeShareNameException|x|||\nsubscribeShareNameExceptionSyntax|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfileSubscribeShareNameExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Subscribe Share Name Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Subscribe Share Name Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "post": { + "description": "Create a Subscribe Share Name Exception object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Subscribe Share Name Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a share-name subscription in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\naclProfileName|x||x|||\nmsgVpnName|x||x|||\nsubscribeShareNameException|x|x||||\nsubscribeShareNameExceptionSyntax|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "createMsgVpnAclProfileSubscribeShareNameException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Subscribe Share Name Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscribe Share Name Exception object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Subscribe Share Name Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeShareNameExceptions/{subscribeShareNameExceptionSyntax},{subscribeShareNameException}": { + "delete": { + "description": "Delete a Subscribe Share Name Exception object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Subscribe Share Name Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a share-name subscription in the Message VPN. Exceptions must be expressed as a topic.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "deleteMsgVpnAclProfileSubscribeShareNameException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the subscribe share name for the exception to the default action taken.", + "in": "path", + "name": "subscribeShareNameExceptionSyntax", + "required": true, + "type": "string" + }, + { + "description": "The subscribe share name exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "subscribeShareNameException", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Subscribe Share Name Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "get": { + "description": "Get a Subscribe Share Name Exception object.\n\nA Subscribe Share Name Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a share-name subscription in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x|||\nmsgVpnName|x|||\nsubscribeShareNameException|x|||\nsubscribeShareNameExceptionSyntax|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfileSubscribeShareNameException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the subscribe share name for the exception to the default action taken.", + "in": "path", + "name": "subscribeShareNameExceptionSyntax", + "required": true, + "type": "string" + }, + { + "description": "The subscribe share name exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "subscribeShareNameException", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscribe Share Name Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Subscribe Share Name Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeTopicExceptions": { + "get": { + "description": "Get a list of Subscribe Topic Exception objects.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x|||\nmsgVpnName|x|||\nsubscribeTopicException|x|||\nsubscribeTopicExceptionSyntax|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfileSubscribeTopicExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Subscribe Topic Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Subscribe Topic Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "post": { + "description": "Create a Subscribe Topic Exception object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\naclProfileName|x||x|||\nmsgVpnName|x||x|||\nsubscribeTopicException|x|x||||\nsubscribeTopicExceptionSyntax|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "createMsgVpnAclProfileSubscribeTopicException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Subscribe Topic Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscribe Topic Exception object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Subscribe Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeTopicExceptions/{subscribeTopicExceptionSyntax},{subscribeTopicException}": { + "delete": { + "description": "Delete a Subscribe Topic Exception object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "deleteMsgVpnAclProfileSubscribeTopicException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "subscribeTopicExceptionSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "subscribeTopicException", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Subscribe Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + }, + "get": { + "description": "Get a Subscribe Topic Exception object.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naclProfileName|x|||\nmsgVpnName|x|||\nsubscribeTopicException|x|||\nsubscribeTopicExceptionSyntax|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfileSubscribeTopicException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "subscribeTopicExceptionSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "subscribeTopicException", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscribe Topic Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Subscribe Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles": { + "get": { + "description": "Get a list of OAuth Profile objects.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nclientSecret||x||x\nmsgVpnName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfiles", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OAuth Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OAuth Profile objects.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + }, + "post": { + "description": "Create an OAuth Profile object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nclientSecret||||x||x\nmsgVpnName|x||x|||\noauthProfileName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "createMsgVpnAuthenticationOauthProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The OAuth Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an OAuth Profile object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}": { + "delete": { + "description": "Delete an OAuth Profile object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "deleteMsgVpnAuthenticationOauthProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an OAuth Profile object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + }, + "get": { + "description": "Get an OAuth Profile object.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nclientSecret||x||x\nmsgVpnName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OAuth Profile object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + }, + "patch": { + "description": "Update an OAuth Profile object. Any attribute missing from the request will be left unchanged.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nclientSecret|||x||||x\nmsgVpnName|x|x|||||\noauthProfileName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "updateMsgVpnAuthenticationOauthProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The OAuth Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update an OAuth Profile object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + }, + "put": { + "description": "Replace an OAuth Profile object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nclientSecret||||x||||x\nmsgVpnName|x||x|||||\noauthProfileName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "replaceMsgVpnAuthenticationOauthProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The OAuth Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace an OAuth Profile object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}/clientRequiredClaims": { + "get": { + "description": "Get a list of Required Claim objects.\n\nAdditional claims to be verified in the ID token.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nclientRequiredClaimName|x|||\nmsgVpnName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfileClientRequiredClaims", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Required Claim objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Required Claim objects.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + }, + "post": { + "description": "Create a Required Claim object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nAdditional claims to be verified in the ID token.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nclientRequiredClaimName|x|x||||\nclientRequiredClaimValue||x||||\nmsgVpnName|x||x|||\noauthProfileName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "createMsgVpnAuthenticationOauthProfileClientRequiredClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Required Claim object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaim" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Required Claim object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}/clientRequiredClaims/{clientRequiredClaimName}": { + "delete": { + "description": "Delete a Required Claim object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nAdditional claims to be verified in the ID token.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "deleteMsgVpnAuthenticationOauthProfileClientRequiredClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ID token claim to verify.", + "in": "path", + "name": "clientRequiredClaimName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Required Claim object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + }, + "get": { + "description": "Get a Required Claim object.\n\nAdditional claims to be verified in the ID token.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nclientRequiredClaimName|x|||\nmsgVpnName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfileClientRequiredClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ID token claim to verify.", + "in": "path", + "name": "clientRequiredClaimName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Required Claim object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}/resourceServerRequiredClaims": { + "get": { + "description": "Get a list of Required Claim objects.\n\nAdditional claims to be verified in the access token.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\noauthProfileName|x|||\nresourceServerRequiredClaimName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfileResourceServerRequiredClaims", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Required Claim objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Required Claim objects.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + }, + "post": { + "description": "Create a Required Claim object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nAdditional claims to be verified in the access token.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\noauthProfileName|x||x|||\nresourceServerRequiredClaimName|x|x||||\nresourceServerRequiredClaimValue||x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "createMsgVpnAuthenticationOauthProfileResourceServerRequiredClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Required Claim object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaim" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Required Claim object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}/resourceServerRequiredClaims/{resourceServerRequiredClaimName}": { + "delete": { + "description": "Delete a Required Claim object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nAdditional claims to be verified in the access token.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "deleteMsgVpnAuthenticationOauthProfileResourceServerRequiredClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the access token claim to verify.", + "in": "path", + "name": "resourceServerRequiredClaimName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Required Claim object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + }, + "get": { + "description": "Get a Required Claim object.\n\nAdditional claims to be verified in the access token.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\noauthProfileName|x|||\nresourceServerRequiredClaimName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfileResourceServerRequiredClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the access token claim to verify.", + "in": "path", + "name": "resourceServerRequiredClaimName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Required Claim object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProviders": { + "get": { + "deprecated": true, + "description": "Get a list of OAuth Provider objects.\n\nOAuth Providers contain information about the issuer of an OAuth token that is needed to validate the token and derive a client username from it.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naudienceClaimName|||x|\naudienceClaimSource|||x|\naudienceClaimValue|||x|\naudienceValidationEnabled|||x|\nauthorizationGroupClaimName|||x|\nauthorizationGroupClaimSource|||x|\nauthorizationGroupEnabled|||x|\ndisconnectOnTokenExpirationEnabled|||x|\nenabled|||x|\njwksRefreshInterval|||x|\njwksUri|||x|\nmsgVpnName|x||x|\noauthProviderName|x||x|\ntokenIgnoreTimeLimitsEnabled|||x|\ntokenIntrospectionParameterName|||x|\ntokenIntrospectionPassword||x|x|x\ntokenIntrospectionTimeout|||x|\ntokenIntrospectionUri|||x|\ntokenIntrospectionUsername|||x|\nusernameClaimName|||x|\nusernameClaimSource|||x|\nusernameValidateEnabled|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "operationId": "getMsgVpnAuthenticationOauthProviders", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OAuth Provider objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvidersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OAuth Provider objects.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + }, + "post": { + "deprecated": true, + "description": "Create an OAuth Provider object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nOAuth Providers contain information about the issuer of an OAuth token that is needed to validate the token and derive a client username from it.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\naudienceClaimName|||||x|\naudienceClaimSource|||||x|\naudienceClaimValue|||||x|\naudienceValidationEnabled|||||x|\nauthorizationGroupClaimName|||||x|\nauthorizationGroupClaimSource|||||x|\nauthorizationGroupEnabled|||||x|\ndisconnectOnTokenExpirationEnabled|||||x|\nenabled|||||x|\njwksRefreshInterval|||||x|\njwksUri|||||x|\nmsgVpnName|x||x||x|\noauthProviderName|x|x|||x|\ntokenIgnoreTimeLimitsEnabled|||||x|\ntokenIntrospectionParameterName|||||x|\ntokenIntrospectionPassword||||x|x|x\ntokenIntrospectionTimeout|||||x|\ntokenIntrospectionUri|||||x|\ntokenIntrospectionUsername|||||x|\nusernameClaimName|||||x|\nusernameClaimSource|||||x|\nusernameValidateEnabled|||||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "operationId": "createMsgVpnAuthenticationOauthProvider", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The OAuth Provider object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvider" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Provider object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an OAuth Provider object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProviders/{oauthProviderName}": { + "delete": { + "deprecated": true, + "description": "Delete an OAuth Provider object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nOAuth Providers contain information about the issuer of an OAuth token that is needed to validate the token and derive a client username from it.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "operationId": "deleteMsgVpnAuthenticationOauthProvider", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth Provider.", + "in": "path", + "name": "oauthProviderName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an OAuth Provider object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + }, + "get": { + "deprecated": true, + "description": "Get an OAuth Provider object.\n\nOAuth Providers contain information about the issuer of an OAuth token that is needed to validate the token and derive a client username from it.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\naudienceClaimName|||x|\naudienceClaimSource|||x|\naudienceClaimValue|||x|\naudienceValidationEnabled|||x|\nauthorizationGroupClaimName|||x|\nauthorizationGroupClaimSource|||x|\nauthorizationGroupEnabled|||x|\ndisconnectOnTokenExpirationEnabled|||x|\nenabled|||x|\njwksRefreshInterval|||x|\njwksUri|||x|\nmsgVpnName|x||x|\noauthProviderName|x||x|\ntokenIgnoreTimeLimitsEnabled|||x|\ntokenIntrospectionParameterName|||x|\ntokenIntrospectionPassword||x|x|x\ntokenIntrospectionTimeout|||x|\ntokenIntrospectionUri|||x|\ntokenIntrospectionUsername|||x|\nusernameClaimName|||x|\nusernameClaimSource|||x|\nusernameValidateEnabled|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "operationId": "getMsgVpnAuthenticationOauthProvider", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth Provider.", + "in": "path", + "name": "oauthProviderName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Provider object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OAuth Provider object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + }, + "patch": { + "deprecated": true, + "description": "Update an OAuth Provider object. Any attribute missing from the request will be left unchanged.\n\nOAuth Providers contain information about the issuer of an OAuth token that is needed to validate the token and derive a client username from it.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\naudienceClaimName||||||x|\naudienceClaimSource||||||x|\naudienceClaimValue||||||x|\naudienceValidationEnabled||||||x|\nauthorizationGroupClaimName||||||x|\nauthorizationGroupClaimSource||||||x|\nauthorizationGroupEnabled||||||x|\ndisconnectOnTokenExpirationEnabled||||||x|\nenabled||||||x|\njwksRefreshInterval||||||x|\njwksUri||||||x|\nmsgVpnName|x|x||||x|\noauthProviderName|x|x||||x|\ntokenIgnoreTimeLimitsEnabled||||||x|\ntokenIntrospectionParameterName||||||x|\ntokenIntrospectionPassword|||x|||x|x\ntokenIntrospectionTimeout||||||x|\ntokenIntrospectionUri||||||x|\ntokenIntrospectionUsername||||||x|\nusernameClaimName||||||x|\nusernameClaimSource||||||x|\nusernameValidateEnabled||||||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "operationId": "updateMsgVpnAuthenticationOauthProvider", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth Provider.", + "in": "path", + "name": "oauthProviderName", + "required": true, + "type": "string" + }, + { + "description": "The OAuth Provider object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvider" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Provider object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update an OAuth Provider object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + }, + "put": { + "deprecated": true, + "description": "Replace an OAuth Provider object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nOAuth Providers contain information about the issuer of an OAuth token that is needed to validate the token and derive a client username from it.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\naudienceClaimName|||||||x|\naudienceClaimSource|||||||x|\naudienceClaimValue|||||||x|\naudienceValidationEnabled|||||||x|\nauthorizationGroupClaimName|||||||x|\nauthorizationGroupClaimSource|||||||x|\nauthorizationGroupEnabled|||||||x|\ndisconnectOnTokenExpirationEnabled|||||||x|\nenabled|||||||x|\njwksRefreshInterval|||||||x|\njwksUri|||||||x|\nmsgVpnName|x||x||||x|\noauthProviderName|x||x||||x|\ntokenIgnoreTimeLimitsEnabled|||||||x|\ntokenIntrospectionParameterName|||||||x|\ntokenIntrospectionPassword||||x|||x|x\ntokenIntrospectionTimeout|||||||x|\ntokenIntrospectionUri|||||||x|\ntokenIntrospectionUsername|||||||x|\nusernameClaimName|||||||x|\nusernameClaimSource|||||||x|\nusernameValidateEnabled|||||||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "operationId": "replaceMsgVpnAuthenticationOauthProvider", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth Provider.", + "in": "path", + "name": "oauthProviderName", + "required": true, + "type": "string" + }, + { + "description": "The OAuth Provider object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvider" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Provider object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace an OAuth Provider object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + } + }, + "/msgVpns/{msgVpnName}/authorizationGroups": { + "get": { + "description": "Get a list of Authorization Group objects.\n\nTo use client authorization groups configured on an external server to provide client authorizations, Authorization Group objects must be created on the Message VPN that match the authorization groups provisioned on the external server. These objects must be configured with the client profiles and ACL profiles that will be assigned to the clients that belong to those authorization groups. A newly created group is placed at the end of the group list which is the lowest priority.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthorizationGroupName|x|||\nmsgVpnName|x|||\norderAfterAuthorizationGroupName||x||\norderBeforeAuthorizationGroupName||x||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnAuthorizationGroups", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Authorization Group objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Authorization Group objects.", + "tags": [ + "all", + "msgVpn", + "authorizationGroup" + ] + }, + "post": { + "description": "Create an Authorization Group object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nTo use client authorization groups configured on an external server to provide client authorizations, Authorization Group objects must be created on the Message VPN that match the authorization groups provisioned on the external server. These objects must be configured with the client profiles and ACL profiles that will be assigned to the clients that belong to those authorization groups. A newly created group is placed at the end of the group list which is the lowest priority.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nauthorizationGroupName|x|x||||\nmsgVpnName|x||x|||\norderAfterAuthorizationGroupName||||x||\norderBeforeAuthorizationGroupName||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnAuthorizationGroup|orderAfterAuthorizationGroupName||orderBeforeAuthorizationGroupName\nMsgVpnAuthorizationGroup|orderBeforeAuthorizationGroupName||orderAfterAuthorizationGroupName\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnAuthorizationGroup", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Authorization Group object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthorizationGroup" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Authorization Group object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an Authorization Group object.", + "tags": [ + "all", + "msgVpn", + "authorizationGroup" + ] + } + }, + "/msgVpns/{msgVpnName}/authorizationGroups/{authorizationGroupName}": { + "delete": { + "description": "Delete an Authorization Group object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nTo use client authorization groups configured on an external server to provide client authorizations, Authorization Group objects must be created on the Message VPN that match the authorization groups provisioned on the external server. These objects must be configured with the client profiles and ACL profiles that will be assigned to the clients that belong to those authorization groups. A newly created group is placed at the end of the group list which is the lowest priority.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnAuthorizationGroup", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Authorization Group. For LDAP groups, special care is needed if the group name contains special characters such as '#', '+', ';', '=' as the value of the group name returned from the LDAP server might prepend those characters with '\\'. For example a group name called 'test#,lab,com' will be returned from the LDAP server as 'test\\#,lab,com'.", + "in": "path", + "name": "authorizationGroupName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an Authorization Group object.", + "tags": [ + "all", + "msgVpn", + "authorizationGroup" + ] + }, + "get": { + "description": "Get an Authorization Group object.\n\nTo use client authorization groups configured on an external server to provide client authorizations, Authorization Group objects must be created on the Message VPN that match the authorization groups provisioned on the external server. These objects must be configured with the client profiles and ACL profiles that will be assigned to the clients that belong to those authorization groups. A newly created group is placed at the end of the group list which is the lowest priority.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthorizationGroupName|x|||\nmsgVpnName|x|||\norderAfterAuthorizationGroupName||x||\norderBeforeAuthorizationGroupName||x||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnAuthorizationGroup", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Authorization Group. For LDAP groups, special care is needed if the group name contains special characters such as '#', '+', ';', '=' as the value of the group name returned from the LDAP server might prepend those characters with '\\'. For example a group name called 'test#,lab,com' will be returned from the LDAP server as 'test\\#,lab,com'.", + "in": "path", + "name": "authorizationGroupName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Authorization Group object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an Authorization Group object.", + "tags": [ + "all", + "msgVpn", + "authorizationGroup" + ] + }, + "patch": { + "description": "Update an Authorization Group object. Any attribute missing from the request will be left unchanged.\n\nTo use client authorization groups configured on an external server to provide client authorizations, Authorization Group objects must be created on the Message VPN that match the authorization groups provisioned on the external server. These objects must be configured with the client profiles and ACL profiles that will be assigned to the clients that belong to those authorization groups. A newly created group is placed at the end of the group list which is the lowest priority.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\naclProfileName|||||x||\nauthorizationGroupName|x|x|||||\nclientProfileName|||||x||\nmsgVpnName|x|x|||||\norderAfterAuthorizationGroupName|||x||||\norderBeforeAuthorizationGroupName|||x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnAuthorizationGroup|orderAfterAuthorizationGroupName||orderBeforeAuthorizationGroupName\nMsgVpnAuthorizationGroup|orderBeforeAuthorizationGroupName||orderAfterAuthorizationGroupName\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpnAuthorizationGroup", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Authorization Group. For LDAP groups, special care is needed if the group name contains special characters such as '#', '+', ';', '=' as the value of the group name returned from the LDAP server might prepend those characters with '\\'. For example a group name called 'test#,lab,com' will be returned from the LDAP server as 'test\\#,lab,com'.", + "in": "path", + "name": "authorizationGroupName", + "required": true, + "type": "string" + }, + { + "description": "The Authorization Group object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthorizationGroup" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Authorization Group object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update an Authorization Group object.", + "tags": [ + "all", + "msgVpn", + "authorizationGroup" + ] + }, + "put": { + "description": "Replace an Authorization Group object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nTo use client authorization groups configured on an external server to provide client authorizations, Authorization Group objects must be created on the Message VPN that match the authorization groups provisioned on the external server. These objects must be configured with the client profiles and ACL profiles that will be assigned to the clients that belong to those authorization groups. A newly created group is placed at the end of the group list which is the lowest priority.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\naclProfileName||||||x||\nauthorizationGroupName|x||x|||||\nclientProfileName||||||x||\nmsgVpnName|x||x|||||\norderAfterAuthorizationGroupName||||x||||\norderBeforeAuthorizationGroupName||||x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnAuthorizationGroup|orderAfterAuthorizationGroupName||orderBeforeAuthorizationGroupName\nMsgVpnAuthorizationGroup|orderBeforeAuthorizationGroupName||orderAfterAuthorizationGroupName\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpnAuthorizationGroup", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Authorization Group. For LDAP groups, special care is needed if the group name contains special characters such as '#', '+', ';', '=' as the value of the group name returned from the LDAP server might prepend those characters with '\\'. For example a group name called 'test#,lab,com' will be returned from the LDAP server as 'test\\#,lab,com'.", + "in": "path", + "name": "authorizationGroupName", + "required": true, + "type": "string" + }, + { + "description": "The Authorization Group object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnAuthorizationGroup" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Authorization Group object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace an Authorization Group object.", + "tags": [ + "all", + "msgVpn", + "authorizationGroup" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges": { + "get": { + "description": "Get a list of Bridge objects.\n\nBridges can be used to link two Message VPNs so that messages published to one Message VPN that match the topic subscriptions set for the bridge are also delivered to the linked Message VPN.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nbridgeName|x|||\nbridgeVirtualRouter|x|||\nmsgVpnName|x|||\nremoteAuthenticationBasicPassword||x||x\nremoteAuthenticationClientCertContent||x||x\nremoteAuthenticationClientCertPassword||x||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnBridges", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Bridge objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Bridge objects.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "post": { + "description": "Create a Bridge object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nBridges can be used to link two Message VPNs so that messages published to one Message VPN that match the topic subscriptions set for the bridge are also delivered to the linked Message VPN.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nbridgeName|x|x||||\nbridgeVirtualRouter|x|x||||\nmsgVpnName|x||x|||\nremoteAuthenticationBasicPassword||||x||x\nremoteAuthenticationClientCertContent||||x||x\nremoteAuthenticationClientCertPassword||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnBridge|remoteAuthenticationBasicClientUsername|remoteAuthenticationBasicPassword|\nMsgVpnBridge|remoteAuthenticationBasicPassword|remoteAuthenticationBasicClientUsername|\nMsgVpnBridge|remoteAuthenticationClientCertPassword|remoteAuthenticationClientCertContent|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Bridge object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridge" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Bridge object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Bridge object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}": { + "delete": { + "description": "Delete a Bridge object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nBridges can be used to link two Message VPNs so that messages published to one Message VPN that match the topic subscriptions set for the bridge are also delivered to the linked Message VPN.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Bridge object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "get": { + "description": "Get a Bridge object.\n\nBridges can be used to link two Message VPNs so that messages published to one Message VPN that match the topic subscriptions set for the bridge are also delivered to the linked Message VPN.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nbridgeName|x|||\nbridgeVirtualRouter|x|||\nmsgVpnName|x|||\nremoteAuthenticationBasicPassword||x||x\nremoteAuthenticationClientCertContent||x||x\nremoteAuthenticationClientCertPassword||x||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Bridge object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Bridge object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "patch": { + "description": "Update a Bridge object. Any attribute missing from the request will be left unchanged.\n\nBridges can be used to link two Message VPNs so that messages published to one Message VPN that match the topic subscriptions set for the bridge are also delivered to the linked Message VPN.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nbridgeName|x|x|||||\nbridgeVirtualRouter|x|x|||||\nmaxTtl|||||x||\nmsgVpnName|x|x|||||\nremoteAuthenticationBasicClientUsername|||||x||\nremoteAuthenticationBasicPassword|||x||x||x\nremoteAuthenticationClientCertContent|||x||x||x\nremoteAuthenticationClientCertPassword|||x||x||\nremoteAuthenticationScheme|||||x||\nremoteDeliverToOnePriority|||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnBridge|remoteAuthenticationBasicClientUsername|remoteAuthenticationBasicPassword|\nMsgVpnBridge|remoteAuthenticationBasicPassword|remoteAuthenticationBasicClientUsername|\nMsgVpnBridge|remoteAuthenticationClientCertPassword|remoteAuthenticationClientCertContent|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpnBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The Bridge object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridge" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Bridge object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Bridge object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "put": { + "description": "Replace a Bridge object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nBridges can be used to link two Message VPNs so that messages published to one Message VPN that match the topic subscriptions set for the bridge are also delivered to the linked Message VPN.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nbridgeName|x||x|||||\nbridgeVirtualRouter|x||x|||||\nmaxTtl||||||x||\nmsgVpnName|x||x|||||\nremoteAuthenticationBasicClientUsername||||||x||\nremoteAuthenticationBasicPassword||||x||x||x\nremoteAuthenticationClientCertContent||||x||x||x\nremoteAuthenticationClientCertPassword||||x||x||\nremoteAuthenticationScheme||||||x||\nremoteDeliverToOnePriority||||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnBridge|remoteAuthenticationBasicClientUsername|remoteAuthenticationBasicPassword|\nMsgVpnBridge|remoteAuthenticationBasicPassword|remoteAuthenticationBasicClientUsername|\nMsgVpnBridge|remoteAuthenticationClientCertPassword|remoteAuthenticationClientCertContent|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpnBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The Bridge object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridge" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Bridge object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Bridge object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/remoteMsgVpns": { + "get": { + "description": "Get a list of Remote Message VPN objects.\n\nThe Remote Message VPN is the Message VPN that the Bridge connects to.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nbridgeName|x|||\nbridgeVirtualRouter|x|||\nmsgVpnName|x|||\npassword||x||x\nremoteMsgVpnInterface|x|||\nremoteMsgVpnLocation|x|||\nremoteMsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnBridgeRemoteMsgVpns", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Remote Message VPN objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Remote Message VPN objects.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "post": { + "description": "Create a Remote Message VPN object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe Remote Message VPN is the Message VPN that the Bridge connects to.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nbridgeName|x||x|||\nbridgeVirtualRouter|x||x|||\nmsgVpnName|x||x|||\npassword||||x||x\nremoteMsgVpnInterface|x|||||\nremoteMsgVpnLocation|x|x||||\nremoteMsgVpnName|x|x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnBridgeRemoteMsgVpn|clientUsername|password|\nMsgVpnBridgeRemoteMsgVpn|password|clientUsername|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnBridgeRemoteMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The Remote Message VPN object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpn" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Message VPN object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Remote Message VPN object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/remoteMsgVpns/{remoteMsgVpnName},{remoteMsgVpnLocation},{remoteMsgVpnInterface}": { + "delete": { + "description": "Delete a Remote Message VPN object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe Remote Message VPN is the Message VPN that the Bridge connects to.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnBridgeRemoteMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Message VPN.", + "in": "path", + "name": "remoteMsgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The location of the remote Message VPN as either an FQDN with port, IP address with port, or virtual router name (starting with \"v:\").", + "in": "path", + "name": "remoteMsgVpnLocation", + "required": true, + "type": "string" + }, + { + "description": "The physical interface on the local Message VPN host for connecting to the remote Message VPN. By default, an interface is chosen automatically (recommended), but if specified, `remoteMsgVpnLocation` must not be a virtual router name.", + "in": "path", + "name": "remoteMsgVpnInterface", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Remote Message VPN object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "get": { + "description": "Get a Remote Message VPN object.\n\nThe Remote Message VPN is the Message VPN that the Bridge connects to.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nbridgeName|x|||\nbridgeVirtualRouter|x|||\nmsgVpnName|x|||\npassword||x||x\nremoteMsgVpnInterface|x|||\nremoteMsgVpnLocation|x|||\nremoteMsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnBridgeRemoteMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Message VPN.", + "in": "path", + "name": "remoteMsgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The location of the remote Message VPN as either an FQDN with port, IP address with port, or virtual router name (starting with \"v:\").", + "in": "path", + "name": "remoteMsgVpnLocation", + "required": true, + "type": "string" + }, + { + "description": "The physical interface on the local Message VPN host for connecting to the remote Message VPN. By default, an interface is chosen automatically (recommended), but if specified, `remoteMsgVpnLocation` must not be a virtual router name.", + "in": "path", + "name": "remoteMsgVpnInterface", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Message VPN object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Remote Message VPN object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "patch": { + "description": "Update a Remote Message VPN object. Any attribute missing from the request will be left unchanged.\n\nThe Remote Message VPN is the Message VPN that the Bridge connects to.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nbridgeName|x|x|||||\nbridgeVirtualRouter|x|x|||||\nclientUsername|||||x||\ncompressedDataEnabled|||||x||\negressFlowWindowSize|||||x||\nmsgVpnName|x|x|||||\npassword|||x||x||x\nremoteMsgVpnInterface|x|x|||||\nremoteMsgVpnLocation|x|x|||||\nremoteMsgVpnName|x|x|||||\ntlsEnabled|||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnBridgeRemoteMsgVpn|clientUsername|password|\nMsgVpnBridgeRemoteMsgVpn|password|clientUsername|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpnBridgeRemoteMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Message VPN.", + "in": "path", + "name": "remoteMsgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The location of the remote Message VPN as either an FQDN with port, IP address with port, or virtual router name (starting with \"v:\").", + "in": "path", + "name": "remoteMsgVpnLocation", + "required": true, + "type": "string" + }, + { + "description": "The physical interface on the local Message VPN host for connecting to the remote Message VPN. By default, an interface is chosen automatically (recommended), but if specified, `remoteMsgVpnLocation` must not be a virtual router name.", + "in": "path", + "name": "remoteMsgVpnInterface", + "required": true, + "type": "string" + }, + { + "description": "The Remote Message VPN object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpn" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Message VPN object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Remote Message VPN object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "put": { + "description": "Replace a Remote Message VPN object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nThe Remote Message VPN is the Message VPN that the Bridge connects to.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nbridgeName|x||x|||||\nbridgeVirtualRouter|x||x|||||\nclientUsername||||||x||\ncompressedDataEnabled||||||x||\negressFlowWindowSize||||||x||\nmsgVpnName|x||x|||||\npassword||||x||x||x\nremoteMsgVpnInterface|x||x|||||\nremoteMsgVpnLocation|x||x|||||\nremoteMsgVpnName|x||x|||||\ntlsEnabled||||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnBridgeRemoteMsgVpn|clientUsername|password|\nMsgVpnBridgeRemoteMsgVpn|password|clientUsername|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpnBridgeRemoteMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Message VPN.", + "in": "path", + "name": "remoteMsgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The location of the remote Message VPN as either an FQDN with port, IP address with port, or virtual router name (starting with \"v:\").", + "in": "path", + "name": "remoteMsgVpnLocation", + "required": true, + "type": "string" + }, + { + "description": "The physical interface on the local Message VPN host for connecting to the remote Message VPN. By default, an interface is chosen automatically (recommended), but if specified, `remoteMsgVpnLocation` must not be a virtual router name.", + "in": "path", + "name": "remoteMsgVpnInterface", + "required": true, + "type": "string" + }, + { + "description": "The Remote Message VPN object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpn" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Message VPN object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Remote Message VPN object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/remoteSubscriptions": { + "get": { + "description": "Get a list of Remote Subscription objects.\n\nA Remote Subscription is a topic subscription used by the Message VPN Bridge to attract messages from the remote message broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nbridgeName|x|||\nbridgeVirtualRouter|x|||\nmsgVpnName|x|||\nremoteSubscriptionTopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnBridgeRemoteSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Remote Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Remote Subscription objects.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "post": { + "description": "Create a Remote Subscription object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Remote Subscription is a topic subscription used by the Message VPN Bridge to attract messages from the remote message broker.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nbridgeName|x||x|||\nbridgeVirtualRouter|x||x|||\ndeliverAlwaysEnabled||x||||\nmsgVpnName|x||x|||\nremoteSubscriptionTopic|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnBridgeRemoteSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The Remote Subscription object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscription" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Subscription object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Remote Subscription object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/remoteSubscriptions/{remoteSubscriptionTopic}": { + "delete": { + "description": "Delete a Remote Subscription object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Remote Subscription is a topic subscription used by the Message VPN Bridge to attract messages from the remote message broker.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnBridgeRemoteSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Bridge remote subscription.", + "in": "path", + "name": "remoteSubscriptionTopic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Remote Subscription object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "get": { + "description": "Get a Remote Subscription object.\n\nA Remote Subscription is a topic subscription used by the Message VPN Bridge to attract messages from the remote message broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nbridgeName|x|||\nbridgeVirtualRouter|x|||\nmsgVpnName|x|||\nremoteSubscriptionTopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnBridgeRemoteSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Bridge remote subscription.", + "in": "path", + "name": "remoteSubscriptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Remote Subscription object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/tlsTrustedCommonNames": { + "get": { + "deprecated": true, + "description": "Get a list of Trusted Common Name objects.\n\nThe Trusted Common Names for the Bridge are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nbridgeName|x||x|\nbridgeVirtualRouter|x||x|\nmsgVpnName|x||x|\ntlsTrustedCommonName|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getMsgVpnBridgeTlsTrustedCommonNames", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Trusted Common Name objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Trusted Common Name objects.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "post": { + "deprecated": true, + "description": "Create a Trusted Common Name object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe Trusted Common Names for the Bridge are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nbridgeName|x||x||x|\nbridgeVirtualRouter|x||x||x|\nmsgVpnName|x||x||x|\ntlsTrustedCommonName|x|x|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "createMsgVpnBridgeTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The Trusted Common Name object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonName" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trusted Common Name object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Trusted Common Name object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/tlsTrustedCommonNames/{tlsTrustedCommonName}": { + "delete": { + "deprecated": true, + "description": "Delete a Trusted Common Name object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe Trusted Common Names for the Bridge are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "deleteMsgVpnBridgeTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The expected trusted common name of the remote certificate.", + "in": "path", + "name": "tlsTrustedCommonName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Trusted Common Name object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + }, + "get": { + "deprecated": true, + "description": "Get a Trusted Common Name object.\n\nThe Trusted Common Names for the Bridge are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nbridgeName|x||x|\nbridgeVirtualRouter|x||x|\nmsgVpnName|x||x|\ntlsTrustedCommonName|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getMsgVpnBridgeTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The expected trusted common name of the remote certificate.", + "in": "path", + "name": "tlsTrustedCommonName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trusted Common Name object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Trusted Common Name object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules": { + "get": { + "description": "Get a list of Certificate Matching Rule objects.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given username.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nruleName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnCertMatchingRules", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRulesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule objects.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + }, + "post": { + "description": "Create a Certificate Matching Rule object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given username.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nruleName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "createMsgVpnCertMatchingRule", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRule" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Certificate Matching Rule object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules/{ruleName}": { + "delete": { + "description": "Delete a Certificate Matching Rule object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given username.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "deleteMsgVpnCertMatchingRule", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Certificate Matching Rule object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + }, + "get": { + "description": "Get a Certificate Matching Rule object.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given username.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nruleName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnCertMatchingRule", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + }, + "patch": { + "description": "Update a Certificate Matching Rule object. Any attribute missing from the request will be left unchanged.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given username.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\nruleName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "updateMsgVpnCertMatchingRule", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRule" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Certificate Matching Rule object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + }, + "put": { + "description": "Replace a Certificate Matching Rule object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given username.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\nruleName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "replaceMsgVpnCertMatchingRule", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRule" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Certificate Matching Rule object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules/{ruleName}/attributeFilters": { + "get": { + "description": "Get a list of Certificate Matching Rule Attribute Filter objects.\n\nA Cert Matching Rule Attribute Filter compares a username attribute to a string.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nfilterName|x|||\nmsgVpnName|x|||\nruleName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getMsgVpnCertMatchingRuleAttributeFilters", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule Attribute Filter objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFiltersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule Attribute Filter objects.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + }, + "post": { + "description": "Create a Certificate Matching Rule Attribute Filter object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Cert Matching Rule Attribute Filter compares a username attribute to a string.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nfilterName|x|x||||\nmsgVpnName|x||x|||\nruleName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "createMsgVpnCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule Attribute Filter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Attribute Filter object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules/{ruleName}/attributeFilters/{filterName}": { + "delete": { + "description": "Delete a Certificate Matching Rule Attribute Filter object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Cert Matching Rule Attribute Filter compares a username attribute to a string.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "deleteMsgVpnCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The name of the filter.", + "in": "path", + "name": "filterName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + }, + "get": { + "description": "Get a Certificate Matching Rule Attribute Filter object.\n\nA Cert Matching Rule Attribute Filter compares a username attribute to a string.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nfilterName|x|||\nmsgVpnName|x|||\nruleName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getMsgVpnCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The name of the filter.", + "in": "path", + "name": "filterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Attribute Filter object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + }, + "patch": { + "description": "Update a Certificate Matching Rule Attribute Filter object. Any attribute missing from the request will be left unchanged.\n\nA Cert Matching Rule Attribute Filter compares a username attribute to a string.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nfilterName|x|x|||||\nmsgVpnName|x|x|||||\nruleName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "updateMsgVpnCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The name of the filter.", + "in": "path", + "name": "filterName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule Attribute Filter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Attribute Filter object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + }, + "put": { + "description": "Replace a Certificate Matching Rule Attribute Filter object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Cert Matching Rule Attribute Filter compares a username attribute to a string.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nfilterName|x||x|||||\nmsgVpnName|x||x|||||\nruleName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "replaceMsgVpnCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The name of the filter.", + "in": "path", + "name": "filterName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule Attribute Filter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Attribute Filter object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules/{ruleName}/conditions": { + "get": { + "description": "Get a list of Certificate Matching Rule Condition objects.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a username attribute or an expression.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nruleName|x|||\nsource|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnCertMatchingRuleConditions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule Condition objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule Condition objects.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + }, + "post": { + "description": "Create a Certificate Matching Rule Condition object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a username attribute or an expression.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nruleName|x||x|||\nsource|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "createMsgVpnCertMatchingRuleCondition", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The Certificate Matching Rule Condition object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleCondition" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Condition object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Certificate Matching Rule Condition object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules/{ruleName}/conditions/{source}": { + "delete": { + "description": "Delete a Certificate Matching Rule Condition object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a username attribute or an expression.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "deleteMsgVpnCertMatchingRuleCondition", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "Certificate field to be compared with the Attribute.", + "in": "path", + "name": "source", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Certificate Matching Rule Condition object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + }, + "get": { + "description": "Get a Certificate Matching Rule Condition object.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a username attribute or an expression.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nruleName|x|||\nsource|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnCertMatchingRuleCondition", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "Certificate field to be compared with the Attribute.", + "in": "path", + "name": "source", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Condition object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule Condition object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/clientProfiles": { + "get": { + "description": "Get a list of Client Profile objects.\n\nClient Profiles are used to assign common configuration properties to clients that have been successfully authorized.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nallowCutThroughForwardingEnabled|||x|\napiQueueManagementCopyFromOnCreateName|||x|\napiTopicEndpointManagementCopyFromOnCreateName|||x|\nclientProfileName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnClientProfiles", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Profile objects.", + "tags": [ + "all", + "msgVpn", + "clientProfile" + ] + }, + "post": { + "description": "Create a Client Profile object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nClient Profiles are used to assign common configuration properties to clients that have been successfully authorized.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nallowCutThroughForwardingEnabled|||||x|\napiQueueManagementCopyFromOnCreateName|||||x|\napiTopicEndpointManagementCopyFromOnCreateName|||||x|\nclientProfileName|x|x||||\nmsgVpnName|x||x|||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\nEventThresholdByPercent|clearPercent|setPercent|\nEventThresholdByPercent|setPercent|clearPercent|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnClientProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Profile object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Client Profile object.", + "tags": [ + "all", + "msgVpn", + "clientProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/clientProfiles/{clientProfileName}": { + "delete": { + "description": "Delete a Client Profile object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nClient Profiles are used to assign common configuration properties to clients that have been successfully authorized.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnClientProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Profile.", + "in": "path", + "name": "clientProfileName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Client Profile object.", + "tags": [ + "all", + "msgVpn", + "clientProfile" + ] + }, + "get": { + "description": "Get a Client Profile object.\n\nClient Profiles are used to assign common configuration properties to clients that have been successfully authorized.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nallowCutThroughForwardingEnabled|||x|\napiQueueManagementCopyFromOnCreateName|||x|\napiTopicEndpointManagementCopyFromOnCreateName|||x|\nclientProfileName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnClientProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Profile.", + "in": "path", + "name": "clientProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Profile object.", + "tags": [ + "all", + "msgVpn", + "clientProfile" + ] + }, + "patch": { + "description": "Update a Client Profile object. Any attribute missing from the request will be left unchanged.\n\nClient Profiles are used to assign common configuration properties to clients that have been successfully authorized.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nallowCutThroughForwardingEnabled||||||x|\napiQueueManagementCopyFromOnCreateName||||||x|\napiTopicEndpointManagementCopyFromOnCreateName||||||x|\nclientProfileName|x|x|||||\nmsgVpnName|x|x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\nEventThresholdByPercent|clearPercent|setPercent|\nEventThresholdByPercent|setPercent|clearPercent|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpnClientProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Profile.", + "in": "path", + "name": "clientProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Client Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Profile object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Client Profile object.", + "tags": [ + "all", + "msgVpn", + "clientProfile" + ] + }, + "put": { + "description": "Replace a Client Profile object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nClient Profiles are used to assign common configuration properties to clients that have been successfully authorized.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nallowCutThroughForwardingEnabled|||||||x|\napiQueueManagementCopyFromOnCreateName|||||||x|\napiTopicEndpointManagementCopyFromOnCreateName|||||||x|\nclientProfileName|x||x|||||\nmsgVpnName|x||x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\nEventThresholdByPercent|clearPercent|setPercent|\nEventThresholdByPercent|setPercent|clearPercent|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpnClientProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Profile.", + "in": "path", + "name": "clientProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Client Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Profile object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Client Profile object.", + "tags": [ + "all", + "msgVpn", + "clientProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/clientUsernames": { + "get": { + "description": "Get a list of Client Username objects.\n\nA client is only authorized to connect to a Message VPN that is associated with a Client Username that the client has been assigned.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nclientUsername|x|||\nmsgVpnName|x|||\npassword||x||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnClientUsernames", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Username objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Username objects.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + }, + "post": { + "description": "Create a Client Username object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA client is only authorized to connect to a Message VPN that is associated with a Client Username that the client has been assigned.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nclientUsername|x|x||||\nmsgVpnName|x||x|||\npassword||||x||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnClientUsername", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client Username object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientUsername" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Username object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Client Username object.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + } + }, + "/msgVpns/{msgVpnName}/clientUsernames/{clientUsername}": { + "delete": { + "description": "Delete a Client Username object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA client is only authorized to connect to a Message VPN that is associated with a Client Username that the client has been assigned.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnClientUsername", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Client Username object.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + }, + "get": { + "description": "Get a Client Username object.\n\nA client is only authorized to connect to a Message VPN that is associated with a Client Username that the client has been assigned.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nclientUsername|x|||\nmsgVpnName|x|||\npassword||x||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnClientUsername", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Username object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Username object.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + }, + "patch": { + "description": "Update a Client Username object. Any attribute missing from the request will be left unchanged.\n\nA client is only authorized to connect to a Message VPN that is associated with a Client Username that the client has been assigned.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\naclProfileName|||||x||\nclientProfileName|||||x||\nclientUsername|x|x|||||\nmsgVpnName|x|x|||||\npassword|||x||||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpnClientUsername", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + }, + { + "description": "The Client Username object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientUsername" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Username object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Client Username object.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + }, + "put": { + "description": "Replace a Client Username object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA client is only authorized to connect to a Message VPN that is associated with a Client Username that the client has been assigned.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\naclProfileName||||||x||\nclientProfileName||||||x||\nclientUsername|x||x|||||\nmsgVpnName|x||x|||||\npassword||||x||||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpnClientUsername", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + }, + { + "description": "The Client Username object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientUsername" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Username object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Client Username object.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + } + }, + "/msgVpns/{msgVpnName}/clientUsernames/{clientUsername}/attributes": { + "get": { + "description": "Get a list of Client Username Attribute objects.\n\nA ClientUsername Attribute is a key+value pair that can be used to locate a client username, for example when using client certificate mapping.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nattributeName|x|||\nattributeValue|x|||\nclientUsername|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnClientUsernameAttributes", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Username Attribute objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Username Attribute objects.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + }, + "post": { + "description": "Create a Client Username Attribute object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA ClientUsername Attribute is a key+value pair that can be used to locate a client username, for example when using client certificate mapping.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nattributeName|x|x||||\nattributeValue|x|x||||\nclientUsername|x||x|||\nmsgVpnName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "createMsgVpnClientUsernameAttribute", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + }, + { + "description": "The Client Username Attribute object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameAttribute" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Username Attribute object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Client Username Attribute object.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + } + }, + "/msgVpns/{msgVpnName}/clientUsernames/{clientUsername}/attributes/{attributeName},{attributeValue}": { + "delete": { + "description": "Delete a Client Username Attribute object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA ClientUsername Attribute is a key+value pair that can be used to locate a client username, for example when using client certificate mapping.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "deleteMsgVpnClientUsernameAttribute", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + }, + { + "description": "The name of the Attribute.", + "in": "path", + "name": "attributeName", + "required": true, + "type": "string" + }, + { + "description": "The value of the Attribute.", + "in": "path", + "name": "attributeValue", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Client Username Attribute object.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + }, + "get": { + "description": "Get a Client Username Attribute object.\n\nA ClientUsername Attribute is a key+value pair that can be used to locate a client username, for example when using client certificate mapping.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nattributeName|x|||\nattributeValue|x|||\nclientUsername|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnClientUsernameAttribute", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + }, + { + "description": "The name of the Attribute.", + "in": "path", + "name": "attributeName", + "required": true, + "type": "string" + }, + { + "description": "The value of the Attribute.", + "in": "path", + "name": "attributeValue", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Username Attribute object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Username Attribute object.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches": { + "get": { + "description": "Get a list of Distributed Cache objects.\n\nA Distributed Cache is a collection of one or more Cache Clusters that belong to the same Message VPN. Each Cache Cluster in a Distributed Cache is configured to subscribe to a different set of topics. This effectively divides up the configured topic space, to provide scaling to very large topic spaces or very high cached message throughput.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCaches", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Distributed Cache objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCachesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Distributed Cache objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "post": { + "description": "Create a Distributed Cache object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Distributed Cache is a collection of one or more Cache Clusters that belong to the same Message VPN. Each Cache Cluster in a Distributed Cache is configured to subscribe to a different set of topics. This effectively divides up the configured topic space, to provide scaling to very large topic spaces or very high cached message throughput.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncacheName|x|x||||\nmsgVpnName|x||x|||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnDistributedCache|scheduledDeleteMsgDayList|scheduledDeleteMsgTimeList|\nMsgVpnDistributedCache|scheduledDeleteMsgTimeList|scheduledDeleteMsgDayList|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createMsgVpnDistributedCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Distributed Cache object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCache" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Distributed Cache object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Distributed Cache object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}": { + "delete": { + "description": "Delete a Distributed Cache object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Distributed Cache is a collection of one or more Cache Clusters that belong to the same Message VPN. Each Cache Cluster in a Distributed Cache is configured to subscribe to a different set of topics. This effectively divides up the configured topic space, to provide scaling to very large topic spaces or very high cached message throughput.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteMsgVpnDistributedCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Distributed Cache object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "get": { + "description": "Get a Distributed Cache object.\n\nA Distributed Cache is a collection of one or more Cache Clusters that belong to the same Message VPN. Each Cache Cluster in a Distributed Cache is configured to subscribe to a different set of topics. This effectively divides up the configured topic space, to provide scaling to very large topic spaces or very high cached message throughput.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Distributed Cache object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Distributed Cache object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "patch": { + "description": "Update a Distributed Cache object. Any attribute missing from the request will be left unchanged.\n\nA Distributed Cache is a collection of one or more Cache Clusters that belong to the same Message VPN. Each Cache Cluster in a Distributed Cache is configured to subscribe to a different set of topics. This effectively divides up the configured topic space, to provide scaling to very large topic spaces or very high cached message throughput.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ncacheName|x|x|||||\ncacheVirtualRouter||x|||||\nmsgVpnName|x|x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnDistributedCache|scheduledDeleteMsgDayList|scheduledDeleteMsgTimeList|\nMsgVpnDistributedCache|scheduledDeleteMsgTimeList|scheduledDeleteMsgDayList|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "updateMsgVpnDistributedCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The Distributed Cache object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCache" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Distributed Cache object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Distributed Cache object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "put": { + "description": "Replace a Distributed Cache object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Distributed Cache is a collection of one or more Cache Clusters that belong to the same Message VPN. Each Cache Cluster in a Distributed Cache is configured to subscribe to a different set of topics. This effectively divides up the configured topic space, to provide scaling to very large topic spaces or very high cached message throughput.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ncacheName|x||x|||||\ncacheVirtualRouter||x||||||\nmsgVpnName|x||x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnDistributedCache|scheduledDeleteMsgDayList|scheduledDeleteMsgTimeList|\nMsgVpnDistributedCache|scheduledDeleteMsgTimeList|scheduledDeleteMsgDayList|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "replaceMsgVpnDistributedCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The Distributed Cache object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCache" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Distributed Cache object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Distributed Cache object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters": { + "get": { + "description": "Get a list of Cache Cluster objects.\n\nA Cache Cluster is a collection of one or more Cache Instances that subscribe to exactly the same topics. Cache Instances are grouped together in a Cache Cluster for the purpose of fault tolerance and load balancing. As published messages are received, the message broker message bus sends these live data messages to the Cache Instances in the Cache Cluster. This enables client cache requests to be served by any of Cache Instances in the Cache Cluster.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nclusterName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusters", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Cache Cluster objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClustersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Cache Cluster objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "post": { + "description": "Create a Cache Cluster object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Cache Cluster is a collection of one or more Cache Instances that subscribe to exactly the same topics. Cache Instances are grouped together in a Cache Cluster for the purpose of fault tolerance and load balancing. As published messages are received, the message broker message bus sends these live data messages to the Cache Instances in the Cache Cluster. This enables client cache requests to be served by any of Cache Instances in the Cache Cluster.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncacheName|x||x|||\nclusterName|x|x||||\nmsgVpnName|x||x|||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThresholdByPercent|clearPercent|setPercent|\nEventThresholdByPercent|setPercent|clearPercent|\nEventThresholdByValue|clearValue|setValue|\nEventThresholdByValue|setValue|clearValue|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createMsgVpnDistributedCacheCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The Cache Cluster object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheCluster" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Cluster object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}": { + "delete": { + "description": "Delete a Cache Cluster object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Cache Cluster is a collection of one or more Cache Instances that subscribe to exactly the same topics. Cache Instances are grouped together in a Cache Cluster for the purpose of fault tolerance and load balancing. As published messages are received, the message broker message bus sends these live data messages to the Cache Instances in the Cache Cluster. This enables client cache requests to be served by any of Cache Instances in the Cache Cluster.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteMsgVpnDistributedCacheCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "get": { + "description": "Get a Cache Cluster object.\n\nA Cache Cluster is a collection of one or more Cache Instances that subscribe to exactly the same topics. Cache Instances are grouped together in a Cache Cluster for the purpose of fault tolerance and load balancing. As published messages are received, the message broker message bus sends these live data messages to the Cache Instances in the Cache Cluster. This enables client cache requests to be served by any of Cache Instances in the Cache Cluster.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nclusterName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Cluster object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "patch": { + "description": "Update a Cache Cluster object. Any attribute missing from the request will be left unchanged.\n\nA Cache Cluster is a collection of one or more Cache Instances that subscribe to exactly the same topics. Cache Instances are grouped together in a Cache Cluster for the purpose of fault tolerance and load balancing. As published messages are received, the message broker message bus sends these live data messages to the Cache Instances in the Cache Cluster. This enables client cache requests to be served by any of Cache Instances in the Cache Cluster.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ncacheName|x|x|||||\nclusterName|x|x|||||\ndeliverToOneOverrideEnabled|||||x||\nmsgVpnName|x|x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThresholdByPercent|clearPercent|setPercent|\nEventThresholdByPercent|setPercent|clearPercent|\nEventThresholdByValue|clearValue|setValue|\nEventThresholdByValue|setValue|clearValue|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "updateMsgVpnDistributedCacheCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The Cache Cluster object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheCluster" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Cluster object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "put": { + "description": "Replace a Cache Cluster object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Cache Cluster is a collection of one or more Cache Instances that subscribe to exactly the same topics. Cache Instances are grouped together in a Cache Cluster for the purpose of fault tolerance and load balancing. As published messages are received, the message broker message bus sends these live data messages to the Cache Instances in the Cache Cluster. This enables client cache requests to be served by any of Cache Instances in the Cache Cluster.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ncacheName|x||x|||||\nclusterName|x||x|||||\ndeliverToOneOverrideEnabled||||||x||\nmsgVpnName|x||x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThresholdByPercent|clearPercent|setPercent|\nEventThresholdByPercent|setPercent|clearPercent|\nEventThresholdByValue|clearValue|setValue|\nEventThresholdByValue|setValue|clearValue|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "replaceMsgVpnDistributedCacheCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The Cache Cluster object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheCluster" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Cluster object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/globalCachingHomeClusters": { + "get": { + "description": "Get a list of Home Cache Cluster objects.\n\nA Home Cache Cluster is a Cache Cluster that is the \"definitive\" Cache Cluster for a given topic in the context of the Global Caching feature.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nclusterName|x|||\nhomeClusterName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterGlobalCachingHomeClusters", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Home Cache Cluster objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClustersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Home Cache Cluster objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "post": { + "description": "Create a Home Cache Cluster object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Home Cache Cluster is a Cache Cluster that is the \"definitive\" Cache Cluster for a given topic in the context of the Global Caching feature.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncacheName|x||x|||\nclusterName|x||x|||\nhomeClusterName|x|x||||\nmsgVpnName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createMsgVpnDistributedCacheClusterGlobalCachingHomeCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The Home Cache Cluster object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeCluster" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Home Cache Cluster object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Home Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/globalCachingHomeClusters/{homeClusterName}": { + "delete": { + "description": "Delete a Home Cache Cluster object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Home Cache Cluster is a Cache Cluster that is the \"definitive\" Cache Cluster for a given topic in the context of the Global Caching feature.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteMsgVpnDistributedCacheClusterGlobalCachingHomeCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Home Cache Cluster.", + "in": "path", + "name": "homeClusterName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Home Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "get": { + "description": "Get a Home Cache Cluster object.\n\nA Home Cache Cluster is a Cache Cluster that is the \"definitive\" Cache Cluster for a given topic in the context of the Global Caching feature.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nclusterName|x|||\nhomeClusterName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterGlobalCachingHomeCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Home Cache Cluster.", + "in": "path", + "name": "homeClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Home Cache Cluster object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Home Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/globalCachingHomeClusters/{homeClusterName}/topicPrefixes": { + "get": { + "description": "Get a list of Topic Prefix objects.\n\nA Topic Prefix is a prefix for a global topic that is available from the containing Home Cache Cluster.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nclusterName|x|||\nhomeClusterName|x|||\nmsgVpnName|x|||\ntopicPrefix|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixes", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Home Cache Cluster.", + "in": "path", + "name": "homeClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Prefix objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Prefix objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "post": { + "description": "Create a Topic Prefix object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Topic Prefix is a prefix for a global topic that is available from the containing Home Cache Cluster.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncacheName|x||x|||\nclusterName|x||x|||\nhomeClusterName|x||x|||\nmsgVpnName|x||x|||\ntopicPrefix|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createMsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Home Cache Cluster.", + "in": "path", + "name": "homeClusterName", + "required": true, + "type": "string" + }, + { + "description": "The Topic Prefix object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Prefix object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Topic Prefix object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/globalCachingHomeClusters/{homeClusterName}/topicPrefixes/{topicPrefix}": { + "delete": { + "description": "Delete a Topic Prefix object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Topic Prefix is a prefix for a global topic that is available from the containing Home Cache Cluster.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteMsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Home Cache Cluster.", + "in": "path", + "name": "homeClusterName", + "required": true, + "type": "string" + }, + { + "description": "A topic prefix for global topics available from the remote Home Cache Cluster. A wildcard (/>) is implied at the end of the prefix.", + "in": "path", + "name": "topicPrefix", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Topic Prefix object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "get": { + "description": "Get a Topic Prefix object.\n\nA Topic Prefix is a prefix for a global topic that is available from the containing Home Cache Cluster.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nclusterName|x|||\nhomeClusterName|x|||\nmsgVpnName|x|||\ntopicPrefix|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Home Cache Cluster.", + "in": "path", + "name": "homeClusterName", + "required": true, + "type": "string" + }, + { + "description": "A topic prefix for global topics available from the remote Home Cache Cluster. A wildcard (/>) is implied at the end of the prefix.", + "in": "path", + "name": "topicPrefix", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Prefix object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Prefix object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances": { + "get": { + "description": "Get a list of Cache Instance objects.\n\nA Cache Instance is a single Cache process that belongs to a single Cache Cluster. A Cache Instance object provisioned on the broker is used to disseminate configuration information to the Cache process. Cache Instances listen for and cache live data messages that match the topic subscriptions configured for their parent Cache Cluster.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nclusterName|x|||\ninstanceName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterInstances", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Cache Instance objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstancesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Cache Instance objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "post": { + "description": "Create a Cache Instance object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Cache Instance is a single Cache process that belongs to a single Cache Cluster. A Cache Instance object provisioned on the broker is used to disseminate configuration information to the Cache process. Cache Instances listen for and cache live data messages that match the topic subscriptions configured for their parent Cache Cluster.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncacheName|x||x|||\nclusterName|x||x|||\ninstanceName|x|x||||\nmsgVpnName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createMsgVpnDistributedCacheClusterInstance", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The Cache Instance object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstance" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Instance object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Cache Instance object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}": { + "delete": { + "description": "Delete a Cache Instance object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Cache Instance is a single Cache process that belongs to a single Cache Cluster. A Cache Instance object provisioned on the broker is used to disseminate configuration information to the Cache process. Cache Instances listen for and cache live data messages that match the topic subscriptions configured for their parent Cache Cluster.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteMsgVpnDistributedCacheClusterInstance", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Cache Instance object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "get": { + "description": "Get a Cache Instance object.\n\nA Cache Instance is a single Cache process that belongs to a single Cache Cluster. A Cache Instance object provisioned on the broker is used to disseminate configuration information to the Cache process. Cache Instances listen for and cache live data messages that match the topic subscriptions configured for their parent Cache Cluster.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nclusterName|x|||\ninstanceName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterInstance", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Instance object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Cache Instance object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "patch": { + "description": "Update a Cache Instance object. Any attribute missing from the request will be left unchanged.\n\nA Cache Instance is a single Cache process that belongs to a single Cache Cluster. A Cache Instance object provisioned on the broker is used to disseminate configuration information to the Cache process. Cache Instances listen for and cache live data messages that match the topic subscriptions configured for their parent Cache Cluster.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ncacheName|x|x|||||\nclusterName|x|x|||||\ninstanceName|x|x|||||\nmsgVpnName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "updateMsgVpnDistributedCacheClusterInstance", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The Cache Instance object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstance" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Instance object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Cache Instance object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "put": { + "description": "Replace a Cache Instance object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Cache Instance is a single Cache process that belongs to a single Cache Cluster. A Cache Instance object provisioned on the broker is used to disseminate configuration information to the Cache process. Cache Instances listen for and cache live data messages that match the topic subscriptions configured for their parent Cache Cluster.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ncacheName|x||x|||||\nclusterName|x||x|||||\ninstanceName|x||x|||||\nmsgVpnName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "replaceMsgVpnDistributedCacheClusterInstance", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The Cache Instance object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstance" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Instance object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Cache Instance object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/topics": { + "get": { + "description": "Get a list of Topic objects.\n\nThe Cache Instances that belong to the containing Cache Cluster will cache any messages published to topics that match a Topic Subscription.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nclusterName|x|||\nmsgVpnName|x|||\ntopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterTopics", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "post": { + "description": "Create a Topic object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe Cache Instances that belong to the containing Cache Cluster will cache any messages published to topics that match a Topic Subscription.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncacheName|x||x|||\nclusterName|x||x|||\nmsgVpnName|x||x|||\ntopic|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createMsgVpnDistributedCacheClusterTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The Topic object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopic" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Topic object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/topics/{topic}": { + "delete": { + "description": "Delete a Topic object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe Cache Instances that belong to the containing Cache Cluster will cache any messages published to topics that match a Topic Subscription.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteMsgVpnDistributedCacheClusterTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The value of the Topic in the form a/b/c.", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Topic object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + }, + "get": { + "description": "Get a Topic object.\n\nThe Cache Instances that belong to the containing Cache Cluster will cache any messages published to topics that match a Topic Subscription.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nclusterName|x|||\nmsgVpnName|x|||\ntopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The value of the Topic in the form a/b/c.", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/dmrBridges": { + "get": { + "description": "Get a list of DMR Bridge objects.\n\nA DMR Bridge is required to establish a data channel over a corresponding external link to the remote node for a given Message VPN. Each DMR Bridge identifies which external link the Message VPN should use, and what the name of the equivalent Message VPN at the remote node is.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nremoteNodeName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDmrBridges", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of DMR Bridge objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDmrBridgesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of DMR Bridge objects.", + "tags": [ + "all", + "msgVpn", + "dmrBridge" + ] + }, + "post": { + "description": "Create a DMR Bridge object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA DMR Bridge is required to establish a data channel over a corresponding external link to the remote node for a given Message VPN. Each DMR Bridge identifies which external link the Message VPN should use, and what the name of the equivalent Message VPN at the remote node is.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nremoteNodeName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createMsgVpnDmrBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The DMR Bridge object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDmrBridge" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The DMR Bridge object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDmrBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a DMR Bridge object.", + "tags": [ + "all", + "msgVpn", + "dmrBridge" + ] + } + }, + "/msgVpns/{msgVpnName}/dmrBridges/{remoteNodeName}": { + "delete": { + "description": "Delete a DMR Bridge object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA DMR Bridge is required to establish a data channel over a corresponding external link to the remote node for a given Message VPN. Each DMR Bridge identifies which external link the Message VPN should use, and what the name of the equivalent Message VPN at the remote node is.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteMsgVpnDmrBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the DMR Bridge.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a DMR Bridge object.", + "tags": [ + "all", + "msgVpn", + "dmrBridge" + ] + }, + "get": { + "description": "Get a DMR Bridge object.\n\nA DMR Bridge is required to establish a data channel over a corresponding external link to the remote node for a given Message VPN. Each DMR Bridge identifies which external link the Message VPN should use, and what the name of the equivalent Message VPN at the remote node is.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nremoteNodeName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDmrBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the DMR Bridge.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The DMR Bridge object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDmrBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a DMR Bridge object.", + "tags": [ + "all", + "msgVpn", + "dmrBridge" + ] + }, + "patch": { + "description": "Update a DMR Bridge object. Any attribute missing from the request will be left unchanged.\n\nA DMR Bridge is required to establish a data channel over a corresponding external link to the remote node for a given Message VPN. Each DMR Bridge identifies which external link the Message VPN should use, and what the name of the equivalent Message VPN at the remote node is.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\nremoteNodeName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "updateMsgVpnDmrBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the DMR Bridge.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The DMR Bridge object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDmrBridge" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The DMR Bridge object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDmrBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a DMR Bridge object.", + "tags": [ + "all", + "msgVpn", + "dmrBridge" + ] + }, + "put": { + "description": "Replace a DMR Bridge object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA DMR Bridge is required to establish a data channel over a corresponding external link to the remote node for a given Message VPN. Each DMR Bridge identifies which external link the Message VPN should use, and what the name of the equivalent Message VPN at the remote node is.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\nremoteNodeName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "replaceMsgVpnDmrBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the DMR Bridge.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The DMR Bridge object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnDmrBridge" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The DMR Bridge object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDmrBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a DMR Bridge object.", + "tags": [ + "all", + "msgVpn", + "dmrBridge" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiConnectionFactories": { + "get": { + "description": "Get a list of JNDI Connection Factory objects.\n\nThe message broker provides an internal JNDI store for provisioned Connection Factory objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nconnectionFactoryName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "getMsgVpnJndiConnectionFactories", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of JNDI Connection Factory objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoriesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of JNDI Connection Factory objects.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "post": { + "description": "Create a JNDI Connection Factory object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe message broker provides an internal JNDI store for provisioned Connection Factory objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nconnectionFactoryName|x|x||||\nmsgVpnName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "createMsgVpnJndiConnectionFactory", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI Connection Factory object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactory" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Connection Factory object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a JNDI Connection Factory object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiConnectionFactories/{connectionFactoryName}": { + "delete": { + "description": "Delete a JNDI Connection Factory object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe message broker provides an internal JNDI store for provisioned Connection Factory objects that clients can access through JNDI lookups.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "deleteMsgVpnJndiConnectionFactory", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the JMS Connection Factory.", + "in": "path", + "name": "connectionFactoryName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a JNDI Connection Factory object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "get": { + "description": "Get a JNDI Connection Factory object.\n\nThe message broker provides an internal JNDI store for provisioned Connection Factory objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nconnectionFactoryName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "getMsgVpnJndiConnectionFactory", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the JMS Connection Factory.", + "in": "path", + "name": "connectionFactoryName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Connection Factory object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a JNDI Connection Factory object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "patch": { + "description": "Update a JNDI Connection Factory object. Any attribute missing from the request will be left unchanged.\n\nThe message broker provides an internal JNDI store for provisioned Connection Factory objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nconnectionFactoryName|x|x|||||\nmsgVpnName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "updateMsgVpnJndiConnectionFactory", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the JMS Connection Factory.", + "in": "path", + "name": "connectionFactoryName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI Connection Factory object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactory" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Connection Factory object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a JNDI Connection Factory object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "put": { + "description": "Replace a JNDI Connection Factory object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nThe message broker provides an internal JNDI store for provisioned Connection Factory objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nconnectionFactoryName|x||x|||||\nmsgVpnName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "replaceMsgVpnJndiConnectionFactory", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the JMS Connection Factory.", + "in": "path", + "name": "connectionFactoryName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI Connection Factory object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactory" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Connection Factory object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a JNDI Connection Factory object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiQueues": { + "get": { + "description": "Get a list of JNDI Queue objects.\n\nThe message broker provides an internal JNDI store for provisioned Queue objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nqueueName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "getMsgVpnJndiQueues", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of JNDI Queue objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiQueuesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of JNDI Queue objects.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "post": { + "description": "Create a JNDI Queue object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe message broker provides an internal JNDI store for provisioned Queue objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nqueueName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "createMsgVpnJndiQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI Queue object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnJndiQueue" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Queue object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a JNDI Queue object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiQueues/{queueName}": { + "delete": { + "description": "Delete a JNDI Queue object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe message broker provides an internal JNDI store for provisioned Queue objects that clients can access through JNDI lookups.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "deleteMsgVpnJndiQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI name of the JMS Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a JNDI Queue object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "get": { + "description": "Get a JNDI Queue object.\n\nThe message broker provides an internal JNDI store for provisioned Queue objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nqueueName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "getMsgVpnJndiQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI name of the JMS Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Queue object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a JNDI Queue object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "patch": { + "description": "Update a JNDI Queue object. Any attribute missing from the request will be left unchanged.\n\nThe message broker provides an internal JNDI store for provisioned Queue objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\nqueueName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "updateMsgVpnJndiQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI name of the JMS Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI Queue object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnJndiQueue" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Queue object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a JNDI Queue object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "put": { + "description": "Replace a JNDI Queue object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nThe message broker provides an internal JNDI store for provisioned Queue objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\nqueueName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "replaceMsgVpnJndiQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI name of the JMS Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI Queue object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnJndiQueue" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Queue object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a JNDI Queue object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiTopics": { + "get": { + "description": "Get a list of JNDI Topic objects.\n\nThe message broker provides an internal JNDI store for provisioned Topic objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\ntopicName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "getMsgVpnJndiTopics", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of JNDI Topic objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiTopicsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of JNDI Topic objects.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "post": { + "description": "Create a JNDI Topic object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe message broker provides an internal JNDI store for provisioned Topic objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\ntopicName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "createMsgVpnJndiTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI Topic object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnJndiTopic" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Topic object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a JNDI Topic object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiTopics/{topicName}": { + "delete": { + "description": "Delete a JNDI Topic object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe message broker provides an internal JNDI store for provisioned Topic objects that clients can access through JNDI lookups.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "deleteMsgVpnJndiTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI name of the JMS Topic.", + "in": "path", + "name": "topicName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a JNDI Topic object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "get": { + "description": "Get a JNDI Topic object.\n\nThe message broker provides an internal JNDI store for provisioned Topic objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\ntopicName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "getMsgVpnJndiTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI name of the JMS Topic.", + "in": "path", + "name": "topicName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Topic object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a JNDI Topic object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "patch": { + "description": "Update a JNDI Topic object. Any attribute missing from the request will be left unchanged.\n\nThe message broker provides an internal JNDI store for provisioned Topic objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\ntopicName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "updateMsgVpnJndiTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI name of the JMS Topic.", + "in": "path", + "name": "topicName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI Topic object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnJndiTopic" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Topic object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a JNDI Topic object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + }, + "put": { + "description": "Replace a JNDI Topic object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nThe message broker provides an internal JNDI store for provisioned Topic objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\ntopicName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.2.", + "operationId": "replaceMsgVpnJndiTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI name of the JMS Topic.", + "in": "path", + "name": "topicName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI Topic object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnJndiTopic" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Topic object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a JNDI Topic object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttRetainCaches": { + "get": { + "description": "Get a list of MQTT Retain Cache objects.\n\nUsing MQTT retained messages allows publishing MQTT clients to indicate that a message must be stored for later delivery to subscribing clients when those subscribing clients add subscriptions matching the retained message's topic. An MQTT Retain Cache processes all retained messages for a Message VPN.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnMqttRetainCaches", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of MQTT Retain Cache objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttRetainCachesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of MQTT Retain Cache objects.", + "tags": [ + "all", + "msgVpn", + "mqttRetainCache" + ] + }, + "post": { + "description": "Create an MQTT Retain Cache object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nUsing MQTT retained messages allows publishing MQTT clients to indicate that a message must be stored for later delivery to subscribing clients when those subscribing clients add subscriptions matching the retained message's topic. An MQTT Retain Cache processes all retained messages for a Message VPN.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ncacheName|x|x||||\nmsgVpnName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "createMsgVpnMqttRetainCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The MQTT Retain Cache object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnMqttRetainCache" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Retain Cache object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an MQTT Retain Cache object.", + "tags": [ + "all", + "msgVpn", + "mqttRetainCache" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttRetainCaches/{cacheName}": { + "delete": { + "description": "Delete an MQTT Retain Cache object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nUsing MQTT retained messages allows publishing MQTT clients to indicate that a message must be stored for later delivery to subscribing clients when those subscribing clients add subscriptions matching the retained message's topic. An MQTT Retain Cache processes all retained messages for a Message VPN.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "deleteMsgVpnMqttRetainCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the MQTT Retain Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an MQTT Retain Cache object.", + "tags": [ + "all", + "msgVpn", + "mqttRetainCache" + ] + }, + "get": { + "description": "Get an MQTT Retain Cache object.\n\nUsing MQTT retained messages allows publishing MQTT clients to indicate that a message must be stored for later delivery to subscribing clients when those subscribing clients add subscriptions matching the retained message's topic. An MQTT Retain Cache processes all retained messages for a Message VPN.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ncacheName|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnMqttRetainCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the MQTT Retain Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Retain Cache object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an MQTT Retain Cache object.", + "tags": [ + "all", + "msgVpn", + "mqttRetainCache" + ] + }, + "patch": { + "description": "Update an MQTT Retain Cache object. Any attribute missing from the request will be left unchanged.\n\nUsing MQTT retained messages allows publishing MQTT clients to indicate that a message must be stored for later delivery to subscribing clients when those subscribing clients add subscriptions matching the retained message's topic. An MQTT Retain Cache processes all retained messages for a Message VPN.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ncacheName|x|x|||||\nmsgVpnName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "updateMsgVpnMqttRetainCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the MQTT Retain Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The MQTT Retain Cache object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnMqttRetainCache" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Retain Cache object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update an MQTT Retain Cache object.", + "tags": [ + "all", + "msgVpn", + "mqttRetainCache" + ] + }, + "put": { + "description": "Replace an MQTT Retain Cache object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nUsing MQTT retained messages allows publishing MQTT clients to indicate that a message must be stored for later delivery to subscribing clients when those subscribing clients add subscriptions matching the retained message's topic. An MQTT Retain Cache processes all retained messages for a Message VPN.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ncacheName|x||x|||||\nmsgVpnName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "replaceMsgVpnMqttRetainCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the MQTT Retain Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The MQTT Retain Cache object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnMqttRetainCache" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Retain Cache object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace an MQTT Retain Cache object.", + "tags": [ + "all", + "msgVpn", + "mqttRetainCache" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions": { + "get": { + "description": "Get a list of MQTT Session objects.\n\nAn MQTT Session object is a virtual representation of an MQTT client connection. An MQTT session holds the state of an MQTT client (that is, it is used to contain a client's QoS 0 and QoS 1 subscription sets and any undelivered QoS 1 messages).\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmqttSessionClientId|x|||\nmqttSessionVirtualRouter|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "getMsgVpnMqttSessions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of MQTT Session objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of MQTT Session objects.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + }, + "post": { + "description": "Create an MQTT Session object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nAn MQTT Session object is a virtual representation of an MQTT client connection. An MQTT session holds the state of an MQTT client (that is, it is used to contain a client's QoS 0 and QoS 1 subscription sets and any undelivered QoS 1 messages).\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmqttSessionClientId|x|x||||\nmqttSessionVirtualRouter|x|x||||\nmsgVpnName|x||x|||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "createMsgVpnMqttSession", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The MQTT Session object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnMqttSession" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Session object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an MQTT Session object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions/{mqttSessionClientId},{mqttSessionVirtualRouter}": { + "delete": { + "description": "Delete an MQTT Session object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nAn MQTT Session object is a virtual representation of an MQTT client connection. An MQTT session holds the state of an MQTT client (that is, it is used to contain a client's QoS 0 and QoS 1 subscription sets and any undelivered QoS 1 messages).\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "deleteMsgVpnMqttSession", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an MQTT Session object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + }, + "get": { + "description": "Get an MQTT Session object.\n\nAn MQTT Session object is a virtual representation of an MQTT client connection. An MQTT session holds the state of an MQTT client (that is, it is used to contain a client's QoS 0 and QoS 1 subscription sets and any undelivered QoS 1 messages).\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmqttSessionClientId|x|||\nmqttSessionVirtualRouter|x|||\nmsgVpnName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "getMsgVpnMqttSession", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Session object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an MQTT Session object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + }, + "patch": { + "description": "Update an MQTT Session object. Any attribute missing from the request will be left unchanged.\n\nAn MQTT Session object is a virtual representation of an MQTT client connection. An MQTT session holds the state of an MQTT client (that is, it is used to contain a client's QoS 0 and QoS 1 subscription sets and any undelivered QoS 1 messages).\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmqttSessionClientId|x|x|||||\nmqttSessionVirtualRouter|x|x|||||\nmsgVpnName|x|x|||||\nowner|||||x||\nqueueRejectMsgToSenderOnDiscardBehavior|||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "updateMsgVpnMqttSession", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The MQTT Session object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnMqttSession" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Session object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update an MQTT Session object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + }, + "put": { + "description": "Replace an MQTT Session object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nAn MQTT Session object is a virtual representation of an MQTT client connection. An MQTT session holds the state of an MQTT client (that is, it is used to contain a client's QoS 0 and QoS 1 subscription sets and any undelivered QoS 1 messages).\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmqttSessionClientId|x||x|||||\nmqttSessionVirtualRouter|x||x|||||\nmsgVpnName|x||x|||||\nowner||||||x||\nqueueRejectMsgToSenderOnDiscardBehavior||||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "replaceMsgVpnMqttSession", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The MQTT Session object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnMqttSession" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Session object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace an MQTT Session object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions/{mqttSessionClientId},{mqttSessionVirtualRouter}/subscriptions": { + "get": { + "description": "Get a list of Subscription objects.\n\nAn MQTT session contains a client's QoS 0 and QoS 1 subscription sets. On creation, a subscription defaults to QoS 0.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmqttSessionClientId|x|||\nmqttSessionVirtualRouter|x|||\nmsgVpnName|x|||\nsubscriptionTopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "getMsgVpnMqttSessionSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Subscription objects.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + }, + "post": { + "description": "Create a Subscription object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nAn MQTT session contains a client's QoS 0 and QoS 1 subscription sets. On creation, a subscription defaults to QoS 0.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmqttSessionClientId|x||x|||\nmqttSessionVirtualRouter|x||x|||\nmsgVpnName|x||x|||\nsubscriptionTopic|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "createMsgVpnMqttSessionSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The Subscription object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscription" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscription object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Subscription object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions/{mqttSessionClientId},{mqttSessionVirtualRouter}/subscriptions/{subscriptionTopic}": { + "delete": { + "description": "Delete a Subscription object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nAn MQTT session contains a client's QoS 0 and QoS 1 subscription sets. On creation, a subscription defaults to QoS 0.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "deleteMsgVpnMqttSessionSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The MQTT subscription topic.", + "in": "path", + "name": "subscriptionTopic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Subscription object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + }, + "get": { + "description": "Get a Subscription object.\n\nAn MQTT session contains a client's QoS 0 and QoS 1 subscription sets. On creation, a subscription defaults to QoS 0.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmqttSessionClientId|x|||\nmqttSessionVirtualRouter|x|||\nmsgVpnName|x|||\nsubscriptionTopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "getMsgVpnMqttSessionSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The MQTT subscription topic.", + "in": "path", + "name": "subscriptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Subscription object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + }, + "patch": { + "description": "Update a Subscription object. Any attribute missing from the request will be left unchanged.\n\nAn MQTT session contains a client's QoS 0 and QoS 1 subscription sets. On creation, a subscription defaults to QoS 0.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmqttSessionClientId|x|x|||||\nmqttSessionVirtualRouter|x|x|||||\nmsgVpnName|x|x|||||\nsubscriptionTopic|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "updateMsgVpnMqttSessionSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The MQTT subscription topic.", + "in": "path", + "name": "subscriptionTopic", + "required": true, + "type": "string" + }, + { + "description": "The Subscription object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscription" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscription object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Subscription object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + }, + "put": { + "description": "Replace a Subscription object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nAn MQTT session contains a client's QoS 0 and QoS 1 subscription sets. On creation, a subscription defaults to QoS 0.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmqttSessionClientId|x||x|||||\nmqttSessionVirtualRouter|x||x|||||\nmsgVpnName|x||x|||||\nsubscriptionTopic|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "replaceMsgVpnMqttSessionSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The MQTT subscription topic.", + "in": "path", + "name": "subscriptionTopic", + "required": true, + "type": "string" + }, + { + "description": "The Subscription object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscription" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscription object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Subscription object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/queueTemplates": { + "get": { + "description": "Get a list of Queue Template objects.\n\nA Queue Template provides a mechanism for specifying the initial state for client created queues.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nqueueTemplateName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnQueueTemplates", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue Template objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueTemplatesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue Template objects.", + "tags": [ + "all", + "msgVpn", + "queueTemplate" + ] + }, + "post": { + "description": "Create a Queue Template object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Queue Template provides a mechanism for specifying the initial state for client created queues.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nqueueTemplateName|x|x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "createMsgVpnQueueTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Queue Template object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueTemplate" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Template object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueTemplateResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Queue Template object.", + "tags": [ + "all", + "msgVpn", + "queueTemplate" + ] + } + }, + "/msgVpns/{msgVpnName}/queueTemplates/{queueTemplateName}": { + "delete": { + "description": "Delete a Queue Template object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Queue Template provides a mechanism for specifying the initial state for client created queues.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "deleteMsgVpnQueueTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue Template.", + "in": "path", + "name": "queueTemplateName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Queue Template object.", + "tags": [ + "all", + "msgVpn", + "queueTemplate" + ] + }, + "get": { + "description": "Get a Queue Template object.\n\nA Queue Template provides a mechanism for specifying the initial state for client created queues.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nqueueTemplateName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnQueueTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue Template.", + "in": "path", + "name": "queueTemplateName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Template object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueTemplateResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue Template object.", + "tags": [ + "all", + "msgVpn", + "queueTemplate" + ] + }, + "patch": { + "description": "Update a Queue Template object. Any attribute missing from the request will be left unchanged.\n\nA Queue Template provides a mechanism for specifying the initial state for client created queues.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\nqueueTemplateName|x|x|||||\nrejectMsgToSenderOnDiscardBehavior|||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "updateMsgVpnQueueTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue Template.", + "in": "path", + "name": "queueTemplateName", + "required": true, + "type": "string" + }, + { + "description": "The Queue Template object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueTemplate" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Template object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueTemplateResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Queue Template object.", + "tags": [ + "all", + "msgVpn", + "queueTemplate" + ] + }, + "put": { + "description": "Replace a Queue Template object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Queue Template provides a mechanism for specifying the initial state for client created queues.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\nqueueTemplateName|x||x|||||\nrejectMsgToSenderOnDiscardBehavior||||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "replaceMsgVpnQueueTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue Template.", + "in": "path", + "name": "queueTemplateName", + "required": true, + "type": "string" + }, + { + "description": "The Queue Template object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueTemplate" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Template object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueTemplateResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Queue Template object.", + "tags": [ + "all", + "msgVpn", + "queueTemplate" + ] + } + }, + "/msgVpns/{msgVpnName}/queues": { + "get": { + "description": "Get a list of Queue objects.\n\nA Queue acts as both a destination that clients can publish messages to, and as an endpoint that clients can bind consumers to and consume messages from.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nqueueName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnQueues", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueuesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue objects.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + }, + "post": { + "description": "Create a Queue object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Queue acts as both a destination that clients can publish messages to, and as an endpoint that clients can bind consumers to and consume messages from.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nqueueName|x|x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Queue object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueue" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Queue object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}": { + "delete": { + "description": "Delete a Queue object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Queue acts as both a destination that clients can publish messages to, and as an endpoint that clients can bind consumers to and consume messages from.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Queue object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + }, + "get": { + "description": "Get a Queue object.\n\nA Queue acts as both a destination that clients can publish messages to, and as an endpoint that clients can bind consumers to and consume messages from.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nqueueName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + }, + "patch": { + "description": "Update a Queue object. Any attribute missing from the request will be left unchanged.\n\nA Queue acts as both a destination that clients can publish messages to, and as an endpoint that clients can bind consumers to and consume messages from.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\naccessType|||||x||\nmsgVpnName|x|x|||||\nowner|||||x||\npermission|||||x||\nqueueName|x|x|||||\nredeliveryDelayEnabled|||||x||\nredeliveryDelayInitialInterval|||||x||\nredeliveryDelayMaxInterval|||||x||\nredeliveryDelayMultiplier|||||x||\nrejectMsgToSenderOnDiscardBehavior|||||x||\nrespectMsgPriorityEnabled|||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpnQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The Queue object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueue" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Queue object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + }, + "put": { + "description": "Replace a Queue object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Queue acts as both a destination that clients can publish messages to, and as an endpoint that clients can bind consumers to and consume messages from.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\naccessType||||||x||\nmsgVpnName|x||x|||||\nowner||||||x||\npermission||||||x||\nqueueName|x||x|||||\nredeliveryDelayEnabled||||||x||\nredeliveryDelayInitialInterval||||||x||\nredeliveryDelayMaxInterval||||||x||\nredeliveryDelayMultiplier||||||x||\nrejectMsgToSenderOnDiscardBehavior||||||x||\nrespectMsgPriorityEnabled||||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpnQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The Queue object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueue" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Queue object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/subscriptions": { + "get": { + "description": "Get a list of Queue Subscription objects.\n\nOne or more Queue Subscriptions can be added to a durable queue so that Guaranteed messages published to matching topics are also delivered to and spooled by the queue.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nqueueName|x|||\nsubscriptionTopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnQueueSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue Subscription objects.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + }, + "post": { + "description": "Create a Queue Subscription object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nOne or more Queue Subscriptions can be added to a durable queue so that Guaranteed messages published to matching topics are also delivered to and spooled by the queue.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nqueueName|x||x|||\nsubscriptionTopic|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnQueueSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The Queue Subscription object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnQueueSubscription" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Subscription object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Queue Subscription object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/subscriptions/{subscriptionTopic}": { + "delete": { + "description": "Delete a Queue Subscription object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nOne or more Queue Subscriptions can be added to a durable queue so that Guaranteed messages published to matching topics are also delivered to and spooled by the queue.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnQueueSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Subscription.", + "in": "path", + "name": "subscriptionTopic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Queue Subscription object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + }, + "get": { + "description": "Get a Queue Subscription object.\n\nOne or more Queue Subscriptions can be added to a durable queue so that Guaranteed messages published to matching topics are also delivered to and spooled by the queue.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nqueueName|x|||\nsubscriptionTopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnQueueSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Subscription.", + "in": "path", + "name": "subscriptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue Subscription object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs": { + "get": { + "description": "Get a list of Replay Log objects.\n\nWhen the Message Replay feature is enabled, message brokers store persistent messages in a Replay Log. These messages are kept until the log is full, after which the oldest messages are removed to free up space for new messages.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nreplayLogName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.10.", + "operationId": "getMsgVpnReplayLogs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Replay Log objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Replay Log objects.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + }, + "post": { + "description": "Create a Replay Log object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nWhen the Message Replay feature is enabled, message brokers store persistent messages in a Replay Log. These messages are kept until the log is full, after which the oldest messages are removed to free up space for new messages.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nreplayLogName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.10.", + "operationId": "createMsgVpnReplayLog", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Replay Log object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnReplayLog" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replay Log object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Replay Log object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs/{replayLogName}": { + "delete": { + "description": "Delete a Replay Log object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nWhen the Message Replay feature is enabled, message brokers store persistent messages in a Replay Log. These messages are kept until the log is full, after which the oldest messages are removed to free up space for new messages.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.10.", + "operationId": "deleteMsgVpnReplayLog", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Replay Log object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + }, + "get": { + "description": "Get a Replay Log object.\n\nWhen the Message Replay feature is enabled, message brokers store persistent messages in a Replay Log. These messages are kept until the log is full, after which the oldest messages are removed to free up space for new messages.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nreplayLogName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.10.", + "operationId": "getMsgVpnReplayLog", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replay Log object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Replay Log object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + }, + "patch": { + "description": "Update a Replay Log object. Any attribute missing from the request will be left unchanged.\n\nWhen the Message Replay feature is enabled, message brokers store persistent messages in a Replay Log. These messages are kept until the log is full, after which the oldest messages are removed to free up space for new messages.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\nreplayLogName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.10.", + "operationId": "updateMsgVpnReplayLog", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "description": "The Replay Log object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnReplayLog" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replay Log object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Replay Log object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + }, + "put": { + "description": "Replace a Replay Log object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nWhen the Message Replay feature is enabled, message brokers store persistent messages in a Replay Log. These messages are kept until the log is full, after which the oldest messages are removed to free up space for new messages.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\nreplayLogName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.10.", + "operationId": "replaceMsgVpnReplayLog", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "description": "The Replay Log object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnReplayLog" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replay Log object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Replay Log object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs/{replayLogName}/topicFilterSubscriptions": { + "get": { + "description": "Get a list of Topic Filter Subscription objects.\n\nOne or more Subscriptions can be added to a replay-log so that only guaranteed messages published to matching topics are stored in the Replay Log.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nreplayLogName|x|||\ntopicFilterSubscription|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnReplayLogTopicFilterSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Filter Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Filter Subscription objects.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + }, + "post": { + "description": "Create a Topic Filter Subscription object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nOne or more Subscriptions can be added to a replay-log so that only guaranteed messages published to matching topics are stored in the Replay Log.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nreplayLogName|x||x|||\ntopicFilterSubscription|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "createMsgVpnReplayLogTopicFilterSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "description": "The Topic Filter Subscription object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscription" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Filter Subscription object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Topic Filter Subscription object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs/{replayLogName}/topicFilterSubscriptions/{topicFilterSubscription}": { + "delete": { + "description": "Delete a Topic Filter Subscription object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nOne or more Subscriptions can be added to a replay-log so that only guaranteed messages published to matching topics are stored in the Replay Log.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "deleteMsgVpnReplayLogTopicFilterSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Subscription.", + "in": "path", + "name": "topicFilterSubscription", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Topic Filter Subscription object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + }, + "get": { + "description": "Get a Topic Filter Subscription object.\n\nOne or more Subscriptions can be added to a replay-log so that only guaranteed messages published to matching topics are stored in the Replay Log.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nreplayLogName|x|||\ntopicFilterSubscription|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnReplayLogTopicFilterSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Subscription.", + "in": "path", + "name": "topicFilterSubscription", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Filter Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Filter Subscription object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replicatedTopics": { + "get": { + "description": "Get a list of Replicated Topic objects.\n\nTo indicate which messages should be replicated between the active and standby site, a Replicated Topic subscription must be configured on a Message VPN. If a published message matches both a replicated topic and an endpoint on the active site, then the message is replicated to the standby site.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nreplicatedTopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "getMsgVpnReplicatedTopics", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Replicated Topic objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplicatedTopicsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Replicated Topic objects.", + "tags": [ + "all", + "msgVpn", + "replicatedTopic" + ] + }, + "post": { + "description": "Create a Replicated Topic object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nTo indicate which messages should be replicated between the active and standby site, a Replicated Topic subscription must be configured on a Message VPN. If a published message matches both a replicated topic and an endpoint on the active site, then the message is replicated to the standby site.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nreplicatedTopic|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "createMsgVpnReplicatedTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Replicated Topic object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnReplicatedTopic" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replicated Topic object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplicatedTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Replicated Topic object.", + "tags": [ + "all", + "msgVpn", + "replicatedTopic" + ] + } + }, + "/msgVpns/{msgVpnName}/replicatedTopics/{replicatedTopic}": { + "delete": { + "description": "Delete a Replicated Topic object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nTo indicate which messages should be replicated between the active and standby site, a Replicated Topic subscription must be configured on a Message VPN. If a published message matches both a replicated topic and an endpoint on the active site, then the message is replicated to the standby site.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "deleteMsgVpnReplicatedTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The topic for applying replication. Published messages matching this topic will be replicated to the standby site.", + "in": "path", + "name": "replicatedTopic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Replicated Topic object.", + "tags": [ + "all", + "msgVpn", + "replicatedTopic" + ] + }, + "get": { + "description": "Get a Replicated Topic object.\n\nTo indicate which messages should be replicated between the active and standby site, a Replicated Topic subscription must be configured on a Message VPN. If a published message matches both a replicated topic and an endpoint on the active site, then the message is replicated to the standby site.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nreplicatedTopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "getMsgVpnReplicatedTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The topic for applying replication. Published messages matching this topic will be replicated to the standby site.", + "in": "path", + "name": "replicatedTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replicated Topic object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplicatedTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Replicated Topic object.", + "tags": [ + "all", + "msgVpn", + "replicatedTopic" + ] + }, + "patch": { + "description": "Update a Replicated Topic object. Any attribute missing from the request will be left unchanged.\n\nTo indicate which messages should be replicated between the active and standby site, a Replicated Topic subscription must be configured on a Message VPN. If a published message matches both a replicated topic and an endpoint on the active site, then the message is replicated to the standby site.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\nreplicatedTopic|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "updateMsgVpnReplicatedTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The topic for applying replication. Published messages matching this topic will be replicated to the standby site.", + "in": "path", + "name": "replicatedTopic", + "required": true, + "type": "string" + }, + { + "description": "The Replicated Topic object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnReplicatedTopic" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replicated Topic object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplicatedTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Replicated Topic object.", + "tags": [ + "all", + "msgVpn", + "replicatedTopic" + ] + }, + "put": { + "description": "Replace a Replicated Topic object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nTo indicate which messages should be replicated between the active and standby site, a Replicated Topic subscription must be configured on a Message VPN. If a published message matches both a replicated topic and an endpoint on the active site, then the message is replicated to the standby site.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\nreplicatedTopic|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "replaceMsgVpnReplicatedTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The topic for applying replication. Published messages matching this topic will be replicated to the standby site.", + "in": "path", + "name": "replicatedTopic", + "required": true, + "type": "string" + }, + { + "description": "The Replicated Topic object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnReplicatedTopic" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replicated Topic object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplicatedTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Replicated Topic object.", + "tags": [ + "all", + "msgVpn", + "replicatedTopic" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints": { + "get": { + "description": "Get a list of REST Delivery Point objects.\n\nA REST Delivery Point manages delivery of messages from queues to a named list of REST Consumers.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnRestDeliveryPoints", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of REST Delivery Point objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of REST Delivery Point objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "post": { + "description": "Create a REST Delivery Point object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA REST Delivery Point manages delivery of messages from queues to a named list of REST Consumers.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nrestDeliveryPointName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnRestDeliveryPoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The REST Delivery Point object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPoint" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Delivery Point object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a REST Delivery Point object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}": { + "delete": { + "description": "Delete a REST Delivery Point object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA REST Delivery Point manages delivery of messages from queues to a named list of REST Consumers.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnRestDeliveryPoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a REST Delivery Point object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "get": { + "description": "Get a REST Delivery Point object.\n\nA REST Delivery Point manages delivery of messages from queues to a named list of REST Consumers.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnRestDeliveryPoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Delivery Point object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a REST Delivery Point object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "patch": { + "description": "Update a REST Delivery Point object. Any attribute missing from the request will be left unchanged.\n\nA REST Delivery Point manages delivery of messages from queues to a named list of REST Consumers.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nclientProfileName|||||x||\nmsgVpnName|x|x|||||\nrestDeliveryPointName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpnRestDeliveryPoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The REST Delivery Point object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPoint" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Delivery Point object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a REST Delivery Point object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "put": { + "description": "Replace a REST Delivery Point object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA REST Delivery Point manages delivery of messages from queues to a named list of REST Consumers.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nclientProfileName||||||x||\nmsgVpnName|x||x|||||\nrestDeliveryPointName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpnRestDeliveryPoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The REST Delivery Point object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPoint" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Delivery Point object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a REST Delivery Point object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings": { + "get": { + "description": "Get a list of Queue Binding objects.\n\nA Queue Binding for a REST Delivery Point attracts messages to be delivered to REST consumers. If the queue does not exist it can be created subsequently, and once the queue is operational the broker performs the queue binding. Removing the queue binding does not delete the queue itself. Similarly, removing the queue does not remove the queue binding, which fails until the queue is recreated or the queue binding is deleted.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nqueueBindingName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnRestDeliveryPointQueueBindings", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue Binding objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue Binding objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "post": { + "description": "Create a Queue Binding object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Queue Binding for a REST Delivery Point attracts messages to be delivered to REST consumers. If the queue does not exist it can be created subsequently, and once the queue is operational the broker performs the queue binding. Removing the queue binding does not delete the queue itself. Similarly, removing the queue does not remove the queue binding, which fails until the queue is recreated or the queue binding is deleted.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nqueueBindingName|x|x||||\nrestDeliveryPointName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnRestDeliveryPointQueueBinding", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The Queue Binding object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBinding" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Binding object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Queue Binding object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings/{queueBindingName}": { + "delete": { + "description": "Delete a Queue Binding object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Queue Binding for a REST Delivery Point attracts messages to be delivered to REST consumers. If the queue does not exist it can be created subsequently, and once the queue is operational the broker performs the queue binding. Removing the queue binding does not delete the queue itself. Similarly, removing the queue does not remove the queue binding, which fails until the queue is recreated or the queue binding is deleted.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnRestDeliveryPointQueueBinding", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Queue Binding object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "get": { + "description": "Get a Queue Binding object.\n\nA Queue Binding for a REST Delivery Point attracts messages to be delivered to REST consumers. If the queue does not exist it can be created subsequently, and once the queue is operational the broker performs the queue binding. Removing the queue binding does not delete the queue itself. Similarly, removing the queue does not remove the queue binding, which fails until the queue is recreated or the queue binding is deleted.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nqueueBindingName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnRestDeliveryPointQueueBinding", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Binding object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue Binding object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "patch": { + "description": "Update a Queue Binding object. Any attribute missing from the request will be left unchanged.\n\nA Queue Binding for a REST Delivery Point attracts messages to be delivered to REST consumers. If the queue does not exist it can be created subsequently, and once the queue is operational the broker performs the queue binding. Removing the queue binding does not delete the queue itself. Similarly, removing the queue does not remove the queue binding, which fails until the queue is recreated or the queue binding is deleted.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\nqueueBindingName|x|x|||||\nrestDeliveryPointName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpnRestDeliveryPointQueueBinding", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The Queue Binding object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBinding" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Binding object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Queue Binding object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "put": { + "description": "Replace a Queue Binding object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Queue Binding for a REST Delivery Point attracts messages to be delivered to REST consumers. If the queue does not exist it can be created subsequently, and once the queue is operational the broker performs the queue binding. Removing the queue binding does not delete the queue itself. Similarly, removing the queue does not remove the queue binding, which fails until the queue is recreated or the queue binding is deleted.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\nqueueBindingName|x||x|||||\nrestDeliveryPointName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpnRestDeliveryPointQueueBinding", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The Queue Binding object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBinding" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Binding object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Queue Binding object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings/{queueBindingName}/protectedRequestHeaders": { + "get": { + "description": "Get a list of Protected Request Header objects.\n\nA protected request header to be added to the HTTP request. Unlike a non-protected request header, the header value cannot be displayed after it is set.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nheaderName|x|||\nheaderValue||x||x\nmsgVpnName|x|||\nqueueBindingName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.30.", + "operationId": "getMsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaders", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Protected Request Header objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeadersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Protected Request Header objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "post": { + "description": "Create a Protected Request Header object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA protected request header to be added to the HTTP request. Unlike a non-protected request header, the header value cannot be displayed after it is set.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nheaderName|x|x||||\nheaderValue||||x||x\nmsgVpnName|x||x|||\nqueueBindingName|x||x|||\nrestDeliveryPointName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.30.", + "operationId": "createMsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The Protected Request Header object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Protected Request Header object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Protected Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings/{queueBindingName}/protectedRequestHeaders/{headerName}": { + "delete": { + "description": "Delete a Protected Request Header object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA protected request header to be added to the HTTP request. Unlike a non-protected request header, the header value cannot be displayed after it is set.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.30.", + "operationId": "deleteMsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The name of the protected HTTP request header.", + "in": "path", + "name": "headerName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Protected Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "get": { + "description": "Get a Protected Request Header object.\n\nA protected request header to be added to the HTTP request. Unlike a non-protected request header, the header value cannot be displayed after it is set.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nheaderName|x|||\nheaderValue||x||x\nmsgVpnName|x|||\nqueueBindingName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.30.", + "operationId": "getMsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The name of the protected HTTP request header.", + "in": "path", + "name": "headerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Protected Request Header object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Protected Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "patch": { + "description": "Update a Protected Request Header object. Any attribute missing from the request will be left unchanged.\n\nA protected request header to be added to the HTTP request. Unlike a non-protected request header, the header value cannot be displayed after it is set.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nheaderName|x|x|||||\nheaderValue|||x||||x\nmsgVpnName|x|x|||||\nqueueBindingName|x|x|||||\nrestDeliveryPointName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.30.", + "operationId": "updateMsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The name of the protected HTTP request header.", + "in": "path", + "name": "headerName", + "required": true, + "type": "string" + }, + { + "description": "The Protected Request Header object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Protected Request Header object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Protected Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "put": { + "description": "Replace a Protected Request Header object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA protected request header to be added to the HTTP request. Unlike a non-protected request header, the header value cannot be displayed after it is set.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nheaderName|x||x|||||\nheaderValue||||x||||x\nmsgVpnName|x||x|||||\nqueueBindingName|x||x|||||\nrestDeliveryPointName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.30.", + "operationId": "replaceMsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The name of the protected HTTP request header.", + "in": "path", + "name": "headerName", + "required": true, + "type": "string" + }, + { + "description": "The Protected Request Header object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Protected Request Header object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Protected Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings/{queueBindingName}/requestHeaders": { + "get": { + "description": "Get a list of Request Header objects.\n\nA request header to be added to the HTTP request.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nheaderName|x|||\nmsgVpnName|x|||\nqueueBindingName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.23.", + "operationId": "getMsgVpnRestDeliveryPointQueueBindingRequestHeaders", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Request Header objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeadersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Request Header objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "post": { + "description": "Create a Request Header object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA request header to be added to the HTTP request.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nheaderName|x|x||||\nmsgVpnName|x||x|||\nqueueBindingName|x||x|||\nrestDeliveryPointName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.23.", + "operationId": "createMsgVpnRestDeliveryPointQueueBindingRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The Request Header object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeader" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Request Header object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings/{queueBindingName}/requestHeaders/{headerName}": { + "delete": { + "description": "Delete a Request Header object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA request header to be added to the HTTP request.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.23.", + "operationId": "deleteMsgVpnRestDeliveryPointQueueBindingRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The name of the HTTP request header.", + "in": "path", + "name": "headerName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "get": { + "description": "Get a Request Header object.\n\nA request header to be added to the HTTP request.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nheaderName|x|||\nmsgVpnName|x|||\nqueueBindingName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.23.", + "operationId": "getMsgVpnRestDeliveryPointQueueBindingRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The name of the HTTP request header.", + "in": "path", + "name": "headerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Request Header object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "patch": { + "description": "Update a Request Header object. Any attribute missing from the request will be left unchanged.\n\nA request header to be added to the HTTP request.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nheaderName|x|x|||||\nmsgVpnName|x|x|||||\nqueueBindingName|x|x|||||\nrestDeliveryPointName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.23.", + "operationId": "updateMsgVpnRestDeliveryPointQueueBindingRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The name of the HTTP request header.", + "in": "path", + "name": "headerName", + "required": true, + "type": "string" + }, + { + "description": "The Request Header object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeader" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Request Header object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "put": { + "description": "Replace a Request Header object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA request header to be added to the HTTP request.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nheaderName|x||x|||||\nmsgVpnName|x||x|||||\nqueueBindingName|x||x|||||\nrestDeliveryPointName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.23.", + "operationId": "replaceMsgVpnRestDeliveryPointQueueBindingRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The name of the HTTP request header.", + "in": "path", + "name": "headerName", + "required": true, + "type": "string" + }, + { + "description": "The Request Header object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeader" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Request Header object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers": { + "get": { + "description": "Get a list of REST Consumer objects.\n\nREST Consumer objects establish HTTP connectivity to REST consumer applications who wish to receive messages from a broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthenticationAwsSecretAccessKey||x||x\nauthenticationClientCertContent||x||x\nauthenticationClientCertPassword||x||\nauthenticationHttpBasicPassword||x||x\nauthenticationHttpHeaderValue||x||x\nauthenticationOauthClientSecret||x||x\nauthenticationOauthJwtSecretKey||x||x\nmsgVpnName|x|||\nrestConsumerName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumers", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of REST Consumer objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of REST Consumer objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "post": { + "description": "Create a REST Consumer object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nREST Consumer objects establish HTTP connectivity to REST consumer applications who wish to receive messages from a broker.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nauthenticationAwsSecretAccessKey||||x||x\nauthenticationClientCertContent||||x||x\nauthenticationClientCertPassword||||x||\nauthenticationHttpBasicPassword||||x||x\nauthenticationHttpHeaderValue||||x||x\nauthenticationOauthClientSecret||||x||x\nauthenticationOauthJwtSecretKey||||x||x\nmsgVpnName|x||x|||\nrestConsumerName|x|x||||\nrestDeliveryPointName|x||x|||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnRestDeliveryPointRestConsumer|authenticationClientCertPassword|authenticationClientCertContent|\nMsgVpnRestDeliveryPointRestConsumer|authenticationHttpBasicPassword|authenticationHttpBasicUsername|\nMsgVpnRestDeliveryPointRestConsumer|authenticationHttpBasicUsername|authenticationHttpBasicPassword|\nMsgVpnRestDeliveryPointRestConsumer|remotePort|tlsEnabled|\nMsgVpnRestDeliveryPointRestConsumer|tlsEnabled|remotePort|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnRestDeliveryPointRestConsumer", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The REST Consumer object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumer" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Consumer object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a REST Consumer object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}": { + "delete": { + "description": "Delete a REST Consumer object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nREST Consumer objects establish HTTP connectivity to REST consumer applications who wish to receive messages from a broker.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnRestDeliveryPointRestConsumer", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a REST Consumer object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "get": { + "description": "Get a REST Consumer object.\n\nREST Consumer objects establish HTTP connectivity to REST consumer applications who wish to receive messages from a broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthenticationAwsSecretAccessKey||x||x\nauthenticationClientCertContent||x||x\nauthenticationClientCertPassword||x||\nauthenticationHttpBasicPassword||x||x\nauthenticationHttpHeaderValue||x||x\nauthenticationOauthClientSecret||x||x\nauthenticationOauthJwtSecretKey||x||x\nmsgVpnName|x|||\nrestConsumerName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumer", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Consumer object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a REST Consumer object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "patch": { + "description": "Update a REST Consumer object. Any attribute missing from the request will be left unchanged.\n\nREST Consumer objects establish HTTP connectivity to REST consumer applications who wish to receive messages from a broker.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nauthenticationAwsSecretAccessKey|||x||||x\nauthenticationClientCertContent|||x||x||x\nauthenticationClientCertPassword|||x||x||\nauthenticationHttpBasicPassword|||x||x||x\nauthenticationHttpBasicUsername|||||x||\nauthenticationHttpHeaderValue|||x||||x\nauthenticationOauthClientId|||||x||\nauthenticationOauthClientScope|||||x||\nauthenticationOauthClientSecret|||x||x||x\nauthenticationOauthClientTokenEndpoint|||||x||\nauthenticationOauthClientTokenExpiryDefault|||||x||\nauthenticationOauthJwtSecretKey|||x||x||x\nauthenticationOauthJwtTokenEndpoint|||||x||\nauthenticationOauthJwtTokenExpiryDefault|||||x||\nauthenticationScheme|||||x||\nmsgVpnName|x|x|||||\noutgoingConnectionCount|||||x||\nremoteHost|||||x||\nremotePort|||||x||\nrestConsumerName|x|x|||||\nrestDeliveryPointName|x|x|||||\ntlsCipherSuiteList|||||x||\ntlsEnabled|||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnRestDeliveryPointRestConsumer|authenticationClientCertPassword|authenticationClientCertContent|\nMsgVpnRestDeliveryPointRestConsumer|authenticationHttpBasicPassword|authenticationHttpBasicUsername|\nMsgVpnRestDeliveryPointRestConsumer|authenticationHttpBasicUsername|authenticationHttpBasicPassword|\nMsgVpnRestDeliveryPointRestConsumer|remotePort|tlsEnabled|\nMsgVpnRestDeliveryPointRestConsumer|tlsEnabled|remotePort|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "updateMsgVpnRestDeliveryPointRestConsumer", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The REST Consumer object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumer" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Consumer object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a REST Consumer object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "put": { + "description": "Replace a REST Consumer object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nREST Consumer objects establish HTTP connectivity to REST consumer applications who wish to receive messages from a broker.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nauthenticationAwsSecretAccessKey||||x||||x\nauthenticationClientCertContent||||x||x||x\nauthenticationClientCertPassword||||x||x||\nauthenticationHttpBasicPassword||||x||x||x\nauthenticationHttpBasicUsername||||||x||\nauthenticationHttpHeaderValue||||x||||x\nauthenticationOauthClientId||||||x||\nauthenticationOauthClientScope||||||x||\nauthenticationOauthClientSecret||||x||x||x\nauthenticationOauthClientTokenEndpoint||||||x||\nauthenticationOauthClientTokenExpiryDefault||||||x||\nauthenticationOauthJwtSecretKey||||x||x||x\nauthenticationOauthJwtTokenEndpoint||||||x||\nauthenticationOauthJwtTokenExpiryDefault||||||x||\nauthenticationScheme||||||x||\nmsgVpnName|x||x|||||\noutgoingConnectionCount||||||x||\nremoteHost||||||x||\nremotePort||||||x||\nrestConsumerName|x||x|||||\nrestDeliveryPointName|x||x|||||\ntlsCipherSuiteList||||||x||\ntlsEnabled||||||x||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nMsgVpnRestDeliveryPointRestConsumer|authenticationClientCertPassword|authenticationClientCertContent|\nMsgVpnRestDeliveryPointRestConsumer|authenticationHttpBasicPassword|authenticationHttpBasicUsername|\nMsgVpnRestDeliveryPointRestConsumer|authenticationHttpBasicUsername|authenticationHttpBasicPassword|\nMsgVpnRestDeliveryPointRestConsumer|remotePort|tlsEnabled|\nMsgVpnRestDeliveryPointRestConsumer|tlsEnabled|remotePort|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "replaceMsgVpnRestDeliveryPointRestConsumer", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The REST Consumer object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumer" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Consumer object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a REST Consumer object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}/oauthJwtClaims": { + "get": { + "description": "Get a list of Claim objects.\n\nA Claim is added to the JWT sent to the OAuth token request endpoint.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\noauthJwtClaimName|x|||\nrestConsumerName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumerOauthJwtClaims", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Claim objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Claim objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "post": { + "description": "Create a Claim object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Claim is added to the JWT sent to the OAuth token request endpoint.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\noauthJwtClaimName|x|x||||\noauthJwtClaimValue||x||||\nrestConsumerName|x||x|||\nrestDeliveryPointName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "createMsgVpnRestDeliveryPointRestConsumerOauthJwtClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The Claim object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaim" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Claim object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Claim object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}/oauthJwtClaims/{oauthJwtClaimName}": { + "delete": { + "description": "Delete a Claim object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Claim is added to the JWT sent to the OAuth token request endpoint.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "deleteMsgVpnRestDeliveryPointRestConsumerOauthJwtClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The name of the additional claim. Cannot be \"exp\", \"iat\", or \"jti\".", + "in": "path", + "name": "oauthJwtClaimName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Claim object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "get": { + "description": "Get a Claim object.\n\nA Claim is added to the JWT sent to the OAuth token request endpoint.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\noauthJwtClaimName|x|||\nrestConsumerName|x|||\nrestDeliveryPointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumerOauthJwtClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The name of the additional claim. Cannot be \"exp\", \"iat\", or \"jti\".", + "in": "path", + "name": "oauthJwtClaimName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Claim object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Claim object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}/tlsTrustedCommonNames": { + "get": { + "deprecated": true, + "description": "Get a list of Trusted Common Name objects.\n\nThe Trusted Common Names for the REST Consumer are used by encrypted transports to verify the name in the certificate presented by the remote REST consumer. They must include the common name of the remote REST consumer's server certificate.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|\nrestConsumerName|x||x|\nrestDeliveryPointName|x||x|\ntlsTrustedCommonName|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since (will be deprecated in next SEMP version). Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNames", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Trusted Common Name objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Trusted Common Name objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "post": { + "deprecated": true, + "description": "Create a Trusted Common Name object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe Trusted Common Names for the REST Consumer are used by encrypted transports to verify the name in the certificate presented by the remote REST consumer. They must include the common name of the remote REST consumer's server certificate.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x||x|\nrestConsumerName|x||x||x|\nrestDeliveryPointName|x||x||x|\ntlsTrustedCommonName|x|x|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since (will be deprecated in next SEMP version). Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "createMsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The Trusted Common Name object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trusted Common Name object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Trusted Common Name object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}/tlsTrustedCommonNames/{tlsTrustedCommonName}": { + "delete": { + "deprecated": true, + "description": "Delete a Trusted Common Name object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nThe Trusted Common Names for the REST Consumer are used by encrypted transports to verify the name in the certificate presented by the remote REST consumer. They must include the common name of the remote REST consumer's server certificate.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been deprecated since (will be deprecated in next SEMP version). Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "deleteMsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The expected trusted common name of the remote certificate.", + "in": "path", + "name": "tlsTrustedCommonName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Trusted Common Name object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + }, + "get": { + "deprecated": true, + "description": "Get a Trusted Common Name object.\n\nThe Trusted Common Names for the REST Consumer are used by encrypted transports to verify the name in the certificate presented by the remote REST consumer. They must include the common name of the remote REST consumer's server certificate.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|\nrestConsumerName|x||x|\nrestDeliveryPointName|x||x|\ntlsTrustedCommonName|x||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since (will be deprecated in next SEMP version). Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The expected trusted common name of the remote certificate.", + "in": "path", + "name": "tlsTrustedCommonName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trusted Common Name object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Trusted Common Name object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/sequencedTopics": { + "get": { + "description": "Get a list of Sequenced Topic objects.\n\nA Sequenced Topic is a topic subscription for which any matching messages received on the Message VPN are assigned a sequence number that is monotonically increased by a value of one per message.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nsequencedTopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnSequencedTopics", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Sequenced Topic objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnSequencedTopicsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Sequenced Topic objects.", + "tags": [ + "all", + "msgVpn" + ] + }, + "post": { + "description": "Create a Sequenced Topic object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Sequenced Topic is a topic subscription for which any matching messages received on the Message VPN are assigned a sequence number that is monotonically increased by a value of one per message.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nsequencedTopic|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "createMsgVpnSequencedTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Sequenced Topic object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnSequencedTopic" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Sequenced Topic object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnSequencedTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Sequenced Topic object.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}/sequencedTopics/{sequencedTopic}": { + "delete": { + "description": "Delete a Sequenced Topic object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Sequenced Topic is a topic subscription for which any matching messages received on the Message VPN are assigned a sequence number that is monotonically increased by a value of one per message.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "deleteMsgVpnSequencedTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "Topic for applying sequence numbers.", + "in": "path", + "name": "sequencedTopic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Sequenced Topic object.", + "tags": [ + "all", + "msgVpn" + ] + }, + "get": { + "description": "Get a Sequenced Topic object.\n\nA Sequenced Topic is a topic subscription for which any matching messages received on the Message VPN are assigned a sequence number that is monotonically increased by a value of one per message.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nsequencedTopic|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.0.", + "operationId": "getMsgVpnSequencedTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "Topic for applying sequence numbers.", + "in": "path", + "name": "sequencedTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Sequenced Topic object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnSequencedTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Sequenced Topic object.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles": { + "get": { + "description": "Get a list of Telemetry Profile objects.\n\nUsing the Telemetry Profile allows trace spans to be generated as messages are processed by the broker. The generated spans are stored persistently on the broker and may be consumed by the Solace receiver component of an OpenTelemetry Collector.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\ntelemetryProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfiles", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Telemetry Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Telemetry Profile objects.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "post": { + "description": "Create a Telemetry Profile object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nUsing the Telemetry Profile allows trace spans to be generated as messages are processed by the broker. The generated spans are stored persistently on the broker and may be consumed by the Solace receiver component of an OpenTelemetry Collector.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\ntelemetryProfileName|x|x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "createMsgVpnTelemetryProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Telemetry Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Telemetry Profile object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Telemetry Profile object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}": { + "delete": { + "description": "Delete a Telemetry Profile object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nUsing the Telemetry Profile allows trace spans to be generated as messages are processed by the broker. The generated spans are stored persistently on the broker and may be consumed by the Solace receiver component of an OpenTelemetry Collector.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "deleteMsgVpnTelemetryProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Telemetry Profile object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "get": { + "description": "Get a Telemetry Profile object.\n\nUsing the Telemetry Profile allows trace spans to be generated as messages are processed by the broker. The generated spans are stored persistently on the broker and may be consumed by the Solace receiver component of an OpenTelemetry Collector.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\ntelemetryProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Telemetry Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Telemetry Profile object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "patch": { + "description": "Update a Telemetry Profile object. Any attribute missing from the request will be left unchanged.\n\nUsing the Telemetry Profile allows trace spans to be generated as messages are processed by the broker. The generated spans are stored persistently on the broker and may be consumed by the Solace receiver component of an OpenTelemetry Collector.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\ntelemetryProfileName|x|x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "updateMsgVpnTelemetryProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Telemetry Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Telemetry Profile object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Telemetry Profile object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "put": { + "description": "Replace a Telemetry Profile object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nUsing the Telemetry Profile allows trace spans to be generated as messages are processed by the broker. The generated spans are stored persistently on the broker and may be consumed by the Solace receiver component of an OpenTelemetry Collector.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\ntelemetryProfileName|x||x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "replaceMsgVpnTelemetryProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Telemetry Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Telemetry Profile object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Telemetry Profile object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/receiverAclConnectExceptions": { + "get": { + "description": "Get a list of Receiver ACL Connect Exception objects.\n\nA Receiver ACL Connect Exception is an exception to the default action to take when a receiver connects to the broker. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nreceiverAclConnectExceptionAddress|x|||\ntelemetryProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileReceiverAclConnectExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Receiver ACL Connect Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Receiver ACL Connect Exception objects.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "post": { + "description": "Create a Receiver ACL Connect Exception object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Receiver ACL Connect Exception is an exception to the default action to take when a receiver connects to the broker. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nreceiverAclConnectExceptionAddress|x|x||||\ntelemetryProfileName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "createMsgVpnTelemetryProfileReceiverAclConnectException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Receiver ACL Connect Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Receiver ACL Connect Exception object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Receiver ACL Connect Exception object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/receiverAclConnectExceptions/{receiverAclConnectExceptionAddress}": { + "delete": { + "description": "Delete a Receiver ACL Connect Exception object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Receiver ACL Connect Exception is an exception to the default action to take when a receiver connects to the broker. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "deleteMsgVpnTelemetryProfileReceiverAclConnectException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "The IP address/netmask of the receiver connect exception in CIDR form.", + "in": "path", + "name": "receiverAclConnectExceptionAddress", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Receiver ACL Connect Exception object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "get": { + "description": "Get a Receiver ACL Connect Exception object.\n\nA Receiver ACL Connect Exception is an exception to the default action to take when a receiver connects to the broker. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nreceiverAclConnectExceptionAddress|x|||\ntelemetryProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileReceiverAclConnectException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "The IP address/netmask of the receiver connect exception in CIDR form.", + "in": "path", + "name": "receiverAclConnectExceptionAddress", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Receiver ACL Connect Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Receiver ACL Connect Exception object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/traceFilters": { + "get": { + "description": "Get a list of Trace Filter objects.\n\nA Trace Filter controls which messages received by the broker will be traced. If an incoming message matches an enabled tracing filter's subscription, the message will be traced as it passes through the broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\ntelemetryProfileName|x|||\ntraceFilterName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileTraceFilters", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Trace Filter objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFiltersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Trace Filter objects.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "post": { + "description": "Create a Trace Filter object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Trace Filter controls which messages received by the broker will be traced. If an incoming message matches an enabled tracing filter's subscription, the message will be traced as it passes through the broker.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\ntelemetryProfileName|x||x|||\ntraceFilterName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "createMsgVpnTelemetryProfileTraceFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Trace Filter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trace Filter object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Trace Filter object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/traceFilters/{traceFilterName}": { + "delete": { + "description": "Delete a Trace Filter object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Trace Filter controls which messages received by the broker will be traced. If an incoming message matches an enabled tracing filter's subscription, the message will be traced as it passes through the broker.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "deleteMsgVpnTelemetryProfileTraceFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Trace Filter object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "get": { + "description": "Get a Trace Filter object.\n\nA Trace Filter controls which messages received by the broker will be traced. If an incoming message matches an enabled tracing filter's subscription, the message will be traced as it passes through the broker.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\ntelemetryProfileName|x|||\ntraceFilterName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileTraceFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trace Filter object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Trace Filter object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "patch": { + "description": "Update a Trace Filter object. Any attribute missing from the request will be left unchanged.\n\nA Trace Filter controls which messages received by the broker will be traced. If an incoming message matches an enabled tracing filter's subscription, the message will be traced as it passes through the broker.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\ntelemetryProfileName|x|x|||||\ntraceFilterName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "updateMsgVpnTelemetryProfileTraceFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + }, + { + "description": "The Trace Filter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trace Filter object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Trace Filter object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "put": { + "description": "Replace a Trace Filter object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Trace Filter controls which messages received by the broker will be traced. If an incoming message matches an enabled tracing filter's subscription, the message will be traced as it passes through the broker.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\ntelemetryProfileName|x||x|||||\ntraceFilterName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "replaceMsgVpnTelemetryProfileTraceFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + }, + { + "description": "The Trace Filter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trace Filter object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Trace Filter object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/traceFilters/{traceFilterName}/subscriptions": { + "get": { + "description": "Get a list of Telemetry Trace Filter Subscription objects.\n\nTrace filter subscriptions control which messages will be attracted by the tracing filter.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nsubscription|x|||\nsubscriptionSyntax|x|||\ntelemetryProfileName|x|||\ntraceFilterName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileTraceFilterSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Telemetry Trace Filter Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Telemetry Trace Filter Subscription objects.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "post": { + "description": "Create a Telemetry Trace Filter Subscription object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nTrace filter subscriptions control which messages will be attracted by the tracing filter.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\nsubscription|x|x||||\nsubscriptionSyntax|x|x||||\ntelemetryProfileName|x||x|||\ntraceFilterName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "createMsgVpnTelemetryProfileTraceFilterSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + }, + { + "description": "The Telemetry Trace Filter Subscription object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscription" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Telemetry Trace Filter Subscription object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Telemetry Trace Filter Subscription object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/traceFilters/{traceFilterName}/subscriptions/{subscription},{subscriptionSyntax}": { + "delete": { + "description": "Delete a Telemetry Trace Filter Subscription object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nTrace filter subscriptions control which messages will be attracted by the tracing filter.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "deleteMsgVpnTelemetryProfileTraceFilterSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + }, + { + "description": "Messages matching this subscription will follow this filter's configuration.", + "in": "path", + "name": "subscription", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the trace filter subscription.", + "in": "path", + "name": "subscriptionSyntax", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Telemetry Trace Filter Subscription object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + }, + "get": { + "description": "Get a Telemetry Trace Filter Subscription object.\n\nTrace filter subscriptions control which messages will be attracted by the tracing filter.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\nsubscription|x|||\nsubscriptionSyntax|x|||\ntelemetryProfileName|x|||\ntraceFilterName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileTraceFilterSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + }, + { + "description": "Messages matching this subscription will follow this filter's configuration.", + "in": "path", + "name": "subscription", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the trace filter subscription.", + "in": "path", + "name": "subscriptionSyntax", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Telemetry Trace Filter Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Telemetry Trace Filter Subscription object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpointTemplates": { + "get": { + "description": "Get a list of Topic Endpoint Template objects.\n\nA Topic Endpoint Template provides a mechanism for specifying the initial state for client created topic endpoints.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\ntopicEndpointTemplateName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnTopicEndpointTemplates", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Endpoint Template objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplatesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Endpoint Template objects.", + "tags": [ + "all", + "msgVpn", + "topicEndpointTemplate" + ] + }, + "post": { + "description": "Create a Topic Endpoint Template object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Topic Endpoint Template provides a mechanism for specifying the initial state for client created topic endpoints.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\ntopicEndpointTemplateName|x|x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "createMsgVpnTopicEndpointTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Topic Endpoint Template object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplate" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint Template object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Topic Endpoint Template object.", + "tags": [ + "all", + "msgVpn", + "topicEndpointTemplate" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpointTemplates/{topicEndpointTemplateName}": { + "delete": { + "description": "Delete a Topic Endpoint Template object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Topic Endpoint Template provides a mechanism for specifying the initial state for client created topic endpoints.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "deleteMsgVpnTopicEndpointTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint Template.", + "in": "path", + "name": "topicEndpointTemplateName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Topic Endpoint Template object.", + "tags": [ + "all", + "msgVpn", + "topicEndpointTemplate" + ] + }, + "get": { + "description": "Get a Topic Endpoint Template object.\n\nA Topic Endpoint Template provides a mechanism for specifying the initial state for client created topic endpoints.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\ntopicEndpointTemplateName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnTopicEndpointTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint Template.", + "in": "path", + "name": "topicEndpointTemplateName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint Template object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Endpoint Template object.", + "tags": [ + "all", + "msgVpn", + "topicEndpointTemplate" + ] + }, + "patch": { + "description": "Update a Topic Endpoint Template object. Any attribute missing from the request will be left unchanged.\n\nA Topic Endpoint Template provides a mechanism for specifying the initial state for client created topic endpoints.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\nrejectMsgToSenderOnDiscardBehavior|||||x||\ntopicEndpointTemplateName|x|x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "updateMsgVpnTopicEndpointTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint Template.", + "in": "path", + "name": "topicEndpointTemplateName", + "required": true, + "type": "string" + }, + { + "description": "The Topic Endpoint Template object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplate" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint Template object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Topic Endpoint Template object.", + "tags": [ + "all", + "msgVpn", + "topicEndpointTemplate" + ] + }, + "put": { + "description": "Replace a Topic Endpoint Template object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Topic Endpoint Template provides a mechanism for specifying the initial state for client created topic endpoints.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\nrejectMsgToSenderOnDiscardBehavior||||||x||\ntopicEndpointTemplateName|x||x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "replaceMsgVpnTopicEndpointTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint Template.", + "in": "path", + "name": "topicEndpointTemplateName", + "required": true, + "type": "string" + }, + { + "description": "The Topic Endpoint Template object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplate" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint Template object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Topic Endpoint Template object.", + "tags": [ + "all", + "msgVpn", + "topicEndpointTemplate" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints": { + "get": { + "description": "Get a list of Topic Endpoint objects.\n\nA Topic Endpoint attracts messages published to a topic for which the Topic Endpoint has a matching topic subscription. The topic subscription for the Topic Endpoint is specified in the client request to bind a Flow to that Topic Endpoint. Queues are significantly more flexible than Topic Endpoints and are the recommended approach for most applications. The use of Topic Endpoints should be restricted to JMS applications.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\ntopicEndpointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "getMsgVpnTopicEndpoints", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Endpoint objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Endpoint objects.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + }, + "post": { + "description": "Create a Topic Endpoint object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Topic Endpoint attracts messages published to a topic for which the Topic Endpoint has a matching topic subscription. The topic subscription for the Topic Endpoint is specified in the client request to bind a Flow to that Topic Endpoint. Queues are significantly more flexible than Topic Endpoints and are the recommended approach for most applications. The use of Topic Endpoints should be restricted to JMS applications.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x||x|||\ntopicEndpointName|x|x||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "createMsgVpnTopicEndpoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Topic Endpoint object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpoint" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Topic Endpoint object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}": { + "delete": { + "description": "Delete a Topic Endpoint object. The deletion of instances of this object are synchronized to HA mates and replication sites via config-sync.\n\nA Topic Endpoint attracts messages published to a topic for which the Topic Endpoint has a matching topic subscription. The topic subscription for the Topic Endpoint is specified in the client request to bind a Flow to that Topic Endpoint. Queues are significantly more flexible than Topic Endpoints and are the recommended approach for most applications. The use of Topic Endpoints should be restricted to JMS applications.\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "deleteMsgVpnTopicEndpoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Topic Endpoint object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + }, + "get": { + "description": "Get a Topic Endpoint object.\n\nA Topic Endpoint attracts messages published to a topic for which the Topic Endpoint has a matching topic subscription. The topic subscription for the Topic Endpoint is specified in the client request to bind a Flow to that Topic Endpoint. Queues are significantly more flexible than Topic Endpoints and are the recommended approach for most applications. The use of Topic Endpoints should be restricted to JMS applications.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\ntopicEndpointName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "getMsgVpnTopicEndpoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Endpoint object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + }, + "patch": { + "description": "Update a Topic Endpoint object. Any attribute missing from the request will be left unchanged.\n\nA Topic Endpoint attracts messages published to a topic for which the Topic Endpoint has a matching topic subscription. The topic subscription for the Topic Endpoint is specified in the client request to bind a Flow to that Topic Endpoint. Queues are significantly more flexible than Topic Endpoints and are the recommended approach for most applications. The use of Topic Endpoints should be restricted to JMS applications.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\naccessType|||||x||\nmsgVpnName|x|x|||||\nowner|||||x||\npermission|||||x||\nredeliveryDelayEnabled|||||x||\nredeliveryDelayInitialInterval|||||x||\nredeliveryDelayMaxInterval|||||x||\nredeliveryDelayMultiplier|||||x||\nrejectMsgToSenderOnDiscardBehavior|||||x||\nrespectMsgPriorityEnabled|||||x||\ntopicEndpointName|x|x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "updateMsgVpnTopicEndpoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The Topic Endpoint object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpoint" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Topic Endpoint object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + }, + "put": { + "description": "Replace a Topic Endpoint object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Topic Endpoint attracts messages published to a topic for which the Topic Endpoint has a matching topic subscription. The topic subscription for the Topic Endpoint is specified in the client request to bind a Flow to that Topic Endpoint. Queues are significantly more flexible than Topic Endpoints and are the recommended approach for most applications. The use of Topic Endpoints should be restricted to JMS applications.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\naccessType||||||x||\nmsgVpnName|x||x|||||\nowner||||||x||\npermission||||||x||\nredeliveryDelayEnabled||||||x||\nredeliveryDelayInitialInterval||||||x||\nredeliveryDelayMaxInterval||||||x||\nredeliveryDelayMultiplier||||||x||\nrejectMsgToSenderOnDiscardBehavior||||||x||\nrespectMsgPriorityEnabled||||||x||\ntopicEndpointName|x||x|||||\n\n\n\nThe following attributes in the request may only be provided in certain combinations with other attributes:\n\n\nClass|Attribute|Requires|Conflicts\n:---|:---|:---|:---\nEventThreshold|clearPercent|setPercent|clearValue, setValue\nEventThreshold|clearValue|setValue|clearPercent, setPercent\nEventThreshold|setPercent|clearPercent|clearValue, setValue\nEventThreshold|setValue|clearValue|clearPercent, setPercent\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-write\" is required to perform this operation.\n\nThis has been available since 2.1.", + "operationId": "replaceMsgVpnTopicEndpoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The Topic Endpoint object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpoint" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Topic Endpoint object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/oauthProfiles": { + "get": { + "description": "Get a list of OAuth Profile objects.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nclientSecret||x||x\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfiles", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OAuth Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OAuth Profile objects.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "post": { + "description": "Create an OAuth Profile object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nclientSecret||||x||x\noauthProfileName|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "createOauthProfile", + "parameters": [ + { + "description": "The OAuth Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an OAuth Profile object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}": { + "delete": { + "description": "Delete an OAuth Profile object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "deleteOauthProfile", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an OAuth Profile object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "get": { + "description": "Get an OAuth Profile object.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nclientSecret||x||x\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfile", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OAuth Profile object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "patch": { + "description": "Update an OAuth Profile object. Any attribute missing from the request will be left unchanged.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nclientSecret|||x||||x\noauthProfileName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation. Requests which include the following attributes require greater access scope/level:\n\n\nAttribute|Access Scope/Level\n:---|:---:\naccessLevelGroupsClaimName|global/admin\naccessLevelGroupsClaimStringFormat|global/admin\nclientId|global/admin\nclientRedirectUri|global/admin\nclientRequiredType|global/admin\nclientScope|global/admin\nclientSecret|global/admin\nclientValidateTypeEnabled|global/admin\ndefaultGlobalAccessLevel|global/admin\ndisplayName|global/admin\nenabled|global/admin\nendpointAuthorization|global/admin\nendpointDiscovery|global/admin\nendpointDiscoveryRefreshInterval|global/admin\nendpointIntrospection|global/admin\nendpointIntrospectionTimeout|global/admin\nendpointJwks|global/admin\nendpointJwksRefreshInterval|global/admin\nendpointToken|global/admin\nendpointTokenTimeout|global/admin\nendpointUserinfo|global/admin\nendpointUserinfoTimeout|global/admin\ninteractiveEnabled|global/admin\ninteractivePromptForExpiredSession|global/admin\ninteractivePromptForNewSession|global/admin\nissuer|global/admin\noauthRole|global/admin\nresourceServerParseAccessTokenEnabled|global/admin\nresourceServerRequiredAudience|global/admin\nresourceServerRequiredIssuer|global/admin\nresourceServerRequiredScope|global/admin\nresourceServerRequiredType|global/admin\nresourceServerValidateAudienceEnabled|global/admin\nresourceServerValidateIssuerEnabled|global/admin\nresourceServerValidateScopeEnabled|global/admin\nresourceServerValidateTypeEnabled|global/admin\nsempEnabled|global/admin\nusernameClaimName|global/admin\n\n\n\nThis has been available since 2.24.", + "operationId": "updateOauthProfile", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The OAuth Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update an OAuth Profile object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "put": { + "description": "Replace an OAuth Profile object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nclientSecret||||x||||x\noauthProfileName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation. Requests which include the following attributes require greater access scope/level:\n\n\nAttribute|Access Scope/Level\n:---|:---:\naccessLevelGroupsClaimName|global/admin\naccessLevelGroupsClaimStringFormat|global/admin\nclientId|global/admin\nclientRedirectUri|global/admin\nclientRequiredType|global/admin\nclientScope|global/admin\nclientSecret|global/admin\nclientValidateTypeEnabled|global/admin\ndefaultGlobalAccessLevel|global/admin\ndisplayName|global/admin\nenabled|global/admin\nendpointAuthorization|global/admin\nendpointDiscovery|global/admin\nendpointDiscoveryRefreshInterval|global/admin\nendpointIntrospection|global/admin\nendpointIntrospectionTimeout|global/admin\nendpointJwks|global/admin\nendpointJwksRefreshInterval|global/admin\nendpointToken|global/admin\nendpointTokenTimeout|global/admin\nendpointUserinfo|global/admin\nendpointUserinfoTimeout|global/admin\ninteractiveEnabled|global/admin\ninteractivePromptForExpiredSession|global/admin\ninteractivePromptForNewSession|global/admin\nissuer|global/admin\noauthRole|global/admin\nresourceServerParseAccessTokenEnabled|global/admin\nresourceServerRequiredAudience|global/admin\nresourceServerRequiredIssuer|global/admin\nresourceServerRequiredScope|global/admin\nresourceServerRequiredType|global/admin\nresourceServerValidateAudienceEnabled|global/admin\nresourceServerValidateIssuerEnabled|global/admin\nresourceServerValidateScopeEnabled|global/admin\nresourceServerValidateTypeEnabled|global/admin\nsempEnabled|global/admin\nusernameClaimName|global/admin\n\n\n\nThis has been available since 2.24.", + "operationId": "replaceOauthProfile", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The OAuth Profile object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfile" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace an OAuth Profile object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/accessLevelGroups": { + "get": { + "description": "Get a list of Group Access Level objects.\n\nThe name of a group as it exists on the OAuth server being used to authenticate SEMP users.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ngroupName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileAccessLevelGroups", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Group Access Level objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Group Access Level objects.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "post": { + "description": "Create a Group Access Level object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nThe name of a group as it exists on the OAuth server being used to authenticate SEMP users.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ngroupName|x|x||||\noauthProfileName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation. Requests which include the following attributes require greater access scope/level:\n\n\nAttribute|Access Scope/Level\n:---|:---:\nglobalAccessLevel|global/admin\n\n\n\nThis has been available since 2.24.", + "operationId": "createOauthProfileAccessLevelGroup", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Group Access Level object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroup" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Group Access Level object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Group Access Level object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/accessLevelGroups/{groupName}": { + "delete": { + "description": "Delete a Group Access Level object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nThe name of a group as it exists on the OAuth server being used to authenticate SEMP users.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "deleteOauthProfileAccessLevelGroup", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Group Access Level object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "get": { + "description": "Get a Group Access Level object.\n\nThe name of a group as it exists on the OAuth server being used to authenticate SEMP users.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ngroupName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileAccessLevelGroup", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Group Access Level object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Group Access Level object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "patch": { + "description": "Update a Group Access Level object. Any attribute missing from the request will be left unchanged.\n\nThe name of a group as it exists on the OAuth server being used to authenticate SEMP users.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ngroupName|x|x|||||\noauthProfileName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation. Requests which include the following attributes require greater access scope/level:\n\n\nAttribute|Access Scope/Level\n:---|:---:\nglobalAccessLevel|global/admin\n\n\n\nThis has been available since 2.24.", + "operationId": "updateOauthProfileAccessLevelGroup", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "description": "The Group Access Level object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroup" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Group Access Level object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Group Access Level object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "put": { + "description": "Replace a Group Access Level object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nThe name of a group as it exists on the OAuth server being used to authenticate SEMP users.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ngroupName|x||x|||||\noauthProfileName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation. Requests which include the following attributes require greater access scope/level:\n\n\nAttribute|Access Scope/Level\n:---|:---:\nglobalAccessLevel|global/admin\n\n\n\nThis has been available since 2.24.", + "operationId": "replaceOauthProfileAccessLevelGroup", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "description": "The Group Access Level object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroup" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Group Access Level object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Group Access Level object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/accessLevelGroups/{groupName}/msgVpnAccessLevelExceptions": { + "get": { + "description": "Get a list of Message VPN Access-Level Exception objects.\n\nMessage VPN access-level exceptions for members of this group.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ngroupName|x|||\nmsgVpnName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileAccessLevelGroupMsgVpnAccessLevelExceptions", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Message VPN Access-Level Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Message VPN Access-Level Exception objects.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "post": { + "description": "Create a Message VPN Access-Level Exception object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nMessage VPN access-level exceptions for members of this group.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\ngroupName|x||x|||\nmsgVpnName|x|x||||\noauthProfileName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "createOauthProfileAccessLevelGroupMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "description": "The Message VPN Access-Level Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN Access-Level Exception object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/accessLevelGroups/{groupName}/msgVpnAccessLevelExceptions/{msgVpnName}": { + "delete": { + "description": "Delete a Message VPN Access-Level Exception object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nMessage VPN access-level exceptions for members of this group.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "deleteOauthProfileAccessLevelGroupMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "description": "The name of the message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "get": { + "description": "Get a Message VPN Access-Level Exception object.\n\nMessage VPN access-level exceptions for members of this group.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\ngroupName|x|||\nmsgVpnName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileAccessLevelGroupMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "description": "The name of the message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN Access-Level Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "patch": { + "description": "Update a Message VPN Access-Level Exception object. Any attribute missing from the request will be left unchanged.\n\nMessage VPN access-level exceptions for members of this group.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\ngroupName|x|x|||||\nmsgVpnName|x|x|||||\noauthProfileName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "updateOauthProfileAccessLevelGroupMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "description": "The name of the message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Message VPN Access-Level Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN Access-Level Exception object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "put": { + "description": "Replace a Message VPN Access-Level Exception object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nMessage VPN access-level exceptions for members of this group.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\ngroupName|x||x|||||\nmsgVpnName|x||x|||||\noauthProfileName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "replaceOauthProfileAccessLevelGroupMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "description": "The name of the message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Message VPN Access-Level Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN Access-Level Exception object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientAllowedHosts": { + "get": { + "description": "Get a list of Allowed Host Value objects.\n\nA valid hostname for this broker in OAuth redirects.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nallowedHost|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientAllowedHosts", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Allowed Host Value objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAllowedHostsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Allowed Host Value objects.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "post": { + "description": "Create an Allowed Host Value object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nA valid hostname for this broker in OAuth redirects.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nallowedHost|x|x||||\noauthProfileName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "createOauthProfileClientAllowedHost", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Allowed Host Value object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileClientAllowedHost" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Allowed Host Value object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAllowedHostResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an Allowed Host Value object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientAllowedHosts/{allowedHost}": { + "delete": { + "description": "Delete an Allowed Host Value object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nA valid hostname for this broker in OAuth redirects.\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "deleteOauthProfileClientAllowedHost", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "An allowed value for the Host header.", + "in": "path", + "name": "allowedHost", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an Allowed Host Value object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "get": { + "description": "Get an Allowed Host Value object.\n\nA valid hostname for this broker in OAuth redirects.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nallowedHost|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientAllowedHost", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "An allowed value for the Host header.", + "in": "path", + "name": "allowedHost", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Allowed Host Value object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAllowedHostResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an Allowed Host Value object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientAuthorizationParameters": { + "get": { + "description": "Get a list of Authorization Parameter objects.\n\nAdditional parameters to be passed to the OAuth authorization endpoint.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthorizationParameterName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientAuthorizationParameters", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Authorization Parameter objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParametersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Authorization Parameter objects.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "post": { + "description": "Create an Authorization Parameter object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nAdditional parameters to be passed to the OAuth authorization endpoint.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nauthorizationParameterName|x|x||||\noauthProfileName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "createOauthProfileClientAuthorizationParameter", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Authorization Parameter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Authorization Parameter object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create an Authorization Parameter object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientAuthorizationParameters/{authorizationParameterName}": { + "delete": { + "description": "Delete an Authorization Parameter object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nAdditional parameters to be passed to the OAuth authorization endpoint.\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "deleteOauthProfileClientAuthorizationParameter", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the authorization parameter.", + "in": "path", + "name": "authorizationParameterName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete an Authorization Parameter object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "get": { + "description": "Get an Authorization Parameter object.\n\nAdditional parameters to be passed to the OAuth authorization endpoint.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nauthorizationParameterName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientAuthorizationParameter", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the authorization parameter.", + "in": "path", + "name": "authorizationParameterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Authorization Parameter object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an Authorization Parameter object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "patch": { + "description": "Update an Authorization Parameter object. Any attribute missing from the request will be left unchanged.\n\nAdditional parameters to be passed to the OAuth authorization endpoint.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nauthorizationParameterName|x|x|||||\noauthProfileName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "updateOauthProfileClientAuthorizationParameter", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the authorization parameter.", + "in": "path", + "name": "authorizationParameterName", + "required": true, + "type": "string" + }, + { + "description": "The Authorization Parameter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Authorization Parameter object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update an Authorization Parameter object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "put": { + "description": "Replace an Authorization Parameter object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nAdditional parameters to be passed to the OAuth authorization endpoint.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nauthorizationParameterName|x||x|||||\noauthProfileName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "replaceOauthProfileClientAuthorizationParameter", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the authorization parameter.", + "in": "path", + "name": "authorizationParameterName", + "required": true, + "type": "string" + }, + { + "description": "The Authorization Parameter object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameter" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Authorization Parameter object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace an Authorization Parameter object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientRequiredClaims": { + "get": { + "description": "Get a list of Required Claim objects.\n\nAdditional claims to be verified in the ID token.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nclientRequiredClaimName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientRequiredClaims", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Required Claim objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Required Claim objects.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "post": { + "description": "Create a Required Claim object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nAdditional claims to be verified in the ID token.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nclientRequiredClaimName|x|x||||\nclientRequiredClaimValue||x||||\noauthProfileName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "createOauthProfileClientRequiredClaim", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Required Claim object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileClientRequiredClaim" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Required Claim object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientRequiredClaims/{clientRequiredClaimName}": { + "delete": { + "description": "Delete a Required Claim object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nAdditional claims to be verified in the ID token.\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "deleteOauthProfileClientRequiredClaim", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ID token claim to verify.", + "in": "path", + "name": "clientRequiredClaimName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Required Claim object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "get": { + "description": "Get a Required Claim object.\n\nAdditional claims to be verified in the ID token.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nclientRequiredClaimName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientRequiredClaim", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ID token claim to verify.", + "in": "path", + "name": "clientRequiredClaimName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Required Claim object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/defaultMsgVpnAccessLevelExceptions": { + "get": { + "description": "Get a list of Message VPN Access-Level Exception objects.\n\nDefault message VPN access-level exceptions.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileDefaultMsgVpnAccessLevelExceptions", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Message VPN Access-Level Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Message VPN Access-Level Exception objects.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "post": { + "description": "Create a Message VPN Access-Level Exception object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nDefault message VPN access-level exceptions.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nmsgVpnName|x|x||||\noauthProfileName|x||x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "createOauthProfileDefaultMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Message VPN Access-Level Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN Access-Level Exception object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/defaultMsgVpnAccessLevelExceptions/{msgVpnName}": { + "delete": { + "description": "Delete a Message VPN Access-Level Exception object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nDefault message VPN access-level exceptions.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "deleteOauthProfileDefaultMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "get": { + "description": "Get a Message VPN Access-Level Exception object.\n\nDefault message VPN access-level exceptions.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nmsgVpnName|x|||\noauthProfileName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileDefaultMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN Access-Level Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "patch": { + "description": "Update a Message VPN Access-Level Exception object. Any attribute missing from the request will be left unchanged.\n\nDefault message VPN access-level exceptions.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x|x|||||\noauthProfileName|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "updateOauthProfileDefaultMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Message VPN Access-Level Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN Access-Level Exception object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "put": { + "description": "Replace a Message VPN Access-Level Exception object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nDefault message VPN access-level exceptions.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nmsgVpnName|x||x|||||\noauthProfileName|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "replaceOauthProfileDefaultMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Message VPN Access-Level Exception object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelException" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN Access-Level Exception object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/resourceServerRequiredClaims": { + "get": { + "description": "Get a list of Required Claim objects.\n\nAdditional claims to be verified in the access token.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\noauthProfileName|x|||\nresourceServerRequiredClaimName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileResourceServerRequiredClaims", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Required Claim objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Required Claim objects.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "post": { + "description": "Create a Required Claim object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nAdditional claims to be verified in the access token.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\noauthProfileName|x||x|||\nresourceServerRequiredClaimName|x|x||||\nresourceServerRequiredClaimValue||x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "createOauthProfileResourceServerRequiredClaim", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The Required Claim object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaim" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Required Claim object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/resourceServerRequiredClaims/{resourceServerRequiredClaimName}": { + "delete": { + "description": "Delete a Required Claim object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nAdditional claims to be verified in the access token.\n\nA SEMP client authorized with a minimum access scope/level of \"global/admin\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "deleteOauthProfileResourceServerRequiredClaim", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the access token claim to verify.", + "in": "path", + "name": "resourceServerRequiredClaimName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Required Claim object.", + "tags": [ + "all", + "oauthProfile" + ] + }, + "get": { + "description": "Get a Required Claim object.\n\nAdditional claims to be verified in the access token.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\noauthProfileName|x|||\nresourceServerRequiredClaimName|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileResourceServerRequiredClaim", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the access token claim to verify.", + "in": "path", + "name": "resourceServerRequiredClaimName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Required Claim object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/systemInformation": { + "get": { + "deprecated": true, + "description": "Get a System Information object.\n\nThe System Information object provides metadata about the SEMP API.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nplatform|||x|\nsempVersion|||x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been deprecated since 2.2. /systemInformation was replaced by /about/api.", + "operationId": "getSystemInformation", + "parameters": [ + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The System Information object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/SystemInformationResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a System Information object.", + "tags": [ + "all", + "systemInformation" + ] + } + }, + "/virtualHostnames": { + "get": { + "description": "Get a list of Virtual Hostname objects.\n\nA Virtual Hostname is a provisioned object on a message broker that contains a Virtual Hostname to Message VPN mapping.\n\nClients which connect to a global (as opposed to per Message VPN) port and provides this hostname will be directed to its corresponding Message VPN. A case-insentive match is performed on the full client-provided hostname against the configured virtual-hostname.\n\nThis mechanism is only supported for hostnames provided through the Server Name Indication (SNI) extension of TLS.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nvirtualHostname|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.17.", + "operationId": "getVirtualHostnames", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Virtual Hostname objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/VirtualHostnamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Virtual Hostname objects.", + "tags": [ + "all", + "virtualHostname" + ] + }, + "post": { + "description": "Create a Virtual Hostname object. Any attribute missing from the request will be set to its default value. The creation of instances of this object are synchronized to HA mates via config-sync.\n\nA Virtual Hostname is a provisioned object on a message broker that contains a Virtual Hostname to Message VPN mapping.\n\nClients which connect to a global (as opposed to per Message VPN) port and provides this hostname will be directed to its corresponding Message VPN. A case-insentive match is performed on the full client-provided hostname against the configured virtual-hostname.\n\nThis mechanism is only supported for hostnames provided through the Server Name Indication (SNI) extension of TLS.\n\n\nAttribute|Identifying|Required|Read-Only|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:|:---:|:---:\nvirtualHostname|x|x||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.17.", + "operationId": "createVirtualHostname", + "parameters": [ + { + "description": "The Virtual Hostname object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualHostname" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Virtual Hostname object's attributes after being created, and the request metadata.", + "schema": { + "$ref": "#/definitions/VirtualHostnameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Create a Virtual Hostname object.", + "tags": [ + "all", + "virtualHostname" + ] + } + }, + "/virtualHostnames/{virtualHostname}": { + "delete": { + "description": "Delete a Virtual Hostname object. The deletion of instances of this object are synchronized to HA mates via config-sync.\n\nA Virtual Hostname is a provisioned object on a message broker that contains a Virtual Hostname to Message VPN mapping.\n\nClients which connect to a global (as opposed to per Message VPN) port and provides this hostname will be directed to its corresponding Message VPN. A case-insentive match is performed on the full client-provided hostname against the configured virtual-hostname.\n\nThis mechanism is only supported for hostnames provided through the Server Name Indication (SNI) extension of TLS.\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.17.", + "operationId": "deleteVirtualHostname", + "parameters": [ + { + "description": "The virtual hostname.", + "in": "path", + "name": "virtualHostname", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The request metadata.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Delete a Virtual Hostname object.", + "tags": [ + "all", + "virtualHostname" + ] + }, + "get": { + "description": "Get a Virtual Hostname object.\n\nA Virtual Hostname is a provisioned object on a message broker that contains a Virtual Hostname to Message VPN mapping.\n\nClients which connect to a global (as opposed to per Message VPN) port and provides this hostname will be directed to its corresponding Message VPN. A case-insentive match is performed on the full client-provided hostname against the configured virtual-hostname.\n\nThis mechanism is only supported for hostnames provided through the Server Name Indication (SNI) extension of TLS.\n\n\nAttribute|Identifying|Write-Only|Deprecated|Opaque\n:---|:---:|:---:|:---:|:---:\nvirtualHostname|x|||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.17.", + "operationId": "getVirtualHostname", + "parameters": [ + { + "description": "The virtual hostname.", + "in": "path", + "name": "virtualHostname", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Virtual Hostname object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/VirtualHostnameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Virtual Hostname object.", + "tags": [ + "all", + "virtualHostname" + ] + }, + "patch": { + "description": "Update a Virtual Hostname object. Any attribute missing from the request will be left unchanged.\n\nA Virtual Hostname is a provisioned object on a message broker that contains a Virtual Hostname to Message VPN mapping.\n\nClients which connect to a global (as opposed to per Message VPN) port and provides this hostname will be directed to its corresponding Message VPN. A case-insentive match is performed on the full client-provided hostname against the configured virtual-hostname.\n\nThis mechanism is only supported for hostnames provided through the Server Name Indication (SNI) extension of TLS.\n\n\nAttribute|Identifying|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---\nvirtualHostname|x|x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.17.", + "operationId": "updateVirtualHostname", + "parameters": [ + { + "description": "The virtual hostname.", + "in": "path", + "name": "virtualHostname", + "required": true, + "type": "string" + }, + { + "description": "The Virtual Hostname object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualHostname" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Virtual Hostname object's attributes after being updated, and the request metadata.", + "schema": { + "$ref": "#/definitions/VirtualHostnameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Update a Virtual Hostname object.", + "tags": [ + "all", + "virtualHostname" + ] + }, + "put": { + "description": "Replace a Virtual Hostname object. Any attribute missing from the request will be set to its default value, subject to the exceptions in note 4.\n\nA Virtual Hostname is a provisioned object on a message broker that contains a Virtual Hostname to Message VPN mapping.\n\nClients which connect to a global (as opposed to per Message VPN) port and provides this hostname will be directed to its corresponding Message VPN. A case-insentive match is performed on the full client-provided hostname against the configured virtual-hostname.\n\nThis mechanism is only supported for hostnames provided through the Server Name Indication (SNI) extension of TLS.\n\n\nAttribute|Identifying|Const|Read-Only|Write-Only|Requires-Disable|Auto-Disable|Deprecated|Opaque\n:---|:---|:---|:---|:---|:---|:---|:---|:---\nvirtualHostname|x||x|||||\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-write\" is required to perform this operation.\n\nThis has been available since 2.17.", + "operationId": "replaceVirtualHostname", + "parameters": [ + { + "description": "The virtual hostname.", + "in": "path", + "name": "virtualHostname", + "required": true, + "type": "string" + }, + { + "description": "The Virtual Hostname object's attributes.", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualHostname" + } + }, + { + "$ref": "#/parameters/opaquePasswordQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Virtual Hostname object's attributes after being replaced, and the request metadata.", + "schema": { + "$ref": "#/definitions/VirtualHostnameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Replace a Virtual Hostname object.", + "tags": [ + "all", + "virtualHostname" + ] + } + } + }, + "produces": [ + "application/json" + ], + "schemes": [ + "http", + "https" + ], + "securityDefinitions": { + "basicAuth": { + "description": "basic authentication", + "type": "basic" + } + }, + "swagger": "2.0", + "tags": [] +} \ No newline at end of file diff --git a/test/sempclient/spec/spec_monitor.json b/test/sempclient/spec/spec_monitor.json new file mode 100644 index 0000000..89789b7 --- /dev/null +++ b/test/sempclient/spec/spec_monitor.json @@ -0,0 +1,31235 @@ +{ + "basePath": "/SEMP/v2/monitor", + "consumes": [ + "application/json" + ], + "definitions": { + "About": { + "properties": {}, + "type": "object" + }, + "AboutApi": { + "properties": { + "platform": { + "description": "The platform running the SEMP API.", + "type": "string" + }, + "sempVersion": { + "description": "The version of the SEMP API.", + "type": "string" + } + }, + "type": "object" + }, + "AboutApiCollections": { + "properties": {}, + "type": "object" + }, + "AboutApiLinks": { + "properties": { + "uri": { + "description": "The URI of this API Description object.", + "type": "string" + } + }, + "type": "object" + }, + "AboutApiResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/AboutApiCollections" + }, + "data": { + "$ref": "#/definitions/AboutApi" + }, + "links": { + "$ref": "#/definitions/AboutApiLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutCollections": { + "properties": {}, + "type": "object" + }, + "AboutLinks": { + "properties": { + "apiUri": { + "description": "The URI of this About's API Description object. Available since 2.11.", + "type": "string" + }, + "uri": { + "description": "The URI of this About object.", + "type": "string" + }, + "userUri": { + "description": "The URI of this About's User object. Available since 2.11.", + "type": "string" + } + }, + "type": "object" + }, + "AboutResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/AboutCollections" + }, + "data": { + "$ref": "#/definitions/About" + }, + "links": { + "$ref": "#/definitions/AboutLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutUser": { + "properties": { + "globalAccessLevel": { + "description": "The global access level of the User. The allowed values and their meaning are:\n\n
\n\"admin\" - Full administrative access.\n\"none\" - No access.\n\"read-only\" - Read only access.\n\"read-write\" - Read and write access.\n
\n", + "enum": [ + "admin", + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "sessionActive": { + "description": "Indicates whether a session is active for this request. Available since 2.24.", + "type": "boolean" + }, + "sessionCreateTime": { + "description": "The timestamp of when the session was created. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "sessionCurrentTime": { + "description": "The current server timestamp. This is provided as a reference point for the other timestamps provided. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "sessionHardExpiryTime": { + "description": "The hard expiry time for the session. After this time the session will be invalid, regardless of activity. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "sessionId": { + "description": "An identifier for the session to differentiate this session from other sessions for the same user. This value is not guaranteed to be unique between active sessions for different users. Available since 2.21.", + "type": "string" + }, + "sessionIdleExpiryTime": { + "description": "The session idle expiry time. After this time the session will be invalid if there has been no activity. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "username": { + "description": "The username of the User. Available since 2.17.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserCollections": { + "properties": { + "msgVpns": { + "$ref": "#/definitions/AboutUserCollectionsMsgVpns" + } + }, + "type": "object" + }, + "AboutUserCollectionsMsgVpns": { + "properties": { + "count": { + "description": "The total number of objects in the msgVpns collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "AboutUserLinks": { + "properties": { + "msgVpnsUri": { + "description": "The URI of this User's collection of User Message VPN objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this User object.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserMsgVpn": { + "properties": { + "accessLevel": { + "description": "The Message VPN access level of the User. The allowed values and their meaning are:\n\n
\n\"none\" - No access.\n\"read-only\" - Read only access.\n\"read-write\" - Read and write access.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserMsgVpnCollections": { + "properties": {}, + "type": "object" + }, + "AboutUserMsgVpnLinks": { + "properties": { + "uri": { + "description": "The URI of this User Message VPN object.", + "type": "string" + } + }, + "type": "object" + }, + "AboutUserMsgVpnResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/AboutUserMsgVpnCollections" + }, + "data": { + "$ref": "#/definitions/AboutUserMsgVpn" + }, + "links": { + "$ref": "#/definitions/AboutUserMsgVpnLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutUserMsgVpnsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/AboutUserMsgVpnCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/AboutUserMsgVpn" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/AboutUserMsgVpnLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "AboutUserResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/AboutUserCollections" + }, + "data": { + "$ref": "#/definitions/AboutUser" + }, + "links": { + "$ref": "#/definitions/AboutUserLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "Broker": { + "properties": { + "authClientCertRevocationCheckMode": { + "description": "The client certificate revocation checking mode used when a client authenticates with a client certificate. The allowed values and their meaning are:\n\n
\n\"none\" - Do not perform any certificate revocation checking.\n\"ocsp\" - Use the Open Certificate Status Protcol (OCSP) for certificate revocation checking.\n\"crl\" - Use Certificate Revocation Lists (CRL) for certificate revocation checking.\n\"ocsp-crl\" - Use OCSP first, but if OCSP fails to return an unambiguous result, then check via CRL.\n
\n", + "enum": [ + "none", + "ocsp", + "crl", + "ocsp-crl" + ], + "type": "string" + }, + "averageBindRequestRate": { + "description": "The one minute average of the bind request rate received by the Broker, in binds per second (binds/sec). Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "averageRxByteRate": { + "description": "The one minute average of the message rate received by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "averageRxCompressedByteRate": { + "description": "The one minute average of the compressed message rate received by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "averageRxMsgRate": { + "description": "The one minute average of the message rate received by the Broker, in messages per second (msg/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "averageRxUncompressedByteRate": { + "description": "The one minute average of the uncompressed message rate received by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "averageTxByteRate": { + "description": "The one minute average of the message rate transmitted by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "averageTxCompressedByteRate": { + "description": "The one minute average of the compressed message rate transmitted by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "averageTxMsgRate": { + "description": "The one minute average of the message rate transmitted by the Broker, in messages per second (msg/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "averageTxUncompressedByteRate": { + "description": "The one minute average of the uncompressed message rate transmitted by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "bindRequestRate": { + "description": "The current bind request rate received by the Broker, in binds per second (binds/sec). Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "configSyncAuthenticationClientCertMaxChainDepth": { + "description": "The maximum depth for a client certificate chain. The depth of a chain is defined as the number of signing CA certificates that are present in the chain back to a trusted self-signed root CA certificate. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncAuthenticationClientCertValidateDateEnabled": { + "description": "Enable or disable validation of the \"Not Before\" and \"Not After\" validity dates in the authentication certificate(s). Available since 2.22.", + "type": "boolean" + }, + "configSyncClientProfileTcpInitialCongestionWindow": { + "description": "The TCP initial congestion window size for Config Sync clients, in multiples of the TCP Maximum Segment Size (MSS). Changing the value from its default of 2 results in non-compliance with RFC 2581. Contact support before changing this value. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncClientProfileTcpKeepaliveCount": { + "description": "The number of TCP keepalive retransmissions to a client using the Client Profile before declaring that it is not available. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncClientProfileTcpKeepaliveIdle": { + "description": "The amount of time a client connection using the Client Profile must remain idle before TCP begins sending keepalive probes, in seconds. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncClientProfileTcpKeepaliveInterval": { + "description": "The amount of time between TCP keepalive retransmissions to a client using the Client Profile when no acknowledgement is received, in seconds. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncClientProfileTcpMaxWindow": { + "description": "The TCP maximum window size for clients using the Client Profile, in kilobytes. Changes are applied to all existing connections. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncClientProfileTcpMss": { + "description": "The TCP maximum segment size for clients using the Client Profile, in bytes. Changes are applied to all existing connections. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "configSyncEnabled": { + "description": "Enable or disable configuration synchronization for High Availability or Disaster Recovery. Available since 2.22.", + "type": "boolean" + }, + "configSyncLastFailureReason": { + "description": "The reason for the last transition to a \"Down\" operational status. On transitions to the \"Up\" operational status this value is cleared. Available since 2.22.", + "type": "string" + }, + "configSyncSynchronizeUsernameEnabled": { + "description": "Enable or disable the synchronizing of usernames within High Availability groups. The transition from not synchronizing to synchronizing will cause the High Availability mate to fall out of sync. Recommendation: leave this as enabled. Available since 2.22.", + "type": "boolean" + }, + "configSyncTlsEnabled": { + "description": "Enable or disable the use of TLS encryption of the configuration synchronization communications between brokers in High Availability groups and/or Disaster Recovery sites. Available since 2.22.", + "type": "boolean" + }, + "configSyncUp": { + "description": "Indicates whether the configuration synchronization facility is operational. \"True\" indicates the facility is Up, otherwise it is Down. When \"False\" the configSyncLastFailureReason will provide further detail. Available since 2.22.", + "type": "boolean" + }, + "cspfVersion": { + "description": "The current CSPF version. Available since 2.17.", + "format": "int32", + "type": "integer" + }, + "guaranteedMsgingDefragmentationEstimatedFragmentation": { + "description": "An approximation of the amount of disk space consumed, but not used, by the persisted data. Calculated as a percentage of total space. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingDefragmentationEstimatedRecoverableSpace": { + "description": "An approximation of the amount of disk space recovered upon a successfully completed execution of a defragmentation operation. Expressed in MB. Available since 2.18.", + "format": "int32", + "type": "integer" + }, + "guaranteedMsgingDefragmentationLastCompletedOn": { + "description": "A timestamp reflecting when the last defragmentation completed. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.18.", + "format": "int32", + "type": "integer" + }, + "guaranteedMsgingDefragmentationLastCompletionPercentage": { + "description": "How much of the message spool was visited during the last defragmentation operation. This number reflects the percentage of the message spool visited in terms of disk space (as opposed to, for example, spool files). Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingDefragmentationLastExitCondition": { + "description": "Reflects how the last defragmentation operation completed. The allowed values and their meaning are:\n\n
\n\"success\" - Defragmentation completed successfully.\n\"unmovable-local-transaction\" - Defragmentation stopped after encountering an unmovable local transaction.\n\"unmovable-xa-transaction\" - Defragmentation stopped after encountering an unmovable XA transaction.\n\"incomplete\" - Defragmentation stopped prematurely.\n\"stopped-by-administrator\" - Defragmentation stopped by administrator.\n
\n Available since 2.18.", + "type": "string" + }, + "guaranteedMsgingDefragmentationLastExitConditionInformation": { + "description": "Optional additional information regarding the exit condition of the last defragmentation operation. Available since 2.18.", + "type": "string" + }, + "guaranteedMsgingDefragmentationScheduleDayList": { + "description": "The days of the week to schedule defragmentation runs, specified as \"daily\" or as a comma-separated list of days. Days must be specified as \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri, or \"Sat\", with no spaces, and in sorted order from Sunday to Saturday. Please note \"Sun,Mon,Tue,Wed,Thu,Fri,Sat\" is not allowed, use \"daily\" instead. Available since 2.25.", + "type": "string" + }, + "guaranteedMsgingDefragmentationScheduleEnabled": { + "description": "Enable or disable schedule-based defragmentation of Guaranteed Messaging spool files. Available since 2.25.", + "type": "boolean" + }, + "guaranteedMsgingDefragmentationScheduleTimeList": { + "description": "The times of the day to schedule defragmentation runs, specified as \"hourly\" or as a comma-separated list of 24-hour times in the form hh:mm, or h:mm. There must be no spaces, and times (up to 4) must be in sorted order from 0:00 to 23:59. Available since 2.25.", + "type": "string" + }, + "guaranteedMsgingDefragmentationStatus": { + "description": "Defragmentation status of guaranteed messaging. The allowed values and their meaning are:\n\n
\n\"idle\" - Defragmentation is not currently running.\n\"pending\" - Degfragmentation is preparing to run.\n\"active\" - Defragmentation is in progress.\n
\n Available since 2.18.", + "type": "string" + }, + "guaranteedMsgingDefragmentationStatusActiveCompletionPercentage": { + "description": "The estimated completion percentage of a defragmentation operation currently in progress. Only valid if the defragmentation status is \"Active\". Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingDefragmentationThresholdEnabled": { + "description": "Enable or disable threshold-based defragmentation of Guaranteed Messaging spool files. Available since 2.25.", + "type": "boolean" + }, + "guaranteedMsgingDefragmentationThresholdFragmentationPercentage": { + "description": "Percentage of spool fragmentation needed to trigger defragmentation run. The minimum value allowed is 30%. Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingDefragmentationThresholdMinInterval": { + "description": "Minimum interval of time (in minutes) between defragmentation runs triggered by thresholds. Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingDefragmentationThresholdUsagePercentage": { + "description": "Percentage of spool usage needed to trigger defragmentation run. The minimum value allowed is 30%. Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingEnabled": { + "description": "Enable or disable Guaranteed Messaging. Available since 2.18.", + "type": "boolean" + }, + "guaranteedMsgingEventCacheUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventDeliveredUnackedThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "guaranteedMsgingEventDiskUsageThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "guaranteedMsgingEventEgressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventEndpointCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventIngressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventMsgCountThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "guaranteedMsgingEventMsgSpoolFileCountThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "guaranteedMsgingEventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventTransactedSessionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingEventTransactedSessionResourceCountThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "guaranteedMsgingEventTransactionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "guaranteedMsgingMaxCacheUsage": { + "description": "Guaranteed messaging cache usage limit. Expressed as a maximum percentage of the NAB's egress queueing. resources that the guaranteed message cache is allowed to use. Available since 2.18.", + "format": "int32", + "type": "integer" + }, + "guaranteedMsgingMaxMsgSpoolUsage": { + "description": "The maximum total message spool usage allowed across all VPNs on this broker, in megabytes. Recommendation: the maximum value should be less than 90% of the disk space allocated for the guaranteed message spool. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingMsgSpoolSyncMirroredMsgAckTimeout": { + "description": "The maximum time, in milliseconds, that can be tolerated for remote acknowledgement of synchronization messages before which the remote system will be considered out of sync. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingMsgSpoolSyncMirroredSpoolFileAckTimeout": { + "description": "The maximum time, in milliseconds, that can be tolerated for remote disk writes before which the remote system will be considered out of sync. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "guaranteedMsgingOperationalStatus": { + "description": "Operational status of guaranteed messaging. The allowed values and their meaning are:\n\n
\n\"disabled\" - The operational status of guaranteed messaging is Disabled.\n\"not-ready\" - The operational status of guaranteed messaging is NotReady.\n\"standby\" - The operational status of guaranteed messaging is Standby.\n\"activating\" - The operational status of guaranteed messaging is Activating.\n\"active\" - The operational status of guaranteed messaging is Active.\n
\n Available since 2.18.", + "type": "string" + }, + "guaranteedMsgingTransactionReplicationCompatibilityMode": { + "description": "The replication compatibility mode for the router. The default value is `\"legacy\"`. The allowed values and their meaning are:\"legacy\" - All transactions originated by clients are replicated to the standby site without using transactions.\"transacted\" - All transactions originated by clients are replicated to the standby site using transactions. The allowed values and their meaning are:\n\n
\n\"legacy\" - All transactions originated by clients are replicated to the standby site without using transactions.\n\"transacted\" - All transactions originated by clients are replicated to the standby site using transactions.\n
\n Available since 2.18.", + "enum": [ + "legacy", + "transacted" + ], + "type": "string" + }, + "oauthProfileDefault": { + "description": "The default OAuth profile for OAuth authenticated SEMP requests. Available since 2.24.", + "type": "string" + }, + "rxByteCount": { + "description": "The amount of messages received from clients by the Broker, in bytes (B). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "rxByteRate": { + "description": "The current message rate received by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "rxCompressedByteCount": { + "description": "The amount of compressed messages received by the Broker, in bytes (B). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "rxCompressedByteRate": { + "description": "The current compressed message rate received by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "rxCompressionRatio": { + "description": "The compression ratio for messages received by the Broker. Available since 2.14.", + "type": "string" + }, + "rxMsgCount": { + "description": "The number of messages received from clients by the Broker. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "rxMsgRate": { + "description": "The current message rate received by the Broker, in messages per second (msg/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "rxUncompressedByteCount": { + "description": "The amount of uncompressed messages received by the Broker, in bytes (B). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "rxUncompressedByteRate": { + "description": "The current uncompressed message rate received by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "serviceAmqpEnabled": { + "description": "Enable or disable the AMQP service. When disabled new AMQP Clients may not connect through the global or per-VPN AMQP listen-ports, and all currently connected AMQP Clients are immediately disconnected. Available since 2.17.", + "type": "boolean" + }, + "serviceAmqpTlsListenPort": { + "description": "TCP port number that AMQP clients can use to connect to the broker using raw TCP over TLS. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceEventConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "serviceHealthCheckEnabled": { + "description": "Enable or disable the plain-text health-check service. Available since 2.17.", + "type": "boolean" + }, + "serviceHealthCheckListenPort": { + "description": "The port number for the plain-text health-check service. The port must be unique across the message backbone. The health-check service must be disabled to change the port. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceHealthCheckTlsEnabled": { + "description": "Enable or disable the TLS health-check service. Available since 2.34.", + "type": "boolean" + }, + "serviceHealthCheckTlsListenPort": { + "description": "The port number for the TLS health-check service. The port must be unique across the message backbone. The health-check service must be disabled to change the port. Available since 2.34.", + "format": "int64", + "type": "integer" + }, + "serviceMateLinkEnabled": { + "description": "Enable or disable the mate-link service. Available since 2.17.", + "type": "boolean" + }, + "serviceMateLinkListenPort": { + "description": "The port number for the mate-link service. The port must be unique across the message backbone. The mate-link service must be disabled to change the port. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceMqttEnabled": { + "description": "Enable or disable the MQTT service. When disabled new MQTT Clients may not connect through the per-VPN MQTT listen-ports, and all currently connected MQTT Clients are immediately disconnected. Available since 2.17.", + "type": "boolean" + }, + "serviceMsgBackboneEnabled": { + "description": "Enable or disable the msg-backbone service. When disabled new Clients may not connect through global or per-VPN listen-ports, and all currently connected Clients are immediately disconnected. Available since 2.17.", + "type": "boolean" + }, + "serviceRedundancyEnabled": { + "description": "Enable or disable the redundancy service. Available since 2.17.", + "type": "boolean" + }, + "serviceRedundancyFirstListenPort": { + "description": "The first listen-port used for the redundancy service. Redundancy uses this port and the subsequent 2 ports. These port must be unique across the message backbone. The redundancy service must be disabled to change this port. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceRestEventOutgoingConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "serviceRestIncomingEnabled": { + "description": "Enable or disable the REST service incoming connections on the router. Available since 2.17.", + "type": "boolean" + }, + "serviceRestOutgoingEnabled": { + "description": "Enable or disable the REST service outgoing connections on the router. Available since 2.17.", + "type": "boolean" + }, + "serviceSempCorsAllowAnyHostEnabled": { + "description": "Enable or disable cross origin resource requests for the SEMP service. Available since 2.24.", + "type": "boolean" + }, + "serviceSempLegacyTimeoutEnabled": { + "description": "Enable or disable extended SEMP timeouts for paged GETs. When a request times out, it returns the current page of content, even if the page is not full. When enabled, the timeout is 60 seconds. When disabled, the timeout is 5 seconds. The recommended setting is disabled (no legacy-timeout). This parameter is intended as a temporary workaround to be used until SEMP clients can handle short pages. This setting will be removed in a future release. Available since 2.18.", + "type": "boolean" + }, + "serviceSempPlainTextEnabled": { + "description": "Enable or disable plain-text SEMP service. Available since 2.17.", + "type": "boolean" + }, + "serviceSempPlainTextListenPort": { + "description": "The TCP port for plain-text SEMP client connections. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceSempSessionIdleTimeout": { + "description": "The session idle timeout, in minutes. Sessions will be invalidated if there is no activity in this period of time. Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "serviceSempSessionMaxLifetime": { + "description": "The maximum lifetime of a session, in minutes. Sessions will be invalidated after this period of time, regardless of activity. Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "serviceSempTlsEnabled": { + "description": "Enable or disable TLS SEMP service. Available since 2.17.", + "type": "boolean" + }, + "serviceSempTlsListenPort": { + "description": "The TCP port for TLS SEMP client connections. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceSmfCompressionListenPort": { + "description": "TCP port number that SMF clients can use to connect to the broker using raw compression TCP. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceSmfEnabled": { + "description": "Enable or disable the SMF service. When disabled new SMF Clients may not connect through the global listen-ports, and all currently connected SMF Clients are immediately disconnected. Available since 2.17.", + "type": "boolean" + }, + "serviceSmfEventConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "serviceSmfPlainTextListenPort": { + "description": "TCP port number that SMF clients can use to connect to the broker using raw TCP. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceSmfRoutingControlListenPort": { + "description": "TCP port number that SMF clients can use to connect to the broker using raw routing control TCP. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceSmfTlsListenPort": { + "description": "TCP port number that SMF clients can use to connect to the broker using raw TCP over TLS. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceTlsEventConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "serviceWebTransportEnabled": { + "description": "Enable or disable the web-transport service. When disabled new web-transport Clients may not connect through the global listen-ports, and all currently connected web-transport Clients are immediately disconnected. Available since 2.17.", + "type": "boolean" + }, + "serviceWebTransportPlainTextListenPort": { + "description": "The TCP port for plain-text WEB client connections. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceWebTransportTlsListenPort": { + "description": "The TCP port for TLS WEB client connections. Available since 2.17.", + "format": "int64", + "type": "integer" + }, + "serviceWebTransportWebUrlSuffix": { + "description": "Used to specify the Web URL suffix that will be used by Web clients when communicating with the broker. Available since 2.17.", + "type": "string" + }, + "telemetryTraceDemoExpiryTime": { + "description": "Indicates when the tracing demo will expire or has expired. When the tracing demo expires, tracing becomes inactive. For more details related to terms, demo mode extension, and purchase, please see: https://solace.com/dt-demo-mode. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.31.", + "format": "int32", + "type": "integer" + }, + "telemetryTraceDemoState": { + "description": "Indicates whether the tracing demo is ready to be activated, active, or inactive. For more details related to the tracing demo, please see: https://solace.com/dt-demo-mode. The allowed values and their meaning are:\n\n
\n\"active\" - The tracing demo is active. The demo expiry time indicates when tracing will become inactive if tracing is not licensed or the broker is not restarted before then. For more details related to terms, demo mode extension, and purchase, please see: https://solace.com/dt-demo-mode.\n\"inactive\" - The tracing demo is not active either because tracing is licensed, thereby enabling continuous tracing operation; or the tracing demo mode is not available on this broker.\n\"inactive-restart-required\" - The tracing demo mode was active, but the expiry time was reached without the installation of a tracing product key or a broker restart. Obtain a license and install the provided product key to enable continuous operation of tracing. Alternatively, restart the broker to reactivate tracing in demo mode. For more details related to terms, demo mode extension, and purchase, please see: https://solace.com/dt-demo-mode.\n\"ready\" - The broker is capable of providing tracing functionality in demo mode. To activate the demo, simply enable tracing. For more details related to terms, demo mode extension, and purchase, please see: https://solace.com/dt-demo-mode.\n
\n Available since 2.31.", + "type": "string" + }, + "telemetryTraceMode": { + "description": "Indicates whether tracing is licensed, requires a license, or is in demo mode. Installing a tracing product key results in licensed mode. The allowed values and their meaning are:\n\n
\n\"demo\" - The free tracing demo mode allows for evaluation of tracing before purchasing a license. Please see https://solace.com/dt-demo-mode for more details.\n\"inactive-license-required\" - A tracing license is required for tracing to become operational.\n\"licensed\" - A tracing product key has been installed, enabling continuous operation of tracing.\n
\n Available since 2.31.", + "type": "string" + }, + "tlsBlockVersion11Enabled": { + "description": "Indicates whether TLS version 1.1 connections are blocked. When blocked, all existing incoming and outgoing TLS 1.1 connections with Clients, SEMP users, and LDAP servers remain connected while new connections are blocked. Note that support for TLS 1.1 will eventually be discontinued, at which time TLS 1.1 connections will be blocked regardless of this setting.", + "type": "boolean" + }, + "tlsCipherSuiteManagementDefaultList": { + "description": "The colon-separated list of default cipher suites for TLS management connections.", + "type": "string" + }, + "tlsCipherSuiteManagementList": { + "description": "The colon-separated list of cipher suites used for TLS management connections (e.g. SEMP, LDAP). The value \"default\" implies all supported suites ordered from most secure to least secure.", + "type": "string" + }, + "tlsCipherSuiteManagementSupportedList": { + "description": "The colon-separated list of supported cipher suites for TLS management connections.", + "type": "string" + }, + "tlsCipherSuiteMsgBackboneDefaultList": { + "description": "The colon-separated list of default cipher suites for TLS data connections.", + "type": "string" + }, + "tlsCipherSuiteMsgBackboneList": { + "description": "The colon-separated list of cipher suites used for TLS data connections (e.g. client pub/sub). The value \"default\" implies all supported suites ordered from most secure to least secure.", + "type": "string" + }, + "tlsCipherSuiteMsgBackboneSupportedList": { + "description": "The colon-separated list of supported cipher suites for TLS data connections.", + "type": "string" + }, + "tlsCipherSuiteSecureShellDefaultList": { + "description": "The colon-separated list of default cipher suites for TLS secure shell connections.", + "type": "string" + }, + "tlsCipherSuiteSecureShellList": { + "description": "The colon-separated list of cipher suites used for TLS secure shell connections (e.g. SSH, SFTP, SCP). The value \"default\" implies all supported suites ordered from most secure to least secure.", + "type": "string" + }, + "tlsCipherSuiteSecureShellSupportedList": { + "description": "The colon-separated list of supported cipher suites for TLS secure shell connections.", + "type": "string" + }, + "tlsCrimeExploitProtectionEnabled": { + "description": "Indicates whether protection against the CRIME exploit is enabled. When enabled, TLS+compressed messaging performance is degraded. This protection should only be disabled if sufficient ACL and authentication features are being employed such that a potential attacker does not have sufficient access to trigger the exploit.", + "type": "boolean" + }, + "tlsStandardDomainCertificateAuthoritiesEnabled": { + "description": "Enable or disable the standard domain certificate authority list. Available since 2.19.", + "type": "boolean" + }, + "tlsTicketLifetime": { + "description": "The TLS ticket lifetime in seconds. When a client connects with TLS, a session with a session ticket is created using the TLS ticket lifetime which determines how long the client has to resume the session.", + "format": "int32", + "type": "integer" + }, + "tlsVersionSupportedList": { + "description": "The comma-separated list of supported TLS versions.", + "type": "string" + }, + "txByteCount": { + "description": "The amount of messages transmitted to clients by the Broker, in bytes (B). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "txByteRate": { + "description": "The current message rate transmitted by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "txCompressedByteCount": { + "description": "The amount of compressed messages transmitted by the Broker, in bytes (B). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "txCompressedByteRate": { + "description": "The current compressed message rate transmitted by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "txCompressionRatio": { + "description": "The compression ratio for messages transmitted by the Broker. Available since 2.14.", + "type": "string" + }, + "txMsgCount": { + "description": "The number of messages transmitted to clients by the Broker. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "txMsgRate": { + "description": "The current message rate transmitted by the Broker, in messages per second (msg/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "txUncompressedByteCount": { + "description": "The amount of uncompressed messages transmitted by the Broker, in bytes (B). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "txUncompressedByteRate": { + "description": "The current uncompressed message rate transmitted by the Broker, in bytes per second (B/sec). Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "version": { + "description": "The version of the broker. Available since 2.29.", + "type": "string" + }, + "webManagerAllowUnencryptedWizardsEnabled": { + "description": "Enable or disable the use of unencrypted wizards in the Web-based Manager UI. This setting should be left at its default on all production systems or other systems that need to be secure. Enabling this option will permit the broker to forward plain-text data to other brokers, making important information or credentials available for snooping. Available since 2.28.", + "type": "boolean" + }, + "webManagerCustomization": { + "description": "Reserved for internal use by Solace. Available since 2.25.", + "type": "string" + }, + "webManagerRedirectHttpEnabled": { + "description": "Enable or disable redirection of HTTP requests for the broker manager to HTTPS. Available since 2.24.", + "type": "boolean" + }, + "webManagerRedirectHttpLastFailureReason": { + "description": "The reason for the last transition to a \"Down\" operational status. On transitions to the \"Up\" operational status this value is cleared. Available since 2.24.", + "type": "string" + }, + "webManagerRedirectHttpOverrideTlsPort": { + "description": "The HTTPS port that HTTP requests will be redirected towards in a HTTP 301 redirect response. Zero is a special value that means use the value specified for the SEMP TLS port value. Available since 2.24.", + "format": "int32", + "type": "integer" + }, + "webManagerRedirectHttpUp": { + "description": "Indicates whether the HTTP redirects will operationally occur. \"True\" indicates the facility is Up and redirects will occur, otherwise it is Down. When \"False\" the webManagerRedirectLastFailureReason will provide further detail. Available since 2.24.", + "type": "boolean" + } + }, + "type": "object" + }, + "BrokerCollections": { + "properties": { + "certAuthorities": { + "$ref": "#/definitions/BrokerCollectionsCertAuthorities" + }, + "clientCertAuthorities": { + "$ref": "#/definitions/BrokerCollectionsClientCertAuthorities" + }, + "configSyncLocalDatabaseRows": { + "$ref": "#/definitions/BrokerCollectionsConfigSyncLocalDatabaseRows" + }, + "dmrClusters": { + "$ref": "#/definitions/BrokerCollectionsDmrClusters" + }, + "domainCertAuthorities": { + "$ref": "#/definitions/BrokerCollectionsDomainCertAuthorities" + }, + "msgVpns": { + "$ref": "#/definitions/BrokerCollectionsMsgVpns" + }, + "oauthProfiles": { + "$ref": "#/definitions/BrokerCollectionsOauthProfiles" + }, + "sessions": { + "$ref": "#/definitions/BrokerCollectionsSessions" + }, + "standardDomainCertAuthorities": { + "$ref": "#/definitions/BrokerCollectionsStandardDomainCertAuthorities" + }, + "virtualHostnames": { + "$ref": "#/definitions/BrokerCollectionsVirtualHostnames" + } + }, + "type": "object" + }, + "BrokerCollectionsCertAuthorities": { + "properties": { + "count": { + "description": "The total number of objects in the certAuthorities collection. Deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerCollectionsClientCertAuthorities": { + "properties": { + "count": { + "description": "The total number of objects in the clientCertAuthorities collection. Available since 2.19.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerCollectionsConfigSyncLocalDatabaseRows": { + "properties": { + "count": { + "description": "The total number of objects in the configSyncLocalDatabaseRows collection. Available since 2.22.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerCollectionsDmrClusters": { + "properties": { + "count": { + "description": "The total number of objects in the dmrClusters collection. Available since 2.11.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerCollectionsDomainCertAuthorities": { + "properties": { + "count": { + "description": "The total number of objects in the domainCertAuthorities collection. Available since 2.19.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerCollectionsMsgVpns": { + "properties": { + "count": { + "description": "The total number of objects in the msgVpns collection. Available since 2.11.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerCollectionsOauthProfiles": { + "properties": { + "count": { + "description": "The total number of objects in the oauthProfiles collection. Available since 2.24.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerCollectionsSessions": { + "properties": { + "count": { + "description": "The total number of objects in the sessions collection. Available since 2.21.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerCollectionsStandardDomainCertAuthorities": { + "properties": { + "count": { + "description": "The total number of objects in the standardDomainCertAuthorities collection. Available since 2.19.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerCollectionsVirtualHostnames": { + "properties": { + "count": { + "description": "The total number of objects in the virtualHostnames collection. Available since 2.17.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "BrokerLinks": { + "properties": { + "aboutUri": { + "description": "The URI of this Broker's About object.", + "type": "string" + }, + "certAuthoritiesUri": { + "description": "The URI of this Broker's collection of Certificate Authority objects. Deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "clientCertAuthoritiesUri": { + "description": "The URI of this Broker's collection of Client Certificate Authority objects. Available since 2.19.", + "type": "string" + }, + "configSyncLocalDatabaseRowsUri": { + "description": "The URI of this Broker's collection of Config Sync Local Database objects. Available since 2.22.", + "type": "string" + }, + "dmrClustersUri": { + "description": "The URI of this Broker's collection of Cluster objects. Available since 2.11.", + "type": "string" + }, + "domainCertAuthoritiesUri": { + "description": "The URI of this Broker's collection of Domain Certificate Authority objects. Available since 2.19.", + "type": "string" + }, + "msgVpnsUri": { + "description": "The URI of this Broker's collection of Message VPN objects. Available since 2.11.", + "type": "string" + }, + "oauthProfilesUri": { + "description": "The URI of this Broker's collection of OAuth Profile objects. Available since 2.24.", + "type": "string" + }, + "sessionsUri": { + "description": "The URI of this Broker's collection of SEMP Session objects. Available since 2.21.", + "type": "string" + }, + "standardDomainCertAuthoritiesUri": { + "description": "The URI of this Broker's collection of Standard Domain Certificate Authority objects. Available since 2.19.", + "type": "string" + }, + "uri": { + "description": "The URI of this Broker object.", + "type": "string" + }, + "virtualHostnamesUri": { + "description": "The URI of this Broker's collection of Virtual Hostname objects. Available since 2.17.", + "type": "string" + } + }, + "type": "object" + }, + "BrokerResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/BrokerCollections" + }, + "data": { + "$ref": "#/definitions/Broker" + }, + "links": { + "$ref": "#/definitions/BrokerLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "CertAuthoritiesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/CertAuthorityCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/CertAuthority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/CertAuthorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "CertAuthority": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority. Deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "certContent": { + "description": "The PEM formatted content for the trusted root certificate of a Certificate Authority. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "crlDayList": { + "description": "The scheduled CRL refresh day(s), specified as \"daily\" or a comma-separated list of days. Days must be specified as \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", or \"Sat\", with no spaces, and in sorted order from Sunday to Saturday. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "crlLastDownloadTime": { + "description": "The timestamp of the last successful CRL download. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "format": "int32", + "type": "integer" + }, + "crlLastFailureReason": { + "description": "The reason for the last CRL failure. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "crlLastFailureTime": { + "description": "The timestamp of the last CRL failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "format": "int32", + "type": "integer" + }, + "crlNextDownloadTime": { + "description": "The scheduled time of the next CRL download. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "format": "int32", + "type": "integer" + }, + "crlTimeList": { + "description": "The scheduled CRL refresh time(s), specified as \"hourly\" or a comma-separated list of 24-hour times in the form hh:mm, or h:mm. There must be no spaces, and times must be in sorted order from 0:00 to 23:59. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "crlUp": { + "description": "Indicates whether CRL revocation checking is operationally up. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "boolean" + }, + "crlUrl": { + "description": "The URL for the CRL source. This is a required attribute for CRL to be operational and the URL must be complete with http:// included. IPv6 addresses must be enclosed in square-brackets. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "ocspLastFailureReason": { + "description": "The reason for the last OCSP failure. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "ocspLastFailureTime": { + "description": "The timestamp of the last OCSP failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "format": "int32", + "type": "integer" + }, + "ocspLastFailureUrl": { + "description": "The URL involved in the last OCSP failure. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "ocspNonResponderCertEnabled": { + "description": "Indicates whether a non-responder certificate is allowed to sign an OCSP response. Typically used with an OCSP override URL in cases where a single certificate is used to sign client certificates and OCSP responses. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "boolean" + }, + "ocspOverrideUrl": { + "description": "The OCSP responder URL to use for overriding the one supplied in the client certificate. The URL must be complete with http:// included. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "string" + }, + "ocspTimeout": { + "description": "The timeout in seconds to receive a response from the OCSP responder after sending a request or making the initial connection attempt. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "format": "int64", + "type": "integer" + }, + "revocationCheckEnabled": { + "description": "Indicates whether Certificate Authority revocation checking is enabled. Deprecated since 2.19. certAuthorities replaced by clientCertAuthorities and domainCertAuthorities.", + "type": "boolean" + } + }, + "type": "object" + }, + "CertAuthorityCollections": { + "properties": { + "ocspTlsTrustedCommonNames": { + "$ref": "#/definitions/CertAuthorityCollectionsOcspTlsTrustedCommonNames" + } + }, + "type": "object" + }, + "CertAuthorityCollectionsOcspTlsTrustedCommonNames": { + "properties": { + "count": { + "description": "The total number of objects in the ocspTlsTrustedCommonNames collection. Deprecated since 2.19. Replaced by clientCertAuthorities.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "CertAuthorityLinks": { + "properties": { + "ocspTlsTrustedCommonNamesUri": { + "description": "The URI of this Certificate Authority's collection of OCSP Responder Trusted Common Name objects. Deprecated since 2.19. Replaced by clientCertAuthorities.", + "type": "string" + }, + "uri": { + "description": "The URI of this Certificate Authority object.", + "type": "string" + } + }, + "type": "object" + }, + "CertAuthorityOcspTlsTrustedCommonName": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority. Deprecated since 2.19. Replaced by clientCertAuthorities.", + "type": "string" + }, + "ocspTlsTrustedCommonName": { + "description": "The expected Trusted Common Name of the OCSP responder remote certificate. Deprecated since 2.19. Replaced by clientCertAuthorities.", + "type": "string" + } + }, + "type": "object" + }, + "CertAuthorityOcspTlsTrustedCommonNameCollections": { + "properties": {}, + "type": "object" + }, + "CertAuthorityOcspTlsTrustedCommonNameLinks": { + "properties": { + "uri": { + "description": "The URI of this OCSP Responder Trusted Common Name object.", + "type": "string" + } + }, + "type": "object" + }, + "CertAuthorityOcspTlsTrustedCommonNameResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNameCollections" + }, + "data": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonName" + }, + "links": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "CertAuthorityOcspTlsTrustedCommonNamesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNameCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonName" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "CertAuthorityResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/CertAuthorityCollections" + }, + "data": { + "$ref": "#/definitions/CertAuthority" + }, + "links": { + "$ref": "#/definitions/CertAuthorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ClientCertAuthoritiesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/ClientCertAuthorityCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/ClientCertAuthority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/ClientCertAuthorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ClientCertAuthority": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority.", + "type": "string" + }, + "certContent": { + "description": "The PEM formatted content for the trusted root certificate of a client Certificate Authority.", + "type": "string" + }, + "crlDayList": { + "description": "The scheduled CRL refresh day(s), specified as \"daily\" or a comma-separated list of days. Days must be specified as \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", or \"Sat\", with no spaces, and in sorted order from Sunday to Saturday. The empty-string (\"\") can also be specified, indicating no schedule is configured (\"crlTimeList\" must also be configured to the empty-string).", + "type": "string" + }, + "crlLastDownloadTime": { + "description": "The timestamp of the last successful CRL download. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "crlLastFailureReason": { + "description": "The reason for the last CRL failure.", + "type": "string" + }, + "crlLastFailureTime": { + "description": "The timestamp of the last CRL failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "crlNextDownloadTime": { + "description": "The scheduled time of the next CRL download. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "crlTimeList": { + "description": "The scheduled CRL refresh time(s), specified as \"hourly\" or a comma-separated list of 24-hour times in the form hh:mm, or h:mm. There must be no spaces, and times (up to 4) must be in sorted order from 0:00 to 23:59. The empty-string (\"\") can also be specified, indicating no schedule is configured (\"crlDayList\" must also be configured to the empty-string).", + "type": "string" + }, + "crlUp": { + "description": "Indicates whether CRL revocation checking is operationally up.", + "type": "boolean" + }, + "crlUrl": { + "description": "The URL for the CRL source. This is a required attribute for CRL to be operational and the URL must be complete with http:// included. IPv6 addresses must be enclosed in square-brackets.", + "type": "string" + }, + "ocspLastFailureReason": { + "description": "The reason for the last OCSP failure.", + "type": "string" + }, + "ocspLastFailureTime": { + "description": "The timestamp of the last OCSP failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "ocspLastFailureUrl": { + "description": "The URL involved in the last OCSP failure.", + "type": "string" + }, + "ocspNonResponderCertEnabled": { + "description": "Indicates whether a non-responder certificate is allowed to sign an OCSP response. Typically used with an OCSP override URL in cases where a single certificate is used to sign client certificates and OCSP responses.", + "type": "boolean" + }, + "ocspOverrideUrl": { + "description": "The OCSP responder URL to use for overriding the one supplied in the client certificate. The URL must be complete with http:// included.", + "type": "string" + }, + "ocspTimeout": { + "description": "The timeout in seconds to receive a response from the OCSP responder after sending a request or making the initial connection attempt.", + "format": "int64", + "type": "integer" + }, + "revocationCheckEnabled": { + "description": "Indicates whether Certificate Authority revocation checking is enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "ClientCertAuthorityCollections": { + "properties": { + "ocspTlsTrustedCommonNames": { + "$ref": "#/definitions/ClientCertAuthorityCollectionsOcspTlsTrustedCommonNames" + } + }, + "type": "object" + }, + "ClientCertAuthorityCollectionsOcspTlsTrustedCommonNames": { + "properties": { + "count": { + "description": "The total number of objects in the ocspTlsTrustedCommonNames collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "ClientCertAuthorityLinks": { + "properties": { + "ocspTlsTrustedCommonNamesUri": { + "description": "The URI of this Client Certificate Authority's collection of OCSP Responder Trusted Common Name objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Client Certificate Authority object.", + "type": "string" + } + }, + "type": "object" + }, + "ClientCertAuthorityOcspTlsTrustedCommonName": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority.", + "type": "string" + }, + "ocspTlsTrustedCommonName": { + "description": "The expected Trusted Common Name of the OCSP responder remote certificate.", + "type": "string" + } + }, + "type": "object" + }, + "ClientCertAuthorityOcspTlsTrustedCommonNameCollections": { + "properties": {}, + "type": "object" + }, + "ClientCertAuthorityOcspTlsTrustedCommonNameLinks": { + "properties": { + "uri": { + "description": "The URI of this OCSP Responder Trusted Common Name object.", + "type": "string" + } + }, + "type": "object" + }, + "ClientCertAuthorityOcspTlsTrustedCommonNameResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNameCollections" + }, + "data": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonName" + }, + "links": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ClientCertAuthorityOcspTlsTrustedCommonNamesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNameCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonName" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ClientCertAuthorityResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/ClientCertAuthorityCollections" + }, + "data": { + "$ref": "#/definitions/ClientCertAuthority" + }, + "links": { + "$ref": "#/definitions/ClientCertAuthorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ConfigSyncLocalDatabaseRow": { + "properties": { + "lastRequest": { + "description": "The last series of commands exchanged between Config Sync sites. Note that this value is only updated during transitions to any syncStatus that is not \"in-sync\".", + "type": "string" + }, + "lastResult": { + "description": "The result of the last exchange between Config Sync sites.", + "type": "string" + }, + "name": { + "description": "The name is \"site\" when the row type is \"router\", otherwise it is the Message VPN name.", + "type": "string" + }, + "role": { + "description": "The row's role relative to the local broker. The allowed values and their meaning are:\n\n
\n\"unknown\" - The role is unknown.\n\"leader\" - In HA deployments, the role of the event broker and Message VPNs in the Config Sync database of both HA mates is always Leader.\n\"follower\" - Only replication-enabled Message VPNs on standby replication mates can have a Follower role.\n
\n", + "type": "string" + }, + "syncStatus": { + "description": "The synchronization status of the row. The allowed values and their meaning are:\n\n
\n\"unknown\" - The state is unknown.\n\"in-sync\" - The config data is synchronized between Message VPNs.\n\"reconciling\" - The config data is reconciling between Message VPNs.\n\"blocked\" - The config data is blocked from reconciling due to an error.\n\"out-of-sync\" - The config data is out of sync between Message VPNs.\n\"down\" - The state is down due to configuration.\n
\n", + "type": "string" + }, + "timeInState": { + "description": "The amount of time this row has remained in the shown syncStatus, in seconds.", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "The type of the row. Can be one of \"router\" or \"vpn\". There is one \"router\" row and one row for each configured \"vpn\". Each row represents a table of information that is synchronized between Config Sync and replication mates. The allowed values and their meaning are:\n\n
\n\"router\" - The Config Sync database row is for the Router.\n\"vpn\" - The Config Sync database row is for a Message VPN.\n
\n", + "enum": [ + "router", + "vpn" + ], + "type": "string" + } + }, + "type": "object" + }, + "ConfigSyncLocalDatabaseRowCollections": { + "properties": {}, + "type": "object" + }, + "ConfigSyncLocalDatabaseRowLinks": { + "properties": { + "uri": { + "description": "The URI of this Config Sync Local Database object.", + "type": "string" + } + }, + "type": "object" + }, + "ConfigSyncLocalDatabaseRowResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/ConfigSyncLocalDatabaseRowCollections" + }, + "data": { + "$ref": "#/definitions/ConfigSyncLocalDatabaseRow" + }, + "links": { + "$ref": "#/definitions/ConfigSyncLocalDatabaseRowLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "ConfigSyncLocalDatabaseRowsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/ConfigSyncLocalDatabaseRowCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/ConfigSyncLocalDatabaseRow" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/ConfigSyncLocalDatabaseRowLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrCluster": { + "properties": { + "authenticationBasicEnabled": { + "description": "Indicates whether basic authentication is enabled for Cluster Links.", + "type": "boolean" + }, + "authenticationBasicType": { + "description": "The type of basic authentication to use for Cluster Links. The allowed values and their meaning are:\n\n
\n\"internal\" - Use locally configured password.\n\"none\" - No authentication.\n
\n", + "enum": [ + "internal", + "none" + ], + "type": "string" + }, + "authenticationClientCertEnabled": { + "description": "Indicates whether client certificate authentication is enabled for Cluster Links.", + "type": "boolean" + }, + "directOnlyEnabled": { + "description": "Indicates whether this cluster only supports direct messaging. If true, guaranteed messages will not be transmitted through the cluster.", + "type": "boolean" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "enabled": { + "description": "Indicates whether the Cluster is enabled.", + "type": "boolean" + }, + "failureReason": { + "description": "The failure reason for the Cluster being down.", + "type": "string" + }, + "nodeName": { + "description": "The name of this node in the Cluster. This is the name that this broker (or redundant group of brokers) is know by to other nodes in the Cluster. The name is chosen automatically to be either this broker's Router Name or Mate Router Name, depending on which Active Standby Role (primary or backup) this broker plays in its redundancy group.", + "type": "string" + }, + "subscriptionDbBuildPercentage": { + "description": "Cluster Subscription Database build completion percentage. Available since 2.20.", + "format": "int64", + "type": "integer" + }, + "tlsServerCertEnforceTrustedCommonNameEnabled": { + "description": "Indicates whether the common name provided by the remote broker is enforced against the list of trusted common names configured for the Link. If enabled, the certificate's common name must match one of the trusted common names for the Link to be accepted. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "boolean" + }, + "tlsServerCertMaxChainDepth": { + "description": "The maximum allowed depth of a certificate chain. The depth of a chain is defined as the number of signing CA certificates that are present in the chain back to a trusted self-signed root CA certificate.", + "format": "int64", + "type": "integer" + }, + "tlsServerCertValidateDateEnabled": { + "description": "Indicates whether validation of the \"Not Before\" and \"Not After\" validity dates in the certificate is enabled. When disabled, the certificate is accepted even if the certificate is not valid based on these dates.", + "type": "boolean" + }, + "tlsServerCertValidateNameEnabled": { + "description": "Enable or disable the standard TLS authentication mechanism of verifying the name used to connect to the bridge. If enabled, the name used to connect to the bridge is checked against the names specified in the certificate returned by the remote router. Legacy Common Name validation is not performed if Server Certificate Name Validation is enabled, even if Common Name validation is also enabled. Available since 2.18.", + "type": "boolean" + }, + "up": { + "description": "Indicates whether the Cluster is operationally up.", + "type": "boolean" + }, + "uptime": { + "description": "The amount of time in seconds since the Cluster was up.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRule": { + "properties": { + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "enabled": { + "description": "Indicates whether a certificate matching rule is enabled.", + "type": "boolean" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleAttributeFilter": { + "properties": { + "attributeName": { + "description": "Link Attribute to be tested.", + "type": "string" + }, + "attributeValue": { + "description": "Expected attribute value.", + "type": "string" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "filterName": { + "description": "The name of the filter.", + "type": "string" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleAttributeFilterCollections": { + "properties": {}, + "type": "object" + }, + "DmrClusterCertMatchingRuleAttributeFilterLinks": { + "properties": { + "uri": { + "description": "The URI of this Certificate Matching Rule Attribute Filter object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleAttributeFilterResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterCollections" + }, + "data": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilter" + }, + "links": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCertMatchingRuleAttributeFiltersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilter" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCertMatchingRuleCollections": { + "properties": { + "attributeFilters": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleCollectionsAttributeFilters" + }, + "conditions": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleCollectionsConditions" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleCollectionsAttributeFilters": { + "properties": { + "count": { + "description": "The total number of objects in the attributeFilters collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleCollectionsConditions": { + "properties": { + "count": { + "description": "The total number of objects in the conditions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleCondition": { + "properties": { + "attribute": { + "description": "Link Attribute to be compared with certificate content. Either an attribute or an expression must be provided on creation, but not both.", + "type": "string" + }, + "comparisonMode": { + "description": "The comparison mode to use. The allowed values and their meaning are:\n\n
\n\"matches-attribute\" - Certificate field matches an attribute value exactly.\n\"matches-expression\" - Certificate field matches a glob expression.\n
\n", + "type": "string" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "expression": { + "description": "Glob expression to be matched with certificate content. Either an expression or an attribute must be provided on creation, but not both.", + "type": "string" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + }, + "source": { + "description": "Certificate field to be compared with the Attribute. The allowed values and their meaning are:\n\n
\n\"certificate-thumbprint\" - The attribute is computed as the SHA-1 hash over the entire DER-encoded contents of the client certificate.\n\"common-name\" - The attribute is extracted from the certificate's first instance of the Common Name attribute in the Subject DN.\n\"common-name-last\" - The attribute is extracted from the certificate's last instance of the Common Name attribute in the Subject DN.\n\"subject-alternate-name-msupn\" - The attribute is extracted from the certificate's Other Name type of the Subject Alternative Name and must have the msUPN signature.\n\"uid\" - The attribute is extracted from the certificate's first instance of the User Identifier attribute in the Subject DN.\n\"uid-last\" - The attribute is extracted from the certificate's last instance of the User Identifier attribute in the Subject DN.\n\"org-unit\" - The attribute is extracted from the certificate's first instance of the Org Unit attribute in the Subject DN.\n\"org-unit-last\" - The attribute is extracted from the certificate's last instance of the Org Unit attribute in the Subject DN.\n\"issuer\" - The attribute is extracted from the certificate's Issuer DN.\n\"subject\" - The attribute is extracted from the certificate's Subject DN.\n\"serial-number\" - The attribute is extracted from the certificate's Serial Number.\n\"dns-name\" - The attribute is extracted from the certificate's Subject Alt Name DNSName.\n\"ip-address\" - The attribute is extracted from the certificate's Subject Alt Name IPAddress.\n
\n", + "enum": [ + "certificate-thumbprint", + "common-name", + "common-name-last", + "subject-alternate-name-msupn", + "uid", + "uid-last", + "org-unit", + "org-unit-last", + "issuer", + "subject", + "serial-number", + "dns-name", + "ip-address" + ], + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleConditionCollections": { + "properties": {}, + "type": "object" + }, + "DmrClusterCertMatchingRuleConditionLinks": { + "properties": { + "uri": { + "description": "The URI of this Certificate Matching Rule Condition object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleConditionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionCollections" + }, + "data": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleCondition" + }, + "links": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCertMatchingRuleConditionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleCondition" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCertMatchingRuleLinks": { + "properties": { + "attributeFiltersUri": { + "description": "The URI of this Certificate Matching Rule's collection of Certificate Matching Rule Attribute Filter objects.", + "type": "string" + }, + "conditionsUri": { + "description": "The URI of this Certificate Matching Rule's collection of Certificate Matching Rule Condition objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Certificate Matching Rule object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterCertMatchingRuleResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleCollections" + }, + "data": { + "$ref": "#/definitions/DmrClusterCertMatchingRule" + }, + "links": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCertMatchingRulesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRule" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterCollections": { + "properties": { + "certMatchingRules": { + "$ref": "#/definitions/DmrClusterCollectionsCertMatchingRules" + }, + "links": { + "$ref": "#/definitions/DmrClusterCollectionsLinks" + }, + "topologyIssues": { + "$ref": "#/definitions/DmrClusterCollectionsTopologyIssues" + } + }, + "type": "object" + }, + "DmrClusterCollectionsCertMatchingRules": { + "properties": { + "count": { + "description": "The total number of objects in the certMatchingRules collection. Available since 2.28.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterCollectionsLinks": { + "properties": { + "count": { + "description": "The total number of objects in the links collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterCollectionsTopologyIssues": { + "properties": { + "count": { + "description": "The total number of objects in the topologyIssues collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterLink": { + "properties": { + "authenticationScheme": { + "description": "The authentication scheme to be used by the Link which initiates connections to the remote node. The allowed values and their meaning are:\n\n
\n\"basic\" - Basic Authentication Scheme (via username and password).\n\"client-certificate\" - Client Certificate Authentication Scheme (via certificate file or content).\n
\n", + "enum": [ + "basic", + "client-certificate" + ], + "type": "string" + }, + "authenticationSchemeSecure": { + "description": "Indicates whether certificate matching rules are used. Available since 2.28.", + "type": "boolean" + }, + "clientProfileName": { + "description": "The name of the Client Profile used by the Link.", + "type": "string" + }, + "clientProfileQueueControl1MaxDepth": { + "description": "The maximum depth of the \"Control 1\" (C-1) priority queue, in work units. Each work unit is 2048 bytes of message data.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueControl1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Control 1\" (C-1) priority queue, regardless of the `clientProfileQueueControl1MaxDepth` value.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect1MaxDepth": { + "description": "The maximum depth of the \"Direct 1\" (D-1) priority queue, in work units. Each work unit is 2048 bytes of message data.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 1\" (D-1) priority queue, regardless of the `clientProfileQueueDirect1MaxDepth` value.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect2MaxDepth": { + "description": "The maximum depth of the \"Direct 2\" (D-2) priority queue, in work units. Each work unit is 2048 bytes of message data.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect2MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 2\" (D-2) priority queue, regardless of the `clientProfileQueueDirect2MaxDepth` value.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect3MaxDepth": { + "description": "The maximum depth of the \"Direct 3\" (D-3) priority queue, in work units. Each work unit is 2048 bytes of message data.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueDirect3MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 3\" (D-3) priority queue, regardless of the `clientProfileQueueDirect3MaxDepth` value.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueGuaranteed1MaxDepth": { + "description": "The maximum depth of the \"Guaranteed 1\" (G-1) priority queue, in work units. Each work unit is 2048 bytes of message data.", + "format": "int32", + "type": "integer" + }, + "clientProfileQueueGuaranteed1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Guaranteed 1\" (G-3) priority queue, regardless of the `clientProfileQueueGuaranteed1MaxDepth` value.", + "format": "int32", + "type": "integer" + }, + "clientProfileTcpCongestionWindowSize": { + "description": "The TCP initial congestion window size, in multiples of the TCP Maximum Segment Size (MSS). Changing the value from its default of 2 results in non-compliance with RFC 2581. Contact support before changing this value.", + "format": "int64", + "type": "integer" + }, + "clientProfileTcpKeepaliveCount": { + "description": "The number of TCP keepalive retransmissions to be carried out before declaring that the remote end is not available.", + "format": "int64", + "type": "integer" + }, + "clientProfileTcpKeepaliveIdleTime": { + "description": "The amount of time a connection must remain idle before TCP begins sending keepalive probes, in seconds.", + "format": "int64", + "type": "integer" + }, + "clientProfileTcpKeepaliveInterval": { + "description": "The amount of time between TCP keepalive retransmissions when no acknowledgement is received, in seconds.", + "format": "int64", + "type": "integer" + }, + "clientProfileTcpMaxSegmentSize": { + "description": "The TCP maximum segment size, in bytes. Changes are applied to all existing connections.", + "format": "int64", + "type": "integer" + }, + "clientProfileTcpMaxWindowSize": { + "description": "The TCP maximum window size, in kilobytes. Changes are applied to all existing connections.", + "format": "int64", + "type": "integer" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "egressFlowWindowSize": { + "description": "The number of outstanding guaranteed messages that can be sent over the Link before acknowledgement is received by the sender.", + "format": "int64", + "type": "integer" + }, + "enabled": { + "description": "Indicates whether the Link is enabled. When disabled, subscription sets of this and the remote node are not kept up-to-date, and messages are not exchanged with the remote node. Published guaranteed messages will be queued up for future delivery based on current subscription sets.", + "type": "boolean" + }, + "failureReason": { + "description": "The failure reason for the Link being down.", + "type": "string" + }, + "initiator": { + "description": "The initiator of the Link's TCP connections. The allowed values and their meaning are:\n\n
\n\"lexical\" - The \"higher\" node-name initiates.\n\"local\" - The local node initiates.\n\"remote\" - The remote node initiates.\n
\n", + "enum": [ + "lexical", + "local", + "remote" + ], + "type": "string" + }, + "queueDeadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ) used by the Queue for discarded messages.", + "type": "string" + }, + "queueEventSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueMaxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow for the Queue.", + "format": "int64", + "type": "integer" + }, + "queueMaxMsgSpoolUsage": { + "description": "The maximum message spool usage by the Queue (quota), in megabytes (MB).", + "format": "int64", + "type": "integer" + }, + "queueMaxRedeliveryCount": { + "description": "The maximum number of times the Queue will attempt redelivery of a message prior to it being discarded or moved to the DMQ. A value of 0 means to retry forever.", + "format": "int64", + "type": "integer" + }, + "queueMaxTtl": { + "description": "The maximum time in seconds a message can stay in the Queue when `queueRespectTtlEnabled` is `true`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `queueMaxTtl` configured for the Queue, is exceeded. A value of 0 disables expiry.", + "format": "int64", + "type": "integer" + }, + "queueRejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-queue-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Queue is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n", + "enum": [ + "always", + "when-queue-enabled", + "never" + ], + "type": "string" + }, + "queueRespectTtlEnabled": { + "description": "Indicates whether the the time-to-live (TTL) for messages in the Queue is respected. When enabled, expired messages are discarded or moved to the DMQ.", + "type": "boolean" + }, + "remoteClusterName": { + "description": "The cluster name of the remote node. Available since 2.17.", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the Link.", + "type": "string" + }, + "span": { + "description": "The span of the Link, either internal or external. Internal Links connect nodes within the same Cluster. External Links connect nodes within different Clusters. The allowed values and their meaning are:\n\n
\n\"internal\" - Link to same cluster.\n\"external\" - Link to other cluster.\n
\n", + "enum": [ + "internal", + "external" + ], + "type": "string" + }, + "transportCompressedEnabled": { + "description": "Indicates whether compression is enabled on the Link.", + "type": "boolean" + }, + "transportTlsEnabled": { + "description": "Indicates whether encryption (TLS) is enabled on the Link.", + "type": "boolean" + }, + "up": { + "description": "Indicates whether the Link is operationally up.", + "type": "boolean" + }, + "uptime": { + "description": "The amount of time in seconds since the Link was up.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterLinkAttribute": { + "properties": { + "attributeName": { + "description": "The name of the Attribute.", + "type": "string" + }, + "attributeValue": { + "description": "The value of the Attribute.", + "type": "string" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the Link.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkAttributeCollections": { + "properties": {}, + "type": "object" + }, + "DmrClusterLinkAttributeLinks": { + "properties": { + "uri": { + "description": "The URI of this Link Attribute object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkAttributeResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DmrClusterLinkAttributeCollections" + }, + "data": { + "$ref": "#/definitions/DmrClusterLinkAttribute" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinkAttributeLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkAttributesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DmrClusterLinkAttributeCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DmrClusterLinkAttribute" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinkAttributeLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkChannel": { + "properties": { + "bridgeName": { + "description": "The name of the Bridge used by the Channel.", + "type": "string" + }, + "clientName": { + "description": "The name of the Client used by the Channel.", + "type": "string" + }, + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "establisher": { + "description": "Indicates whether the local node established the Channel.", + "type": "boolean" + }, + "failureReason": { + "description": "The failure reason for the Channel being down.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueName": { + "description": "The name of the Queue used by the Channel.", + "type": "string" + }, + "remoteAddress": { + "description": "The FQDN or IP address (and optional port) of the remote node.", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the Link.", + "type": "string" + }, + "up": { + "description": "Indicates whether the Channel is operationally up.", + "type": "boolean" + }, + "uptime": { + "description": "The amount of time in seconds since the Channel was up.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterLinkChannelCollections": { + "properties": {}, + "type": "object" + }, + "DmrClusterLinkChannelLinks": { + "properties": { + "uri": { + "description": "The URI of this Cluster Link Channels object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkChannelResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DmrClusterLinkChannelCollections" + }, + "data": { + "$ref": "#/definitions/DmrClusterLinkChannel" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinkChannelLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkChannelsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DmrClusterLinkChannelCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DmrClusterLinkChannel" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinkChannelLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkCollections": { + "properties": { + "attributes": { + "$ref": "#/definitions/DmrClusterLinkCollectionsAttributes" + }, + "channels": { + "$ref": "#/definitions/DmrClusterLinkCollectionsChannels" + }, + "remoteAddresses": { + "$ref": "#/definitions/DmrClusterLinkCollectionsRemoteAddresses" + }, + "tlsTrustedCommonNames": { + "$ref": "#/definitions/DmrClusterLinkCollectionsTlsTrustedCommonNames" + } + }, + "type": "object" + }, + "DmrClusterLinkCollectionsAttributes": { + "properties": { + "count": { + "description": "The total number of objects in the attributes collection. Available since 2.28.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterLinkCollectionsChannels": { + "properties": { + "count": { + "description": "The total number of objects in the channels collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterLinkCollectionsRemoteAddresses": { + "properties": { + "count": { + "description": "The total number of objects in the remoteAddresses collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterLinkCollectionsTlsTrustedCommonNames": { + "properties": { + "count": { + "description": "The total number of objects in the tlsTrustedCommonNames collection. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DmrClusterLinkLinks": { + "properties": { + "attributesUri": { + "description": "The URI of this Link's collection of Link Attribute objects. Available since 2.28.", + "type": "string" + }, + "channelsUri": { + "description": "The URI of this Link's collection of Cluster Link Channels objects.", + "type": "string" + }, + "remoteAddressesUri": { + "description": "The URI of this Link's collection of Remote Address objects.", + "type": "string" + }, + "tlsTrustedCommonNamesUri": { + "description": "The URI of this Link's collection of Trusted Common Name objects. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "uri": { + "description": "The URI of this Link object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkRemoteAddress": { + "properties": { + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "remoteAddress": { + "description": "The FQDN or IP address (and optional port) of the remote node. If a port is not provided, it will vary based on the transport encoding: 55555 (plain-text), 55443 (encrypted), or 55003 (compressed).", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the Link.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkRemoteAddressCollections": { + "properties": {}, + "type": "object" + }, + "DmrClusterLinkRemoteAddressLinks": { + "properties": { + "uri": { + "description": "The URI of this Remote Address object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkRemoteAddressResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressCollections" + }, + "data": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddress" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkRemoteAddressesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddress" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DmrClusterLinkCollections" + }, + "data": { + "$ref": "#/definitions/DmrClusterLink" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinkLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkTlsTrustedCommonName": { + "properties": { + "dmrClusterName": { + "description": "The name of the Cluster. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the Link. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "tlsTrustedCommonName": { + "description": "The expected trusted common name of the remote certificate. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkTlsTrustedCommonNameCollections": { + "properties": {}, + "type": "object" + }, + "DmrClusterLinkTlsTrustedCommonNameLinks": { + "properties": { + "uri": { + "description": "The URI of this Trusted Common Name object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinkTlsTrustedCommonNameResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNameCollections" + }, + "data": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonName" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinkTlsTrustedCommonNamesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNameCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonName" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterLinks": { + "properties": { + "certMatchingRulesUri": { + "description": "The URI of this Cluster's collection of Certificate Matching Rule objects. Available since 2.28.", + "type": "string" + }, + "linksUri": { + "description": "The URI of this Cluster's collection of Link objects.", + "type": "string" + }, + "topologyIssuesUri": { + "description": "The URI of this Cluster's collection of Cluster Topology Issue objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Cluster object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterLinksResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DmrClusterLinkCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DmrClusterLink" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinkLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DmrClusterCollections" + }, + "data": { + "$ref": "#/definitions/DmrCluster" + }, + "links": { + "$ref": "#/definitions/DmrClusterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterTopologyIssue": { + "properties": { + "dmrClusterName": { + "description": "The name of the Cluster.", + "type": "string" + }, + "topologyIssue": { + "description": "The topology issue discovered in the Cluster. A topology issue indicates incorrect or inconsistent configuration within the DMR network. Such issues will cause messages to be misdelivered or lost.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterTopologyIssueCollections": { + "properties": {}, + "type": "object" + }, + "DmrClusterTopologyIssueLinks": { + "properties": { + "uri": { + "description": "The URI of this Cluster Topology Issue object.", + "type": "string" + } + }, + "type": "object" + }, + "DmrClusterTopologyIssueResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DmrClusterTopologyIssueCollections" + }, + "data": { + "$ref": "#/definitions/DmrClusterTopologyIssue" + }, + "links": { + "$ref": "#/definitions/DmrClusterTopologyIssueLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClusterTopologyIssuesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DmrClusterTopologyIssueCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DmrClusterTopologyIssue" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterTopologyIssueLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DmrClustersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DmrClusterCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DmrCluster" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DmrClusterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DomainCertAuthoritiesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/DomainCertAuthorityCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/DomainCertAuthority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/DomainCertAuthorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "DomainCertAuthority": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority.", + "type": "string" + }, + "certContent": { + "description": "The PEM formatted content for the trusted root certificate of a domain Certificate Authority.", + "type": "string" + } + }, + "type": "object" + }, + "DomainCertAuthorityCollections": { + "properties": {}, + "type": "object" + }, + "DomainCertAuthorityLinks": { + "properties": { + "uri": { + "description": "The URI of this Domain Certificate Authority object.", + "type": "string" + } + }, + "type": "object" + }, + "DomainCertAuthorityResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/DomainCertAuthorityCollections" + }, + "data": { + "$ref": "#/definitions/DomainCertAuthority" + }, + "links": { + "$ref": "#/definitions/DomainCertAuthorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "EventThreshold": { + "properties": { + "clearPercent": { + "description": "The clear threshold for the value of this counter as a percentage of its maximum value. Falling below this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + }, + "clearValue": { + "description": "The clear threshold for the absolute value of this counter. Falling below this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + }, + "setPercent": { + "description": "The set threshold for the value of this counter as a percentage of its maximum value. Exceeding this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + }, + "setValue": { + "description": "The set threshold for the absolute value of this counter. Exceeding this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "EventThresholdByPercent": { + "properties": { + "clearPercent": { + "description": "The clear threshold for the value of this counter as a percentage of its maximum value. Falling below this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + }, + "setPercent": { + "description": "The set threshold for the value of this counter as a percentage of its maximum value. Exceeding this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "EventThresholdByValue": { + "properties": { + "clearValue": { + "description": "The clear threshold for the absolute value of this counter or rate. Falling below this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + }, + "setValue": { + "description": "The set threshold for the absolute value of this counter or rate. Exceeding this value will trigger a corresponding event.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpn": { + "properties": { + "alias": { + "description": "The name of another Message VPN which this Message VPN is an alias for. Available since 2.14.", + "type": "string" + }, + "authenticationBasicEnabled": { + "description": "Indicates whether basic authentication is enabled for clients connecting to the Message VPN.", + "type": "boolean" + }, + "authenticationBasicProfileName": { + "description": "The name of the RADIUS or LDAP Profile to use for basic authentication.", + "type": "string" + }, + "authenticationBasicRadiusDomain": { + "description": "The RADIUS domain to use for basic authentication.", + "type": "string" + }, + "authenticationBasicType": { + "description": "The type of basic authentication to use for clients connecting to the Message VPN. The allowed values and their meaning are:\n\n
\n\"internal\" - Internal database. Authentication is against Client Usernames.\n\"ldap\" - LDAP authentication. An LDAP profile name must be provided.\n\"radius\" - RADIUS authentication. A RADIUS profile name must be provided.\n\"none\" - No authentication. Anonymous login allowed.\n
\n", + "enum": [ + "internal", + "ldap", + "radius", + "none" + ], + "type": "string" + }, + "authenticationClientCertAllowApiProvidedUsernameEnabled": { + "description": "Indicates whether a client is allowed to specify a Client Username via the API connect method. When disabled, the certificate CN (Common Name) is always used.", + "type": "boolean" + }, + "authenticationClientCertCertificateMatchingRulesEnabled": { + "description": "Indicates whether client certificate matching rules are enabled in the Message VPN. Available since 2.27.", + "type": "boolean" + }, + "authenticationClientCertEnabled": { + "description": "Indicates whether client certificate authentication is enabled in the Message VPN.", + "type": "boolean" + }, + "authenticationClientCertMaxChainDepth": { + "description": "The maximum depth for a client certificate chain. The depth of a chain is defined as the number of signing CA certificates that are present in the chain back to a trusted self-signed root CA certificate.", + "format": "int64", + "type": "integer" + }, + "authenticationClientCertRevocationCheckMode": { + "description": "The desired behavior for client certificate revocation checking. The allowed values and their meaning are:\n\n
\n\"allow-all\" - Allow the client to authenticate, the result of client certificate revocation check is ignored.\n\"allow-unknown\" - Allow the client to authenticate even if the revocation status of his certificate cannot be determined.\n\"allow-valid\" - Allow the client to authenticate only when the revocation check returned an explicit positive response.\n
\n", + "enum": [ + "allow-all", + "allow-unknown", + "allow-valid" + ], + "type": "string" + }, + "authenticationClientCertUsernameSource": { + "description": "The field from the client certificate to use as the client username. The allowed values and their meaning are:\n\n
\n\"certificate-thumbprint\" - The username is computed as the SHA-1 hash over the entire DER-encoded contents of the client certificate.\n\"common-name\" - The username is extracted from the certificate's first instance of the Common Name attribute in the Subject DN.\n\"common-name-last\" - The username is extracted from the certificate's last instance of the Common Name attribute in the Subject DN.\n\"subject-alternate-name-msupn\" - The username is extracted from the certificate's Other Name type of the Subject Alternative Name and must have the msUPN signature.\n\"uid\" - The username is extracted from the certificate's first instance of the User Identifier attribute in the Subject DN.\n\"uid-last\" - The username is extracted from the certificate's last instance of the User Identifier attribute in the Subject DN.\n
\n", + "enum": [ + "certificate-thumbprint", + "common-name", + "common-name-last", + "subject-alternate-name-msupn", + "uid", + "uid-last" + ], + "type": "string" + }, + "authenticationClientCertValidateDateEnabled": { + "description": "Indicates whether the \"Not Before\" and \"Not After\" validity dates in the client certificate are checked.", + "type": "boolean" + }, + "authenticationKerberosAllowApiProvidedUsernameEnabled": { + "description": "Indicates whether a client is allowed to specify a Client Username via the API connect method. When disabled, the Kerberos Principal name is always used.", + "type": "boolean" + }, + "authenticationKerberosEnabled": { + "description": "Indicates whether Kerberos authentication is enabled in the Message VPN.", + "type": "boolean" + }, + "authenticationOauthDefaultProfileName": { + "description": "The name of the profile to use when the client does not supply a profile name. Available since 2.25.", + "type": "string" + }, + "authenticationOauthDefaultProviderName": { + "description": "The name of the provider to use when the client does not supply a provider name. Deprecated since 2.25. authenticationOauthDefaultProviderName and authenticationOauthProviders replaced by authenticationOauthDefaultProfileName and authenticationOauthProfiles.", + "type": "string" + }, + "authenticationOauthEnabled": { + "description": "Indicates whether OAuth authentication is enabled. Available since 2.13.", + "type": "boolean" + }, + "authorizationLdapGroupMembershipAttributeName": { + "description": "The name of the attribute that is retrieved from the LDAP server as part of the LDAP search when authorizing a client connecting to the Message VPN.", + "type": "string" + }, + "authorizationLdapTrimClientUsernameDomainEnabled": { + "description": "Indicates whether client-username domain trimming for LDAP lookups of client connections is enabled. Available since 2.13.", + "type": "boolean" + }, + "authorizationProfileName": { + "description": "The name of the LDAP Profile to use for client authorization.", + "type": "string" + }, + "authorizationType": { + "description": "The type of authorization to use for clients connecting to the Message VPN. The allowed values and their meaning are:\n\n
\n\"ldap\" - LDAP authorization.\n\"internal\" - Internal authorization.\n
\n", + "enum": [ + "ldap", + "internal" + ], + "type": "string" + }, + "averageBindRequestRate": { + "description": "The one minute average of the bind request rate received by the MsgVpn, in binds per second (binds/sec). Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "averageRxByteRate": { + "description": "The one minute average of the message rate received by the Message VPN, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageRxCompressedByteRate": { + "description": "The one minute average of the compressed message rate received by the Message VPN, in bytes per second (B/sec). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "averageRxMsgRate": { + "description": "The one minute average of the message rate received by the Message VPN, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageRxUncompressedByteRate": { + "description": "The one minute average of the uncompressed message rate received by the Message VPN, in bytes per second (B/sec). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "averageTxByteRate": { + "description": "The one minute average of the message rate transmitted by the Message VPN, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageTxCompressedByteRate": { + "description": "The one minute average of the compressed message rate transmitted by the Message VPN, in bytes per second (B/sec). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "averageTxMsgRate": { + "description": "The one minute average of the message rate transmitted by the Message VPN, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageTxUncompressedByteRate": { + "description": "The one minute average of the uncompressed message rate transmitted by the Message VPN, in bytes per second (B/sec). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "bindRequestRate": { + "description": "The current bind request rate received by the MsgVpn, in binds per second (binds/sec). Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "bridgingTlsServerCertEnforceTrustedCommonNameEnabled": { + "description": "Indicates whether the Common Name (CN) in the server certificate from the remote broker is validated for the Bridge. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "boolean" + }, + "bridgingTlsServerCertMaxChainDepth": { + "description": "The maximum depth for a server certificate chain. The depth of a chain is defined as the number of signing CA certificates that are present in the chain back to a trusted self-signed root CA certificate.", + "format": "int64", + "type": "integer" + }, + "bridgingTlsServerCertValidateDateEnabled": { + "description": "Indicates whether the \"Not Before\" and \"Not After\" validity dates in the server certificate are checked.", + "type": "boolean" + }, + "bridgingTlsServerCertValidateNameEnabled": { + "description": "Enable or disable the standard TLS authentication mechanism of verifying the name used to connect to the bridge. If enabled, the name used to connect to the bridge is checked against the names specified in the certificate returned by the remote router. Legacy Common Name validation is not performed if Server Certificate Name Validation is enabled, even if Common Name validation is also enabled. Available since 2.18.", + "type": "boolean" + }, + "configSyncLocalKey": { + "description": "The key for the config sync table of the local Message VPN. Deprecated since 2.22. This attribute has been deprecated.", + "type": "string" + }, + "configSyncLocalLastResult": { + "description": "The result of the last operation on the config sync table of the local Message VPN. Deprecated since 2.22. This attribute has been replaced by 'lastResult' in the ConfigSyncLocalDatabaseRow object.", + "type": "string" + }, + "configSyncLocalRole": { + "description": "The role of the config sync table of the local Message VPN. The allowed values and their meaning are:\n\n
\n\"unknown\" - The role is unknown.\n\"primary\" - Acts as the primary source of config data.\n\"replica\" - Acts as a replica of the primary config data.\n
\n Deprecated since 2.22. This attribute has been replaced by 'role' in the ConfigSyncLocalDatabaseRow object.", + "type": "string" + }, + "configSyncLocalState": { + "description": "The state of the config sync table of the local Message VPN. The allowed values and their meaning are:\n\n
\n\"unknown\" - The state is unknown.\n\"in-sync\" - The config data is synchronized between Message VPNs.\n\"reconciling\" - The config data is reconciling between Message VPNs.\n\"blocked\" - The config data is blocked from reconciling due to an error.\n\"out-of-sync\" - The config data is out of sync between Message VPNs.\n\"down\" - The state is down due to configuration.\n
\n Deprecated since 2.22. This attribute has been replaced by 'syncStatus' in the ConfigSyncLocalDatabaseRow object.", + "type": "string" + }, + "configSyncLocalTimeInState": { + "description": "The amount of time in seconds the config sync table of the local Message VPN has been in the current state. Deprecated since 2.22. This attribute has been replaced by 'timeInState' in the ConfigSyncLocalDatabaseRow object.", + "format": "int32", + "type": "integer" + }, + "controlRxByteCount": { + "description": "The amount of client control messages received from clients by the Message VPN, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "controlRxMsgCount": { + "description": "The number of client control messages received from clients by the Message VPN. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "controlTxByteCount": { + "description": "The amount of client control messages transmitted to clients by the Message VPN, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "controlTxMsgCount": { + "description": "The number of client control messages transmitted to clients by the Message VPN. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "counter": { + "$ref": "#/definitions/MsgVpnCounter" + }, + "dataRxByteCount": { + "description": "The amount of client data messages received from clients by the Message VPN, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataRxMsgCount": { + "description": "The number of client data messages received from clients by the Message VPN. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataTxByteCount": { + "description": "The amount of client data messages transmitted to clients by the Message VPN, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataTxMsgCount": { + "description": "The number of client data messages transmitted to clients by the Message VPN. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "discardedRxMsgCount": { + "description": "The number of messages discarded during reception by the Message VPN. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "discardedTxMsgCount": { + "description": "The number of messages discarded during transmission by the Message VPN. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "distributedCacheManagementEnabled": { + "description": "Indicates whether managing of cache instances over the message bus is enabled in the Message VPN. Deprecated since 2.28. Distributed cache mangement is now redundancy aware and thus no longer requires administrative intervention for operational state.", + "type": "boolean" + }, + "dmrEnabled": { + "description": "Indicates whether Dynamic Message Routing (DMR) is enabled for the Message VPN.", + "type": "boolean" + }, + "enabled": { + "description": "Indicates whether the Message VPN is enabled.", + "type": "boolean" + }, + "eventConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventEgressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventEgressMsgRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "eventEndpointCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventIngressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventIngressMsgRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "eventLargeMsgThreshold": { + "description": "Exceeding this message size in kilobytes (KB) triggers a corresponding Event in the Message VPN.", + "format": "int64", + "type": "integer" + }, + "eventLogTag": { + "description": "The value of the prefix applied to all published Events in the Message VPN.", + "type": "string" + }, + "eventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventPublishClientEnabled": { + "description": "Indicates whether client Events are published in the Message VPN.", + "type": "boolean" + }, + "eventPublishMsgVpnEnabled": { + "description": "Indicates whether Message VPN Events are published in the Message VPN.", + "type": "boolean" + }, + "eventPublishSubscriptionMode": { + "description": "The mode of subscription Events published in the Message VPN. The allowed values and their meaning are:\n\n
\n\"off\" - Disable client level event message publishing.\n\"on-with-format-v1\" - Enable client level event message publishing with format v1.\n\"on-with-no-unsubscribe-events-on-disconnect-format-v1\" - As \"on-with-format-v1\", but unsubscribe events are not generated when a client disconnects. Unsubscribe events are still raised when a client explicitly unsubscribes from its subscriptions.\n\"on-with-format-v2\" - Enable client level event message publishing with format v2.\n\"on-with-no-unsubscribe-events-on-disconnect-format-v2\" - As \"on-with-format-v2\", but unsubscribe events are not generated when a client disconnects. Unsubscribe events are still raised when a client explicitly unsubscribes from its subscriptions.\n
\n", + "enum": [ + "off", + "on-with-format-v1", + "on-with-no-unsubscribe-events-on-disconnect-format-v1", + "on-with-format-v2", + "on-with-no-unsubscribe-events-on-disconnect-format-v2" + ], + "type": "string" + }, + "eventPublishTopicFormatMqttEnabled": { + "description": "Indicates whether Message VPN Events are published in the MQTT format.", + "type": "boolean" + }, + "eventPublishTopicFormatSmfEnabled": { + "description": "Indicates whether Message VPN Events are published in the SMF format.", + "type": "boolean" + }, + "eventServiceAmqpConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceMqttConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceRestIncomingConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceSmfConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceWebConnectionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventSubscriptionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventTransactedSessionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventTransactionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "exportSubscriptionsEnabled": { + "description": "Indicates whether exports of subscriptions to other routers in the network over neighbour links is enabled in the Message VPN.", + "type": "boolean" + }, + "failureReason": { + "description": "The reason for the Message VPN failure.", + "type": "string" + }, + "jndiEnabled": { + "description": "Indicates whether the JNDI access for clients is enabled in the Message VPN.", + "type": "boolean" + }, + "loginRxMsgCount": { + "description": "The number of login request messages received by the Message VPN. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "loginTxMsgCount": { + "description": "The number of login response messages transmitted by the Message VPN. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "maxConnectionCount": { + "description": "The maximum number of client connections to the Message VPN.", + "format": "int64", + "type": "integer" + }, + "maxEffectiveEndpointCount": { + "description": "The effective maximum number of Queues and Topic Endpoints allowed in the Message VPN.", + "format": "int32", + "type": "integer" + }, + "maxEffectiveRxFlowCount": { + "description": "The effective maximum number of receive flows allowed in the Message VPN.", + "format": "int32", + "type": "integer" + }, + "maxEffectiveSubscriptionCount": { + "description": "The effective maximum number of subscriptions allowed in the Message VPN.", + "format": "int64", + "type": "integer" + }, + "maxEffectiveTransactedSessionCount": { + "description": "The effective maximum number of transacted sessions allowed in the Message VPN.", + "format": "int32", + "type": "integer" + }, + "maxEffectiveTransactionCount": { + "description": "The effective maximum number of transactions allowed in the Message VPN.", + "format": "int32", + "type": "integer" + }, + "maxEffectiveTxFlowCount": { + "description": "The effective maximum number of transmit flows allowed in the Message VPN.", + "format": "int32", + "type": "integer" + }, + "maxEgressFlowCount": { + "description": "The maximum number of transmit flows that can be created in the Message VPN.", + "format": "int64", + "type": "integer" + }, + "maxEndpointCount": { + "description": "The maximum number of Queues and Topic Endpoints that can be created in the Message VPN.", + "format": "int64", + "type": "integer" + }, + "maxIngressFlowCount": { + "description": "The maximum number of receive flows that can be created in the Message VPN.", + "format": "int64", + "type": "integer" + }, + "maxMsgSpoolUsage": { + "description": "The maximum message spool usage by the Message VPN, in megabytes.", + "format": "int64", + "type": "integer" + }, + "maxSubscriptionCount": { + "description": "The maximum number of local client subscriptions that can be added to the Message VPN. This limit is not enforced when a subscription is added using a management interface, such as CLI or SEMP.", + "format": "int64", + "type": "integer" + }, + "maxTransactedSessionCount": { + "description": "The maximum number of transacted sessions that can be created in the Message VPN.", + "format": "int64", + "type": "integer" + }, + "maxTransactionCount": { + "description": "The maximum number of transactions that can be created in the Message VPN.", + "format": "int64", + "type": "integer" + }, + "mqttRetainMaxMemory": { + "description": "The maximum total memory usage of the MQTT Retain feature for this Message VPN, in MB. If the maximum memory is reached, any arriving retain messages that require more memory are discarded. A value of -1 indicates that the memory is bounded only by the global max memory limit. A value of 0 prevents MQTT Retain from becoming operational.", + "format": "int32", + "type": "integer" + }, + "msgReplayActiveCount": { + "description": "The number of message replays that are currently active in the Message VPN.", + "format": "int32", + "type": "integer" + }, + "msgReplayFailedCount": { + "description": "The number of message replays that are currently failed in the Message VPN.", + "format": "int32", + "type": "integer" + }, + "msgReplayInitializingCount": { + "description": "The number of message replays that are currently initializing in the Message VPN.", + "format": "int32", + "type": "integer" + }, + "msgReplayPendingCompleteCount": { + "description": "The number of message replays that are pending complete in the Message VPN.", + "format": "int32", + "type": "integer" + }, + "msgSpoolMsgCount": { + "description": "The current number of messages spooled (persisted in the Message Spool) in the Message VPN. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "msgSpoolRxMsgCount": { + "description": "The number of guaranteed messages received by the Message VPN. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "msgSpoolTxMsgCount": { + "description": "The number of guaranteed messages transmitted by the Message VPN. One message to multiple clients is counted as one message. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "msgSpoolUsage": { + "description": "The current message spool usage by the Message VPN, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "rate": { + "$ref": "#/definitions/MsgVpnRate" + }, + "replicationAckPropagationIntervalMsgCount": { + "description": "The acknowledgement (ACK) propagation interval for the replication Bridge, in number of replicated messages. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationActiveAckPropTxMsgCount": { + "description": "The number of acknowledgement messages propagated to the replication standby remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationActiveAsyncQueuedMsgCount": { + "description": "The number of async messages queued to the replication standby remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationActiveLocallyConsumedMsgCount": { + "description": "The number of messages consumed in the replication active local Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationActiveMateFlowCongestedPeakTime": { + "description": "The peak amount of time in seconds the message flow has been congested to the replication standby remote Message VPN. Available since 2.12.", + "format": "int32", + "type": "integer" + }, + "replicationActiveMateFlowNotCongestedPeakTime": { + "description": "The peak amount of time in seconds the message flow has not been congested to the replication standby remote Message VPN. Available since 2.12.", + "format": "int32", + "type": "integer" + }, + "replicationActivePromotedQueuedMsgCount": { + "description": "The number of promoted messages queued to the replication standby remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationActiveReconcileRequestRxMsgCount": { + "description": "The number of reconcile request messages received from the replication standby remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationActiveSyncEligiblePeakTime": { + "description": "The peak amount of time in seconds sync replication has been eligible to the replication standby remote Message VPN. Available since 2.12.", + "format": "int32", + "type": "integer" + }, + "replicationActiveSyncIneligiblePeakTime": { + "description": "The peak amount of time in seconds sync replication has been ineligible to the replication standby remote Message VPN. Available since 2.12.", + "format": "int32", + "type": "integer" + }, + "replicationActiveSyncQueuedAsAsyncMsgCount": { + "description": "The number of sync messages queued as async to the replication standby remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationActiveSyncQueuedMsgCount": { + "description": "The number of sync messages queued to the replication standby remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationActiveTransitionToSyncIneligibleCount": { + "description": "The number of sync replication ineligible transitions to the replication standby remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationBridgeAuthenticationBasicClientUsername": { + "description": "The Client Username the replication Bridge uses to login to the remote Message VPN. Available since 2.12.", + "type": "string" + }, + "replicationBridgeAuthenticationScheme": { + "description": "The authentication scheme for the replication Bridge in the Message VPN. The allowed values and their meaning are:\n\n
\n\"basic\" - Basic Authentication Scheme (via username and password).\n\"client-certificate\" - Client Certificate Authentication Scheme (via certificate file or content).\n
\n Available since 2.12.", + "enum": [ + "basic", + "client-certificate" + ], + "type": "string" + }, + "replicationBridgeBoundToQueue": { + "description": "Indicates whether the local replication Bridge is bound to the Queue in the remote Message VPN. Available since 2.12.", + "type": "boolean" + }, + "replicationBridgeCompressedDataEnabled": { + "description": "Indicates whether compression is used for the replication Bridge. Available since 2.12.", + "type": "boolean" + }, + "replicationBridgeEgressFlowWindowSize": { + "description": "The size of the window used for guaranteed messages published to the replication Bridge, in messages. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationBridgeName": { + "description": "The name of the local replication Bridge in the Message VPN. Available since 2.12.", + "type": "string" + }, + "replicationBridgeRetryDelay": { + "description": "The number of seconds that must pass before retrying the replication Bridge connection. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationBridgeTlsEnabled": { + "description": "Indicates whether encryption (TLS) is enabled for the replication Bridge connection. Available since 2.12.", + "type": "boolean" + }, + "replicationBridgeUnidirectionalClientProfileName": { + "description": "The Client Profile for the unidirectional replication Bridge in the Message VPN. It is used only for the TCP parameters. Available since 2.12.", + "type": "string" + }, + "replicationBridgeUp": { + "description": "Indicates whether the local replication Bridge is operationally up in the Message VPN. Available since 2.12.", + "type": "boolean" + }, + "replicationEnabled": { + "description": "Indicates whether replication is enabled for the Message VPN. Available since 2.12.", + "type": "boolean" + }, + "replicationQueueBound": { + "description": "Indicates whether the remote replication Bridge is bound to the Queue in the Message VPN. Available since 2.12.", + "type": "boolean" + }, + "replicationQueueMaxMsgSpoolUsage": { + "description": "The maximum message spool usage by the replication Bridge local Queue (quota), in megabytes. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationQueueRejectMsgToSenderOnDiscardEnabled": { + "description": "Indicates whether messages discarded on this replication Bridge Queue are rejected back to the sender. Available since 2.12.", + "type": "boolean" + }, + "replicationRejectMsgWhenSyncIneligibleEnabled": { + "description": "Indicates whether guaranteed messages published to synchronously replicated Topics are rejected back to the sender when synchronous replication becomes ineligible. Available since 2.12.", + "type": "boolean" + }, + "replicationRemoteBridgeName": { + "description": "The name of the remote replication Bridge in the Message VPN. Available since 2.12.", + "type": "string" + }, + "replicationRemoteBridgeUp": { + "description": "Indicates whether the remote replication Bridge is operationally up in the Message VPN. Available since 2.12.", + "type": "boolean" + }, + "replicationRole": { + "description": "The replication role for the Message VPN. The allowed values and their meaning are:\n\n
\n\"active\" - Assume the Active role in replication for the Message VPN.\n\"standby\" - Assume the Standby role in replication for the Message VPN.\n
\n Available since 2.12.", + "enum": [ + "active", + "standby" + ], + "type": "string" + }, + "replicationStandbyAckPropOutOfSeqRxMsgCount": { + "description": "The number of acknowledgement messages received out of sequence from the replication active remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyAckPropRxMsgCount": { + "description": "The number of acknowledgement messages received from the replication active remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyReconcileRequestTxMsgCount": { + "description": "The number of reconcile request messages transmitted to the replication active remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyRxMsgCount": { + "description": "The number of messages received from the replication active remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyTransactionRequestCount": { + "description": "The number of transaction requests received from the replication active remote Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyTransactionRequestFailureCount": { + "description": "The number of transaction requests received from the replication active remote Message VPN that failed. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyTransactionRequestSuccessCount": { + "description": "The number of transaction requests received from the replication active remote Message VPN that succeeded. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "replicationSyncEligible": { + "description": "Indicates whether sync replication is eligible in the Message VPN. Available since 2.12.", + "type": "boolean" + }, + "replicationTransactionMode": { + "description": "Indicates whether synchronous or asynchronous replication mode is used for all transactions within the Message VPN. The allowed values and their meaning are:\n\n
\n\"sync\" - Messages are acknowledged when replicated (spooled remotely).\n\"async\" - Messages are acknowledged when pending replication (spooled locally).\n
\n Available since 2.12.", + "enum": [ + "sync", + "async" + ], + "type": "string" + }, + "restTlsServerCertEnforceTrustedCommonNameEnabled": { + "description": "Indicates whether the Common Name (CN) in the server certificate from the remote REST Consumer is validated. Deprecated since 2.17. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "boolean" + }, + "restTlsServerCertMaxChainDepth": { + "description": "The maximum depth for a REST Consumer server certificate chain. The depth of a chain is defined as the number of signing CA certificates that are present in the chain back to a trusted self-signed root CA certificate.", + "format": "int64", + "type": "integer" + }, + "restTlsServerCertValidateDateEnabled": { + "description": "Indicates whether the \"Not Before\" and \"Not After\" validity dates in the REST Consumer server certificate are checked.", + "type": "boolean" + }, + "restTlsServerCertValidateNameEnabled": { + "description": "Enable or disable the standard TLS authentication mechanism of verifying the name used to connect to the remote REST Consumer. If enabled, the name used to connect to the remote REST Consumer is checked against the names specified in the certificate returned by the remote router. Legacy Common Name validation is not performed if Server Certificate Name Validation is enabled, even if Common Name validation is also enabled. Available since 2.17.", + "type": "boolean" + }, + "rxByteCount": { + "description": "The amount of messages received from clients by the Message VPN, in bytes (B). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "rxByteRate": { + "description": "The current message rate received by the Message VPN, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "rxCompressedByteCount": { + "description": "The amount of compressed messages received by the Message VPN, in bytes (B). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "rxCompressedByteRate": { + "description": "The current compressed message rate received by the Message VPN, in bytes per second (B/sec). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "rxCompressionRatio": { + "description": "The compression ratio for messages received by the message VPN. Available since 2.12.", + "type": "string" + }, + "rxMsgCount": { + "description": "The number of messages received from clients by the Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "rxMsgRate": { + "description": "The current message rate received by the Message VPN, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "rxUncompressedByteCount": { + "description": "The amount of uncompressed messages received by the Message VPN, in bytes (B). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "rxUncompressedByteRate": { + "description": "The current uncompressed message rate received by the Message VPN, in bytes per second (B/sec). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "sempOverMsgBusAdminClientEnabled": { + "description": "Indicates whether the \"admin\" level \"client\" commands are enabled for SEMP over the message bus in the Message VPN.", + "type": "boolean" + }, + "sempOverMsgBusAdminDistributedCacheEnabled": { + "description": "Indicates whether the \"admin\" level \"Distributed Cache\" commands are enabled for SEMP over the message bus in the Message VPN.", + "type": "boolean" + }, + "sempOverMsgBusAdminEnabled": { + "description": "Indicates whether the \"admin\" level commands are enabled for SEMP over the message bus in the Message VPN.", + "type": "boolean" + }, + "sempOverMsgBusEnabled": { + "description": "Indicates whether SEMP over the message bus is enabled in the Message VPN.", + "type": "boolean" + }, + "sempOverMsgBusShowEnabled": { + "description": "Indicates whether the \"show\" level commands are enabled for SEMP over the message bus in the Message VPN.", + "type": "boolean" + }, + "serviceAmqpMaxConnectionCount": { + "description": "The maximum number of AMQP client connections that can be simultaneously connected to the Message VPN. This value may be higher than supported by the platform.", + "format": "int64", + "type": "integer" + }, + "serviceAmqpPlainTextCompressed": { + "description": "Indicates whether the AMQP Service is compressed in the Message VPN.", + "type": "boolean" + }, + "serviceAmqpPlainTextEnabled": { + "description": "Indicates whether the AMQP Service is enabled in the Message VPN.", + "type": "boolean" + }, + "serviceAmqpPlainTextFailureReason": { + "description": "The reason for the AMQP Service failure in the Message VPN.", + "type": "string" + }, + "serviceAmqpPlainTextListenPort": { + "description": "The port number for plain-text AMQP clients that connect to the Message VPN. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled.", + "format": "int64", + "type": "integer" + }, + "serviceAmqpPlainTextUp": { + "description": "Indicates whether the AMQP Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceAmqpTlsCompressed": { + "description": "Indicates whether the TLS related AMQP Service is compressed in the Message VPN.", + "type": "boolean" + }, + "serviceAmqpTlsEnabled": { + "description": "Indicates whether encryption (TLS) is enabled for AMQP clients in the Message VPN.", + "type": "boolean" + }, + "serviceAmqpTlsFailureReason": { + "description": "The reason for the TLS related AMQP Service failure in the Message VPN.", + "type": "string" + }, + "serviceAmqpTlsListenPort": { + "description": "The port number for AMQP clients that connect to the Message VPN over TLS. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled.", + "format": "int64", + "type": "integer" + }, + "serviceAmqpTlsUp": { + "description": "Indicates whether the TLS related AMQP Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceMqttAuthenticationClientCertRequest": { + "description": "Determines when to request a client certificate from an incoming MQTT client connecting via a TLS port. The allowed values and their meaning are:\n\n
\n\"always\" - Always ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"never\" - Never ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"when-enabled-in-message-vpn\" - Only ask for a client-certificate if client certificate authentication is enabled under \"message-vpn >  authentication > client-certificate > shutdown\".\n
\n Available since 2.21.", + "enum": [ + "always", + "never", + "when-enabled-in-message-vpn" + ], + "type": "string" + }, + "serviceMqttMaxConnectionCount": { + "description": "The maximum number of MQTT client connections that can be simultaneously connected to the Message VPN.", + "format": "int64", + "type": "integer" + }, + "serviceMqttPlainTextCompressed": { + "description": "Indicates whether the MQTT Service is compressed in the Message VPN.", + "type": "boolean" + }, + "serviceMqttPlainTextEnabled": { + "description": "Indicates whether the MQTT Service is enabled in the Message VPN.", + "type": "boolean" + }, + "serviceMqttPlainTextFailureReason": { + "description": "The reason for the MQTT Service failure in the Message VPN.", + "type": "string" + }, + "serviceMqttPlainTextListenPort": { + "description": "The port number for plain-text MQTT clients that connect to the Message VPN. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled.", + "format": "int64", + "type": "integer" + }, + "serviceMqttPlainTextUp": { + "description": "Indicates whether the MQTT Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceMqttTlsCompressed": { + "description": "Indicates whether the TLS related MQTT Service is compressed in the Message VPN.", + "type": "boolean" + }, + "serviceMqttTlsEnabled": { + "description": "Indicates whether encryption (TLS) is enabled for MQTT clients in the Message VPN.", + "type": "boolean" + }, + "serviceMqttTlsFailureReason": { + "description": "The reason for the TLS related MQTT Service failure in the Message VPN.", + "type": "string" + }, + "serviceMqttTlsListenPort": { + "description": "The port number for MQTT clients that connect to the Message VPN over TLS. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled.", + "format": "int64", + "type": "integer" + }, + "serviceMqttTlsUp": { + "description": "Indicates whether the TLS related MQTT Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceMqttTlsWebSocketCompressed": { + "description": "Indicates whether the TLS related Web transport MQTT Service is compressed in the Message VPN.", + "type": "boolean" + }, + "serviceMqttTlsWebSocketEnabled": { + "description": "Indicates whether encryption (TLS) is enabled for MQTT Web clients in the Message VPN.", + "type": "boolean" + }, + "serviceMqttTlsWebSocketFailureReason": { + "description": "The reason for the TLS related Web transport MQTT Service failure in the Message VPN.", + "type": "string" + }, + "serviceMqttTlsWebSocketListenPort": { + "description": "The port number for MQTT clients that connect to the Message VPN using WebSocket over TLS. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled.", + "format": "int64", + "type": "integer" + }, + "serviceMqttTlsWebSocketUp": { + "description": "Indicates whether the TLS related Web transport MQTT Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceMqttWebSocketCompressed": { + "description": "Indicates whether the Web transport related MQTT Service is compressed in the Message VPN.", + "type": "boolean" + }, + "serviceMqttWebSocketEnabled": { + "description": "Indicates whether the Web transport for the SMF Service is enabled in the Message VPN.", + "type": "boolean" + }, + "serviceMqttWebSocketFailureReason": { + "description": "The reason for the Web transport related MQTT Service failure in the Message VPN.", + "type": "string" + }, + "serviceMqttWebSocketListenPort": { + "description": "The port number for plain-text MQTT clients that connect to the Message VPN using WebSocket. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled.", + "format": "int64", + "type": "integer" + }, + "serviceMqttWebSocketUp": { + "description": "Indicates whether the Web transport related MQTT Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceRestIncomingAuthenticationClientCertRequest": { + "description": "Determines when to request a client certificate from an incoming REST Producer connecting via a TLS port. The allowed values and their meaning are:\n\n
\n\"always\" - Always ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"never\" - Never ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"when-enabled-in-message-vpn\" - Only ask for a client-certificate if client certificate authentication is enabled under \"message-vpn >  authentication > client-certificate > shutdown\".\n
\n Available since 2.21.", + "enum": [ + "always", + "never", + "when-enabled-in-message-vpn" + ], + "type": "string" + }, + "serviceRestIncomingAuthorizationHeaderHandling": { + "description": "The handling of Authorization headers for incoming REST connections. The allowed values and their meaning are:\n\n
\n\"drop\" - Do not attach the Authorization header to the message as a user property. This configuration is most secure.\n\"forward\" - Forward the Authorization header, attaching it to the message as a user property in the same way as other headers. For best security, use the drop setting.\n\"legacy\" - If the Authorization header was used for authentication to the broker, do not attach it to the message. If the Authorization header was not used for authentication to the broker, attach it to the message as a user property in the same way as other headers. For best security, use the drop setting.\n
\n Available since 2.19.", + "enum": [ + "drop", + "forward", + "legacy" + ], + "type": "string" + }, + "serviceRestIncomingMaxConnectionCount": { + "description": "The maximum number of REST incoming client connections that can be simultaneously connected to the Message VPN. This value may be higher than supported by the platform.", + "format": "int64", + "type": "integer" + }, + "serviceRestIncomingPlainTextCompressed": { + "description": "Indicates whether the incoming REST Service is compressed in the Message VPN.", + "type": "boolean" + }, + "serviceRestIncomingPlainTextEnabled": { + "description": "Indicates whether the REST Service is enabled in the Message VPN for incoming clients.", + "type": "boolean" + }, + "serviceRestIncomingPlainTextFailureReason": { + "description": "The reason for the incoming REST Service failure in the Message VPN.", + "type": "string" + }, + "serviceRestIncomingPlainTextListenPort": { + "description": "The port number for incoming plain-text REST clients that connect to the Message VPN. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled.", + "format": "int64", + "type": "integer" + }, + "serviceRestIncomingPlainTextUp": { + "description": "Indicates whether the incoming REST Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceRestIncomingTlsCompressed": { + "description": "Indicates whether the TLS related incoming REST Service is compressed in the Message VPN.", + "type": "boolean" + }, + "serviceRestIncomingTlsEnabled": { + "description": "Indicates whether encryption (TLS) is enabled for incoming REST clients in the Message VPN.", + "type": "boolean" + }, + "serviceRestIncomingTlsFailureReason": { + "description": "The reason for the TLS related incoming REST Service failure in the Message VPN.", + "type": "string" + }, + "serviceRestIncomingTlsListenPort": { + "description": "The port number for incoming REST clients that connect to the Message VPN over TLS. The port must be unique across the message backbone. A value of 0 means that the listen-port is unassigned and cannot be enabled.", + "format": "int64", + "type": "integer" + }, + "serviceRestIncomingTlsUp": { + "description": "Indicates whether the TLS related incoming REST Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceRestMode": { + "description": "The REST service mode for incoming REST clients that connect to the Message VPN. The allowed values and their meaning are:\n\n
\n\"gateway\" - Act as a message gateway through which REST messages are propagated.\n\"messaging\" - Act as a message broker on which REST messages are queued.\n
\n", + "enum": [ + "gateway", + "messaging" + ], + "type": "string" + }, + "serviceRestOutgoingMaxConnectionCount": { + "description": "The maximum number of REST Consumer (outgoing) client connections that can be simultaneously connected to the Message VPN.", + "format": "int64", + "type": "integer" + }, + "serviceSmfMaxConnectionCount": { + "description": "The maximum number of SMF client connections that can be simultaneously connected to the Message VPN. This value may be higher than supported by the platform.", + "format": "int64", + "type": "integer" + }, + "serviceSmfPlainTextEnabled": { + "description": "Indicates whether the SMF Service is enabled in the Message VPN.", + "type": "boolean" + }, + "serviceSmfPlainTextFailureReason": { + "description": "The reason for the SMF Service failure in the Message VPN.", + "type": "string" + }, + "serviceSmfPlainTextUp": { + "description": "Indicates whether the SMF Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceSmfTlsEnabled": { + "description": "Indicates whether encryption (TLS) is enabled for SMF clients in the Message VPN.", + "type": "boolean" + }, + "serviceSmfTlsFailureReason": { + "description": "The reason for the TLS related SMF Service failure in the Message VPN.", + "type": "string" + }, + "serviceSmfTlsUp": { + "description": "Indicates whether the TLS related SMF Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceWebAuthenticationClientCertRequest": { + "description": "Determines when to request a client certificate from a Web Transport client connecting via a TLS port. The allowed values and their meaning are:\n\n
\n\"always\" - Always ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"never\" - Never ask for a client certificate regardless of the \"message-vpn > authentication > client-certificate > shutdown\" configuration.\n\"when-enabled-in-message-vpn\" - Only ask for a client-certificate if client certificate authentication is enabled under \"message-vpn >  authentication > client-certificate > shutdown\".\n
\n Available since 2.21.", + "enum": [ + "always", + "never", + "when-enabled-in-message-vpn" + ], + "type": "string" + }, + "serviceWebMaxConnectionCount": { + "description": "The maximum number of Web Transport client connections that can be simultaneously connected to the Message VPN. This value may be higher than supported by the platform.", + "format": "int64", + "type": "integer" + }, + "serviceWebPlainTextEnabled": { + "description": "Indicates whether the Web transport for the SMF Service is enabled in the Message VPN.", + "type": "boolean" + }, + "serviceWebPlainTextFailureReason": { + "description": "The reason for the Web transport related SMF Service failure in the Message VPN.", + "type": "string" + }, + "serviceWebPlainTextUp": { + "description": "Indicates whether the Web transport for the SMF Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "serviceWebTlsEnabled": { + "description": "Indicates whether TLS is enabled for SMF clients in the Message VPN that use the Web transport.", + "type": "boolean" + }, + "serviceWebTlsFailureReason": { + "description": "The reason for the TLS related Web transport SMF Service failure in the Message VPN.", + "type": "string" + }, + "serviceWebTlsUp": { + "description": "Indicates whether the TLS related Web transport SMF Service is operationally up in the Message VPN.", + "type": "boolean" + }, + "state": { + "description": "The operational state of the local Message VPN. The allowed values and their meaning are:\n\n
\n\"up\" - The Message VPN is operationally up.\n\"down\" - The Message VPN is operationally down.\n\"standby\" - The Message VPN is operationally replication standby.\n
\n", + "type": "string" + }, + "subscriptionExportProgress": { + "description": "The progress of the subscription export task, in percent complete.", + "format": "int64", + "type": "integer" + }, + "systemManager": { + "description": "Indicates whether the Message VPN is the system manager for handling system level SEMP get requests and system level event publishing.", + "type": "boolean" + }, + "tlsAllowDowngradeToPlainTextEnabled": { + "description": "Indicates whether SMF clients connected to the Message VPN are allowed to downgrade their connections from TLS to plain text.", + "type": "boolean" + }, + "tlsAverageRxByteRate": { + "description": "The one minute average of the TLS message rate received by the Message VPN, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "tlsAverageTxByteRate": { + "description": "The one minute average of the TLS message rate transmitted by the Message VPN, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "tlsRxByteCount": { + "description": "The amount of TLS messages received by the Message VPN, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "tlsRxByteRate": { + "description": "The current TLS message rate received by the Message VPN, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "tlsTxByteCount": { + "description": "The amount of TLS messages transmitted by the Message VPN, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "tlsTxByteRate": { + "description": "The current TLS message rate transmitted by the Message VPN, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "txByteCount": { + "description": "The amount of messages transmitted to clients by the Message VPN, in bytes (B). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "txByteRate": { + "description": "The current message rate transmitted by the Message VPN, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "txCompressedByteCount": { + "description": "The amount of compressed messages transmitted by the Message VPN, in bytes (B). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "txCompressedByteRate": { + "description": "The current compressed message rate transmitted by the Message VPN, in bytes per second (B/sec). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "txCompressionRatio": { + "description": "The compression ratio for messages transmitted by the message VPN. Available since 2.12.", + "type": "string" + }, + "txMsgCount": { + "description": "The number of messages transmitted to clients by the Message VPN. Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "txMsgRate": { + "description": "The current message rate transmitted by the Message VPN, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "txUncompressedByteCount": { + "description": "The amount of uncompressed messages transmitted by the Message VPN, in bytes (B). Available since 2.12.", + "format": "int64", + "type": "integer" + }, + "txUncompressedByteRate": { + "description": "The current uncompressed message rate transmitted by the Message VPN, in bytes per second (B/sec). Available since 2.12.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnAclProfile": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile.", + "type": "string" + }, + "clientConnectDefaultAction": { + "description": "The default action to take when a client using the ACL Profile connects to the Message VPN. The allowed values and their meaning are:\n\n
\n\"allow\" - Allow client connection unless an exception is found for it.\n\"disallow\" - Disallow client connection unless an exception is found for it.\n
\n", + "enum": [ + "allow", + "disallow" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "publishTopicDefaultAction": { + "description": "The default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. The allowed values and their meaning are:\n\n
\n\"allow\" - Allow topic unless an exception is found for it.\n\"disallow\" - Disallow topic unless an exception is found for it.\n
\n", + "enum": [ + "allow", + "disallow" + ], + "type": "string" + }, + "subscribeShareNameDefaultAction": { + "description": "The default action to take when a client using the ACL Profile subscribes to a share-name subscription in the Message VPN. The allowed values and their meaning are:\n\n
\n\"allow\" - Allow topic unless an exception is found for it.\n\"disallow\" - Disallow topic unless an exception is found for it.\n
\n Available since 2.14.", + "enum": [ + "allow", + "disallow" + ], + "type": "string" + }, + "subscribeTopicDefaultAction": { + "description": "The default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. The allowed values and their meaning are:\n\n
\n\"allow\" - Allow topic unless an exception is found for it.\n\"disallow\" - Disallow topic unless an exception is found for it.\n
\n", + "enum": [ + "allow", + "disallow" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileClientConnectException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile.", + "type": "string" + }, + "clientConnectExceptionAddress": { + "description": "The IP address/netmask of the client connect exception in canonical CIDR form.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileClientConnectExceptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnAclProfileClientConnectExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Connect Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileClientConnectExceptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileClientConnectExceptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileCollections": { + "properties": { + "clientConnectExceptions": { + "$ref": "#/definitions/MsgVpnAclProfileCollectionsClientConnectExceptions" + }, + "publishExceptions": { + "$ref": "#/definitions/MsgVpnAclProfileCollectionsPublishExceptions" + }, + "publishTopicExceptions": { + "$ref": "#/definitions/MsgVpnAclProfileCollectionsPublishTopicExceptions" + }, + "subscribeExceptions": { + "$ref": "#/definitions/MsgVpnAclProfileCollectionsSubscribeExceptions" + }, + "subscribeShareNameExceptions": { + "$ref": "#/definitions/MsgVpnAclProfileCollectionsSubscribeShareNameExceptions" + }, + "subscribeTopicExceptions": { + "$ref": "#/definitions/MsgVpnAclProfileCollectionsSubscribeTopicExceptions" + } + }, + "type": "object" + }, + "MsgVpnAclProfileCollectionsClientConnectExceptions": { + "properties": { + "count": { + "description": "The total number of objects in the clientConnectExceptions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnAclProfileCollectionsPublishExceptions": { + "properties": { + "count": { + "description": "The total number of objects in the publishExceptions collection. Deprecated since 2.14. Replaced by publishTopicExceptions.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnAclProfileCollectionsPublishTopicExceptions": { + "properties": { + "count": { + "description": "The total number of objects in the publishTopicExceptions collection. Available since 2.14.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnAclProfileCollectionsSubscribeExceptions": { + "properties": { + "count": { + "description": "The total number of objects in the subscribeExceptions collection. Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnAclProfileCollectionsSubscribeShareNameExceptions": { + "properties": { + "count": { + "description": "The total number of objects in the subscribeShareNameExceptions collection. Available since 2.14.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnAclProfileCollectionsSubscribeTopicExceptions": { + "properties": { + "count": { + "description": "The total number of objects in the subscribeTopicExceptions collection. Available since 2.14.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnAclProfileLinks": { + "properties": { + "clientConnectExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Client Connect Exception objects.", + "type": "string" + }, + "publishExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Publish Topic Exception objects. Deprecated since 2.14. Replaced by publishTopicExceptions.", + "type": "string" + }, + "publishTopicExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Publish Topic Exception objects. Available since 2.14.", + "type": "string" + }, + "subscribeExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Subscribe Topic Exception objects. Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "type": "string" + }, + "subscribeShareNameExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Subscribe Share Name Exception objects. Available since 2.14.", + "type": "string" + }, + "subscribeTopicExceptionsUri": { + "description": "The URI of this ACL Profile's collection of Subscribe Topic Exception objects. Available since 2.14.", + "type": "string" + }, + "uri": { + "description": "The URI of this ACL Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfilePublishException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile. Deprecated since 2.14. Replaced by publishTopicExceptions.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.14. Replaced by publishTopicExceptions.", + "type": "string" + }, + "publishExceptionTopic": { + "description": "The topic for the exception to the default action taken. May include wildcard characters. Deprecated since 2.14. Replaced by publishTopicExceptions.", + "type": "string" + }, + "topicSyntax": { + "description": "The syntax of the topic for the exception to the default action taken. The allowed values and their meaning are:\n\n
\n\"smf\" - Topic uses SMF syntax.\n\"mqtt\" - Topic uses MQTT syntax.\n
\n Deprecated since 2.14. Replaced by publishTopicExceptions.", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfilePublishExceptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnAclProfilePublishExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Publish Topic Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfilePublishExceptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAclProfilePublishException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfilePublishExceptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfilePublishException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfilePublishTopicException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "publishTopicException": { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "type": "string" + }, + "publishTopicExceptionSyntax": { + "description": "The syntax of the topic for the exception to the default action taken. The allowed values and their meaning are:\n\n
\n\"smf\" - Topic uses SMF syntax.\n\"mqtt\" - Topic uses MQTT syntax.\n
\n", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfilePublishTopicExceptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnAclProfilePublishTopicExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Publish Topic Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfilePublishTopicExceptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfilePublishTopicExceptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAclProfileCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAclProfile" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile. Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "type": "string" + }, + "subscribeExceptionTopic": { + "description": "The topic for the exception to the default action taken. May include wildcard characters. Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "type": "string" + }, + "topicSyntax": { + "description": "The syntax of the topic for the exception to the default action taken. The allowed values and their meaning are:\n\n
\n\"smf\" - Topic uses SMF syntax.\n\"mqtt\" - Topic uses MQTT syntax.\n
\n Deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeExceptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnAclProfileSubscribeExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Subscribe Topic Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeExceptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeExceptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeShareNameException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "subscribeShareNameException": { + "description": "The subscribe share name exception to the default action taken. May include wildcard characters.", + "type": "string" + }, + "subscribeShareNameExceptionSyntax": { + "description": "The syntax of the subscribe share name for the exception to the default action taken. The allowed values and their meaning are:\n\n
\n\"smf\" - Topic uses SMF syntax.\n\"mqtt\" - Topic uses MQTT syntax.\n
\n", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeShareNameExceptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnAclProfileSubscribeShareNameExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Subscribe Share Name Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeShareNameExceptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeShareNameExceptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeTopicException": { + "properties": { + "aclProfileName": { + "description": "The name of the ACL Profile.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "subscribeTopicException": { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "type": "string" + }, + "subscribeTopicExceptionSyntax": { + "description": "The syntax of the topic for the exception to the default action taken. The allowed values and their meaning are:\n\n
\n\"smf\" - Topic uses SMF syntax.\n\"mqtt\" - Topic uses MQTT syntax.\n
\n", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeTopicExceptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnAclProfileSubscribeTopicExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Subscribe Topic Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAclProfileSubscribeTopicExceptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicException" + }, + "links": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfileSubscribeTopicExceptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAclProfilesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAclProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfile": { + "properties": { + "active": { + "description": "Indicates whether the profile is active. An enabled profile may not be active if discovery is not complete, if there is no issuer specified, or if there is another profile with the same issuer. Available since 2.26.", + "type": "boolean" + }, + "authorizationGroupsClaimName": { + "description": "The name of the groups claim. If non-empty, the specified claim will be used to determine groups for authorization. If empty, the authorizationType attribute of the Message VPN will be used to determine authorization.", + "type": "string" + }, + "authorizationGroupsClaimStringFormat": { + "description": "The format of the authorization groups claim value when it is a string. The allowed values and their meaning are:\n\n
\n\"single\" - When the claim is a string, it is interpreted as a single group.\n\"space-delimited\" - When the claim is a string, it is interpreted as a space-delimited list of groups, similar to the \"scope\" claim.\n
\n Available since 2.32.", + "enum": [ + "single", + "space-delimited" + ], + "type": "string" + }, + "clientId": { + "description": "The OAuth client id.", + "type": "string" + }, + "clientRequiredType": { + "description": "The required value for the TYP field in the ID token header.", + "type": "string" + }, + "clientValidateTypeEnabled": { + "description": "Enable or disable verification of the TYP field in the ID token header.", + "type": "boolean" + }, + "disconnectOnTokenExpirationEnabled": { + "description": "Enable or disable the disconnection of clients when their tokens expire. Changing this value does not affect existing clients, only new client connections.", + "type": "boolean" + }, + "discoveryLastRefreshFailureReason": { + "description": "The reason for the last discovery endpoint refresh failure.", + "type": "string" + }, + "discoveryLastRefreshFailureTime": { + "description": "The timestamp of the last discovery endpoint refresh failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "discoveryLastRefreshTime": { + "description": "The timestamp of the last discovery endpoint refresh success. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "discoveryNextScheduledRefreshTime": { + "description": "The timestamp of the next scheduled discovery endpoint refresh. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "discoveryRefreshFailureCount": { + "description": "The number of discovery endpoint refresh failures.", + "format": "int64", + "type": "integer" + }, + "enabled": { + "description": "Enable or disable the OAuth profile.", + "type": "boolean" + }, + "endpointDiscovery": { + "description": "The OpenID Connect discovery endpoint or OAuth Authorization Server Metadata endpoint.", + "type": "string" + }, + "endpointDiscoveryRefreshInterval": { + "description": "The number of seconds between discovery endpoint requests.", + "format": "int32", + "type": "integer" + }, + "endpointIntrospection": { + "description": "The OAuth introspection endpoint.", + "type": "string" + }, + "endpointIntrospectionOperational": { + "description": "The operational OAuth introspection endpoint.", + "type": "string" + }, + "endpointIntrospectionTimeout": { + "description": "The maximum time in seconds a token introspection request is allowed to take.", + "format": "int32", + "type": "integer" + }, + "endpointJwks": { + "description": "The OAuth JWKS endpoint.", + "type": "string" + }, + "endpointJwksOperational": { + "description": "The operational OAuth JWKS endpoint.", + "type": "string" + }, + "endpointJwksRefreshInterval": { + "description": "The number of seconds between JWKS endpoint requests.", + "format": "int32", + "type": "integer" + }, + "endpointUserinfo": { + "description": "The OpenID Connect Userinfo endpoint.", + "type": "string" + }, + "endpointUserinfoOperational": { + "description": "The operational OpenID Connect Userinfo endpoint.", + "type": "string" + }, + "endpointUserinfoTimeout": { + "description": "The maximum time in seconds a userinfo request is allowed to take.", + "format": "int32", + "type": "integer" + }, + "expiredTokenCount": { + "description": "The number of requests with an expired OAuth token.", + "format": "int64", + "type": "integer" + }, + "groupsFoundInTokenCount": { + "description": "The number of times the groups were successfully found in the ID token or access token for request authentication.", + "format": "int64", + "type": "integer" + }, + "inactiveReason": { + "description": "The reason the profile is not active. The allowed values and their meaning are:\n\n
\n\"msg-vpn-disabled\" - The Message VPN is disabled.\n\"oauth-disabled\" - OAuth is disabled for the Message VPN.\n\"profile-disabled\" - The OAuth profile is disabled.\n\"missing-issuer\" - The issuer has not been discovered or configured.\n\"duplicate-issuer\" - Another OAuth profile in the Message VPN already has the same issuer.\n\"none\" - The OAuth profile is active.\n
\n Available since 2.26.", + "type": "string" + }, + "introspectionAverageTime": { + "description": "The one minute average of the time required to complete a token introspection, in milliseconds (ms).", + "format": "int32", + "type": "integer" + }, + "introspectionLastFailureReason": { + "description": "The reason for the introspection endpoint request failure.", + "type": "string" + }, + "introspectionLastFailureTime": { + "description": "The timestamp of the last introspection endpoint request failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "introspectionMissingCount": { + "description": "The number of failures during request authentication due to missing introspection configuration (a introspection request was required but no introspection endpoint was configured).", + "format": "int64", + "type": "integer" + }, + "introspectionMissingGroupsCount": { + "description": "The number of introspection request made from the broker during request authentication for this OAuth profile where the configured groups claim wasn't found in the access token or the introspection response.", + "format": "int64", + "type": "integer" + }, + "introspectionMissingUsernameCount": { + "description": "The number of introspection requests made from the broker during request authentication for this OAuth profile where the configured username claim wasn't found in the access token or introspection response.", + "format": "int64", + "type": "integer" + }, + "introspectionRequestCount": { + "description": "The number of requests made to the introspection endpoint during request authentication.", + "format": "int64", + "type": "integer" + }, + "introspectionResponseInvalidCount": { + "description": "The number of introspection responses during request authentication that couldn't be parsed.", + "format": "int64", + "type": "integer" + }, + "introspectionStatusOkCount": { + "description": "The number of introspection requests made from the broker during request authentication for this OAuth profile with 200 status responses.", + "format": "int64", + "type": "integer" + }, + "introspectionStatusOtherCount": { + "description": "The number of introspection requests made from the broker during request authentication for this OAuth profile with status responses other than 200.", + "format": "int64", + "type": "integer" + }, + "introspectionTokenNotActiveCount": { + "description": "The number of introspection responses indicating that the provided token was not active.", + "format": "int64", + "type": "integer" + }, + "invalidTokenCount": { + "description": "The number of requests with an invalid OAuth token.", + "format": "int64", + "type": "integer" + }, + "issuer": { + "description": "The Issuer Identifier for the OAuth provider.", + "type": "string" + }, + "issuerOperational": { + "description": "The operational Issuer Identifier for the OAuth provider.", + "type": "string" + }, + "jwksLastRefreshFailureReason": { + "description": "The reason for the last JWKS public key refresh failure.", + "type": "string" + }, + "jwksLastRefreshFailureTime": { + "description": "The timestamp of the last JWKS public key refresh failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "jwksLastRefreshTime": { + "description": "The timestamp of the last JWKS public key refresh success. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "jwksNextScheduledRefreshTime": { + "description": "The timestamp of the next scheduled JWKS public key refresh. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "jwksRefreshFailureCount": { + "description": "The number of JWKS public key refresh failures.", + "format": "int64", + "type": "integer" + }, + "mqttUsernameValidateEnabled": { + "description": "Enable or disable whether the API provided MQTT client username will be validated against the username calculated from the token(s). When enabled, connection attempts by MQTT clients are rejected if they differ. Note that this value only applies to MQTT clients; SMF client usernames will not be validated.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + }, + "oauthRole": { + "description": "The OAuth role of the broker. The allowed values and their meaning are:\n\n
\n\"client\" - The broker is in the OAuth client role.\n\"resource-server\" - The broker is in the OAuth resource server role.\n
\n", + "enum": [ + "client", + "resource-server" + ], + "type": "string" + }, + "requestCount": { + "description": "The number of requests (successful and unsuccessful) using this OAuth profile.", + "format": "int64", + "type": "integer" + }, + "resourceServerParseAccessTokenEnabled": { + "description": "Enable or disable parsing of the access token as a JWT.", + "type": "boolean" + }, + "resourceServerRequiredAudience": { + "description": "The required audience value.", + "type": "string" + }, + "resourceServerRequiredIssuer": { + "description": "The required issuer value.", + "type": "string" + }, + "resourceServerRequiredScope": { + "description": "A space-separated list of scopes that must be present in the scope claim.", + "type": "string" + }, + "resourceServerRequiredType": { + "description": "The required TYP value.", + "type": "string" + }, + "resourceServerValidateAudienceEnabled": { + "description": "Enable or disable verification of the audience claim in the access token or introspection response.", + "type": "boolean" + }, + "resourceServerValidateIssuerEnabled": { + "description": "Enable or disable verification of the issuer claim in the access token or introspection response.", + "type": "boolean" + }, + "resourceServerValidateScopeEnabled": { + "description": "Enable or disable verification of the scope claim in the access token or introspection response.", + "type": "boolean" + }, + "resourceServerValidateTypeEnabled": { + "description": "Enable or disable verification of the TYP field in the access token header.", + "type": "boolean" + }, + "successCount": { + "description": "The number of successful authentications using this OAuth profile.", + "format": "int64", + "type": "integer" + }, + "userinfoAverageTime": { + "description": "The one minute average of the time required to complete a token userinfo request, in milliseconds (ms).", + "format": "int32", + "type": "integer" + }, + "userinfoLastFailureReason": { + "description": "The reason for the userinfo endpoint request failure.", + "type": "string" + }, + "userinfoLastFailureTime": { + "description": "The timestamp of the last userinfo endpoint request failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "userinfoMissingCount": { + "description": "The number of failures due to missing Userinfo configuration (a Userinfo request was required but no Userinfo endpoint was configured) during request authentication.", + "format": "int64", + "type": "integer" + }, + "userinfoMissingGroupsCount": { + "description": "The number of Userinfo request made from the broker during request authentication for this OAuth profile where the configured groups claim wasn't found in the ID token or the Userinfo response.", + "format": "int64", + "type": "integer" + }, + "userinfoMissingUsernameCount": { + "description": "The number of Userinfo requests made from the broker during request authentication for this OAuth profile where the configured username claim wasn't found in the ID token or Userinfo response.", + "format": "int64", + "type": "integer" + }, + "userinfoRequestCount": { + "description": "The number of requests made to the Userinfo endpoint during request authentication.", + "format": "int64", + "type": "integer" + }, + "userinfoResponseInvalidCount": { + "description": "The number of Userinfo requests made from the broker during request authentication for this OAuth profile with responses that couldn't be parsed.", + "format": "int64", + "type": "integer" + }, + "userinfoStatusOkCount": { + "description": "The number of Userinfo requests made from the broker during request authentication for this OAuth profile with 200 status responses.", + "format": "int64", + "type": "integer" + }, + "userinfoStatusOtherCount": { + "description": "The number of Userinfo requests made from the broker during request authentication for this OAuth profile with status responses other than 200.", + "format": "int64", + "type": "integer" + }, + "userinfoSubjectMismatchCount": { + "description": "The number of Userinfo requests made from the broker during request authentication for this OAuth profile with subject claims that did not match the subject from the ID token.", + "format": "int64", + "type": "integer" + }, + "usernameClaimName": { + "description": "The name of the username claim.", + "type": "string" + }, + "usernameFoundInTokenCount": { + "description": "The number of time the username was successfully found in the ID token or access token for request authentication.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileClientRequiredClaim": { + "properties": { + "clientRequiredClaimName": { + "description": "The name of the ID token claim to verify.", + "type": "string" + }, + "clientRequiredClaimValue": { + "description": "The required claim value.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileClientRequiredClaimCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileClientRequiredClaimLinks": { + "properties": { + "uri": { + "description": "The URI of this Required Claim object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileClientRequiredClaimResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaim" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileClientRequiredClaimsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaim" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileCollections": { + "properties": { + "clientRequiredClaims": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileCollectionsClientRequiredClaims" + }, + "resourceServerRequiredClaims": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileCollectionsResourceServerRequiredClaims" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileCollectionsClientRequiredClaims": { + "properties": { + "count": { + "description": "The total number of objects in the clientRequiredClaims collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileCollectionsResourceServerRequiredClaims": { + "properties": { + "count": { + "description": "The total number of objects in the resourceServerRequiredClaims collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileLinks": { + "properties": { + "clientRequiredClaimsUri": { + "description": "The URI of this OAuth Profile's collection of Required Claim objects.", + "type": "string" + }, + "resourceServerRequiredClaimsUri": { + "description": "The URI of this OAuth Profile's collection of Required Claim objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this OAuth Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResourceServerRequiredClaim": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + }, + "resourceServerRequiredClaimName": { + "description": "The name of the access token claim to verify.", + "type": "string" + }, + "resourceServerRequiredClaimValue": { + "description": "The required claim value.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimLinks": { + "properties": { + "uri": { + "description": "The URI of this Required Claim object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaim" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaim" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfileResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfile" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProfilesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProvider": { + "properties": { + "audienceClaimName": { + "description": "The audience claim name, indicating which part of the object to use for determining the audience. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "audienceClaimSource": { + "description": "The audience claim source, indicating where to search for the audience value. The allowed values and their meaning are:\n\n
\n\"access-token\" - The OAuth v2 access_token.\n\"id-token\" - The OpenID Connect id_token.\n\"introspection\" - The result of introspecting the OAuth v2 access_token.\n
\n Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "enum": [ + "access-token", + "id-token", + "introspection" + ], + "type": "string" + }, + "audienceClaimValue": { + "description": "The required audience value for a token to be considered valid. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "audienceValidationEnabled": { + "description": "Indicates whether audience validation is enabled. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + }, + "authenticationSuccessCount": { + "description": "The number of OAuth Provider client authentications that succeeded. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "authorizationGroupClaimName": { + "description": "The authorization group claim name, indicating which part of the object to use for determining the authorization group. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "authorizationGroupClaimSource": { + "description": "The authorization group claim source, indicating where to search for the authorization group name. The allowed values and their meaning are:\n\n
\n\"access-token\" - The OAuth v2 access_token.\n\"id-token\" - The OpenID Connect id_token.\n\"introspection\" - The result of introspecting the OAuth v2 access_token.\n
\n Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "enum": [ + "access-token", + "id-token", + "introspection" + ], + "type": "string" + }, + "authorizationGroupEnabled": { + "description": "Indicates whether OAuth based authorization is enabled and the configured authorization type for OAuth clients is overridden. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + }, + "disconnectOnTokenExpirationEnabled": { + "description": "Indicates whether clients are disconnected when their tokens expire. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + }, + "enabled": { + "description": "Indicates whether OAuth Provider client authentication is enabled. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + }, + "jwksLastRefreshFailureReason": { + "description": "The reason for the last JWKS public key refresh failure. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "jwksLastRefreshFailureTime": { + "description": "The timestamp of the last JWKS public key refresh failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int32", + "type": "integer" + }, + "jwksLastRefreshTime": { + "description": "The timestamp of the last JWKS public key refresh success. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int32", + "type": "integer" + }, + "jwksNextScheduledRefreshTime": { + "description": "The timestamp of the next scheduled JWKS public key refresh. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int32", + "type": "integer" + }, + "jwksRefreshFailureCount": { + "description": "The number of JWKS public key refresh failures. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "jwksRefreshInterval": { + "description": "The number of seconds between forced JWKS public key refreshing. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int32", + "type": "integer" + }, + "jwksUri": { + "description": "The URI where the OAuth provider publishes its JWKS public keys. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "loginFailureIncorrectAudienceValueCount": { + "description": "The number of login failures due to an incorrect audience value. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureInvalidAudienceValueCount": { + "description": "The number of login failures due to an invalid audience value. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureInvalidAuthorizationGroupValueCount": { + "description": "The number of login failures due to an invalid authorization group value (zero-length or non-string). Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureInvalidJwtSignatureCount": { + "description": "The number of login failures due to an invalid JWT signature. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureInvalidUsernameValueCount": { + "description": "The number of login failures due to an invalid username value. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureMismatchedUsernameCount": { + "description": "The number of login failures due to a mismatched username. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureMissingAudienceCount": { + "description": "The number of login failures due to a missing audience claim. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureMissingJwkCount": { + "description": "The number of login failures due to a missing JSON Web Key (JWK). Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureMissingOrInvalidTokenCount": { + "description": "The number of login failures due to a missing or invalid token. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureMissingUsernameCount": { + "description": "The number of login failures due to a missing username. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureTokenExpiredCount": { + "description": "The number of login failures due to a token being expired. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureTokenIntrospectionErroredCount": { + "description": "The number of login failures due to a token introspection error response. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureTokenIntrospectionFailureCount": { + "description": "The number of login failures due to a failure to complete the token introspection. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureTokenIntrospectionHttpsErrorCount": { + "description": "The number of login failures due to a token introspection HTTPS error. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureTokenIntrospectionInvalidCount": { + "description": "The number of login failures due to a token introspection response being invalid. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureTokenIntrospectionTimeoutCount": { + "description": "The number of login failures due to a token introspection timeout. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureTokenNotValidYetCount": { + "description": "The number of login failures due to a token not being valid yet. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "loginFailureUnsupportedAlgCount": { + "description": "The number of login failures due to an unsupported algorithm. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "missingAuthorizationGroupCount": { + "description": "The number of clients that did not provide an authorization group claim value when expected. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "type": "string" + }, + "oauthProviderName": { + "description": "The name of the OAuth Provider. Deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "type": "string" + }, + "tokenIgnoreTimeLimitsEnabled": { + "description": "Indicates whether to ignore time limits and accept tokens that are not yet valid or are no longer valid. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + }, + "tokenIntrospectionAverageTime": { + "description": "The one minute average of the time required to complete a token introspection, in milliseconds (ms). Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int32", + "type": "integer" + }, + "tokenIntrospectionLastFailureReason": { + "description": "The reason for the last token introspection failure. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "tokenIntrospectionLastFailureTime": { + "description": "The timestamp of the last token introspection failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int32", + "type": "integer" + }, + "tokenIntrospectionParameterName": { + "description": "The parameter name used to identify the token during access token introspection. A standards compliant OAuth introspection server expects \"token\". Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "tokenIntrospectionSuccessCount": { + "description": "The number of token introspection successes. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + }, + "tokenIntrospectionTimeout": { + "description": "The maximum time in seconds a token introspection is allowed to take. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "format": "int32", + "type": "integer" + }, + "tokenIntrospectionUri": { + "description": "The token introspection URI of the OAuth authentication server. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "tokenIntrospectionUsername": { + "description": "The username to use when logging into the token introspection URI. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "usernameClaimName": { + "description": "The username claim name, indicating which part of the object to use for determining the username. Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "string" + }, + "usernameClaimSource": { + "description": "The username claim source, indicating where to search for the username value. The allowed values and their meaning are:\n\n
\n\"access-token\" - The OAuth v2 access_token.\n\"id-token\" - The OpenID Connect id_token.\n\"introspection\" - The result of introspecting the OAuth v2 access_token.\n
\n Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "enum": [ + "access-token", + "id-token", + "introspection" + ], + "type": "string" + }, + "usernameValidateEnabled": { + "description": "Indicates whether the API provided username will be validated against the username calculated from the token(s). Deprecated since 2.25. authenticationOauthProviders replaced by authenticationOauthProfiles.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProviderCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnAuthenticationOauthProviderLinks": { + "properties": { + "uri": { + "description": "The URI of this OAuth Provider object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthenticationOauthProviderResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvider" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthenticationOauthProvidersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvider" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthorizationGroup": { + "properties": { + "aclProfileName": { + "description": "The ACL Profile of the Authorization Group.", + "type": "string" + }, + "authorizationGroupName": { + "description": "The name of the Authorization Group. For LDAP groups, special care is needed if the group name contains special characters such as '#', '+', ';', '=' as the value of the group name returned from the LDAP server might prepend those characters with '\\'. For example a group name called 'test#,lab,com' will be returned from the LDAP server as 'test\\#,lab,com'.", + "type": "string" + }, + "clientProfileName": { + "description": "The Client Profile of the Authorization Group.", + "type": "string" + }, + "enabled": { + "description": "Indicates whether the Authorization Group is enabled.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthorizationGroupCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnAuthorizationGroupLinks": { + "properties": { + "uri": { + "description": "The URI of this Authorization Group object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnAuthorizationGroupResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnAuthorizationGroup" + }, + "links": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnAuthorizationGroupsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnAuthorizationGroup" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridge": { + "properties": { + "averageRxByteRate": { + "description": "The one minute average of the message rate received from the Bridge, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageRxMsgRate": { + "description": "The one minute average of the message rate received from the Bridge, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageTxByteRate": { + "description": "The one minute average of the message rate transmitted to the Bridge, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageTxMsgRate": { + "description": "The one minute average of the message rate transmitted to the Bridge, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "boundToQueue": { + "description": "Indicates whether the Bridge is bound to the queue in the remote Message VPN.", + "type": "boolean" + }, + "bridgeName": { + "description": "The name of the Bridge.", + "type": "string" + }, + "bridgeVirtualRouter": { + "description": "The virtual router of the Bridge. The allowed values and their meaning are:\n\n
\n\"primary\" - The Bridge is used for the primary virtual router.\n\"backup\" - The Bridge is used for the backup virtual router.\n\"auto\" - The Bridge is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "clientName": { + "description": "The name of the Client for the Bridge.", + "type": "string" + }, + "compressed": { + "description": "Indicates whether messages transmitted over the Bridge are compressed.", + "type": "boolean" + }, + "controlRxByteCount": { + "description": "The amount of client control messages received from the Bridge, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "controlRxMsgCount": { + "description": "The number of client control messages received from the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "controlTxByteCount": { + "description": "The amount of client control messages transmitted to the Bridge, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "controlTxMsgCount": { + "description": "The number of client control messages transmitted to the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "counter": { + "$ref": "#/definitions/MsgVpnBridgeCounter" + }, + "dataRxByteCount": { + "description": "The amount of client data messages received from the Bridge, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataRxMsgCount": { + "description": "The number of client data messages received from the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataTxByteCount": { + "description": "The amount of client data messages transmitted to the Bridge, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataTxMsgCount": { + "description": "The number of client data messages transmitted to the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "discardedRxMsgCount": { + "description": "The number of messages discarded during reception from the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "discardedTxMsgCount": { + "description": "The number of messages discarded during transmission to the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "enabled": { + "description": "Indicates whether the Bridge is enabled.", + "type": "boolean" + }, + "encrypted": { + "description": "Indicates whether messages transmitted over the Bridge are encrypted with TLS.", + "type": "boolean" + }, + "establisher": { + "description": "The establisher of the Bridge connection. The allowed values and their meaning are:\n\n
\n\"local\" - The Bridge connection was established by the local Message VPN.\n\"remote\" - The Bridge connection was established by the remote Message VPN.\n
\n", + "type": "string" + }, + "inboundFailureReason": { + "description": "The reason for the inbound connection failure from the Bridge. If there is no failure reason, an empty string (\"\") is returned.", + "type": "string" + }, + "inboundState": { + "description": "The state of the inbound connection from the Bridge. The allowed values and their meaning are:\n\n
\n\"init\" - The bridge is down but is initializing.\n\"disabled\" - The bridge is down. It has been disabled by configuration.\n\"prepare-wait-to-connect\" - The bridge is down. It is waiting to connect to the remote broker.\n\"prepare-fetching-dns\" - The bridge is down. The domain name of the remote  broker is being resolved.\n\"not-ready-connecting\" - The bridge is down. It is in the process of connecting to the remote broker.\n\"not-ready-handshaking\" - The bridge is down. It has connected to the remote broker, and is in the process of negotiating with it.\n\"not-ready-wait-next\" - The bridge is down. It has failed to connect to a remote broker, and is waiting for the configured remote retry delay to expire before retrying.\n\"not-ready-wait-reuse\" - The bridge is down. It established its own connection to  the remote broker, but determined instead that it should use a pre-existing connection established from that remote broker. It is waiting for its own connection to close before reusing the existing connection.\n\"not-ready-wait-bridge-version-mismatch\" - The bridge is down. The connection failed to connect due to the remote broker presenting an unexpected version.\n\"not-ready-wait-cleanup\" - The bridge is down. Its connection has closed and is in the process of being cleaned up.\n\"ready-subscribing\" - The bridge is up and is attracting traffic. It is in the process of adding configured subscriptions to the remote broker.\n\"ready-in-sync\" - The bridge is up and is attracting traffic. All configured subscriptions have been added to the remote router.\n\"stalled\" - The bridge is down. Inbound guaranteed messages are not flowing. Administrative actions may be required to clear this state.\n\"not-applicable\" - The connection is not relevant in the inbound direction.\n
\n", + "type": "string" + }, + "lastTxMsgId": { + "description": "The ID of the last message transmitted to the Bridge.", + "format": "int64", + "type": "integer" + }, + "localInterface": { + "description": "The physical interface on the local Message VPN host for connecting to the remote Message VPN.", + "type": "string" + }, + "localQueueName": { + "description": "The name of the local queue for the Bridge.", + "type": "string" + }, + "loginRxMsgCount": { + "description": "The number of login request messages received from the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "loginTxMsgCount": { + "description": "The number of login response messages transmitted to the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "maxTtl": { + "description": "The maximum time-to-live (TTL) in hops. Messages are discarded if their TTL exceeds this value.", + "format": "int64", + "type": "integer" + }, + "msgSpoolRxMsgCount": { + "description": "The number of guaranteed messages received from the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "outboundState": { + "description": "The state of the outbound connection to the Bridge. The allowed values and their meaning are:\n\n
\n\"ready\" - The bridge is up and is delivering traffic.\n\"not-applicable\" - The connection is not relevant in the outbound direction.\n
\n", + "type": "string" + }, + "rate": { + "$ref": "#/definitions/MsgVpnBridgeRate" + }, + "remoteAddress": { + "description": "The FQDN or IP address of the remote Message VPN.", + "type": "string" + }, + "remoteAuthenticationBasicClientUsername": { + "description": "The Client Username the Bridge uses to login to the remote Message VPN.", + "type": "string" + }, + "remoteAuthenticationClientCertConfigTime": { + "description": "The timestamp of when the client-certificate was configured. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.28.", + "format": "int32", + "type": "integer" + }, + "remoteAuthenticationClientCertThumbprint": { + "description": "The thumbprint of the client-certificate. Available since 2.28.", + "type": "string" + }, + "remoteAuthenticationScheme": { + "description": "The authentication scheme for the remote Message VPN. The allowed values and their meaning are:\n\n
\n\"basic\" - Basic Authentication Scheme (via username and password).\n\"client-certificate\" - Client Certificate Authentication Scheme (via certificate file or content).\n
\n", + "enum": [ + "basic", + "client-certificate" + ], + "type": "string" + }, + "remoteConnectionRetryCount": { + "description": "The maximum number of retry attempts to establish a connection to the remote Message VPN. A value of 0 means to retry forever.", + "format": "int64", + "type": "integer" + }, + "remoteConnectionRetryDelay": { + "description": "The number of seconds the broker waits for the bridge connection to be established before attempting a new connection.", + "format": "int64", + "type": "integer" + }, + "remoteDeliverToOnePriority": { + "description": "The priority for deliver-to-one (DTO) messages transmitted from the remote Message VPN. The allowed values and their meaning are:\n\n
\n\"p1\" - The 1st or highest priority.\n\"p2\" - The 2nd highest priority.\n\"p3\" - The 3rd highest priority.\n\"p4\" - The 4th highest priority.\n\"da\" - Ignore priority and deliver always.\n
\n", + "enum": [ + "p1", + "p2", + "p3", + "p4", + "da" + ], + "type": "string" + }, + "remoteMsgVpnName": { + "description": "The name of the remote Message VPN.", + "type": "string" + }, + "remoteRouterName": { + "description": "The name of the remote router.", + "type": "string" + }, + "remoteTxFlowId": { + "description": "The ID of the transmit flow for the connected remote Message VPN.", + "format": "int32", + "type": "integer" + }, + "rxByteCount": { + "description": "The amount of messages received from the Bridge, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "rxByteRate": { + "description": "The current message rate received from the Bridge, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "rxConnectionFailureCategory": { + "description": "The category of the inbound connection failure from the Bridge. The allowed values and their meaning are:\n\n
\n\"no-failure\" - There is no bridge failure.\n\"local-configuration-problem\" - The bridge failure is a local configuration problem.\n\"local-operational-state-problem\" - The bridge failure is an operational state problem.\n
\n Available since 2.18.", + "type": "string" + }, + "rxMsgCount": { + "description": "The number of messages received from the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "rxMsgRate": { + "description": "The current message rate received from the Bridge, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "tlsCipherSuiteList": { + "description": "The colon-separated list of cipher suites supported for TLS connections to the remote Message VPN. The value \"default\" implies all supported suites ordered from most secure to least secure.", + "type": "string" + }, + "tlsDefaultCipherSuiteList": { + "description": "Indicates whether the Bridge is configured to use the default cipher-suite list.", + "type": "boolean" + }, + "ttlExceededEventRaised": { + "description": "Indicates whether the TTL (hops) exceeded event has been raised.", + "type": "boolean" + }, + "txByteCount": { + "description": "The amount of messages transmitted to the Bridge, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "txByteRate": { + "description": "The current message rate transmitted to the Bridge, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "txMsgCount": { + "description": "The number of messages transmitted to the Bridge. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "txMsgRate": { + "description": "The current message rate transmitted to the Bridge, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "uptime": { + "description": "The amount of time in seconds since the Bridge connected to the remote Message VPN.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnBridgeCollections": { + "properties": { + "localSubscriptions": { + "$ref": "#/definitions/MsgVpnBridgeCollectionsLocalSubscriptions" + }, + "remoteMsgVpns": { + "$ref": "#/definitions/MsgVpnBridgeCollectionsRemoteMsgVpns" + }, + "remoteSubscriptions": { + "$ref": "#/definitions/MsgVpnBridgeCollectionsRemoteSubscriptions" + }, + "tlsTrustedCommonNames": { + "$ref": "#/definitions/MsgVpnBridgeCollectionsTlsTrustedCommonNames" + } + }, + "type": "object" + }, + "MsgVpnBridgeCollectionsLocalSubscriptions": { + "properties": { + "count": { + "description": "The total number of objects in the localSubscriptions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnBridgeCollectionsRemoteMsgVpns": { + "properties": { + "count": { + "description": "The total number of objects in the remoteMsgVpns collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnBridgeCollectionsRemoteSubscriptions": { + "properties": { + "count": { + "description": "The total number of objects in the remoteSubscriptions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnBridgeCollectionsTlsTrustedCommonNames": { + "properties": { + "count": { + "description": "The total number of objects in the tlsTrustedCommonNames collection. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnBridgeCounter": { + "description": "The counters for the Bridge. Deprecated since 2.13. All attributes in this object have been moved to the MsgVpnBridge object.", + "properties": { + "controlRxByteCount": { + "description": "The amount of client control messages received from the Bridge, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "controlRxMsgCount": { + "description": "The number of client control messages received from the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "controlTxByteCount": { + "description": "The amount of client control messages transmitted to the Bridge, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "controlTxMsgCount": { + "description": "The number of client control messages transmitted to the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "dataRxByteCount": { + "description": "The amount of client data messages received from the Bridge, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "dataRxMsgCount": { + "description": "The number of client data messages received from the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "dataTxByteCount": { + "description": "The amount of client data messages transmitted to the Bridge, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "dataTxMsgCount": { + "description": "The number of client data messages transmitted to the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "discardedRxMsgCount": { + "description": "The number of messages discarded during reception from the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "discardedTxMsgCount": { + "description": "The number of messages discarded during transmission to the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "loginRxMsgCount": { + "description": "The number of login request messages received from the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "loginTxMsgCount": { + "description": "The number of login response messages transmitted to the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "msgSpoolRxMsgCount": { + "description": "The number of guaranteed messages received from the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "rxByteCount": { + "description": "The amount of messages received from the Bridge, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "rxMsgCount": { + "description": "The number of messages received from the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "txByteCount": { + "description": "The amount of messages transmitted to the Bridge, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "txMsgCount": { + "description": "The number of messages transmitted to the Bridge. Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnBridgeLinks": { + "properties": { + "localSubscriptionsUri": { + "description": "The URI of this Bridge's collection of Bridge Local Subscriptions objects.", + "type": "string" + }, + "remoteMsgVpnsUri": { + "description": "The URI of this Bridge's collection of Remote Message VPN objects.", + "type": "string" + }, + "remoteSubscriptionsUri": { + "description": "The URI of this Bridge's collection of Remote Subscription objects.", + "type": "string" + }, + "tlsTrustedCommonNamesUri": { + "description": "The URI of this Bridge's collection of Trusted Common Name objects. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "uri": { + "description": "The URI of this Bridge object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeLocalSubscription": { + "properties": { + "bridgeName": { + "description": "The name of the Bridge.", + "type": "string" + }, + "bridgeVirtualRouter": { + "description": "The virtual router of the Bridge. The allowed values and their meaning are:\n\n
\n\"primary\" - The Bridge is used for the primary virtual router.\n\"backup\" - The Bridge is used for the backup virtual router.\n\"auto\" - The Bridge is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "dtoPriority": { + "description": "The priority of the Bridge local subscription topic for receiving deliver-to-one (DTO) messages. The allowed values and their meaning are:\n\n
\n\"p1\" - The 1st or highest priority.\n\"p2\" - The 2nd highest priority.\n\"p3\" - The 3rd highest priority.\n\"p4\" - The 4th highest priority.\n\"da\" - Ignore priority and deliver always.\n
\n", + "type": "string" + }, + "localSubscriptionTopic": { + "description": "The topic of the Bridge local subscription.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeLocalSubscriptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnBridgeLocalSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Bridge Local Subscriptions object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeLocalSubscriptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnBridgeLocalSubscriptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnBridgeLocalSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnBridgeLocalSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeLocalSubscriptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeLocalSubscriptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeLocalSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeLocalSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeRate": { + "description": "The rates for the Bridge. Deprecated since 2.13. All attributes in this object have been moved to the MsgVpnBridge object.", + "properties": { + "averageRxByteRate": { + "description": "The one minute average of the message rate received from the Bridge, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "averageRxMsgRate": { + "description": "The one minute average of the message rate received from the Bridge, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "averageTxByteRate": { + "description": "The one minute average of the message rate transmitted to the Bridge, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "averageTxMsgRate": { + "description": "The one minute average of the message rate transmitted to the Bridge, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "rxByteRate": { + "description": "The current message rate received from the Bridge, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "rxMsgRate": { + "description": "The current message rate received from the Bridge, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "txByteRate": { + "description": "The current message rate transmitted to the Bridge, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + }, + "txMsgRate": { + "description": "The current message rate transmitted to the Bridge, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnBridge object.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnBridgeRemoteMsgVpn": { + "properties": { + "boundToQueue": { + "description": "Indicates whether the Bridge is bound to the queue in the remote Message VPN.", + "type": "boolean" + }, + "bridgeName": { + "description": "The name of the Bridge.", + "type": "string" + }, + "bridgeVirtualRouter": { + "description": "The virtual router of the Bridge. The allowed values and their meaning are:\n\n
\n\"primary\" - The Bridge is used for the primary virtual router.\n\"backup\" - The Bridge is used for the backup virtual router.\n\"auto\" - The Bridge is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "clientUsername": { + "description": "The Client Username the Bridge uses to login to the remote Message VPN. This per remote Message VPN value overrides the value provided for the Bridge overall.", + "type": "string" + }, + "compressedDataEnabled": { + "description": "Indicates whether data compression is enabled for the remote Message VPN connection.", + "type": "boolean" + }, + "connectOrder": { + "description": "The preference given to incoming connections from remote Message VPN hosts, from 1 (highest priority) to 4 (lowest priority).", + "format": "int32", + "type": "integer" + }, + "egressFlowWindowSize": { + "description": "The number of outstanding guaranteed messages that can be transmitted over the remote Message VPN connection before an acknowledgement is received.", + "format": "int64", + "type": "integer" + }, + "enabled": { + "description": "Indicates whether the remote Message VPN is enabled.", + "type": "boolean" + }, + "lastConnectionFailureReason": { + "description": "The reason for the last connection failure to the remote Message VPN.", + "type": "string" + }, + "lastQueueBindFailureReason": { + "description": "The reason for the last queue bind failure in the remote Message VPN.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueBinding": { + "description": "The queue binding of the Bridge in the remote Message VPN.", + "type": "string" + }, + "queueBoundUptime": { + "description": "The amount of time in seconds since the queue was bound in the remote Message VPN.", + "format": "int32", + "type": "integer" + }, + "remoteMsgVpnInterface": { + "description": "The physical interface on the local Message VPN host for connecting to the remote Message VPN. By default, an interface is chosen automatically (recommended), but if specified, `remoteMsgVpnLocation` must not be a virtual router name.", + "type": "string" + }, + "remoteMsgVpnLocation": { + "description": "The location of the remote Message VPN as either an FQDN with port, IP address with port, or virtual router name (starting with \"v:\").", + "type": "string" + }, + "remoteMsgVpnName": { + "description": "The name of the remote Message VPN.", + "type": "string" + }, + "tlsEnabled": { + "description": "Indicates whether encryption (TLS) is enabled for the remote Message VPN connection.", + "type": "boolean" + }, + "unidirectionalClientProfile": { + "description": "The Client Profile for the unidirectional Bridge of the remote Message VPN. The Client Profile must exist in the local Message VPN, and it is used only for the TCP parameters. Note that the default client profile has a TCP maximum window size of 2MB.", + "type": "string" + }, + "up": { + "description": "Indicates whether the connection to the remote Message VPN is up.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnBridgeRemoteMsgVpnCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnBridgeRemoteMsgVpnLinks": { + "properties": { + "uri": { + "description": "The URI of this Remote Message VPN object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeRemoteMsgVpnResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpn" + }, + "links": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeRemoteMsgVpnsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpn" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeRemoteSubscription": { + "properties": { + "bridgeName": { + "description": "The name of the Bridge.", + "type": "string" + }, + "bridgeVirtualRouter": { + "description": "The virtual router of the Bridge. The allowed values and their meaning are:\n\n
\n\"primary\" - The Bridge is used for the primary virtual router.\n\"backup\" - The Bridge is used for the backup virtual router.\n\"auto\" - The Bridge is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "deliverAlwaysEnabled": { + "description": "Indicates whether deliver-always is enabled for the Bridge remote subscription topic instead of a deliver-to-one remote priority. A given topic for the Bridge may be deliver-to-one or deliver-always but not both.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "remoteSubscriptionTopic": { + "description": "The topic of the Bridge remote subscription.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeRemoteSubscriptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnBridgeRemoteSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Remote Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeRemoteSubscriptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeRemoteSubscriptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnBridgeCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnBridge" + }, + "links": { + "$ref": "#/definitions/MsgVpnBridgeLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeTlsTrustedCommonName": { + "properties": { + "bridgeName": { + "description": "The name of the Bridge. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "bridgeVirtualRouter": { + "description": "The virtual router of the Bridge. The allowed values and their meaning are:\n\n
\n\"primary\" - The Bridge is used for the primary virtual router.\n\"backup\" - The Bridge is used for the backup virtual router.\n\"auto\" - The Bridge is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "tlsTrustedCommonName": { + "description": "The expected trusted common name of the remote certificate. Deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeTlsTrustedCommonNameCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnBridgeTlsTrustedCommonNameLinks": { + "properties": { + "uri": { + "description": "The URI of this Trusted Common Name object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnBridgeTlsTrustedCommonNameResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNameCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonName" + }, + "links": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgeTlsTrustedCommonNamesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNameCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonName" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnBridgesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnBridge" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnBridgeLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRule": { + "properties": { + "enabled": { + "description": "Indicates whether a certificate matching rule is enabled.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleAttributeFilter": { + "properties": { + "attributeName": { + "description": "Client Username Attribute to be tested.", + "type": "string" + }, + "attributeValue": { + "description": "Expected attribute value.", + "type": "string" + }, + "filterName": { + "description": "The name of the filter.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleAttributeFilterCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnCertMatchingRuleAttributeFilterLinks": { + "properties": { + "uri": { + "description": "The URI of this Certificate Matching Rule Attribute Filter object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleAttributeFilterResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilter" + }, + "links": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRuleAttributeFiltersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilter" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRuleCollections": { + "properties": { + "attributeFilters": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleCollectionsAttributeFilters" + }, + "conditions": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleCollectionsConditions" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleCollectionsAttributeFilters": { + "properties": { + "count": { + "description": "The total number of objects in the attributeFilters collection. Available since 2.28.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleCollectionsConditions": { + "properties": { + "count": { + "description": "The total number of objects in the conditions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleCondition": { + "properties": { + "attribute": { + "description": "Client Username Attribute to be compared with certificate content. Either an attribute or an expression must be provided on creation, but not both.", + "type": "string" + }, + "comparisonMode": { + "description": "The comparison mode to use. The allowed values and their meaning are:\n\n
\n\"matches-attribute\" - Certificate field matches an attribute value exactly.\n\"matches-expression\" - Certificate field matches a glob expression.\n
\n", + "type": "string" + }, + "expression": { + "description": "Glob expression to be matched with certificate content. Either an expression or an attribute must be provided on creation, but not both.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "ruleName": { + "description": "The name of the rule.", + "type": "string" + }, + "source": { + "description": "Certificate field to be compared with the Attribute. The allowed values and their meaning are:\n\n
\n\"certificate-thumbprint\" - The attribute is computed as the SHA-1 hash over the entire DER-encoded contents of the client certificate.\n\"common-name\" - The attribute is extracted from the certificate's first instance of the Common Name attribute in the Subject DN.\n\"common-name-last\" - The attribute is extracted from the certificate's last instance of the Common Name attribute in the Subject DN.\n\"subject-alternate-name-msupn\" - The attribute is extracted from the certificate's Other Name type of the Subject Alternative Name and must have the msUPN signature.\n\"uid\" - The attribute is extracted from the certificate's first instance of the User Identifier attribute in the Subject DN.\n\"uid-last\" - The attribute is extracted from the certificate's last instance of the User Identifier attribute in the Subject DN.\n\"org-unit\" - The attribute is extracted from the certificate's first instance of the Org Unit attribute in the Subject DN.\n\"org-unit-last\" - The attribute is extracted from the certificate's last instance of the Org Unit attribute in the Subject DN.\n\"issuer\" - The attribute is extracted from the certificate's Issuer DN.\n\"subject\" - The attribute is extracted from the certificate's Subject DN.\n\"serial-number\" - The attribute is extracted from the certificate's Serial Number.\n\"dns-name\" - The attribute is extracted from the certificate's Subject Alt Name DNSName.\n\"ip-address\" - The attribute is extracted from the certificate's Subject Alt Name IPAddress.\n
\n", + "enum": [ + "certificate-thumbprint", + "common-name", + "common-name-last", + "subject-alternate-name-msupn", + "uid", + "uid-last", + "org-unit", + "org-unit-last", + "issuer", + "subject", + "serial-number", + "dns-name", + "ip-address" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleConditionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnCertMatchingRuleConditionLinks": { + "properties": { + "uri": { + "description": "The URI of this Certificate Matching Rule Condition object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleConditionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleCondition" + }, + "links": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRuleConditionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleCondition" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRuleLinks": { + "properties": { + "attributeFiltersUri": { + "description": "The URI of this Certificate Matching Rule's collection of Certificate Matching Rule Attribute Filter objects. Available since 2.28.", + "type": "string" + }, + "conditionsUri": { + "description": "The URI of this Certificate Matching Rule's collection of Certificate Matching Rule Condition objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Certificate Matching Rule object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnCertMatchingRuleResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnCertMatchingRule" + }, + "links": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCertMatchingRulesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRule" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClient": { + "properties": { + "aclProfileName": { + "description": "The name of the access control list (ACL) profile of the Client.", + "type": "string" + }, + "aliasedFromMsgVpnName": { + "description": "The name of the original MsgVpn which the client signaled in. Available since 2.14.", + "type": "string" + }, + "alreadyBoundBindFailureCount": { + "description": "The number of Client bind failures due to endpoint being already bound.", + "format": "int64", + "type": "integer" + }, + "authorizationGroupName": { + "description": "The name of the authorization group of the Client.", + "type": "string" + }, + "averageRxByteRate": { + "description": "The one minute average of the message rate received from the Client, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "averageRxMsgRate": { + "description": "The one minute average of the message rate received from the Client, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "averageTxByteRate": { + "description": "The one minute average of the message rate transmitted to the Client, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "averageTxMsgRate": { + "description": "The one minute average of the message rate transmitted to the Client, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "bindRequestCount": { + "description": "The number of Client requests to bind to an endpoint.", + "format": "int64", + "type": "integer" + }, + "bindSuccessCount": { + "description": "The number of successful Client requests to bind to an endpoint.", + "format": "int64", + "type": "integer" + }, + "clientAddress": { + "description": "The IP address and port of the Client.", + "type": "string" + }, + "clientId": { + "description": "The identifier (ID) of the Client.", + "format": "int32", + "type": "integer" + }, + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "clientProfileName": { + "description": "The name of the client profile of the Client.", + "type": "string" + }, + "clientUsername": { + "description": "The client username of the Client used for authorization.", + "type": "string" + }, + "controlRxByteCount": { + "description": "The amount of client control messages received from the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "controlRxMsgCount": { + "description": "The number of client control messages received from the Client.", + "format": "int64", + "type": "integer" + }, + "controlTxByteCount": { + "description": "The amount of client control messages transmitted to the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "controlTxMsgCount": { + "description": "The number of client control messages transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "cutThroughDeniedBindFailureCount": { + "description": "The number of Client bind failures due to being denied cut-through forwarding.", + "format": "int64", + "type": "integer" + }, + "dataRxByteCount": { + "description": "The amount of client data messages received from the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "dataRxMsgCount": { + "description": "The number of client data messages received from the Client.", + "format": "int64", + "type": "integer" + }, + "dataTxByteCount": { + "description": "The amount of client data messages transmitted to the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "dataTxMsgCount": { + "description": "The number of client data messages transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "description": { + "description": "The description text of the Client.", + "type": "string" + }, + "disabledBindFailureCount": { + "description": "The number of Client bind failures due to endpoint being disabled.", + "format": "int64", + "type": "integer" + }, + "dtoLocalPriority": { + "description": "The priority of the Client's subscriptions for receiving deliver-to-one (DTO) messages published on the local broker.", + "format": "int32", + "type": "integer" + }, + "dtoNetworkPriority": { + "description": "The priority of the Client's subscriptions for receiving deliver-to-one (DTO) messages published on a remote broker.", + "format": "int32", + "type": "integer" + }, + "eliding": { + "description": "Indicates whether message eliding is enabled for the Client.", + "type": "boolean" + }, + "elidingTopicCount": { + "description": "The number of topics requiring message eliding for the Client.", + "format": "int32", + "type": "integer" + }, + "elidingTopicPeakCount": { + "description": "The peak number of topics requiring message eliding for the Client.", + "format": "int32", + "type": "integer" + }, + "guaranteedDeniedBindFailureCount": { + "description": "The number of Client bind failures due to being denied guaranteed messaging.", + "format": "int64", + "type": "integer" + }, + "invalidSelectorBindFailureCount": { + "description": "The number of Client bind failures due to an invalid selector.", + "format": "int64", + "type": "integer" + }, + "keepalive": { + "description": "Indicates whether keepalive messages from the Client are received by the broker. Applicable for SMF and MQTT clients only. Available since 2.19.", + "type": "boolean" + }, + "keepaliveEffectiveTimeout": { + "description": "The maximum period of time the broker will accept inactivity from the Client before disconnecting, in seconds. Available since 2.19.", + "format": "int32", + "type": "integer" + }, + "largeMsgEventRaised": { + "description": "Indicates whether the large-message event has been raised for the Client.", + "type": "boolean" + }, + "loginRxMsgCount": { + "description": "The number of login request messages received from the Client.", + "format": "int64", + "type": "integer" + }, + "loginTxMsgCount": { + "description": "The number of login response messages transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "maxBindCountExceededBindFailureCount": { + "description": "The number of Client bind failures due to the endpoint maximum bind count being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxElidingTopicCountEventRaised": { + "description": "Indicates whether the max-eliding-topic-count event has been raised for the Client.", + "type": "boolean" + }, + "mqttConnackErrorTxCount": { + "description": "The number of MQTT connect acknowledgment (CONNACK) refused response packets transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "mqttConnackTxCount": { + "description": "The number of MQTT connect acknowledgment (CONNACK) accepted response packets transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "mqttConnectRxCount": { + "description": "The number of MQTT connect (CONNECT) request packets received from the Client.", + "format": "int64", + "type": "integer" + }, + "mqttDisconnectRxCount": { + "description": "The number of MQTT disconnect (DISCONNECT) request packets received from the Client.", + "format": "int64", + "type": "integer" + }, + "mqttPingreqRxCount": { + "description": "The number of MQTT ping request (PINGREQ) packets received from the Client.", + "format": "int64", + "type": "integer" + }, + "mqttPingrespTxCount": { + "description": "The number of MQTT ping response (PINGRESP) packets transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "mqttPubackRxCount": { + "description": "The number of MQTT publish acknowledgement (PUBACK) response packets received from the Client.", + "format": "int64", + "type": "integer" + }, + "mqttPubackTxCount": { + "description": "The number of MQTT publish acknowledgement (PUBACK) response packets transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "mqttPubcompTxCount": { + "description": "The number of MQTT publish complete (PUBCOMP) packets transmitted to the Client in response to a PUBREL packet. These packets are the fourth and final packet of a QoS 2 protocol exchange.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos0RxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets received from the Client for QoS 0 message delivery.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos0TxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets transmitted to the Client for QoS 0 message delivery.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos1RxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets received from the Client for QoS 1 message delivery.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos1TxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets transmitted to the Client for QoS 1 message delivery.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos2RxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets received from the Client for QoS 2 message delivery.", + "format": "int64", + "type": "integer" + }, + "mqttPubrecTxCount": { + "description": "The number of MQTT publish received (PUBREC) packets transmitted to the Client in response to a PUBLISH packet with QoS 2. These packets are the second packet of a QoS 2 protocol exchange.", + "format": "int64", + "type": "integer" + }, + "mqttPubrelRxCount": { + "description": "The number of MQTT publish release (PUBREL) packets received from the Client in response to a PUBREC packet. These packets are the third packet of a QoS 2 protocol exchange.", + "format": "int64", + "type": "integer" + }, + "mqttSubackErrorTxCount": { + "description": "The number of MQTT subscribe acknowledgement (SUBACK) failure response packets transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "mqttSubackTxCount": { + "description": "The number of MQTT subscribe acknowledgement (SUBACK) response packets transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "mqttSubscribeRxCount": { + "description": "The number of MQTT subscribe (SUBSCRIBE) request packets received from the Client to create one or more topic subscriptions.", + "format": "int64", + "type": "integer" + }, + "mqttUnsubackTxCount": { + "description": "The number of MQTT unsubscribe acknowledgement (UNSUBACK) response packets transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "mqttUnsubscribeRxCount": { + "description": "The number of MQTT unsubscribe (UNSUBSCRIBE) request packets received from the Client to remove one or more topic subscriptions.", + "format": "int64", + "type": "integer" + }, + "msgSpoolCongestionRxDiscardedMsgCount": { + "description": "The number of messages from the Client discarded due to message spool congestion primarily caused by message promotion.", + "format": "int64", + "type": "integer" + }, + "msgSpoolRxDiscardedMsgCount": { + "description": "The number of messages from the Client discarded by the message spool.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "noLocalDelivery": { + "description": "Indicates whether not to deliver messages to the Client if it published them.", + "type": "boolean" + }, + "noSubscriptionMatchRxDiscardedMsgCount": { + "description": "The number of messages from the Client discarded due to no matching subscription found.", + "format": "int64", + "type": "integer" + }, + "originalClientUsername": { + "description": "The original value of the client username used for Client authentication.", + "type": "string" + }, + "otherBindFailureCount": { + "description": "The number of Client bind failures due to other reasons.", + "format": "int64", + "type": "integer" + }, + "platform": { + "description": "The platform the Client application software was built for, which may include the OS and API type.", + "type": "string" + }, + "publishTopicAclRxDiscardedMsgCount": { + "description": "The number of messages from the Client discarded due to the publish topic being denied by the Access Control List (ACL) profile.", + "format": "int64", + "type": "integer" + }, + "restHttpRequestRxByteCount": { + "description": "The amount of HTTP request messages received from the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "restHttpRequestRxMsgCount": { + "description": "The number of HTTP request messages received from the Client.", + "format": "int64", + "type": "integer" + }, + "restHttpRequestTxByteCount": { + "description": "The amount of HTTP request messages transmitted to the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "restHttpRequestTxMsgCount": { + "description": "The number of HTTP request messages transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "restHttpResponseErrorRxMsgCount": { + "description": "The number of HTTP client/server error response messages received from the Client.", + "format": "int64", + "type": "integer" + }, + "restHttpResponseErrorTxMsgCount": { + "description": "The number of HTTP client/server error response messages transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "restHttpResponseRxByteCount": { + "description": "The amount of HTTP response messages received from the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "restHttpResponseRxMsgCount": { + "description": "The number of HTTP response messages received from the Client.", + "format": "int64", + "type": "integer" + }, + "restHttpResponseSuccessRxMsgCount": { + "description": "The number of HTTP successful response messages received from the Client.", + "format": "int64", + "type": "integer" + }, + "restHttpResponseSuccessTxMsgCount": { + "description": "The number of HTTP successful response messages transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "restHttpResponseTimeoutRxMsgCount": { + "description": "The number of HTTP wait for reply timeout response messages received from the Client.", + "format": "int64", + "type": "integer" + }, + "restHttpResponseTimeoutTxMsgCount": { + "description": "The number of HTTP wait for reply timeout response messages transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "restHttpResponseTxByteCount": { + "description": "The amount of HTTP response messages transmitted to the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "restHttpResponseTxMsgCount": { + "description": "The number of HTTP response messages transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "rxByteCount": { + "description": "The amount of messages received from the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "rxByteRate": { + "description": "The current message rate received from the Client, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "rxDiscardedMsgCount": { + "description": "The number of messages discarded during reception from the Client.", + "format": "int64", + "type": "integer" + }, + "rxMsgCount": { + "description": "The number of messages received from the Client.", + "format": "int64", + "type": "integer" + }, + "rxMsgRate": { + "description": "The current message rate received from the Client, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "scheduledDisconnectTime": { + "description": "The timestamp of when the Client will be disconnected by the broker. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.13.", + "format": "int32", + "type": "integer" + }, + "slowSubscriber": { + "description": "Indicates whether the Client is a slow subscriber and blocks for a few seconds when receiving messages.", + "type": "boolean" + }, + "softwareDate": { + "description": "The date the Client application software was built.", + "type": "string" + }, + "softwareVersion": { + "description": "The version of the Client application software.", + "type": "string" + }, + "tlsCipherDescription": { + "description": "The description of the TLS cipher used by the Client, which may include cipher name, key exchange and encryption algorithms.", + "type": "string" + }, + "tlsDowngradedToPlainText": { + "description": "Indicates whether the Client TLS connection was downgraded to plain-text to increase performance.", + "type": "boolean" + }, + "tlsVersion": { + "description": "The version of TLS used by the Client.", + "type": "string" + }, + "topicParseErrorRxDiscardedMsgCount": { + "description": "The number of messages from the Client discarded due to an error while parsing the publish topic.", + "format": "int64", + "type": "integer" + }, + "txByteCount": { + "description": "The amount of messages transmitted to the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "txByteRate": { + "description": "The current message rate transmitted to the Client, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "txDiscardedMsgCount": { + "description": "The number of messages discarded during transmission to the Client.", + "format": "int64", + "type": "integer" + }, + "txMsgCount": { + "description": "The number of messages transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "txMsgRate": { + "description": "The current message rate transmitted to the Client, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "uptime": { + "description": "The amount of time in seconds since the Client connected.", + "format": "int32", + "type": "integer" + }, + "user": { + "description": "The user description for the Client, which may include computer name and process ID.", + "type": "string" + }, + "virtualRouter": { + "description": "The virtual router used by the Client. The allowed values and their meaning are:\n\n
\n\"primary\" - The Client is using the primary virtual router.\n\"backup\" - The Client is using the backup virtual router.\n\"internal\" - The Client is using the internal virtual router.\n\"unknown\" - The Client virtual router is unknown.\n
\n", + "type": "string" + }, + "webInactiveTimeout": { + "description": "The maximum web transport timeout for the Client being inactive, in seconds.", + "format": "int32", + "type": "integer" + }, + "webMaxPayload": { + "description": "The maximum web transport message payload size which excludes the size of the message header, in bytes.", + "format": "int64", + "type": "integer" + }, + "webParseErrorRxDiscardedMsgCount": { + "description": "The number of messages from the Client discarded due to an error while parsing the web message.", + "format": "int64", + "type": "integer" + }, + "webRemainingTimeout": { + "description": "The remaining web transport timeout for the Client being inactive, in seconds.", + "format": "int32", + "type": "integer" + }, + "webRxByteCount": { + "description": "The amount of web transport messages received from the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "webRxEncoding": { + "description": "The type of encoding used during reception from the Client. The allowed values and their meaning are:\n\n
\n\"binary\" - The Client is using binary encoding.\n\"base64\" - The Client is using base64 encoding.\n\"illegal\" - The Client is using an illegal encoding type.\n
\n", + "type": "string" + }, + "webRxMsgCount": { + "description": "The number of web transport messages received from the Client.", + "format": "int64", + "type": "integer" + }, + "webRxProtocol": { + "description": "The type of web transport used during reception from the Client. The allowed values and their meaning are:\n\n
\n\"ws-binary\" - The Client is using WebSocket binary transport.\n\"http-binary-streaming\" - The Client is using HTTP binary streaming transport.\n\"http-binary\" - The Client is using HTTP binary transport.\n\"http-base64\" - The Client is using HTTP base64 transport.\n
\n", + "type": "string" + }, + "webRxRequestCount": { + "description": "The number of web transport requests received from the Client (HTTP only). Not available for WebSockets.", + "format": "int64", + "type": "integer" + }, + "webRxResponseCount": { + "description": "The number of web transport responses transmitted to the Client on the receive connection (HTTP only). Not available for WebSockets.", + "format": "int64", + "type": "integer" + }, + "webRxTcpState": { + "description": "The TCP state of the receive connection from the Client. When fully operational, should be: established. See RFC 793 for further details. The allowed values and their meaning are:\n\n
\n\"closed\" - No connection state at all.\n\"listen\" - Waiting for a connection request from any remote TCP and port.\n\"syn-sent\" - Waiting for a matching connection request after having sent a connection request.\n\"syn-received\" - Waiting for a confirming connection request acknowledgment after having both received and sent a connection request.\n\"established\" - An open connection, data received can be delivered to the user.\n\"close-wait\" - Waiting for a connection termination request from the local user.\n\"fin-wait-1\" - Waiting for a connection termination request from the remote TCP, or an acknowledgment of the connection termination request previously sent.\n\"closing\" - Waiting for a connection termination request acknowledgment from the remote TCP.\n\"last-ack\" - Waiting for an acknowledgment of the connection termination request previously sent to the remote TCP.\n\"fin-wait-2\" - Waiting for a connection termination request from the remote TCP.\n\"time-wait\" - Waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request.\n
\n", + "type": "string" + }, + "webRxTlsCipherDescription": { + "description": "The description of the TLS cipher received from the Client, which may include cipher name, key exchange and encryption algorithms.", + "type": "string" + }, + "webRxTlsVersion": { + "description": "The version of TLS used during reception from the Client.", + "type": "string" + }, + "webSessionId": { + "description": "The identifier (ID) of the web transport session for the Client.", + "type": "string" + }, + "webTxByteCount": { + "description": "The amount of web transport messages transmitted to the Client, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "webTxEncoding": { + "description": "The type of encoding used during transmission to the Client. The allowed values and their meaning are:\n\n
\n\"binary\" - The Client is using binary encoding.\n\"base64\" - The Client is using base64 encoding.\n\"illegal\" - The Client is using an illegal encoding type.\n
\n", + "type": "string" + }, + "webTxMsgCount": { + "description": "The number of web transport messages transmitted to the Client.", + "format": "int64", + "type": "integer" + }, + "webTxProtocol": { + "description": "The type of web transport used during transmission to the Client. The allowed values and their meaning are:\n\n
\n\"ws-binary\" - The Client is using WebSocket binary transport.\n\"http-binary-streaming\" - The Client is using HTTP binary streaming transport.\n\"http-binary\" - The Client is using HTTP binary transport.\n\"http-base64\" - The Client is using HTTP base64 transport.\n
\n", + "type": "string" + }, + "webTxRequestCount": { + "description": "The number of web transport requests transmitted to the Client (HTTP only). Not available for WebSockets.", + "format": "int64", + "type": "integer" + }, + "webTxResponseCount": { + "description": "The number of web transport responses received from the Client on the transmit connection (HTTP only). Not available for WebSockets.", + "format": "int64", + "type": "integer" + }, + "webTxTcpState": { + "description": "The TCP state of the transmit connection to the Client. When fully operational, should be: established. See RFC 793 for further details. The allowed values and their meaning are:\n\n
\n\"closed\" - No connection state at all.\n\"listen\" - Waiting for a connection request from any remote TCP and port.\n\"syn-sent\" - Waiting for a matching connection request after having sent a connection request.\n\"syn-received\" - Waiting for a confirming connection request acknowledgment after having both received and sent a connection request.\n\"established\" - An open connection, data received can be delivered to the user.\n\"close-wait\" - Waiting for a connection termination request from the local user.\n\"fin-wait-1\" - Waiting for a connection termination request from the remote TCP, or an acknowledgment of the connection termination request previously sent.\n\"closing\" - Waiting for a connection termination request acknowledgment from the remote TCP.\n\"last-ack\" - Waiting for an acknowledgment of the connection termination request previously sent to the remote TCP.\n\"fin-wait-2\" - Waiting for a connection termination request from the remote TCP.\n\"time-wait\" - Waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request.\n
\n", + "type": "string" + }, + "webTxTlsCipherDescription": { + "description": "The description of the TLS cipher transmitted to the Client, which may include cipher name, key exchange and encryption algorithms.", + "type": "string" + }, + "webTxTlsVersion": { + "description": "The version of TLS used during transmission to the Client.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientCollections": { + "properties": { + "connections": { + "$ref": "#/definitions/MsgVpnClientCollectionsConnections" + }, + "rxFlows": { + "$ref": "#/definitions/MsgVpnClientCollectionsRxFlows" + }, + "subscriptions": { + "$ref": "#/definitions/MsgVpnClientCollectionsSubscriptions" + }, + "transactedSessions": { + "$ref": "#/definitions/MsgVpnClientCollectionsTransactedSessions" + }, + "txFlows": { + "$ref": "#/definitions/MsgVpnClientCollectionsTxFlows" + } + }, + "type": "object" + }, + "MsgVpnClientCollectionsConnections": { + "properties": { + "count": { + "description": "The total number of objects in the connections collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnClientCollectionsRxFlows": { + "properties": { + "count": { + "description": "The total number of objects in the rxFlows collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnClientCollectionsSubscriptions": { + "properties": { + "count": { + "description": "The total number of objects in the subscriptions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnClientCollectionsTransactedSessions": { + "properties": { + "count": { + "description": "The total number of objects in the transactedSessions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnClientCollectionsTxFlows": { + "properties": { + "count": { + "description": "The total number of objects in the txFlows collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnClientConnection": { + "properties": { + "clientAddress": { + "description": "The IP address and TCP port on the Client side of the Client Connection.", + "type": "string" + }, + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "compression": { + "description": "Indicates whether compression is enabled for the Client Connection.", + "type": "boolean" + }, + "encryption": { + "description": "Indicates whether encryption (TLS) is enabled for the Client Connection.", + "type": "boolean" + }, + "fastRetransmitCount": { + "description": "The number of TCP fast retransmits due to duplicate acknowledgments (ACKs). See RFC 5681 for further details.", + "format": "int32", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "rxQueueByteCount": { + "description": "The number of bytes currently in the receive queue for the Client Connection.", + "format": "int32", + "type": "integer" + }, + "segmentReceivedOutOfOrderCount": { + "description": "The number of TCP segments received from the Client Connection out of order.", + "format": "int32", + "type": "integer" + }, + "smoothedRoundTripTime": { + "description": "The TCP smoothed round-trip time (SRTT) for the Client Connection, in nanoseconds. See RFC 2988 for further details.", + "format": "int64", + "type": "integer" + }, + "tcpState": { + "description": "The TCP state of the Client Connection. When fully operational, should be: established. See RFC 793 for further details. The allowed values and their meaning are:\n\n
\n\"closed\" - No connection state at all.\n\"listen\" - Waiting for a connection request from any remote TCP and port.\n\"syn-sent\" - Waiting for a matching connection request after having sent a connection request.\n\"syn-received\" - Waiting for a confirming connection request acknowledgment after having both received and sent a connection request.\n\"established\" - An open connection, data received can be delivered to the user.\n\"close-wait\" - Waiting for a connection termination request from the local user.\n\"fin-wait-1\" - Waiting for a connection termination request from the remote TCP, or an acknowledgment of the connection termination request previously sent.\n\"closing\" - Waiting for a connection termination request acknowledgment from the remote TCP.\n\"last-ack\" - Waiting for an acknowledgment of the connection termination request previously sent to the remote TCP.\n\"fin-wait-2\" - Waiting for a connection termination request from the remote TCP.\n\"time-wait\" - Waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request.\n
\n", + "type": "string" + }, + "timedRetransmitCount": { + "description": "The number of TCP segments retransmitted due to timeout awaiting an acknowledgement (ACK). See RFC 793 for further details.", + "format": "int32", + "type": "integer" + }, + "txQueueByteCount": { + "description": "The number of bytes currently in the transmit queue for the Client Connection.", + "format": "int32", + "type": "integer" + }, + "uptime": { + "description": "The amount of time in seconds since the Client Connection was established.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnClientConnectionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnClientConnectionLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Connection object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientConnectionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnClientConnectionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnClientConnection" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientConnectionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientConnectionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnClientConnectionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientConnection" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientConnectionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientLinks": { + "properties": { + "connectionsUri": { + "description": "The URI of this Client's collection of Client Connection objects.", + "type": "string" + }, + "rxFlowsUri": { + "description": "The URI of this Client's collection of Client Receive Flow objects.", + "type": "string" + }, + "subscriptionsUri": { + "description": "The URI of this Client's collection of Client Subscription objects.", + "type": "string" + }, + "transactedSessionsUri": { + "description": "The URI of this Client's collection of Client Transacted Session objects.", + "type": "string" + }, + "txFlowsUri": { + "description": "The URI of this Client's collection of Client Transmit Flow objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Client object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientProfile": { + "properties": { + "allowBridgeConnectionsEnabled": { + "description": "Indicates whether Bridge clients using the Client Profile are allowed to connect.", + "type": "boolean" + }, + "allowCutThroughForwardingEnabled": { + "description": "Indicates whether clients using the Client Profile are allowed to bind to endpoints with the cut-through forwarding delivery mode. Deprecated since 2.22. This attribute has been deprecated. Please visit the Solace Product Lifecycle Policy web page for details on deprecated features.", + "type": "boolean" + }, + "allowGuaranteedEndpointCreateDurability": { + "description": "Indicates whether clients using the Client Profile are allowed to create durable and/or non-durable topic endponts or queues. The allowed values and their meaning are:\n\n
\n\"all\" - Client can create any type of endpoint.\n\"durable\" - Client can create only durable endpoints.\n\"non-durable\" - Client can create only non-durable endpoints.\n
\n Available since 2.14.", + "enum": [ + "all", + "durable", + "non-durable" + ], + "type": "string" + }, + "allowGuaranteedEndpointCreateEnabled": { + "description": "Indicates whether clients using the Client Profile are allowed to create topic endponts or queues.", + "type": "boolean" + }, + "allowGuaranteedMsgReceiveEnabled": { + "description": "Indicates whether clients using the Client Profile are allowed to receive guaranteed messages.", + "type": "boolean" + }, + "allowGuaranteedMsgSendEnabled": { + "description": "Indicates whether clients using the Client Profile are allowed to send guaranteed messages.", + "type": "boolean" + }, + "allowSharedSubscriptionsEnabled": { + "description": "Indicates whether shared subscriptions are allowed. Changing this setting does not affect existing subscriptions.", + "type": "boolean" + }, + "allowTransactedSessionsEnabled": { + "description": "Indicates whether clients using the Client Profile are allowed to establish transacted sessions.", + "type": "boolean" + }, + "apiQueueManagementCopyFromOnCreateName": { + "description": "The name of a queue to copy settings from when a new queue is created by a client using the Client Profile. The referenced queue must exist in the Message VPN. Deprecated since 2.14. This attribute has been replaced with `apiQueueManagementCopyFromOnCreateTemplateName`.", + "type": "string" + }, + "apiQueueManagementCopyFromOnCreateTemplateName": { + "description": "The name of a queue template to copy settings from when a new queue is created by a client using the Client Profile. If the referenced queue template does not exist, queue creation will fail when it tries to resolve this template. Available since 2.14.", + "type": "string" + }, + "apiTopicEndpointManagementCopyFromOnCreateName": { + "description": "The name of a topic endpoint to copy settings from when a new topic endpoint is created by a client using the Client Profile. The referenced topic endpoint must exist in the Message VPN. Deprecated since 2.14. This attribute has been replaced with `apiTopicEndpointManagementCopyFromOnCreateTemplateName`.", + "type": "string" + }, + "apiTopicEndpointManagementCopyFromOnCreateTemplateName": { + "description": "The name of a topic endpoint template to copy settings from when a new topic endpoint is created by a client using the Client Profile. If the referenced topic endpoint template does not exist, topic endpoint creation will fail when it tries to resolve this template. Available since 2.14.", + "type": "string" + }, + "clientProfileName": { + "description": "The name of the Client Profile.", + "type": "string" + }, + "compressionEnabled": { + "description": "Indicates whether clients using the Client Profile are allowed to use compression.", + "type": "boolean" + }, + "elidingDelay": { + "description": "The amount of time to delay the delivery of messages to clients using the Client Profile after the initial message has been delivered (the eliding delay interval), in milliseconds. A value of 0 means there is no delay in delivering messages to clients.", + "format": "int64", + "type": "integer" + }, + "elidingEnabled": { + "description": "Indicates whether message eliding is enabled for clients using the Client Profile.", + "type": "boolean" + }, + "elidingMaxTopicCount": { + "description": "The maximum number of topics tracked for message eliding per client connection using the Client Profile.", + "format": "int64", + "type": "integer" + }, + "eventClientProvisionedEndpointSpoolUsageThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "eventConnectionCountPerClientUsernameThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventEgressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventEndpointCountPerClientUsernameThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventIngressFlowCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceSmfConnectionCountPerClientUsernameThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventServiceWebConnectionCountPerClientUsernameThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventSubscriptionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventTransactedSessionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventTransactionCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "maxConnectionCountPerClientUsername": { + "description": "The maximum number of client connections per Client Username using the Client Profile.", + "format": "int64", + "type": "integer" + }, + "maxEffectiveEndpointCount": { + "description": "The effective maximum number of queues and topic endpoints per Client Username using the Client Profile.", + "format": "int32", + "type": "integer" + }, + "maxEffectiveRxFlowCount": { + "description": "The effective maximum number of receive flows per client using the Client Profile.", + "format": "int32", + "type": "integer" + }, + "maxEffectiveSubscriptionCount": { + "description": "The effective maximum number of subscriptions per client using the Client Profile.", + "format": "int32", + "type": "integer" + }, + "maxEffectiveTransactedSessionCount": { + "description": "The effective maximum number of transacted sessions per client using the Client Profile.", + "format": "int32", + "type": "integer" + }, + "maxEffectiveTransactionCount": { + "description": "The effective maximum number of transactions per client using the Client Profile.", + "format": "int32", + "type": "integer" + }, + "maxEffectiveTxFlowCount": { + "description": "The effective maximum number of transmit flows per client using the Client Profile.", + "format": "int32", + "type": "integer" + }, + "maxEgressFlowCount": { + "description": "The maximum number of transmit flows that can be created by one client using the Client Profile.", + "format": "int64", + "type": "integer" + }, + "maxEndpointCountPerClientUsername": { + "description": "The maximum number of queues and topic endpoints that can be created by clients with the same Client Username using the Client Profile.", + "format": "int64", + "type": "integer" + }, + "maxIngressFlowCount": { + "description": "The maximum number of receive flows that can be created by one client using the Client Profile.", + "format": "int64", + "type": "integer" + }, + "maxMsgsPerTransaction": { + "description": "The maximum number of publisher and consumer messages combined that is allowed within a transaction for each client associated with this client-profile. Exceeding this limit will result in a transaction prepare or commit failure. Changing this value during operation will not affect existing sessions. It is only validated at transaction creation time. Large transactions consume more resources and are more likely to require retrieving messages from the ADB or from disk to process the transaction prepare or commit requests. The transaction processing rate may diminish if a large number of messages must be retrieved from the ADB or from disk. Care should be taken to not use excessively large transactions needlessly to avoid exceeding resource limits and to avoid reducing the overall broker performance. Available since 2.20.", + "format": "int32", + "type": "integer" + }, + "maxSubscriptionCount": { + "description": "The maximum number of subscriptions per client using the Client Profile. This limit is not enforced when a client adds a subscription to an endpoint, except for MQTT QoS 1 subscriptions. In addition, this limit is not enforced when a subscription is added using a management interface, such as CLI or SEMP.", + "format": "int64", + "type": "integer" + }, + "maxTransactedSessionCount": { + "description": "The maximum number of transacted sessions that can be created by one client using the Client Profile.", + "format": "int64", + "type": "integer" + }, + "maxTransactionCount": { + "description": "The maximum number of transactions that can be created by one client using the Client Profile.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueControl1MaxDepth": { + "description": "The maximum depth of the \"Control 1\" (C-1) priority queue, in work units. Each work unit is 2048 bytes of message data.", + "format": "int32", + "type": "integer" + }, + "queueControl1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Control 1\" (C-1) priority queue, regardless of the `queueControl1MaxDepth` value.", + "format": "int32", + "type": "integer" + }, + "queueDirect1MaxDepth": { + "description": "The maximum depth of the \"Direct 1\" (D-1) priority queue, in work units. Each work unit is 2048 bytes of message data.", + "format": "int32", + "type": "integer" + }, + "queueDirect1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 1\" (D-1) priority queue, regardless of the `queueDirect1MaxDepth` value.", + "format": "int32", + "type": "integer" + }, + "queueDirect2MaxDepth": { + "description": "The maximum depth of the \"Direct 2\" (D-2) priority queue, in work units. Each work unit is 2048 bytes of message data.", + "format": "int32", + "type": "integer" + }, + "queueDirect2MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 2\" (D-2) priority queue, regardless of the `queueDirect2MaxDepth` value.", + "format": "int32", + "type": "integer" + }, + "queueDirect3MaxDepth": { + "description": "The maximum depth of the \"Direct 3\" (D-3) priority queue, in work units. Each work unit is 2048 bytes of message data.", + "format": "int32", + "type": "integer" + }, + "queueDirect3MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Direct 3\" (D-3) priority queue, regardless of the `queueDirect3MaxDepth` value.", + "format": "int32", + "type": "integer" + }, + "queueGuaranteed1MaxDepth": { + "description": "The maximum depth of the \"Guaranteed 1\" (G-1) priority queue, in work units. Each work unit is 2048 bytes of message data.", + "format": "int32", + "type": "integer" + }, + "queueGuaranteed1MinMsgBurst": { + "description": "The number of messages that are always allowed entry into the \"Guaranteed 1\" (G-3) priority queue, regardless of the `queueGuaranteed1MaxDepth` value.", + "format": "int32", + "type": "integer" + }, + "rejectMsgToSenderOnNoSubscriptionMatchEnabled": { + "description": "Indicates whether to send a negative acknowledgement (NACK) to a client using the Client Profile when discarding a guaranteed message due to no matching subscription found.", + "type": "boolean" + }, + "replicationAllowClientConnectWhenStandbyEnabled": { + "description": "Indicates whether clients using the Client Profile are allowed to connect to the Message VPN when its replication state is standby.", + "type": "boolean" + }, + "serviceMinKeepaliveTimeout": { + "description": "The minimum client keepalive timeout which will be enforced for client connections. Available since 2.19.", + "format": "int32", + "type": "integer" + }, + "serviceSmfMaxConnectionCountPerClientUsername": { + "description": "The maximum number of SMF client connections per Client Username using the Client Profile.", + "format": "int64", + "type": "integer" + }, + "serviceSmfMinKeepaliveEnabled": { + "description": "Enable or disable the enforcement of a minimum keepalive timeout for SMF clients. Available since 2.19.", + "type": "boolean" + }, + "serviceWebInactiveTimeout": { + "description": "The timeout for inactive Web Transport client sessions using the Client Profile, in seconds.", + "format": "int64", + "type": "integer" + }, + "serviceWebMaxConnectionCountPerClientUsername": { + "description": "The maximum number of Web Transport client connections per Client Username using the Client Profile.", + "format": "int64", + "type": "integer" + }, + "serviceWebMaxPayload": { + "description": "The maximum Web Transport payload size before fragmentation occurs for clients using the Client Profile, in bytes. The size of the header is not included.", + "format": "int64", + "type": "integer" + }, + "tcpCongestionWindowSize": { + "description": "The TCP initial congestion window size for clients using the Client Profile, in multiples of the TCP Maximum Segment Size (MSS). Changing the value from its default of 2 results in non-compliance with RFC 2581. Contact support before changing this value.", + "format": "int64", + "type": "integer" + }, + "tcpKeepaliveCount": { + "description": "The number of TCP keepalive retransmissions to a client using the Client Profile before declaring that it is not available.", + "format": "int64", + "type": "integer" + }, + "tcpKeepaliveIdleTime": { + "description": "The amount of time a client connection using the Client Profile must remain idle before TCP begins sending keepalive probes, in seconds.", + "format": "int64", + "type": "integer" + }, + "tcpKeepaliveInterval": { + "description": "The amount of time between TCP keepalive retransmissions to a client using the Client Profile when no acknowledgement is received, in seconds.", + "format": "int64", + "type": "integer" + }, + "tcpMaxSegmentSize": { + "description": "The TCP maximum segment size for clients using the Client Profile, in bytes. Changes are applied to all existing connections.", + "format": "int64", + "type": "integer" + }, + "tcpMaxWindowSize": { + "description": "The TCP maximum window size for clients using the Client Profile, in kilobytes. Changes are applied to all existing connections.", + "format": "int64", + "type": "integer" + }, + "tlsAllowDowngradeToPlainTextEnabled": { + "description": "Indicates whether clients using the Client Profile are allowed to downgrade an encrypted connection to plain text.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnClientProfileCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnClientProfileLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientProfileResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnClientProfileCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnClientProfile" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientProfilesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnClientProfileCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnClientCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnClient" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientRxFlow": { + "properties": { + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "connectTime": { + "description": "The timestamp of when the Flow from the Client connected.", + "format": "int32", + "type": "integer" + }, + "destinationGroupErrorDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to a destination group error.", + "format": "int64", + "type": "integer" + }, + "duplicateDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to being a duplicate.", + "format": "int64", + "type": "integer" + }, + "endpointDisabledDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to an eligible endpoint destination being disabled.", + "format": "int64", + "type": "integer" + }, + "endpointUsageExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to an eligible endpoint destination having its maximum message spool usage exceeded.", + "format": "int64", + "type": "integer" + }, + "erroredDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to errors being detected.", + "format": "int64", + "type": "integer" + }, + "flowId": { + "description": "The identifier (ID) of the flow.", + "format": "int64", + "type": "integer" + }, + "flowName": { + "description": "The name of the Flow.", + "type": "string" + }, + "guaranteedMsgCount": { + "description": "The number of guaranteed messages from the Flow.", + "format": "int64", + "type": "integer" + }, + "lastRxMsgId": { + "description": "The identifier (ID) of the last message received on the Flow.", + "format": "int64", + "type": "integer" + }, + "localMsgCountExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to the maximum number of messages allowed on the broker being exceeded.", + "format": "int64", + "type": "integer" + }, + "lowPriorityMsgCongestionDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to congestion of low priority messages.", + "format": "int64", + "type": "integer" + }, + "maxMsgSizeExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to the maximum allowed message size being exceeded.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "noEligibleDestinationsDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to there being no eligible endpoint destination.", + "format": "int64", + "type": "integer" + }, + "noLocalDeliveryDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to no local delivery being requested.", + "format": "int64", + "type": "integer" + }, + "notCompatibleWithForwardingModeDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to being incompatible with the forwarding mode of an eligible endpoint destination.", + "format": "int64", + "type": "integer" + }, + "outOfOrderDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to being received out of order.", + "format": "int64", + "type": "integer" + }, + "publishAclDeniedDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to being denied by the access control list (ACL) profile for the published topic.", + "format": "int64", + "type": "integer" + }, + "publisherId": { + "description": "The identifier (ID) of the publisher for the Flow.", + "format": "int64", + "type": "integer" + }, + "queueNotFoundDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to the destination queue not being found.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to the Message VPN being in the replication standby state.", + "format": "int64", + "type": "integer" + }, + "sessionName": { + "description": "The name of the transacted session on the Flow.", + "type": "string" + }, + "smfTtlExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to the message time-to-live (TTL) count being exceeded. The message TTL count is the maximum number of times the message can cross a bridge between Message VPNs.", + "format": "int64", + "type": "integer" + }, + "spoolFileLimitExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to all available message spool file resources being used.", + "format": "int64", + "type": "integer" + }, + "spoolNotReadyDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to the message spool being not ready.", + "format": "int64", + "type": "integer" + }, + "spoolToAdbFailDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to a failure while spooling to the Assured Delivery Blade (ADB).", + "format": "int64", + "type": "integer" + }, + "spoolToDiskFailDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to a failure while spooling to the disk.", + "format": "int64", + "type": "integer" + }, + "spoolUsageExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to the maximum message spool usage being exceeded.", + "format": "int64", + "type": "integer" + }, + "syncReplicationIneligibleDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to synchronous replication being ineligible.", + "format": "int64", + "type": "integer" + }, + "userProfileDeniedGuaranteedDiscardedMsgCount": { + "description": "The number of guaranteed messages from the Flow discarded due to being denied by the client profile.", + "format": "int64", + "type": "integer" + }, + "windowSize": { + "description": "The size of the window used for guaranteed messages sent on the Flow, in messages.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnClientRxFlowCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnClientRxFlowLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Receive Flow object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientRxFlowResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnClientRxFlowCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnClientRxFlow" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientRxFlowLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientRxFlowsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnClientRxFlowCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientRxFlow" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientRxFlowLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientSubscription": { + "properties": { + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "dtoPriority": { + "description": "The priority of the Subscription topic for receiving deliver-to-one (DTO) messages. The allowed values and their meaning are:\n\n
\n\"p1\" - The 1st or highest priority.\n\"p2\" - The 2nd highest priority.\n\"p3\" - The 3rd highest priority.\n\"p4\" - The 4th highest priority.\n\"da\" - Ignore priority and deliver always.\n
\n", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "subscriptionTopic": { + "description": "The topic of the Subscription.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientSubscriptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnClientSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientSubscriptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnClientSubscriptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnClientSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientSubscriptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnClientSubscriptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientTransactedSession": { + "properties": { + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "commitCount": { + "description": "The number of transactions committed within the Transacted Session.", + "format": "int64", + "type": "integer" + }, + "commitFailureCount": { + "description": "The number of transaction commit operations that failed.", + "format": "int64", + "type": "integer" + }, + "commitSuccessCount": { + "description": "The number of transaction commit operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "consumedMsgCount": { + "description": "The number of messages consumed within the Transacted Session.", + "format": "int64", + "type": "integer" + }, + "endFailFailureCount": { + "description": "The number of transaction end fail operations that failed.", + "format": "int64", + "type": "integer" + }, + "endFailSuccessCount": { + "description": "The number of transaction end fail operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "endFailureCount": { + "description": "The number of transaction end operations that failed.", + "format": "int64", + "type": "integer" + }, + "endRollbackFailureCount": { + "description": "The number of transaction end rollback operations that failed.", + "format": "int64", + "type": "integer" + }, + "endRollbackSuccessCount": { + "description": "The number of transaction end rollback operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "endSuccessCount": { + "description": "The number of transaction end operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "failureCount": { + "description": "The number of transactions that failed within the Transacted Session.", + "format": "int64", + "type": "integer" + }, + "forgetFailureCount": { + "description": "The number of transaction forget operations that failed.", + "format": "int64", + "type": "integer" + }, + "forgetSuccessCount": { + "description": "The number of transaction forget operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "onePhaseCommitFailureCount": { + "description": "The number of transaction one-phase commit operations that failed.", + "format": "int64", + "type": "integer" + }, + "onePhaseCommitSuccessCount": { + "description": "The number of transaction one-phase commit operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "pendingConsumedMsgCount": { + "description": "The number of messages to be consumed when the transaction is committed.", + "format": "int32", + "type": "integer" + }, + "pendingPublishedMsgCount": { + "description": "The number of messages to be published when the transaction is committed.", + "format": "int32", + "type": "integer" + }, + "prepareFailureCount": { + "description": "The number of transaction prepare operations that failed.", + "format": "int64", + "type": "integer" + }, + "prepareSuccessCount": { + "description": "The number of transaction prepare operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "previousTransactionState": { + "description": "The state of the previous transaction. The allowed values and their meaning are:\n\n
\n\"none\" - The previous transaction had no state.\n\"committed\" - The previous transaction was committed.\n\"rolled-back\" - The previous transaction was rolled back.\n\"failed\" - The previous transaction failed.\n
\n", + "type": "string" + }, + "publishedMsgCount": { + "description": "The number of messages published within the Transacted Session.", + "format": "int64", + "type": "integer" + }, + "resumeFailureCount": { + "description": "The number of transaction resume operations that failed.", + "format": "int64", + "type": "integer" + }, + "resumeSuccessCount": { + "description": "The number of transaction resume operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "retrievedMsgCount": { + "description": "The number of messages retrieved within the Transacted Session.", + "format": "int64", + "type": "integer" + }, + "rollbackCount": { + "description": "The number of transactions rolled back within the Transacted Session.", + "format": "int64", + "type": "integer" + }, + "rollbackFailureCount": { + "description": "The number of transaction rollback operations that failed.", + "format": "int64", + "type": "integer" + }, + "rollbackSuccessCount": { + "description": "The number of transaction rollback operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "sessionName": { + "description": "The name of the Transacted Session.", + "type": "string" + }, + "spooledMsgCount": { + "description": "The number of messages spooled within the Transacted Session.", + "format": "int64", + "type": "integer" + }, + "startFailureCount": { + "description": "The number of transaction start operations that failed.", + "format": "int64", + "type": "integer" + }, + "startSuccessCount": { + "description": "The number of transaction start operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "successCount": { + "description": "The number of transactions that succeeded within the Transacted Session.", + "format": "int64", + "type": "integer" + }, + "suspendFailureCount": { + "description": "The number of transaction suspend operations that failed.", + "format": "int64", + "type": "integer" + }, + "suspendSuccessCount": { + "description": "The number of transaction suspend operations that succeeded.", + "format": "int64", + "type": "integer" + }, + "transactionId": { + "description": "The identifier (ID) of the transaction in the Transacted Session.", + "format": "int32", + "type": "integer" + }, + "transactionState": { + "description": "The state of the current transaction. The allowed values and their meaning are:\n\n
\n\"in-progress\" - The current transaction is in progress.\n\"committing\" - The current transaction is committing.\n\"rolling-back\" - The current transaction is rolling back.\n\"failing\" - The current transaction is failing.\n
\n", + "type": "string" + }, + "twoPhaseCommitFailureCount": { + "description": "The number of transaction two-phase commit operations that failed.", + "format": "int64", + "type": "integer" + }, + "twoPhaseCommitSuccessCount": { + "description": "The number of transaction two-phase commit operations that succeeded.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnClientTransactedSessionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnClientTransactedSessionLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Transacted Session object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientTransactedSessionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnClientTransactedSession" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientTransactedSessionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientTransactedSession" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientTxFlow": { + "properties": { + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "endpointName": { + "description": "The name of the Queue or Topic Endpoint bound.", + "type": "string" + }, + "endpointType": { + "description": "The type of endpoint bound. The allowed values and their meaning are:\n\n
\n\"queue\" - The Client is bound to a Queue.\n\"topic-endpoint\" - The Client is bound to a Topic Endpoint.\n
\n", + "type": "string" + }, + "flowId": { + "description": "The identifier (ID) of the flow.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientTxFlowCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnClientTxFlowLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Transmit Flow object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientTxFlowResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnClientTxFlowCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnClientTxFlow" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientTxFlowLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientTxFlowsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnClientTxFlowCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientTxFlow" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientTxFlowLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientUsername": { + "properties": { + "aclProfileName": { + "description": "The ACL Profile of the Client Username.", + "type": "string" + }, + "clientProfileName": { + "description": "The Client Profile of the Client Username.", + "type": "string" + }, + "clientUsername": { + "description": "The name of the Client Username.", + "type": "string" + }, + "dynamic": { + "description": "Indicates whether the Client Username was dynamically created based on remote authorization data.", + "type": "boolean" + }, + "enabled": { + "description": "Indicates whether the Client Username is enabled.", + "type": "boolean" + }, + "guaranteedEndpointPermissionOverrideEnabled": { + "description": "Indicates whether the guaranteed endpoint permission override is enabled for the Client Username.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "subscriptionManagerEnabled": { + "description": "Indicates whether the subscription management capability is enabled for the Client Username.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnClientUsernameAttribute": { + "properties": { + "attributeName": { + "description": "The name of the Attribute.", + "type": "string" + }, + "attributeValue": { + "description": "The value of the Attribute.", + "type": "string" + }, + "clientUsername": { + "description": "The name of the Client Username.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientUsernameAttributeCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnClientUsernameAttributeLinks": { + "properties": { + "uri": { + "description": "The URI of this Client Username Attribute object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientUsernameAttributeResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributeCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnClientUsernameAttribute" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributeLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientUsernameAttributesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributeCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientUsernameAttribute" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributeLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientUsernameCollections": { + "properties": { + "attributes": { + "$ref": "#/definitions/MsgVpnClientUsernameCollectionsAttributes" + } + }, + "type": "object" + }, + "MsgVpnClientUsernameCollectionsAttributes": { + "properties": { + "count": { + "description": "The total number of objects in the attributes collection. Available since 2.27.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnClientUsernameLinks": { + "properties": { + "attributesUri": { + "description": "The URI of this Client Username's collection of Client Username Attribute objects. Available since 2.27.", + "type": "string" + }, + "uri": { + "description": "The URI of this Client Username object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnClientUsernameResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnClientUsernameCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnClientUsername" + }, + "links": { + "$ref": "#/definitions/MsgVpnClientUsernameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientUsernamesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnClientUsernameCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClientUsername" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientUsernameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnClientsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnClientCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnClient" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnClientLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCollections": { + "properties": { + "aclProfiles": { + "$ref": "#/definitions/MsgVpnCollectionsAclProfiles" + }, + "authenticationOauthProfiles": { + "$ref": "#/definitions/MsgVpnCollectionsAuthenticationOauthProfiles" + }, + "authenticationOauthProviders": { + "$ref": "#/definitions/MsgVpnCollectionsAuthenticationOauthProviders" + }, + "authorizationGroups": { + "$ref": "#/definitions/MsgVpnCollectionsAuthorizationGroups" + }, + "bridges": { + "$ref": "#/definitions/MsgVpnCollectionsBridges" + }, + "certMatchingRules": { + "$ref": "#/definitions/MsgVpnCollectionsCertMatchingRules" + }, + "clientProfiles": { + "$ref": "#/definitions/MsgVpnCollectionsClientProfiles" + }, + "clientUsernames": { + "$ref": "#/definitions/MsgVpnCollectionsClientUsernames" + }, + "clients": { + "$ref": "#/definitions/MsgVpnCollectionsClients" + }, + "configSyncRemoteNodes": { + "$ref": "#/definitions/MsgVpnCollectionsConfigSyncRemoteNodes" + }, + "distributedCaches": { + "$ref": "#/definitions/MsgVpnCollectionsDistributedCaches" + }, + "dmrBridges": { + "$ref": "#/definitions/MsgVpnCollectionsDmrBridges" + }, + "jndiConnectionFactories": { + "$ref": "#/definitions/MsgVpnCollectionsJndiConnectionFactories" + }, + "jndiQueues": { + "$ref": "#/definitions/MsgVpnCollectionsJndiQueues" + }, + "jndiTopics": { + "$ref": "#/definitions/MsgVpnCollectionsJndiTopics" + }, + "mqttRetainCaches": { + "$ref": "#/definitions/MsgVpnCollectionsMqttRetainCaches" + }, + "mqttSessions": { + "$ref": "#/definitions/MsgVpnCollectionsMqttSessions" + }, + "queueTemplates": { + "$ref": "#/definitions/MsgVpnCollectionsQueueTemplates" + }, + "queues": { + "$ref": "#/definitions/MsgVpnCollectionsQueues" + }, + "replayLogs": { + "$ref": "#/definitions/MsgVpnCollectionsReplayLogs" + }, + "replicatedTopics": { + "$ref": "#/definitions/MsgVpnCollectionsReplicatedTopics" + }, + "restDeliveryPoints": { + "$ref": "#/definitions/MsgVpnCollectionsRestDeliveryPoints" + }, + "telemetryProfiles": { + "$ref": "#/definitions/MsgVpnCollectionsTelemetryProfiles" + }, + "topicEndpointTemplates": { + "$ref": "#/definitions/MsgVpnCollectionsTopicEndpointTemplates" + }, + "topicEndpoints": { + "$ref": "#/definitions/MsgVpnCollectionsTopicEndpoints" + }, + "transactions": { + "$ref": "#/definitions/MsgVpnCollectionsTransactions" + } + }, + "type": "object" + }, + "MsgVpnCollectionsAclProfiles": { + "properties": { + "count": { + "description": "The total number of objects in the aclProfiles collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsAuthenticationOauthProfiles": { + "properties": { + "count": { + "description": "The total number of objects in the authenticationOauthProfiles collection. Available since 2.25.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsAuthenticationOauthProviders": { + "properties": { + "count": { + "description": "The total number of objects in the authenticationOauthProviders collection. Deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsAuthorizationGroups": { + "properties": { + "count": { + "description": "The total number of objects in the authorizationGroups collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsBridges": { + "properties": { + "count": { + "description": "The total number of objects in the bridges collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsCertMatchingRules": { + "properties": { + "count": { + "description": "The total number of objects in the certMatchingRules collection. Available since 2.27.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsClientProfiles": { + "properties": { + "count": { + "description": "The total number of objects in the clientProfiles collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsClientUsernames": { + "properties": { + "count": { + "description": "The total number of objects in the clientUsernames collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsClients": { + "properties": { + "count": { + "description": "The total number of objects in the clients collection. Available since 2.12.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsConfigSyncRemoteNodes": { + "properties": { + "count": { + "description": "The total number of objects in the configSyncRemoteNodes collection. Deprecated since 2.22. This attribute has been deprecated.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsDistributedCaches": { + "properties": { + "count": { + "description": "The total number of objects in the distributedCaches collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsDmrBridges": { + "properties": { + "count": { + "description": "The total number of objects in the dmrBridges collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsJndiConnectionFactories": { + "properties": { + "count": { + "description": "The total number of objects in the jndiConnectionFactories collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsJndiQueues": { + "properties": { + "count": { + "description": "The total number of objects in the jndiQueues collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsJndiTopics": { + "properties": { + "count": { + "description": "The total number of objects in the jndiTopics collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsMqttRetainCaches": { + "properties": { + "count": { + "description": "The total number of objects in the mqttRetainCaches collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsMqttSessions": { + "properties": { + "count": { + "description": "The total number of objects in the mqttSessions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsQueueTemplates": { + "properties": { + "count": { + "description": "The total number of objects in the queueTemplates collection. Available since 2.14.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsQueues": { + "properties": { + "count": { + "description": "The total number of objects in the queues collection. Available since 2.12.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsReplayLogs": { + "properties": { + "count": { + "description": "The total number of objects in the replayLogs collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsReplicatedTopics": { + "properties": { + "count": { + "description": "The total number of objects in the replicatedTopics collection. Available since 2.12.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsRestDeliveryPoints": { + "properties": { + "count": { + "description": "The total number of objects in the restDeliveryPoints collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsTelemetryProfiles": { + "properties": { + "count": { + "description": "The total number of objects in the telemetryProfiles collection. Available since 2.31.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsTopicEndpointTemplates": { + "properties": { + "count": { + "description": "The total number of objects in the topicEndpointTemplates collection. Available since 2.14.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsTopicEndpoints": { + "properties": { + "count": { + "description": "The total number of objects in the topicEndpoints collection. Available since 2.12.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnCollectionsTransactions": { + "properties": { + "count": { + "description": "The total number of objects in the transactions collection. Available since 2.12.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnConfigSyncRemoteNode": { + "properties": { + "lastMsgRxTime": { + "description": "The amount of time in seconds since the last message was received from the config sync table of the remote Message VPN. Deprecated since 2.22. This attribute has been deprecated.", + "format": "int32", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.22. This attribute has been deprecated.", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the Config Sync Remote Node. Deprecated since 2.22. This attribute has been deprecated.", + "type": "string" + }, + "role": { + "description": "The role of the config sync table of the remote Message VPN. The allowed values and their meaning are:\n\n
\n\"unknown\" - The role is unknown.\n\"primary\" - Acts as the primary source of config data.\n\"replica\" - Acts as a replica of the primary config data.\n
\n Deprecated since 2.22. This attribute has been deprecated.", + "type": "string" + }, + "stale": { + "description": "Indicates whether the config sync table of the remote Message VPN is stale. Deprecated since 2.22. This attribute has been deprecated.", + "type": "boolean" + }, + "state": { + "description": "The state of the config sync table of the remote Message VPN. The allowed values and their meaning are:\n\n
\n\"unknown\" - The state is unknown.\n\"in-sync\" - The config data is synchronized between Message VPNs.\n\"reconciling\" - The config data is reconciling between Message VPNs.\n\"blocked\" - The config data is blocked from reconciling due to an error.\n\"out-of-sync\" - The config data is out of sync between Message VPNs.\n\"down\" - The state is down due to configuration.\n
\n Deprecated since 2.22. This attribute has been deprecated.", + "type": "string" + }, + "timeInState": { + "description": "The amount of time in seconds the config sync table of the remote Message VPN has been in the current state. Deprecated since 2.22. This attribute has been deprecated.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnConfigSyncRemoteNodeCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnConfigSyncRemoteNodeLinks": { + "properties": { + "uri": { + "description": "The URI of this Config Sync Remote Node object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnConfigSyncRemoteNodeResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnConfigSyncRemoteNodeCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnConfigSyncRemoteNode" + }, + "links": { + "$ref": "#/definitions/MsgVpnConfigSyncRemoteNodeLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnConfigSyncRemoteNodesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnConfigSyncRemoteNodeCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnConfigSyncRemoteNode" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnConfigSyncRemoteNodeLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnCounter": { + "description": "The counters for the Message VPN. Deprecated since 2.13. All attributes in this object have been moved to the MsgVpn object.", + "properties": { + "controlRxByteCount": { + "description": "The amount of client control messages received from clients by the Message VPN, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "controlRxMsgCount": { + "description": "The number of client control messages received from clients by the Message VPN. Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "controlTxByteCount": { + "description": "The amount of client control messages transmitted to clients by the Message VPN, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "controlTxMsgCount": { + "description": "The number of client control messages transmitted to clients by the Message VPN. Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "dataRxByteCount": { + "description": "The amount of client data messages received from clients by the Message VPN, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "dataRxMsgCount": { + "description": "The number of client data messages received from clients by the Message VPN. Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "dataTxByteCount": { + "description": "The amount of client data messages transmitted to clients by the Message VPN, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "dataTxMsgCount": { + "description": "The number of client data messages transmitted to clients by the Message VPN. Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "discardedRxMsgCount": { + "description": "The number of messages discarded during reception by the Message VPN. Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "discardedTxMsgCount": { + "description": "The number of messages discarded during transmission by the Message VPN. Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "loginRxMsgCount": { + "description": "The number of login request messages received by the Message VPN. Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "loginTxMsgCount": { + "description": "The number of login response messages transmitted by the Message VPN. Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "msgSpoolRxMsgCount": { + "description": "The number of guaranteed messages received by the Message VPN. Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "msgSpoolTxMsgCount": { + "description": "The number of guaranteed messages transmitted by the Message VPN. One message to multiple clients is counted as one message. Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "tlsRxByteCount": { + "description": "The amount of TLS messages received by the Message VPN, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "tlsTxByteCount": { + "description": "The amount of TLS messages transmitted by the Message VPN, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCache": { + "properties": { + "cacheManagementUp": { + "description": "Indicates whether managing of the distributed cache over the message bus is operationally up in the Message VPN. Available since 2.28.", + "type": "boolean" + }, + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "cacheVirtualRouter": { + "description": "The virtual router of the Distributed Cache. The allowed values and their meaning are:\n\n
\n\"auto\" - The Distributed Cache is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n Available since 2.28.", + "enum": [ + "auto" + ], + "type": "string" + }, + "enabled": { + "description": "Indicates whether the Distributed Cache is enabled.", + "type": "boolean" + }, + "heartbeat": { + "description": "The heartbeat interval, in seconds, used by the Cache Instances to monitor connectivity with the message broker.", + "format": "int64", + "type": "integer" + }, + "lastFailureReason": { + "description": "The reason for the last distributed cache management failure. Available since 2.28.", + "type": "string" + }, + "lastFailureTime": { + "description": "The timestamp of the last distributed cache management failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.28.", + "format": "int32", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "msgsLost": { + "description": "Indicates whether one or more messages were lost by any Cache Instance in the Distributed Cache.", + "type": "boolean" + }, + "scheduledDeleteMsgDayList": { + "description": "The scheduled delete message day(s), specified as \"daily\" or a comma-separated list of days. Days must be specified as \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", or \"Sat\", with no spaces, and in sorted order from Sunday to Saturday. The empty-string (\"\") can also be specified, indicating no schedule is configured (\"scheduledDeleteMsgTimeList\" must also be configured to the empty-string).", + "type": "string" + }, + "scheduledDeleteMsgTimeList": { + "description": "The scheduled delete message time(s), specified as \"hourly\" or a comma-separated list of 24-hour times in the form hh:mm, or h:mm. There must be no spaces, and times (up to 4) must be in sorted order from 0:00 to 23:59. The empty-string (\"\") can also be specified, indicating no schedule is configured (\"scheduledDeleteMsgDayList\" must also be configured to the empty-string).", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheCluster": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "deliverToOneOverrideEnabled": { + "description": "Indicates whether deliver-to-one override is enabled for the Cache Cluster.", + "type": "boolean" + }, + "enabled": { + "description": "Indicates whether the Cache Cluster is enabled.", + "type": "boolean" + }, + "eventDataByteRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "eventDataMsgRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "eventMaxMemoryThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "eventMaxTopicsThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "eventRequestQueueDepthThreshold": { + "$ref": "#/definitions/EventThresholdByPercent" + }, + "eventRequestRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "eventResponseRateThreshold": { + "$ref": "#/definitions/EventThresholdByValue" + }, + "globalCachingEnabled": { + "description": "Indicates whether global caching for the Cache Cluster is enabled, and the Cache Instances will fetch topics from remote Home Cache Clusters when requested, and subscribe to those topics to cache them locally.", + "type": "boolean" + }, + "globalCachingHeartbeat": { + "description": "The heartbeat interval, in seconds, used by the Cache Instances to monitor connectivity with the remote Home Cache Clusters.", + "format": "int64", + "type": "integer" + }, + "globalCachingTopicLifetime": { + "description": "The topic lifetime, in seconds. If no client requests are received for a given global topic over the duration of the topic lifetime, then the Cache Instance will remove the subscription and cached messages for that topic. A value of 0 disables aging.", + "format": "int64", + "type": "integer" + }, + "maxMemory": { + "description": "The maximum memory usage, in megabytes (MB), for each Cache Instance in the Cache Cluster.", + "format": "int64", + "type": "integer" + }, + "maxMsgsPerTopic": { + "description": "The maximum number of messages per topic for each Cache Instance in the Cache Cluster. When at the maximum, old messages are removed as new messages arrive.", + "format": "int64", + "type": "integer" + }, + "maxRequestQueueDepth": { + "description": "The maximum queue depth for cache requests received by the Cache Cluster.", + "format": "int64", + "type": "integer" + }, + "maxTopicCount": { + "description": "The maximum number of topics for each Cache Instance in the Cache Cluster.", + "format": "int64", + "type": "integer" + }, + "msgLifetime": { + "description": "The message lifetime, in seconds. If a message remains cached for the duration of its lifetime, the Cache Instance will remove the message. A lifetime of 0 results in the message being retained indefinitely.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "msgsLost": { + "description": "Indicates whether one or more messages were lost by any Cache Instance in the Cache Cluster.", + "type": "boolean" + }, + "newTopicAdvertisementEnabled": { + "description": "Indicates whether advertising of new topics learned by the Cache Instances in this Cache Cluster is enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterCollections": { + "properties": { + "globalCachingHomeClusters": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterCollectionsGlobalCachingHomeClusters" + }, + "instances": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterCollectionsInstances" + }, + "topics": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterCollectionsTopics" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterCollectionsGlobalCachingHomeClusters": { + "properties": { + "count": { + "description": "The total number of objects in the globalCachingHomeClusters collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterCollectionsInstances": { + "properties": { + "count": { + "description": "The total number of objects in the instances collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterCollectionsTopics": { + "properties": { + "count": { + "description": "The total number of objects in the topics collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeCluster": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "homeClusterName": { + "description": "The name of the remote Home Cache Cluster.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterCollections": { + "properties": { + "topicPrefixes": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterCollectionsTopicPrefixes" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterCollectionsTopicPrefixes": { + "properties": { + "count": { + "description": "The total number of objects in the topicPrefixes collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterLinks": { + "properties": { + "topicPrefixesUri": { + "description": "The URI of this Home Cache Cluster's collection of Topic Prefix objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Home Cache Cluster object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeCluster" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "homeClusterName": { + "description": "The name of the remote Home Cache Cluster.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "topicPrefix": { + "description": "A topic prefix for global topics available from the remote Home Cache Cluster. A wildcard (/>) is implied at the end of the prefix.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic Prefix object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterGlobalCachingHomeClustersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeCluster" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstance": { + "properties": { + "autoStartEnabled": { + "description": "Indicates whether auto-start for the Cache Instance is enabled, and the Cache Instance will automatically attempt to transition from the Stopped operational state to Up whenever it restarts or reconnects to the message broker.", + "type": "boolean" + }, + "averageDataRxBytePeakRate": { + "description": "The peak of the one minute average of the data message rate received by the Cache Instance, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageDataRxByteRate": { + "description": "The one minute average of the data message rate received by the Cache Instance, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageDataRxMsgPeakRate": { + "description": "The peak of the one minute average of the data message rate received by the Cache Instance, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageDataRxMsgRate": { + "description": "The one minute average of the data message rate received by the Cache Instance, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageDataTxMsgPeakRate": { + "description": "The peak of the one minute average of the data message rate transmitted by the Cache Instance, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageDataTxMsgRate": { + "description": "The one minute average of the data message rate transmitted by the Cache Instance, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageRequestRxPeakRate": { + "description": "The peak of the one minute average of the request rate received by the Cache Instance, in requests per second (req/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "averageRequestRxRate": { + "description": "The one minute average of the request rate received by the Cache Instance, in requests per second (req/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "counter": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceCounter" + }, + "dataRxBytePeakRate": { + "description": "The data message peak rate received by the Cache Instance, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataRxByteRate": { + "description": "The data message rate received by the Cache Instance, in bytes per second (B/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataRxMsgPeakRate": { + "description": "The data message peak rate received by the Cache Instance, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataRxMsgRate": { + "description": "The data message rate received by the Cache Instance, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataTxMsgPeakRate": { + "description": "The data message peak rate transmitted by the Cache Instance, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "dataTxMsgRate": { + "description": "The data message rate transmitted by the Cache Instance, in messages per second (msg/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "enabled": { + "description": "Indicates whether the Cache Instance is enabled.", + "type": "boolean" + }, + "instanceName": { + "description": "The name of the Cache Instance.", + "type": "string" + }, + "lastRegisteredTime": { + "description": "The timestamp of when the Cache Instance last registered with the message broker. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastRxHeartbeatTime": { + "description": "The timestamp of the last heartbeat message received from the Cache Instance. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastRxSetLostMsgTime": { + "description": "The timestamp of the last request for setting the lost message indication received from the Cache Instance. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastStoppedReason": { + "description": "The reason why the Cache Instance was last stopped.", + "type": "string" + }, + "lastStoppedTime": { + "description": "The timestamp of when the Cache Instance was last stopped. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastTxClearLostMsgTime": { + "description": "The timestamp of the last request for clearing the lost message indication transmitted to the Cache Instance. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "memoryUsage": { + "description": "The memory usage of the Cache Instance, in megabytes (MB).", + "format": "int32", + "type": "integer" + }, + "msgCount": { + "description": "The number of messages cached for the Cache Instance. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "msgPeakCount": { + "description": "The number of messages cached peak for the Cache Instance. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "msgsLost": { + "description": "Indicates whether one or more messages were lost by the Cache Instance.", + "type": "boolean" + }, + "rate": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRate" + }, + "requestQueueDepthCount": { + "description": "The received request message queue depth for the Cache Instance. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "requestQueueDepthPeakCount": { + "description": "The received request message queue depth peak for the Cache Instance. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "requestRxPeakRate": { + "description": "The request peak rate received by the Cache Instance, in requests per second (req/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "requestRxRate": { + "description": "The request rate received by the Cache Instance, in requests per second (req/sec). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "state": { + "description": "The operational state of the Cache Instance. The allowed values and their meaning are:\n\n
\n\"invalid\" - The Cache Instance state is invalid.\n\"down\" - The Cache Instance is operationally down.\n\"stopped\" - The Cache Instance has stopped processing cache requests.\n\"stopped-lost-msg\" - The Cache Instance has stopped due to a lost message.\n\"register\" - The Cache Instance is registering with the broker.\n\"config-sync\" - The Cache Instance is synchronizing its configuration with the broker.\n\"cluster-sync\" - The Cache Instance is synchronizing its messages with the Cache Cluster.\n\"up\" - The Cache Instance is operationally up.\n\"backup\" - The Cache Instance is backing up its messages to disk.\n\"restore\" - The Cache Instance is restoring its messages from disk.\n\"not-available\" - The Cache Instance state is not available.\n
\n", + "type": "string" + }, + "stopOnLostMsgEnabled": { + "description": "Indicates whether stop-on-lost-message is enabled, and the Cache Instance will transition to the Stopped operational state upon losing a message. When Stopped, it cannot accept or respond to cache requests, but continues to cache messages.", + "type": "boolean" + }, + "topicCount": { + "description": "The number of topics cached for the Cache Instance. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "topicPeakCount": { + "description": "The number of topics cached peak for the Cache Instance. Available since 2.13.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceCollections": { + "properties": { + "remoteGlobalCachingHomeClusters": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceCollectionsRemoteGlobalCachingHomeClusters" + }, + "remoteTopics": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceCollectionsRemoteTopics" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceCollectionsRemoteGlobalCachingHomeClusters": { + "properties": { + "count": { + "description": "The total number of objects in the remoteGlobalCachingHomeClusters collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceCollectionsRemoteTopics": { + "properties": { + "count": { + "description": "The total number of objects in the remoteTopics collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceCounter": { + "description": "The counters associated with the Cache Instance. Deprecated since 2.13. All attributes in this object have been moved to the MsgVpnDistributedCacheClusterInstance object.", + "properties": { + "msgCount": { + "description": "The number of messages cached for the Cache Instance. Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "msgPeakCount": { + "description": "The number of messages cached peak for the Cache Instance. Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "requestQueueDepthCount": { + "description": "The received request message queue depth for the Cache Instance. Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "requestQueueDepthPeakCount": { + "description": "The received request message queue depth peak for the Cache Instance. Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "topicCount": { + "description": "The number of topics cached for the Cache Instance. Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "topicPeakCount": { + "description": "The number of topics cached peak for the Cache Instance. Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceLinks": { + "properties": { + "remoteGlobalCachingHomeClustersUri": { + "description": "The URI of this Cache Instance's collection of Remote Home Cache Cluster objects.", + "type": "string" + }, + "remoteTopicsUri": { + "description": "The URI of this Cache Instance's collection of Remote Topic objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Cache Instance object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRate": { + "description": "The rates associated with the Cache Instance. Deprecated since 2.13. All attributes in this object have been moved to the MsgVpnDistributedCacheClusterInstance object.", + "properties": { + "averageDataRxBytePeakRate": { + "description": "The peak of the one minute average of the data message rate received by the Cache Instance, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "averageDataRxByteRate": { + "description": "The one minute average of the data message rate received by the Cache Instance, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "averageDataRxMsgPeakRate": { + "description": "The peak of the one minute average of the data message rate received by the Cache Instance, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "averageDataRxMsgRate": { + "description": "The one minute average of the data message rate received by the Cache Instance, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "averageDataTxMsgPeakRate": { + "description": "The peak of the one minute average of the data message rate transmitted by the Cache Instance, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "averageDataTxMsgRate": { + "description": "The one minute average of the data message rate transmitted by the Cache Instance, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "averageRequestRxPeakRate": { + "description": "The peak of the one minute average of the request rate received by the Cache Instance, in requests per second (req/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "averageRequestRxRate": { + "description": "The one minute average of the request rate received by the Cache Instance, in requests per second (req/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "dataRxBytePeakRate": { + "description": "The data message peak rate received by the Cache Instance, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "dataRxByteRate": { + "description": "The data message rate received by the Cache Instance, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "dataRxMsgPeakRate": { + "description": "The data message peak rate received by the Cache Instance, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "dataRxMsgRate": { + "description": "The data message rate received by the Cache Instance, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "dataTxMsgPeakRate": { + "description": "The data message peak rate transmitted by the Cache Instance, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "dataTxMsgRate": { + "description": "The data message rate transmitted by the Cache Instance, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "requestRxPeakRate": { + "description": "The request peak rate received by the Cache Instance, in requests per second (req/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + }, + "requestRxRate": { + "description": "The request rate received by the Cache Instance, in requests per second (req/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpnDistributedCacheClusterInstance object.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeCluster": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "cacheRequestForwardedCount": { + "description": "The number of cache requests forwarded to the remote Home Cache Cluster.", + "format": "int64", + "type": "integer" + }, + "cacheRequestRxCount": { + "description": "The number of cache requests received from the remote Home Cache Cluster.", + "format": "int64", + "type": "integer" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "heartbeatRxCount": { + "description": "The number of heartbeat messages received from the remote Home Cache Cluster.", + "format": "int64", + "type": "integer" + }, + "heartbeatUp": { + "description": "Indicates whether the operational state of the heartbeat with the remote Home Cache Cluster is up.", + "type": "boolean" + }, + "homeClusterName": { + "description": "The name of the remote Home Cache Cluster.", + "type": "string" + }, + "instanceName": { + "description": "The name of the Cache Instance.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClusterCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClusterLinks": { + "properties": { + "uri": { + "description": "The URI of this Remote Home Cache Cluster object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClusterResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClusterCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeCluster" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClusterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClustersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClusterCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeCluster" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClusterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRemoteTopic": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "globalTopic": { + "description": "Indicates whether the type of the remote Topic is global.", + "type": "boolean" + }, + "homeClusterName": { + "description": "The name of the remote Home Cache Cluster.", + "type": "string" + }, + "instanceName": { + "description": "The name of the Cache Instance.", + "type": "string" + }, + "msgCount": { + "description": "The number of messages cached for the remote Topic.", + "format": "int32", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "suspect": { + "description": "Indicates whether the remote Topic is suspect due to the remote Home Cache Cluster being in the lost message state.", + "type": "boolean" + }, + "topic": { + "description": "The value of the remote Topic.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRemoteTopicCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRemoteTopicLinks": { + "properties": { + "uri": { + "description": "The URI of this Remote Topic object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRemoteTopicResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteTopicCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteTopic" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteTopicLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceRemoteTopicsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteTopicCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteTopic" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteTopicLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstanceResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstance" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterInstancesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstance" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterLinks": { + "properties": { + "globalCachingHomeClustersUri": { + "description": "The URI of this Cache Cluster's collection of Home Cache Cluster objects.", + "type": "string" + }, + "instancesUri": { + "description": "The URI of this Cache Cluster's collection of Cache Instance objects.", + "type": "string" + }, + "topicsUri": { + "description": "The URI of this Cache Cluster's collection of Topic objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Cache Cluster object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheCluster" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterTopic": { + "properties": { + "cacheName": { + "description": "The name of the Distributed Cache.", + "type": "string" + }, + "clusterName": { + "description": "The name of the Cache Cluster.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "topic": { + "description": "The value of the Topic in the form a/b/c.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterTopicCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnDistributedCacheClusterTopicLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheClusterTopicResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopic" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClusterTopicsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopic" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheClustersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheCluster" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCacheCollections": { + "properties": { + "clusters": { + "$ref": "#/definitions/MsgVpnDistributedCacheCollectionsClusters" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheCollectionsClusters": { + "properties": { + "count": { + "description": "The total number of objects in the clusters collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheLinks": { + "properties": { + "clustersUri": { + "description": "The URI of this Distributed Cache's collection of Cache Cluster objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Distributed Cache object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDistributedCacheResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnDistributedCacheCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnDistributedCache" + }, + "links": { + "$ref": "#/definitions/MsgVpnDistributedCacheLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDistributedCachesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCache" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDistributedCacheLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDmrBridge": { + "properties": { + "failureReason": { + "description": "The last failure reason for the DMR Bridge.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "remoteMsgVpnName": { + "description": "The remote Message VPN of the DMR Bridge.", + "type": "string" + }, + "remoteNodeName": { + "description": "The name of the node at the remote end of the DMR Bridge.", + "type": "string" + }, + "up": { + "description": "Indicates whether the operational state of the DMR Bridge is up.", + "type": "boolean" + }, + "uptime": { + "description": "The amount of time in seconds since the DMR Bridge was up.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnDmrBridgeCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnDmrBridgeLinks": { + "properties": { + "uri": { + "description": "The URI of this DMR Bridge object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnDmrBridgeResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnDmrBridgeCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnDmrBridge" + }, + "links": { + "$ref": "#/definitions/MsgVpnDmrBridgeLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnDmrBridgesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnDmrBridgeCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnDmrBridge" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnDmrBridgeLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiConnectionFactoriesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactory" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiConnectionFactory": { + "properties": { + "allowDuplicateClientIdEnabled": { + "description": "Indicates whether new JMS connections can use the same Client identifier (ID) as an existing connection.", + "type": "boolean" + }, + "clientDescription": { + "description": "The description of the Client.", + "type": "string" + }, + "clientId": { + "description": "The Client identifier (ID). If not specified, a unique value for it will be generated.", + "type": "string" + }, + "connectionFactoryName": { + "description": "The name of the JMS Connection Factory.", + "type": "string" + }, + "dtoReceiveOverrideEnabled": { + "description": "Indicates whether overriding by the Subscriber (Consumer) of the deliver-to-one (DTO) property on messages is enabled. When enabled, the Subscriber can receive all DTO tagged messages.", + "type": "boolean" + }, + "dtoReceiveSubscriberLocalPriority": { + "description": "The priority for receiving deliver-to-one (DTO) messages by the Subscriber (Consumer) if the messages are published on the local broker that the Subscriber is directly connected to.", + "format": "int32", + "type": "integer" + }, + "dtoReceiveSubscriberNetworkPriority": { + "description": "The priority for receiving deliver-to-one (DTO) messages by the Subscriber (Consumer) if the messages are published on a remote broker.", + "format": "int32", + "type": "integer" + }, + "dtoSendEnabled": { + "description": "Indicates whether the deliver-to-one (DTO) property is enabled on messages sent by the Publisher (Producer).", + "type": "boolean" + }, + "dynamicEndpointCreateDurableEnabled": { + "description": "Indicates whether a durable endpoint will be dynamically created on the broker when the client calls \"Session.createDurableSubscriber()\" or \"Session.createQueue()\". The created endpoint respects the message time-to-live (TTL) according to the \"dynamicEndpointRespectTtlEnabled\" property.", + "type": "boolean" + }, + "dynamicEndpointRespectTtlEnabled": { + "description": "Indicates whether dynamically created durable and non-durable endpoints respect the message time-to-live (TTL) property.", + "type": "boolean" + }, + "guaranteedReceiveAckTimeout": { + "description": "The timeout for sending the acknowledgement (ACK) for guaranteed messages received by the Subscriber (Consumer), in milliseconds.", + "format": "int32", + "type": "integer" + }, + "guaranteedReceiveReconnectRetryCount": { + "description": "The maximum number of attempts to reconnect to the host or list of hosts after the guaranteed messaging connection has been lost. The value \"-1\" means to retry forever. Available since 2.14.", + "format": "int32", + "type": "integer" + }, + "guaranteedReceiveReconnectRetryWait": { + "description": "The amount of time to wait before making another attempt to connect or reconnect to the host after the guaranteed messaging connection has been lost, in milliseconds. Available since 2.14.", + "format": "int32", + "type": "integer" + }, + "guaranteedReceiveWindowSize": { + "description": "The size of the window for guaranteed messages received by the Subscriber (Consumer), in messages.", + "format": "int32", + "type": "integer" + }, + "guaranteedReceiveWindowSizeAckThreshold": { + "description": "The threshold for sending the acknowledgement (ACK) for guaranteed messages received by the Subscriber (Consumer) as a percentage of `guaranteedReceiveWindowSize`.", + "format": "int32", + "type": "integer" + }, + "guaranteedSendAckTimeout": { + "description": "The timeout for receiving the acknowledgement (ACK) for guaranteed messages sent by the Publisher (Producer), in milliseconds.", + "format": "int32", + "type": "integer" + }, + "guaranteedSendWindowSize": { + "description": "The size of the window for non-persistent guaranteed messages sent by the Publisher (Producer), in messages. For persistent messages the window size is fixed at 1.", + "format": "int32", + "type": "integer" + }, + "messagingDefaultDeliveryMode": { + "description": "The default delivery mode for messages sent by the Publisher (Producer). The allowed values and their meaning are:\n\n
\n\"persistent\" - The broker spools messages (persists in the Message Spool) as part of the send operation.\n\"non-persistent\" - The broker does not spool messages (does not persist in the Message Spool) as part of the send operation.\n
\n", + "enum": [ + "persistent", + "non-persistent" + ], + "type": "string" + }, + "messagingDefaultDmqEligibleEnabled": { + "description": "Indicates whether messages sent by the Publisher (Producer) are Dead Message Queue (DMQ) eligible by default.", + "type": "boolean" + }, + "messagingDefaultElidingEligibleEnabled": { + "description": "Indicates whether messages sent by the Publisher (Producer) are Eliding eligible by default.", + "type": "boolean" + }, + "messagingJmsxUserIdEnabled": { + "description": "Indicates whether to include (add or replace) the JMSXUserID property in messages sent by the Publisher (Producer).", + "type": "boolean" + }, + "messagingTextInXmlPayloadEnabled": { + "description": "Indicates whether encoding of JMS text messages in Publisher (Producer) messages is as XML payload. When disabled, JMS text messages are encoded as a binary attachment.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "transportCompressionLevel": { + "description": "The ZLIB compression level for the connection to the broker. The value \"0\" means no compression, and the value \"-1\" means the compression level is specified in the JNDI Properties file.", + "format": "int32", + "type": "integer" + }, + "transportConnectRetryCount": { + "description": "The maximum number of retry attempts to establish an initial connection to the host or list of hosts. The value \"0\" means a single attempt (no retries), and the value \"-1\" means to retry forever.", + "format": "int32", + "type": "integer" + }, + "transportConnectRetryPerHostCount": { + "description": "The maximum number of retry attempts to establish an initial connection to each host on the list of hosts. The value \"0\" means a single attempt (no retries), and the value \"-1\" means to retry forever.", + "format": "int32", + "type": "integer" + }, + "transportConnectTimeout": { + "description": "The timeout for establishing an initial connection to the broker, in milliseconds.", + "format": "int32", + "type": "integer" + }, + "transportDirectTransportEnabled": { + "description": "Indicates whether usage of the Direct Transport mode for sending non-persistent messages is enabled. When disabled, the Guaranteed Transport mode is used.", + "type": "boolean" + }, + "transportKeepaliveCount": { + "description": "The maximum number of consecutive application-level keepalive messages sent without the broker response before the connection to the broker is closed.", + "format": "int32", + "type": "integer" + }, + "transportKeepaliveEnabled": { + "description": "Indicates whether application-level keepalive messages are used to maintain a connection with the Router.", + "type": "boolean" + }, + "transportKeepaliveInterval": { + "description": "The interval between application-level keepalive messages, in milliseconds.", + "format": "int32", + "type": "integer" + }, + "transportMsgCallbackOnIoThreadEnabled": { + "description": "Indicates whether delivery of asynchronous messages is done directly from the I/O thread.", + "type": "boolean" + }, + "transportOptimizeDirectEnabled": { + "description": "Indicates whether optimization for the Direct Transport delivery mode is enabled. If enabled, the client application is limited to one Publisher (Producer) and one non-durable Subscriber (Consumer).", + "type": "boolean" + }, + "transportPort": { + "description": "The connection port number on the broker for SMF clients. The value \"-1\" means the port is specified in the JNDI Properties file.", + "format": "int32", + "type": "integer" + }, + "transportReadTimeout": { + "description": "The timeout for reading a reply from the broker, in milliseconds.", + "format": "int32", + "type": "integer" + }, + "transportReceiveBufferSize": { + "description": "The size of the receive socket buffer, in bytes. It corresponds to the SO_RCVBUF socket option.", + "format": "int32", + "type": "integer" + }, + "transportReconnectRetryCount": { + "description": "The maximum number of attempts to reconnect to the host or list of hosts after the connection has been lost. The value \"-1\" means to retry forever.", + "format": "int32", + "type": "integer" + }, + "transportReconnectRetryWait": { + "description": "The amount of time before making another attempt to connect or reconnect to the host after the connection has been lost, in milliseconds.", + "format": "int32", + "type": "integer" + }, + "transportSendBufferSize": { + "description": "The size of the send socket buffer, in bytes. It corresponds to the SO_SNDBUF socket option.", + "format": "int32", + "type": "integer" + }, + "transportTcpNoDelayEnabled": { + "description": "Indicates whether the TCP_NODELAY option is enabled, which disables Nagle's algorithm for TCP/IP congestion control (RFC 896).", + "type": "boolean" + }, + "xaEnabled": { + "description": "Indicates whether this is an XA Connection Factory. When enabled, the Connection Factory can be cast to \"XAConnectionFactory\", \"XAQueueConnectionFactory\" or \"XATopicConnectionFactory\".", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnJndiConnectionFactoryCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnJndiConnectionFactoryLinks": { + "properties": { + "uri": { + "description": "The URI of this JNDI Connection Factory object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnJndiConnectionFactoryResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactory" + }, + "links": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiQueue": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "physicalName": { + "description": "The physical name of the JMS Queue.", + "type": "string" + }, + "queueName": { + "description": "The JNDI name of the JMS Queue.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnJndiQueueCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnJndiQueueLinks": { + "properties": { + "uri": { + "description": "The URI of this JNDI Queue object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnJndiQueueResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnJndiQueueCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnJndiQueue" + }, + "links": { + "$ref": "#/definitions/MsgVpnJndiQueueLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiQueuesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnJndiQueueCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnJndiQueue" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnJndiQueueLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiTopic": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "physicalName": { + "description": "The physical name of the JMS Topic.", + "type": "string" + }, + "topicName": { + "description": "The JNDI name of the JMS Topic.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnJndiTopicCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnJndiTopicLinks": { + "properties": { + "uri": { + "description": "The URI of this JNDI Topic object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnJndiTopicResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnJndiTopicCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnJndiTopic" + }, + "links": { + "$ref": "#/definitions/MsgVpnJndiTopicLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnJndiTopicsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnJndiTopicCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnJndiTopic" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnJndiTopicLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnLinks": { + "properties": { + "aclProfilesUri": { + "description": "The URI of this Message VPN's collection of ACL Profile objects.", + "type": "string" + }, + "authenticationOauthProfilesUri": { + "description": "The URI of this Message VPN's collection of OAuth Profile objects. Available since 2.25.", + "type": "string" + }, + "authenticationOauthProvidersUri": { + "description": "The URI of this Message VPN's collection of OAuth Provider objects. Deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "type": "string" + }, + "authorizationGroupsUri": { + "description": "The URI of this Message VPN's collection of Authorization Group objects.", + "type": "string" + }, + "bridgesUri": { + "description": "The URI of this Message VPN's collection of Bridge objects.", + "type": "string" + }, + "certMatchingRulesUri": { + "description": "The URI of this Message VPN's collection of Certificate Matching Rule objects. Available since 2.27.", + "type": "string" + }, + "clientProfilesUri": { + "description": "The URI of this Message VPN's collection of Client Profile objects.", + "type": "string" + }, + "clientUsernamesUri": { + "description": "The URI of this Message VPN's collection of Client Username objects.", + "type": "string" + }, + "clientsUri": { + "description": "The URI of this Message VPN's collection of Client objects. Available since 2.12.", + "type": "string" + }, + "configSyncRemoteNodesUri": { + "description": "The URI of this Message VPN's collection of Config Sync Remote Node objects. Deprecated since 2.22. This attribute has been deprecated.", + "type": "string" + }, + "distributedCachesUri": { + "description": "The URI of this Message VPN's collection of Distributed Cache objects.", + "type": "string" + }, + "dmrBridgesUri": { + "description": "The URI of this Message VPN's collection of DMR Bridge objects.", + "type": "string" + }, + "jndiConnectionFactoriesUri": { + "description": "The URI of this Message VPN's collection of JNDI Connection Factory objects.", + "type": "string" + }, + "jndiQueuesUri": { + "description": "The URI of this Message VPN's collection of JNDI Queue objects.", + "type": "string" + }, + "jndiTopicsUri": { + "description": "The URI of this Message VPN's collection of JNDI Topic objects.", + "type": "string" + }, + "mqttRetainCachesUri": { + "description": "The URI of this Message VPN's collection of MQTT Retain Cache objects.", + "type": "string" + }, + "mqttSessionsUri": { + "description": "The URI of this Message VPN's collection of MQTT Session objects.", + "type": "string" + }, + "queueTemplatesUri": { + "description": "The URI of this Message VPN's collection of Queue Template objects. Available since 2.14.", + "type": "string" + }, + "queuesUri": { + "description": "The URI of this Message VPN's collection of Queue objects. Available since 2.12.", + "type": "string" + }, + "replayLogsUri": { + "description": "The URI of this Message VPN's collection of Replay Log objects.", + "type": "string" + }, + "replicatedTopicsUri": { + "description": "The URI of this Message VPN's collection of Replicated Topic objects. Available since 2.12.", + "type": "string" + }, + "restDeliveryPointsUri": { + "description": "The URI of this Message VPN's collection of REST Delivery Point objects.", + "type": "string" + }, + "telemetryProfilesUri": { + "description": "The URI of this Message VPN's collection of Telemetry Profile objects. Available since 2.31.", + "type": "string" + }, + "topicEndpointTemplatesUri": { + "description": "The URI of this Message VPN's collection of Topic Endpoint Template objects. Available since 2.14.", + "type": "string" + }, + "topicEndpointsUri": { + "description": "The URI of this Message VPN's collection of Topic Endpoint objects. Available since 2.12.", + "type": "string" + }, + "transactionsUri": { + "description": "The URI of this Message VPN's collection of Replicated Local Transaction or XA Transaction objects. Available since 2.12.", + "type": "string" + }, + "uri": { + "description": "The URI of this Message VPN object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttRetainCache": { + "properties": { + "backupCacheInstance": { + "description": "The name of the backup Cache Instance associated with this MQTT Retain Cache.", + "type": "string" + }, + "backupFailureReason": { + "description": "The reason why the backup cache associated with this MQTT Retain Cache is operationally down, if any.", + "type": "string" + }, + "backupUp": { + "description": "Indicates whether the backup cache associated with this MQTT Retain Cache is operationally up.", + "type": "boolean" + }, + "backupUptime": { + "description": "The number of seconds that the backup cache associated with this MQTT Retain Cache has been operationally up.", + "format": "int32", + "type": "integer" + }, + "cacheCluster": { + "description": "The name of the Cache Cluster associated with this MQTT Retain Cache.", + "type": "string" + }, + "cacheName": { + "description": "The name of the MQTT Retain Cache.", + "type": "string" + }, + "distributedCache": { + "description": "The name of the Distributed Cache associated with this MQTT Retain Cache.", + "type": "string" + }, + "enabled": { + "description": "Indicates whether this MQTT Retain Cache is enabled. When the cache is disabled, neither retain messages nor retain requests will be delivered by the cache. However, live retain messages will continue to be delivered to currently connected MQTT clients.", + "type": "boolean" + }, + "failureReason": { + "description": "The reason why this MQTT Retain Cache is operationally down, if any.", + "type": "string" + }, + "msgLifetime": { + "description": "The message lifetime, in seconds. If a message remains cached for the duration of its lifetime, the cache will remove the message. A lifetime of 0 results in the message being retained indefinitely, otherwise it must be 3 seconds or more.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "primaryCacheInstance": { + "description": "The name of the primary Cache Instance associated with this MQTT Retain Cache.", + "type": "string" + }, + "primaryFailureReason": { + "description": "The reason why the primary cache associated with this MQTT Retain Cache is operationally down, if any.", + "type": "string" + }, + "primaryUp": { + "description": "Indicates whether the primary cache associated with this MQTT Retain Cache is operationally up.", + "type": "boolean" + }, + "primaryUptime": { + "description": "The number of seconds that the primary cache associated with this MQTT Retain Cache has been operationally up.", + "format": "int32", + "type": "integer" + }, + "up": { + "description": "Indicates whether this MQTT Retain Cache is operationally up.", + "type": "boolean" + }, + "uptime": { + "description": "The number of seconds that the MQTT Retain Cache has been operationally up.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnMqttRetainCacheCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnMqttRetainCacheLinks": { + "properties": { + "uri": { + "description": "The URI of this MQTT Retain Cache object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttRetainCacheResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnMqttRetainCache" + }, + "links": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttRetainCachesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnMqttRetainCache" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttSession": { + "properties": { + "clean": { + "description": "Indicates whether the Client requested a clean (newly created) MQTT Session when connecting. If not clean (already existing), then previously stored messages for QoS 1 subscriptions are delivered.", + "type": "boolean" + }, + "clientName": { + "description": "The name of the MQTT Session Client.", + "type": "string" + }, + "counter": { + "$ref": "#/definitions/MsgVpnMqttSessionCounter" + }, + "createdByManagement": { + "description": "Indicates whether the MQTT Session was created by a Management API.", + "type": "boolean" + }, + "durable": { + "description": "Indicates whether the MQTT Session is durable. Disconnected durable MQTT Sessions are deleted when their expiry time is reached. Disconnected non-durable MQTT Sessions are deleted immediately. Available since 2.21.", + "type": "boolean" + }, + "enabled": { + "description": "Indicates whether the MQTT Session is enabled.", + "type": "boolean" + }, + "expiryTime": { + "description": "The timestamp of when the disconnected MQTT session expires and is deleted. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). A value of 0 indicates that the session is either connected, or will never expire. Available since 2.21.", + "format": "int64", + "type": "integer" + }, + "maxPacketSize": { + "description": "The maximum size of a packet, including all headers and payload, that the Client has signaled it is willing to accept. A value of zero indicates no limit. Note that there are other broker settings which may further limit packet size. Available since 2.21.", + "format": "int64", + "type": "integer" + }, + "mqttConnackErrorTxCount": { + "description": "The number of MQTT connect acknowledgment (CONNACK) refused response packets transmitted to the Client. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttConnackTxCount": { + "description": "The number of MQTT connect acknowledgment (CONNACK) accepted response packets transmitted to the Client. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttConnectRxCount": { + "description": "The number of MQTT connect (CONNECT) request packets received from the Client. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttDisconnectRxCount": { + "description": "The number of MQTT disconnect (DISCONNECT) request packets received from the Client. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttPingreqRxCount": { + "description": "The number of MQTT ping request (PINGREQ) packets received from the Client. Available since 2.23.", + "format": "int64", + "type": "integer" + }, + "mqttPingrespTxCount": { + "description": "The number of MQTT ping response (PINGRESP) packets transmitted to the Client. Available since 2.23.", + "format": "int64", + "type": "integer" + }, + "mqttPubackRxCount": { + "description": "The number of MQTT publish acknowledgement (PUBACK) response packets received from the Client. Available since 2.23.", + "format": "int64", + "type": "integer" + }, + "mqttPubackTxCount": { + "description": "The number of MQTT publish acknowledgement (PUBACK) response packets transmitted to the Client. Available since 2.23.", + "format": "int64", + "type": "integer" + }, + "mqttPubcompTxCount": { + "description": "The number of MQTT publish complete (PUBCOMP) packets transmitted to the Client in response to a PUBREL packet. These packets are the fourth and final packet of a QoS 2 protocol exchange. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos0RxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets received from the Client for QoS 0 message delivery. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos0TxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets transmitted to the Client for QoS 0 message delivery. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos1RxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets received from the Client for QoS 1 message delivery. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos1TxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets transmitted to the Client for QoS 1 message delivery. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos2RxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets received from the Client for QoS 2 message delivery. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttPubrecTxCount": { + "description": "The number of MQTT publish received (PUBREC) packets transmitted to the Client in response to a PUBLISH packet with QoS 2. These packets are the second packet of a QoS 2 protocol exchange. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttPubrelRxCount": { + "description": "The number of MQTT publish release (PUBREL) packets received from the Client in response to a PUBREC packet. These packets are the third packet of a QoS 2 protocol exchange. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "mqttSessionClientId": { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "type": "string" + }, + "mqttSessionVirtualRouter": { + "description": "The virtual router of the MQTT Session. The allowed values and their meaning are:\n\n
\n\"primary\" - The MQTT Session belongs to the primary virtual router.\n\"backup\" - The MQTT Session belongs to the backup virtual router.\n\"auto\" - The MQTT Session is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "mqttSubackErrorTxCount": { + "description": "The number of MQTT subscribe acknowledgement (SUBACK) failure response packets transmitted to the Client. Available since 2.23.", + "format": "int64", + "type": "integer" + }, + "mqttSubackTxCount": { + "description": "The number of MQTT subscribe acknowledgement (SUBACK) response packets transmitted to the Client. Available since 2.23.", + "format": "int64", + "type": "integer" + }, + "mqttSubscribeRxCount": { + "description": "The number of MQTT subscribe (SUBSCRIBE) request packets received from the Client to create one or more topic subscriptions. Available since 2.23.", + "format": "int64", + "type": "integer" + }, + "mqttUnsubackTxCount": { + "description": "The number of MQTT unsubscribe acknowledgement (UNSUBACK) response packets transmitted to the Client. Available since 2.23.", + "format": "int64", + "type": "integer" + }, + "mqttUnsubscribeRxCount": { + "description": "The number of MQTT unsubscribe (UNSUBSCRIBE) request packets received from the Client to remove one or more topic subscriptions. Available since 2.23.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "owner": { + "description": "The Client Username which owns the MQTT Session.", + "type": "string" + }, + "queueConsumerAckPropagationEnabled": { + "description": "Indicates whether consumer acknowledgements (ACKs) received on the active replication Message VPN are propagated to the standby replication Message VPN. Available since 2.14.", + "type": "boolean" + }, + "queueDeadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ) used by the MQTT Session Queue. Available since 2.14.", + "type": "string" + }, + "queueEventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueEventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueEventRejectLowPriorityMsgLimitThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueMaxBindCount": { + "description": "The maximum number of consumer flows that can bind to the MQTT Session Queue. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueMaxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow for the MQTT Session Queue. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueMaxMsgSize": { + "description": "The maximum message size allowed in the MQTT Session Queue, in bytes (B). Available since 2.14.", + "format": "int32", + "type": "integer" + }, + "queueMaxMsgSpoolUsage": { + "description": "The maximum message spool usage allowed by the MQTT Session Queue, in megabytes (MB). A value of 0 only allows spooling of the last message received and disables quota checking. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueMaxRedeliveryCount": { + "description": "The maximum number of times the MQTT Session Queue will attempt redelivery of a message prior to it being discarded or moved to the DMQ. A value of 0 means to retry forever. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueMaxTtl": { + "description": "The maximum time in seconds a message can stay in the MQTT Session Queue when `queueRespectTtlEnabled` is `\"true\"`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `queueMaxTtl` configured for the MQTT Session Queue, is exceeded. A value of 0 disables expiry. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueName": { + "description": "The name of the MQTT Session Queue.", + "type": "string" + }, + "queueRejectLowPriorityMsgEnabled": { + "description": "Indicates whether to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. Available since 2.14.", + "type": "boolean" + }, + "queueRejectLowPriorityMsgLimit": { + "description": "The number of messages of any priority in the MQTT Session Queue above which low priority messages are not admitted but higher priority messages are allowed. Available since 2.14.", + "format": "int64", + "type": "integer" + }, + "queueRejectMsgToSenderOnDiscardBehavior": { + "description": "Indicates whether negative acknowledgements (NACKs) are returned to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-queue-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Queue is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n Available since 2.14.", + "enum": [ + "always", + "when-queue-enabled", + "never" + ], + "type": "string" + }, + "queueRespectTtlEnabled": { + "description": "Indicates whether the time-to-live (TTL) for messages in the MQTT Session Queue is respected. When enabled, expired messages are discarded or moved to the DMQ. Available since 2.14.", + "type": "boolean" + }, + "rxMax": { + "description": "The maximum number of outstanding QoS1 and QoS2 messages that the Client has signaled it is willing to accept. Note that there are other broker settings which may further limit the number of outstanding messasges. Available since 2.21.", + "format": "int64", + "type": "integer" + }, + "will": { + "description": "Indicates whether the MQTT Session has the Will message specified by the Client. The Will message is published if the Client disconnects without sending the MQTT DISCONNECT packet.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionCollections": { + "properties": { + "subscriptions": { + "$ref": "#/definitions/MsgVpnMqttSessionCollectionsSubscriptions" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionCollectionsSubscriptions": { + "properties": { + "count": { + "description": "The total number of objects in the subscriptions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionCounter": { + "description": "The counters for the MQTT Session. Deprecated since 2.13. All attributes in this object have been moved to the MsgVpnMqttSession object.", + "properties": { + "mqttConnackErrorTxCount": { + "description": "The number of MQTT connect acknowledgment (CONNACK) refused response packets transmitted to the Client. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttConnackTxCount": { + "description": "The number of MQTT connect acknowledgment (CONNACK) accepted response packets transmitted to the Client. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttConnectRxCount": { + "description": "The number of MQTT connect (CONNECT) request packets received from the Client. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttDisconnectRxCount": { + "description": "The number of MQTT disconnect (DISCONNECT) request packets received from the Client. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttPubcompTxCount": { + "description": "The number of MQTT publish complete (PUBCOMP) packets transmitted to the Client in response to a PUBREL packet. These packets are the fourth and final packet of a QoS 2 protocol exchange. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos0RxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets received from the Client for QoS 0 message delivery. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos0TxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets transmitted to the Client for QoS 0 message delivery. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos1RxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets received from the Client for QoS 1 message delivery. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos1TxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets transmitted to the Client for QoS 1 message delivery. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttPublishQos2RxCount": { + "description": "The number of MQTT publish message (PUBLISH) request packets received from the Client for QoS 2 message delivery. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttPubrecTxCount": { + "description": "The number of MQTT publish received (PUBREC) packets transmitted to the Client in response to a PUBLISH packet with QoS 2. These packets are the second packet of a QoS 2 protocol exchange. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + }, + "mqttPubrelRxCount": { + "description": "The number of MQTT publish release (PUBREL) packets received from the Client in response to a PUBREC packet. These packets are the third packet of a QoS 2 protocol exchange. Deprecated since 2.13. This attribute has been moved to the MsgVpnMqttSession object.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionLinks": { + "properties": { + "subscriptionsUri": { + "description": "The URI of this MQTT Session's collection of Subscription objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this MQTT Session object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnMqttSessionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnMqttSession" + }, + "links": { + "$ref": "#/definitions/MsgVpnMqttSessionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttSessionSubscription": { + "properties": { + "mqttSessionClientId": { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "type": "string" + }, + "mqttSessionVirtualRouter": { + "description": "The virtual router of the MQTT Session. The allowed values and their meaning are:\n\n
\n\"primary\" - The MQTT Session belongs to the primary virtual router.\n\"backup\" - The MQTT Session belongs to the backup virtual router.\n\"auto\" - The MQTT Session is automatically assigned a virtual router at creation, depending on the broker's active-standby role.\n
\n", + "enum": [ + "primary", + "backup", + "auto" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "subscriptionQos": { + "description": "The quality of service (QoS) for the MQTT Session subscription.", + "format": "int64", + "type": "integer" + }, + "subscriptionTopic": { + "description": "The MQTT subscription topic.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionSubscriptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnMqttSessionSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnMqttSessionSubscriptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttSessionSubscriptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnMqttSessionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSessionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSession" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnMqttSessionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueue": { + "properties": { + "accessType": { + "description": "The access type for delivering messages to consumer flows bound to the Queue. The allowed values and their meaning are:\n\n
\n\"exclusive\" - Exclusive delivery of messages to the first bound consumer flow.\n\"non-exclusive\" - Non-exclusive delivery of messages to bound consumer flows in a round-robin (if partition count is zero) or partitioned (if partition count is non-zero) fashion.\n
\n", + "enum": [ + "exclusive", + "non-exclusive" + ], + "type": "string" + }, + "alreadyBoundBindFailureCount": { + "description": "The number of Queue bind failures due to being already bound.", + "format": "int64", + "type": "integer" + }, + "averageBindRequestRate": { + "description": "The one minute average of the bind request rate received by the Queue, in binds per second (binds/sec). Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "averageRxByteRate": { + "description": "The one minute average of the message rate received by the Queue, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "averageRxMsgRate": { + "description": "The one minute average of the message rate received by the Queue, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "averageTxByteRate": { + "description": "The one minute average of the message rate transmitted by the Queue, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "averageTxMsgRate": { + "description": "The one minute average of the message rate transmitted by the Queue, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "bindRequestCount": { + "description": "The number of consumer requests to bind to the Queue.", + "format": "int64", + "type": "integer" + }, + "bindRequestRate": { + "description": "The current bind request rate received by the Queue, in binds per second (binds/sec). Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "bindSuccessCount": { + "description": "The number of successful consumer requests to bind to the Queue.", + "format": "int64", + "type": "integer" + }, + "bindTimeForwardingMode": { + "description": "The forwarding mode of the Queue at bind time. The allowed values and their meaning are:\n\n
\n\"store-and-forward\" - Deliver messages using the guaranteed data path.\n\"cut-through\" - Deliver messages using the direct and guaranteed data paths for lower latency.\n
\n", + "type": "string" + }, + "clientProfileDeniedDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to being denied by the Client Profile.", + "format": "int64", + "type": "integer" + }, + "consumerAckPropagationEnabled": { + "description": "Indicates whether the propagation of consumer acknowledgements (ACKs) received on the active replication Message VPN to the standby replication Message VPN is enabled.", + "type": "boolean" + }, + "createdByManagement": { + "description": "Indicates whether the Queue was created by a management API (CLI or SEMP).", + "type": "boolean" + }, + "deadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ) used by the Queue.", + "type": "string" + }, + "deletedMsgCount": { + "description": "The number of guaranteed messages deleted from the Queue.", + "format": "int64", + "type": "integer" + }, + "deliveryCountEnabled": { + "description": "Enable or disable the ability for client applications to query the message delivery count of messages received from the Queue. This is a controlled availability feature. Please contact support to find out if this feature is supported for your use case. Available since 2.19.", + "type": "boolean" + }, + "deliveryDelay": { + "description": "The delay, in seconds, to apply to messages arriving on the Queue before the messages are eligible for delivery. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "destinationGroupErrorDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to a destination group error.", + "format": "int64", + "type": "integer" + }, + "disabledBindFailureCount": { + "description": "The number of Queue bind failures due to being disabled.", + "format": "int64", + "type": "integer" + }, + "disabledDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to it being disabled.", + "format": "int64", + "type": "integer" + }, + "durable": { + "description": "Indicates whether the Queue is durable and not temporary.", + "type": "boolean" + }, + "egressEnabled": { + "description": "Indicates whether the transmission of messages from the Queue is enabled.", + "type": "boolean" + }, + "eventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventRejectLowPriorityMsgLimitThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "highestAckedMsgId": { + "description": "The highest identifier (ID) of guaranteed messages in the Queue that were acknowledged.", + "format": "int64", + "type": "integer" + }, + "highestMsgId": { + "description": "The highest identifier (ID) of guaranteed messages in the Queue.", + "format": "int64", + "type": "integer" + }, + "inProgressAckMsgCount": { + "description": "The number of acknowledgement messages received by the Queue that are in the process of updating and deleting associated guaranteed messages.", + "format": "int64", + "type": "integer" + }, + "ingressEnabled": { + "description": "Indicates whether the reception of messages to the Queue is enabled.", + "type": "boolean" + }, + "invalidSelectorBindFailureCount": { + "description": "The number of Queue bind failures due to an invalid selector.", + "format": "int64", + "type": "integer" + }, + "lastReplayCompleteTime": { + "description": "The timestamp of the last completed replay for the Queue. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastReplayFailureReason": { + "description": "The reason for the last replay failure for the Queue.", + "type": "string" + }, + "lastReplayFailureTime": { + "description": "The timestamp of the last replay failure for the Queue. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastReplayStartTime": { + "description": "The timestamp of the last replay started for the Queue. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastReplayedMsgTxTime": { + "description": "The timestamp of the last replayed message transmitted by the Queue. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastSpooledMsgId": { + "description": "The identifier (ID) of the last guaranteed message spooled in the Queue.", + "format": "int64", + "type": "integer" + }, + "lowPriorityMsgCongestionDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to low priority message congestion control.", + "format": "int64", + "type": "integer" + }, + "lowPriorityMsgCongestionState": { + "description": "The state of the low priority message congestion in the Queue. The allowed values and their meaning are:\n\n
\n\"disabled\" - Messages are not being checked for priority.\n\"not-congested\" - Low priority messages are being stored and delivered.\n\"congested\" - Low priority messages are being discarded.\n
\n", + "type": "string" + }, + "lowestAckedMsgId": { + "description": "The lowest identifier (ID) of guaranteed messages in the Queue that were acknowledged.", + "format": "int64", + "type": "integer" + }, + "lowestMsgId": { + "description": "The lowest identifier (ID) of guaranteed messages in the Queue.", + "format": "int64", + "type": "integer" + }, + "maxBindCount": { + "description": "The maximum number of consumer flows that can bind to the Queue.", + "format": "int64", + "type": "integer" + }, + "maxBindCountExceededBindFailureCount": { + "description": "The number of Queue bind failures due to the maximum bind count being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow for the Queue.", + "format": "int64", + "type": "integer" + }, + "maxMsgSize": { + "description": "The maximum message size allowed in the Queue, in bytes (B).", + "format": "int32", + "type": "integer" + }, + "maxMsgSizeExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to the maximum message size being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxMsgSpoolUsage": { + "description": "The maximum message spool usage allowed by the Queue, in megabytes (MB). A value of 0 only allows spooling of the last message received and disables quota checking.", + "format": "int64", + "type": "integer" + }, + "maxMsgSpoolUsageExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to the maximum message spool usage being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryCount": { + "description": "The maximum number of times the Queue will attempt redelivery of a message prior to it being discarded or moved to the DMQ. A value of 0 means to retry forever.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to the maximum redelivery attempts being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryExceededToDmqFailedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to the maximum redelivery attempts being exceeded and failing to move to the Dead Message Queue (DMQ).", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryExceededToDmqMsgCount": { + "description": "The number of guaranteed messages moved to the Dead Message Queue (DMQ) by the Queue due to the maximum redelivery attempts being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxTtl": { + "description": "The maximum time in seconds a message can stay in the Queue when `respectTtlEnabled` is `\"true\"`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `maxTtl` configured for the Queue, is exceeded. A value of 0 disables expiry.", + "format": "int64", + "type": "integer" + }, + "maxTtlExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to the maximum time-to-live (TTL) in hops being exceeded. The TTL hop count is incremented when the message crosses a bridge.", + "format": "int64", + "type": "integer" + }, + "maxTtlExpiredDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to the maximum time-to-live (TTL) timestamp expiring.", + "format": "int64", + "type": "integer" + }, + "maxTtlExpiredToDmqFailedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to the maximum time-to-live (TTL) timestamp expiring and failing to move to the Dead Message Queue (DMQ).", + "format": "int64", + "type": "integer" + }, + "maxTtlExpiredToDmqMsgCount": { + "description": "The number of guaranteed messages moved to the Dead Message Queue (DMQ) by the Queue due to the maximum time-to-live (TTL) timestamp expiring.", + "format": "int64", + "type": "integer" + }, + "msgSpoolPeakUsage": { + "description": "The message spool peak usage by the Queue, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "msgSpoolUsage": { + "description": "The message spool usage by the Queue, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "networkTopic": { + "description": "The name of the network topic for the Queue.", + "type": "string" + }, + "noLocalDeliveryDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to no local delivery being requested.", + "format": "int64", + "type": "integer" + }, + "otherBindFailureCount": { + "description": "The number of Queue bind failures due to other reasons.", + "format": "int64", + "type": "integer" + }, + "owner": { + "description": "The Client Username that owns the Queue and has permission equivalent to `\"delete\"`.", + "type": "string" + }, + "partitionClientName": { + "description": "The name of the client assigned to the partition if the client is currently bound to the queue. Only relevant for queues implementing an individual partition. Available since (will be released in next SEMP version).", + "type": "string" + }, + "partitionCount": { + "description": "The count of partitions of the queue. Only relevant for queues with an access type of non-exclusive. When zero, bound clients receive messages round-robin. Otherwise, bound clients receive messages from individually assigned partitions. Available since (will be released in next SEMP version).", + "format": "int32", + "type": "integer" + }, + "partitionNumber": { + "description": "The partition number. Only relevant for queues implementing an individual partition. Available since (will be released in next SEMP version).", + "format": "int32", + "type": "integer" + }, + "partitionOperationalCount": { + "description": "The operational count of partitions of the queue. Only relevant for queues with an access type of non-exclusive. This may not match the configured count while scaling is underway. Available since (will be released in next SEMP version).", + "format": "int32", + "type": "integer" + }, + "partitionQueueName": { + "description": "The name of our partitioned queue. Only relevant for queues implementing an individual partition. Available since (will be released in next SEMP version).", + "type": "string" + }, + "partitionRebalanceDelay": { + "description": "The delay (in seconds) before a partition rebalance is started once needed. Available since (will be released in next SEMP version).", + "format": "int64", + "type": "integer" + }, + "partitionRebalanceMaxHandoffTime": { + "description": "The maximum time (in seconds) to wait before handing off a partition while rebalancing. Available since (will be released in next SEMP version).", + "format": "int64", + "type": "integer" + }, + "partitionRebalanceStatus": { + "description": "The rebalance status of the partitioned queue. Only relevant for queues with an access type of non-exclusive and at least 1 partition. The allowed values and their meaning are:\n\n
\n\"ready\" - Rebalancing is complete.\n\"holddown\" - Rebalancing will start after delay.\n\"rebalancing\" - Rebalancing is underway.\n
\n Available since (will be released in next SEMP version).", + "type": "string" + }, + "partitionScaleStatus": { + "description": "The scale status of the partitioned queue. Only relevant for queues with an access type of non-exclusive and at least 1 partition. The allowed values and their meaning are:\n\n
\n\"invalid-exclusive\" - Exclusive queues have no partitions.\n\"ready\" - Partition scaling is complete.\n\"scaling-up\" - Partitions are being added.\n\"scaling-down\" - Partitions are being removed.\n\"max-partitioned-queues-exceeded\" - Maximum number of partitioned queues has been exceeded.\n\"max-partitions-exceeded\" - Maximum number of partitions has been exceeded for this partitioned queue.\n
\n Available since (will be released in next SEMP version).", + "type": "string" + }, + "partitionStatus": { + "description": "The status of the partition of the partitioned queue. Only relevant for queues implementing an individual partition. The allowed values and their meaning are:\n\n
\n\"unassigned\" - Partition is not assigned to a client.\n\"ready\" - Partition is assigned to a client.\n\"paused\" - Partition is being handed off to another client.\n\"unbound\" - Assigned client is not bound.\n
\n Available since (will be released in next SEMP version).", + "type": "string" + }, + "permission": { + "description": "The permission level for all consumers of the Queue, excluding the owner. The allowed values and their meaning are:\n\n
\n\"no-access\" - Disallows all access.\n\"read-only\" - Read-only access to the messages.\n\"consume\" - Consume (read and remove) messages.\n\"modify-topic\" - Consume messages or modify the topic/selector.\n\"delete\" - Consume messages, modify the topic/selector or delete the Client created endpoint altogether.\n
\n", + "enum": [ + "no-access", + "read-only", + "consume", + "modify-topic", + "delete" + ], + "type": "string" + }, + "queueName": { + "description": "The name of the Queue.", + "type": "string" + }, + "redeliveredMsgCount": { + "description": "The number of guaranteed messages transmitted by the Queue for redelivery.", + "format": "int64", + "type": "integer" + }, + "redeliveryDelayEnabled": { + "description": "Enable or disable a message redelivery delay. When false, messages are redelivered as soon as possible. When true, messages are redelivered according to the initial, max and multiplier. This should only be enabled when redelivery is enabled. Available since 2.33.", + "type": "boolean" + }, + "redeliveryDelayInitialInterval": { + "description": "The delay to be used between the first 2 redelivery attempts. This value is in milliseconds. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMaxInterval": { + "description": "The maximum delay to be used between any 2 redelivery attempts. This value is in milliseconds. Due to technical limitations, some redelivery attempt delays may slightly exceed this value. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMultiplier": { + "description": "The amount each delay interval is multiplied by after each failed delivery attempt. This number is in a fixed-point decimal format in which you must divide by 100 to get the floating point value. For example, a value of 125 would cause the delay to be multiplied by 1.25. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryEnabled": { + "description": "Enable or disable message redelivery. When enabled, the number of redelivery attempts is controlled by maxRedeliveryCount. When disabled, the message will never be delivered from the queue more than once. Available since 2.18.", + "type": "boolean" + }, + "rejectLowPriorityMsgEnabled": { + "description": "Indicates whether the checking of low priority messages against the `rejectLowPriorityMsgLimit` is enabled.", + "type": "boolean" + }, + "rejectLowPriorityMsgLimit": { + "description": "The number of messages of any priority in the Queue above which low priority messages are not admitted but higher priority messages are allowed.", + "format": "int64", + "type": "integer" + }, + "rejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-queue-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Queue is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n", + "enum": [ + "always", + "when-queue-enabled", + "never" + ], + "type": "string" + }, + "replayFailureCount": { + "description": "The number of replays that failed for the Queue.", + "format": "int64", + "type": "integer" + }, + "replayStartCount": { + "description": "The number of replays started for the Queue.", + "format": "int64", + "type": "integer" + }, + "replayState": { + "description": "The state of replay for the Queue. The allowed values and their meaning are:\n\n
\n\"initializing\" - All messages are being deleted from the endpoint before replay starts.\n\"active\" - Subscription matching logged messages are being replayed to the endpoint.\n\"pending-complete\" - Replay is complete, but final accounting is in progress.\n\"complete\" - Replay and all related activities are complete.\n\"failed\" - Replay has failed and is waiting for an unbind response.\n
\n", + "type": "string" + }, + "replaySuccessCount": { + "description": "The number of replays that succeeded for the Queue.", + "format": "int64", + "type": "integer" + }, + "replayedAckedMsgCount": { + "description": "The number of replayed messages transmitted by the Queue and acked by all consumers.", + "format": "int64", + "type": "integer" + }, + "replayedTxMsgCount": { + "description": "The number of replayed messages transmitted by the Queue.", + "format": "int64", + "type": "integer" + }, + "replicationActiveAckPropTxMsgCount": { + "description": "The number of acknowledgement messages propagated by the Queue to the replication standby remote Message VPN.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyAckPropRxMsgCount": { + "description": "The number of propagated acknowledgement messages received by the Queue from the replication active remote Message VPN.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyAckedByAckPropMsgCount": { + "description": "The number of messages acknowledged in the Queue by acknowledgement propagation from the replication active remote Message VPN.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyRxMsgCount": { + "description": "The number of messages received by the Queue from the replication active remote Message VPN.", + "format": "int64", + "type": "integer" + }, + "respectMsgPriorityEnabled": { + "description": "Indicates whether message priorities are respected. When enabled, messages contained in the Queue are delivered in priority order, from 9 (highest) to 0 (lowest).", + "type": "boolean" + }, + "respectTtlEnabled": { + "description": "Indicates whether the the time-to-live (TTL) for messages in the Queue is respected. When enabled, expired messages are discarded or moved to the DMQ.", + "type": "boolean" + }, + "rxByteRate": { + "description": "The current message rate received by the Queue, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "rxMsgRate": { + "description": "The current message rate received by the Queue, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "spooledByteCount": { + "description": "The amount of guaranteed messages that were spooled in the Queue, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "spooledMsgCount": { + "description": "The number of guaranteed messages that were spooled in the Queue.", + "format": "int64", + "type": "integer" + }, + "transportRetransmitMsgCount": { + "description": "The number of guaranteed messages that were retransmitted by the Queue at the transport layer as part of a single delivery attempt. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "txByteRate": { + "description": "The current message rate transmitted by the Queue, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "txMsgRate": { + "description": "The current message rate transmitted by the Queue, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "txSelector": { + "description": "Indicates whether the Queue has consumers with selectors to filter transmitted messages.", + "type": "boolean" + }, + "txUnackedMsgCount": { + "description": "The number of guaranteed messages in the Queue that have been transmitted but not acknowledged by all consumers.", + "format": "int64", + "type": "integer" + }, + "virtualRouter": { + "description": "The virtual router of the Queue. The allowed values and their meaning are:\n\n
\n\"primary\" - The endpoint belongs to the primary virtual router.\n\"backup\" - The endpoint belongs to the backup virtual router.\n
\n Deprecated since 2.31. This attribute has been deprecated. When Guaranteed Messaging is active, this value is always the virtual router for which Guaranteed Messaging is enabled. Otherwise, this value should be ignored.", + "type": "string" + }, + "xaTransactionNotSupportedDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Queue due to XA Transactions not being supported. Available since (will be released in next SEMP version).", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnQueueCollections": { + "properties": { + "msgs": { + "$ref": "#/definitions/MsgVpnQueueCollectionsMsgs" + }, + "priorities": { + "$ref": "#/definitions/MsgVpnQueueCollectionsPriorities" + }, + "subscriptions": { + "$ref": "#/definitions/MsgVpnQueueCollectionsSubscriptions" + }, + "txFlows": { + "$ref": "#/definitions/MsgVpnQueueCollectionsTxFlows" + } + }, + "type": "object" + }, + "MsgVpnQueueCollectionsMsgs": { + "properties": { + "count": { + "description": "The total number of objects in the msgs collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnQueueCollectionsPriorities": { + "properties": { + "count": { + "description": "The total number of objects in the priorities collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnQueueCollectionsSubscriptions": { + "properties": { + "count": { + "description": "The total number of objects in the subscriptions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnQueueCollectionsTxFlows": { + "properties": { + "count": { + "description": "The total number of objects in the txFlows collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnQueueLinks": { + "properties": { + "msgsUri": { + "description": "The URI of this Queue's collection of Queue Message objects.", + "type": "string" + }, + "prioritiesUri": { + "description": "The URI of this Queue's collection of Queue Priority objects.", + "type": "string" + }, + "subscriptionsUri": { + "description": "The URI of this Queue's collection of Queue Subscription objects.", + "type": "string" + }, + "txFlowsUri": { + "description": "The URI of this Queue's collection of Queue Transmit Flow objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Queue object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueMsg": { + "properties": { + "attachmentSize": { + "description": "The size of the Message attachment, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "contentSize": { + "description": "The size of the Message content, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "deliveryEligibleTime": { + "description": "The timestamp of when the Message is eligible for delivery. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.22.", + "format": "int32", + "type": "integer" + }, + "dmqEligible": { + "description": "Indicates whether the Message is eligible for the Dead Message Queue (DMQ).", + "type": "boolean" + }, + "expiryTime": { + "description": "The timestamp of when the Message expires. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "msgId": { + "description": "The identifier (ID) of the Message.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "partitionKey": { + "description": "The partition key of the Message. Available since (will be released in next SEMP version).", + "type": "string" + }, + "partitionKeyHash": { + "description": "The partition key hash of the Message. Available since (will be released in next SEMP version).", + "format": "int32", + "type": "integer" + }, + "priority": { + "description": "The priority level of the Message, from 9 (highest) to 0 (lowest).", + "format": "int32", + "type": "integer" + }, + "publisherId": { + "description": "The identifier (ID) of the Message publisher.", + "format": "int64", + "type": "integer" + }, + "queueName": { + "description": "The name of the Queue.", + "type": "string" + }, + "redeliveryCount": { + "description": "The number of times the Message has been redelivered.", + "format": "int32", + "type": "integer" + }, + "replicatedMateMsgId": { + "description": "The Message identifier (ID) on the replication mate. Applicable only to replicated messages.", + "format": "int64", + "type": "integer" + }, + "replicationGroupMsgId": { + "description": "An ID that uniquely identifies this Message within this replication group. Available since 2.21.", + "type": "string" + }, + "replicationState": { + "description": "The replication state of the Message. The allowed values and their meaning are:\n\n
\n\"replicated\" - The Message is replicated to the remote Message VPN.\n\"not-replicated\" - The Message is not being replicated to the remote Message VPN.\n\"pending-replication\" - The Message is queued for replication to the remote Message VPN.\n
\n", + "type": "string" + }, + "spooledTime": { + "description": "The timestamp of when the Message was spooled in the Queue. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "undelivered": { + "description": "Indicates whether delivery of the Message has never been attempted.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnQueueMsgCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnQueueMsgLinks": { + "properties": { + "uri": { + "description": "The URI of this Queue Message object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueMsgResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnQueueMsgCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnQueueMsg" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueueMsgLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueMsgsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnQueueMsgCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueueMsg" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueueMsgLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueuePrioritiesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnQueuePriorityCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueuePriority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueuePriorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueuePriority": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "priority": { + "description": "The level of the Priority, from 9 (highest) to 0 (lowest).", + "format": "int32", + "type": "integer" + }, + "queueName": { + "description": "The name of the Queue.", + "type": "string" + }, + "spooledByteCount": { + "description": "The amount of guaranteed messages at this Priority spooled by the Queue, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "spooledMsgCount": { + "description": "The number of guaranteed messages at this Priority spooled by the Queue.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnQueuePriorityCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnQueuePriorityLinks": { + "properties": { + "uri": { + "description": "The URI of this Queue Priority object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueuePriorityResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnQueuePriorityCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnQueuePriority" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueuePriorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnQueueCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnQueue" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueueLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueSubscription": { + "properties": { + "createdByManagement": { + "description": "Indicates whether the Subscription topic was created by a management API (CLI or SEMP).", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueName": { + "description": "The name of the Queue.", + "type": "string" + }, + "subscriptionTopic": { + "description": "The topic of the Subscription.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueSubscriptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnQueueSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Queue Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueSubscriptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnQueueSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueSubscriptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueueSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueTemplate": { + "properties": { + "accessType": { + "description": "The access type for delivering messages to consumer flows. The allowed values and their meaning are:\n\n
\n\"exclusive\" - Exclusive delivery of messages to the first bound consumer flow.\n\"non-exclusive\" - Non-exclusive delivery of messages to bound consumer flows in a round-robin (if partition count is zero) or partitioned (if partition count is non-zero) fashion.\n
\n", + "enum": [ + "exclusive", + "non-exclusive" + ], + "type": "string" + }, + "consumerAckPropagationEnabled": { + "description": "Indicates whether the propagation of consumer acknowledgements (ACKs) received on the active replication Message VPN to the standby replication Message VPN is enabled.", + "type": "boolean" + }, + "deadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ).", + "type": "string" + }, + "deliveryDelay": { + "description": "The delay, in seconds, to apply to messages arriving on the Queue before the messages are eligible for delivery. This attribute does not apply to MQTT queues created from this template, but it may apply in future releases. Therefore, to maintain forward compatibility, do not set this value on templates that might be used for MQTT queues. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "durabilityOverride": { + "description": "Controls the durability of queues created from this template. If non-durable, the created queue will be non-durable, regardless of the specified durability. If none, the created queue will have the requested durability. The allowed values and their meaning are:\n\n
\n\"none\" - The durability of the endpoint will be as requested on create.\n\"non-durable\" - The durability of the created queue will be non-durable, regardless of what was requested.\n
\n", + "enum": [ + "none", + "non-durable" + ], + "type": "string" + }, + "eventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventRejectLowPriorityMsgLimitThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "maxBindCount": { + "description": "The maximum number of consumer flows that can bind.", + "format": "int64", + "type": "integer" + }, + "maxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow.", + "format": "int64", + "type": "integer" + }, + "maxMsgSize": { + "description": "The maximum message size allowed, in bytes (B).", + "format": "int32", + "type": "integer" + }, + "maxMsgSpoolUsage": { + "description": "The maximum message spool usage allowed, in megabytes (MB). A value of 0 only allows spooling of the last message received and disables quota checking.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryCount": { + "description": "The maximum number of message redelivery attempts that will occur prior to the message being discarded or moved to the DMQ. A value of 0 means to retry forever.", + "format": "int64", + "type": "integer" + }, + "maxTtl": { + "description": "The maximum time in seconds a message can stay in a Queue when `respectTtlEnabled` is `\"true\"`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `maxTtl` configured for the Queue, is exceeded. A value of 0 disables expiry.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "permission": { + "description": "The permission level for all consumers, excluding the owner. The allowed values and their meaning are:\n\n
\n\"no-access\" - Disallows all access.\n\"read-only\" - Read-only access to the messages.\n\"consume\" - Consume (read and remove) messages.\n\"modify-topic\" - Consume messages or modify the topic/selector.\n\"delete\" - Consume messages, modify the topic/selector or delete the Client created endpoint altogether.\n
\n", + "enum": [ + "no-access", + "read-only", + "consume", + "modify-topic", + "delete" + ], + "type": "string" + }, + "queueNameFilter": { + "description": "A wildcardable pattern used to determine which Queues use settings from this Template. Two different wildcards are supported: * and >. Similar to topic filters or subscription patterns, a > matches anything (but only when used at the end), and a * matches zero or more characters but never a slash (/). A > is only a wildcard when used at the end, after a /. A * is only allowed at the end, after a slash (/).", + "type": "string" + }, + "queueTemplateName": { + "description": "The name of the Queue Template.", + "type": "string" + }, + "redeliveryDelayEnabled": { + "description": "Enable or disable a message redelivery delay. When false, messages are redelivered as soon as possible. When true, messages are redelivered according to the initial, max and multiplier. This should only be enabled when redelivery is enabled. Available since 2.33.", + "type": "boolean" + }, + "redeliveryDelayInitialInterval": { + "description": "The delay to be used between the first 2 redelivery attempts. This value is in milliseconds. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMaxInterval": { + "description": "The maximum delay to be used between any 2 redelivery attempts. This value is in milliseconds. Due to technical limitations, some redelivery attempt delays may slightly exceed this value. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMultiplier": { + "description": "The amount each delay interval is multiplied by after each failed delivery attempt. This number is in a fixed-point decimal format in which you must divide by 100 to get the floating point value. For example, a value of 125 would cause the delay to be multiplied by 1.25. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryEnabled": { + "description": "Enable or disable message redelivery. When enabled, the number of redelivery attempts is controlled by maxRedeliveryCount. When disabled, the message will never be delivered from the queue more than once. Available since 2.18.", + "type": "boolean" + }, + "rejectLowPriorityMsgEnabled": { + "description": "Indicates whether the checking of low priority messages against the `rejectLowPriorityMsgLimit` is enabled.", + "type": "boolean" + }, + "rejectLowPriorityMsgLimit": { + "description": "The number of messages of any priority above which low priority messages are not admitted but higher priority messages are allowed.", + "format": "int64", + "type": "integer" + }, + "rejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs prevent the message from being delivered to any destination and Transacted Session commits to fail. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-queue-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Queue is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n", + "enum": [ + "always", + "when-queue-enabled", + "never" + ], + "type": "string" + }, + "respectMsgPriorityEnabled": { + "description": "Indicates whether message priorities are respected. When enabled, messages are delivered in priority order, from 9 (highest) to 0 (lowest).", + "type": "boolean" + }, + "respectTtlEnabled": { + "description": "Indicates whether the the time-to-live (TTL) for messages is respected. When enabled, expired messages are discarded or moved to the DMQ.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnQueueTemplateCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnQueueTemplateLinks": { + "properties": { + "uri": { + "description": "The URI of this Queue Template object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueTemplateResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnQueueTemplateCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnQueueTemplate" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueueTemplateLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueTemplatesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnQueueTemplateCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueueTemplate" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueueTemplateLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueTxFlow": { + "properties": { + "ackedMsgCount": { + "description": "The number of guaranteed messages delivered and acknowledged by the consumer.", + "format": "int64", + "type": "integer" + }, + "activationTime": { + "description": "The timestamp of when the bound Flow became active. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "activityState": { + "description": "The activity state of the Flow. The allowed values and their meaning are:\n\n
\n\"active-browser\" - The Flow is active as a browser.\n\"active-consumer\" - The Flow is active as a consumer.\n\"inactive\" - The Flow is inactive.\n
\n", + "type": "string" + }, + "activityUpdateState": { + "description": "The state of updating the consumer with the Flow activity. The allowed values and their meaning are:\n\n
\n\"in-progress\" - The Flow is in the process of updating the client with its activity state.\n\"synchronized\" - The Flow has updated the client with its activity state.\n\"not-requested\" - The Flow has not been requested by the client to provide activity updates.\n
\n", + "type": "string" + }, + "bindTime": { + "description": "The timestamp of when the Flow bound to the Queue. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "consumerRedeliveryRequestAllowed": { + "description": "Indicates whether redelivery requests can be received as negative acknowledgements (NACKs) from the consumer. Applicable only to REST consumers.", + "type": "boolean" + }, + "cutThroughAckedMsgCount": { + "description": "The number of guaranteed messages that used cut-through delivery and are acknowledged by the consumer.", + "format": "int64", + "type": "integer" + }, + "deliveryState": { + "description": "The delivery state of the Flow. The allowed values and their meaning are:\n\n
\n\"closed\" - The Flow is unbound.\n\"opened\" - The Flow is bound but inactive.\n\"unbinding\" - The Flow received an unbind request.\n\"handshaking\" - The Flow is handshaking to become active.\n\"deliver-cut-through\" - The Flow is streaming messages using direct+guaranteed delivery.\n\"deliver-from-input-stream\" - The Flow is streaming messages using guaranteed delivery.\n\"deliver-from-memory\" - The Flow throttled causing message delivery from memory (RAM).\n\"deliver-from-spool\" - The Flow stalled causing message delivery from spool (ADB or disk).\n
\n", + "type": "string" + }, + "flowId": { + "description": "The identifier (ID) of the Flow.", + "format": "int64", + "type": "integer" + }, + "highestAckPendingMsgId": { + "description": "The highest identifier (ID) of message transmitted and waiting for acknowledgement.", + "format": "int64", + "type": "integer" + }, + "lastAckedMsgId": { + "description": "The identifier (ID) of the last message transmitted and acknowledged by the consumer.", + "format": "int64", + "type": "integer" + }, + "lastSelectorExaminedMsgId": { + "description": "The identifier (ID) of the last message examined by the Flow selector.", + "format": "int64", + "type": "integer" + }, + "lowestAckPendingMsgId": { + "description": "The lowest identifier (ID) of message transmitted and waiting for acknowledgement.", + "format": "int64", + "type": "integer" + }, + "maxUnackedMsgsExceededMsgCount": { + "description": "The number of guaranteed messages that exceeded the maximum number of delivered unacknowledged messages.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "noLocalDelivery": { + "description": "Indicates whether not to deliver messages to a consumer that published them.", + "type": "boolean" + }, + "queueName": { + "description": "The name of the Queue.", + "type": "string" + }, + "redeliveredMsgCount": { + "description": "The number of guaranteed messages that were redelivered.", + "format": "int64", + "type": "integer" + }, + "redeliveryRequestCount": { + "description": "The number of consumer requests via negative acknowledgements (NACKs) to redeliver guaranteed messages.", + "format": "int64", + "type": "integer" + }, + "selector": { + "description": "The value of the Flow selector.", + "type": "string" + }, + "selectorExaminedMsgCount": { + "description": "The number of guaranteed messages examined by the Flow selector.", + "format": "int64", + "type": "integer" + }, + "selectorMatchedMsgCount": { + "description": "The number of guaranteed messages for which the Flow selector matched.", + "format": "int64", + "type": "integer" + }, + "selectorNotMatchedMsgCount": { + "description": "The number of guaranteed messages for which the Flow selector did not match.", + "format": "int64", + "type": "integer" + }, + "sessionName": { + "description": "The name of the Transacted Session for the Flow.", + "type": "string" + }, + "storeAndForwardAckedMsgCount": { + "description": "The number of guaranteed messages that used store and forward delivery and are acknowledged by the consumer.", + "format": "int64", + "type": "integer" + }, + "transportRetransmitMsgCount": { + "description": "The number of guaranteed messages that were retransmitted at the transport layer as part of a single delivery attempt. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "unackedMsgCount": { + "description": "The number of guaranteed messages delivered but not yet acknowledged by the consumer.", + "format": "int64", + "type": "integer" + }, + "usedWindowSize": { + "description": "The number of guaranteed messages using the available window size.", + "format": "int64", + "type": "integer" + }, + "windowClosedCount": { + "description": "The number of times the window for guaranteed messages was filled and closed before an acknowledgement was received.", + "format": "int64", + "type": "integer" + }, + "windowSize": { + "description": "The number of outstanding guaranteed messages that can be transmitted over the Flow before an acknowledgement is received.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnQueueTxFlowCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnQueueTxFlowLinks": { + "properties": { + "uri": { + "description": "The URI of this Queue Transmit Flow object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnQueueTxFlowResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnQueueTxFlowCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnQueueTxFlow" + }, + "links": { + "$ref": "#/definitions/MsgVpnQueueTxFlowLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueueTxFlowsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnQueueTxFlowCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueueTxFlow" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueueTxFlowLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnQueuesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnQueueCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnQueue" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnQueueLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRate": { + "description": "The rates for the Message VPN. Deprecated since 2.13. All attributes in this object have been moved to the MsgVpn object.", + "properties": { + "averageRxByteRate": { + "description": "The one minute average of the message rate received by the Message VPN, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "averageRxMsgRate": { + "description": "The one minute average of the message rate received by the Message VPN, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "averageTxByteRate": { + "description": "The one minute average of the message rate transmitted by the Message VPN, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "averageTxMsgRate": { + "description": "The one minute average of the message rate transmitted by the Message VPN, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "rxByteRate": { + "description": "The current message rate received by the Message VPN, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "rxMsgRate": { + "description": "The current message rate received by the Message VPN, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "tlsAverageRxByteRate": { + "description": "The one minute average of the TLS message rate received by the Message VPN, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "tlsAverageTxByteRate": { + "description": "The one minute average of the TLS message rate transmitted by the Message VPN, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "tlsRxByteRate": { + "description": "The current TLS message rate received by the Message VPN, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "tlsTxByteRate": { + "description": "The current TLS message rate transmitted by the Message VPN, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "txByteRate": { + "description": "The current message rate transmitted by the Message VPN, in bytes per second (B/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + }, + "txMsgRate": { + "description": "The current message rate transmitted by the Message VPN, in messages per second (msg/sec). Deprecated since 2.13. This attribute has been moved to the MsgVpn object.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnReplayLog": { + "properties": { + "egressEnabled": { + "description": "Indicates whether the transmission of messages from the Replay Log is enabled.", + "type": "boolean" + }, + "ingressEnabled": { + "description": "Indicates whether the reception of messages to the Replay Log is enabled.", + "type": "boolean" + }, + "maxSpoolUsage": { + "description": "The maximum spool usage allowed by the Replay Log, in megabytes (MB). If this limit is exceeded, old messages will be trimmed.", + "format": "int64", + "type": "integer" + }, + "msgSpoolUsage": { + "description": "The spool usage of the Replay Log, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "replayLogName": { + "description": "The name of the Replay Log.", + "type": "string" + }, + "topicFilterEnabled": { + "description": "Enable or disable topic filtering for the Replay Log. Available since 2.27.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnReplayLogCollections": { + "properties": { + "msgs": { + "$ref": "#/definitions/MsgVpnReplayLogCollectionsMsgs" + }, + "topicFilterSubscriptions": { + "$ref": "#/definitions/MsgVpnReplayLogCollectionsTopicFilterSubscriptions" + } + }, + "type": "object" + }, + "MsgVpnReplayLogCollectionsMsgs": { + "properties": { + "count": { + "description": "The total number of objects in the msgs collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnReplayLogCollectionsTopicFilterSubscriptions": { + "properties": { + "count": { + "description": "The total number of objects in the topicFilterSubscriptions collection. Available since 2.27.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnReplayLogLinks": { + "properties": { + "msgsUri": { + "description": "The URI of this Replay Log's collection of Message objects.", + "type": "string" + }, + "topicFilterSubscriptionsUri": { + "description": "The URI of this Replay Log's collection of Topic Filter Subscription objects. Available since 2.27.", + "type": "string" + }, + "uri": { + "description": "The URI of this Replay Log object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplayLogMsg": { + "properties": { + "attachmentSize": { + "description": "The size of the message attachment, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "contentSize": { + "description": "The size of the message content, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "dmqEligible": { + "description": "Indicates whether the message is eligible for the Dead Message Queue (DMQ).", + "type": "boolean" + }, + "msgId": { + "description": "The identifier (ID) of the message.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "priority": { + "description": "The priority level of the message.", + "format": "int32", + "type": "integer" + }, + "publisherId": { + "description": "The identifier (ID) of the message publisher.", + "format": "int64", + "type": "integer" + }, + "replayLogName": { + "description": "The name of the Replay Log.", + "type": "string" + }, + "replicationGroupMsgId": { + "description": "An ID that uniquely identifies this Message within this replication group. Available since 2.21.", + "type": "string" + }, + "sequenceNumber": { + "description": "The sequence number assigned to the message. Applicable only to messages received on sequenced topics.", + "format": "int64", + "type": "integer" + }, + "spooledTime": { + "description": "The timestamp of when the message was spooled in the Replay Log. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnReplayLogMsgCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnReplayLogMsgLinks": { + "properties": { + "uri": { + "description": "The URI of this Message object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplayLogMsgResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnReplayLogMsgCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnReplayLogMsg" + }, + "links": { + "$ref": "#/definitions/MsgVpnReplayLogMsgLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLogMsgsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogMsgCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogMsg" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogMsgLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLogResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnReplayLogCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnReplayLog" + }, + "links": { + "$ref": "#/definitions/MsgVpnReplayLogLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLogTopicFilterSubscription": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "replayLogName": { + "description": "The name of the Replay Log.", + "type": "string" + }, + "topicFilterSubscription": { + "description": "The topic of the Subscription.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplayLogTopicFilterSubscriptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnReplayLogTopicFilterSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic Filter Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplayLogTopicFilterSubscriptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLogTopicFilterSubscriptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplayLogsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLog" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnReplayLogLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplicatedTopic": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "replicatedTopic": { + "description": "The topic for applying replication. Published messages matching this topic will be replicated to the standby site.", + "type": "string" + }, + "replicationMode": { + "description": "The replication mode for the Replicated Topic. The allowed values and their meaning are:\n\n
\n\"sync\" - Messages are acknowledged when replicated (spooled remotely).\n\"async\" - Messages are acknowledged when pending replication (spooled locally).\n
\n", + "enum": [ + "sync", + "async" + ], + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplicatedTopicCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnReplicatedTopicLinks": { + "properties": { + "uri": { + "description": "The URI of this Replicated Topic object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnReplicatedTopicResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnReplicatedTopicCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnReplicatedTopic" + }, + "links": { + "$ref": "#/definitions/MsgVpnReplicatedTopicLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnReplicatedTopicsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnReplicatedTopicCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnReplicatedTopic" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnReplicatedTopicLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpn" + }, + "links": { + "$ref": "#/definitions/MsgVpnLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPoint": { + "properties": { + "clientName": { + "description": "The name of the Client for the REST Delivery Point.", + "type": "string" + }, + "clientProfileName": { + "description": "The name of the Client Profile for the REST Delivery Point.", + "type": "string" + }, + "enabled": { + "description": "Indicates whether the REST Delivery Point is enabled.", + "type": "boolean" + }, + "lastFailureReason": { + "description": "The reason for the last REST Delivery Point failure.", + "type": "string" + }, + "lastFailureTime": { + "description": "The timestamp of the last REST Delivery Point failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + }, + "service": { + "description": "The name of the service that this REST Delivery Point connects to. Internally the broker does not use this value; it is informational only. Available since 2.19.", + "type": "string" + }, + "timeConnectionsBlocked": { + "description": "The percentage of time the REST Delivery Point connections are blocked from transmitting data.", + "format": "int64", + "type": "integer" + }, + "up": { + "description": "Indicates whether the operational state of the REST Delivery Point is up.", + "type": "boolean" + }, + "vendor": { + "description": "The name of the vendor that this REST Delivery Point connects to. Internally the broker does not use this value; it is informational only. Available since 2.19.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointCollections": { + "properties": { + "queueBindings": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointCollectionsQueueBindings" + }, + "restConsumers": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointCollectionsRestConsumers" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointCollectionsQueueBindings": { + "properties": { + "count": { + "description": "The total number of objects in the queueBindings collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointCollectionsRestConsumers": { + "properties": { + "count": { + "description": "The total number of objects in the restConsumers collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointLinks": { + "properties": { + "queueBindingsUri": { + "description": "The URI of this REST Delivery Point's collection of Queue Binding objects.", + "type": "string" + }, + "restConsumersUri": { + "description": "The URI of this REST Delivery Point's collection of REST Consumer objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this REST Delivery Point object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBinding": { + "properties": { + "gatewayReplaceTargetAuthorityEnabled": { + "description": "Indicates whether the authority for the request-target is replaced with that configured for the REST Consumer remote.", + "type": "boolean" + }, + "lastFailureReason": { + "description": "The reason for the last REST Delivery Point queue binding failure.", + "type": "string" + }, + "lastFailureTime": { + "description": "The timestamp of the last REST Delivery Point queue binding failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "postRequestTarget": { + "description": "The request-target string being used when sending requests to a REST Consumer.", + "type": "string" + }, + "queueBindingName": { + "description": "The name of a queue in the Message VPN.", + "type": "string" + }, + "requestTargetEvaluation": { + "description": "The type of evaluation to perform on the request target. The allowed values and their meaning are:\n\n
\n\"none\" - Do not evaluate substitution expressions on the request target.\n\"substitution-expressions\" - Evaluate substitution expressions on the request target.\n
\n Available since 2.23.", + "enum": [ + "none", + "substitution-expressions" + ], + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + }, + "up": { + "description": "Indicates whether the operational state of the REST Delivery Point queue binding is up.", + "type": "boolean" + }, + "uptime": { + "description": "The amount of time in seconds since the REST Delivery Point queue binding was up.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingCollections": { + "properties": { + "protectedRequestHeaders": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingCollectionsProtectedRequestHeaders" + }, + "requestHeaders": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingCollectionsRequestHeaders" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingCollectionsProtectedRequestHeaders": { + "properties": { + "count": { + "description": "The total number of objects in the protectedRequestHeaders collection. Available since 2.30.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingCollectionsRequestHeaders": { + "properties": { + "count": { + "description": "The total number of objects in the requestHeaders collection. Available since 2.23.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingLinks": { + "properties": { + "protectedRequestHeadersUri": { + "description": "The URI of this Queue Binding's collection of Protected Request Header objects. Available since 2.30.", + "type": "string" + }, + "requestHeadersUri": { + "description": "The URI of this Queue Binding's collection of Request Header objects. Available since 2.23.", + "type": "string" + }, + "uri": { + "description": "The URI of this Queue Binding object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader": { + "properties": { + "headerName": { + "description": "The name of the protected HTTP request header.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueBindingName": { + "description": "The name of a queue in the Message VPN.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderLinks": { + "properties": { + "uri": { + "description": "The URI of this Protected Request Header object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeadersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingRequestHeader": { + "properties": { + "headerName": { + "description": "The name of the HTTP request header.", + "type": "string" + }, + "headerValue": { + "description": "A substitution expression for the value of the HTTP request header.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueBindingName": { + "description": "The name of a queue in the Message VPN.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingRequestHeaderCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingRequestHeaderLinks": { + "properties": { + "uri": { + "description": "The URI of this Request Header object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingRequestHeaderResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeader" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingRequestHeadersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeader" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBinding" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointQueueBindingsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBinding" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPoint" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumer": { + "properties": { + "authenticationAwsAccessKeyId": { + "description": "The AWS access key id. Available since 2.26.", + "type": "string" + }, + "authenticationAwsRegion": { + "description": "The AWS region id. Available since 2.26.", + "type": "string" + }, + "authenticationAwsService": { + "description": "The AWS service id. Available since 2.26.", + "type": "string" + }, + "authenticationClientCertConfigTime": { + "description": "The timestamp of when the client-certificate was configured. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.28.", + "format": "int32", + "type": "integer" + }, + "authenticationClientCertThumbprint": { + "description": "The thumbprint of the client-certificate. Available since 2.28.", + "type": "string" + }, + "authenticationHttpBasicUsername": { + "description": "The username that the REST Consumer will use to login to the REST host.", + "type": "string" + }, + "authenticationHttpHeaderName": { + "description": "The authentication header name. Available since 2.15.", + "type": "string" + }, + "authenticationOauthClientId": { + "description": "The OAuth client ID. Available since 2.19.", + "type": "string" + }, + "authenticationOauthClientLastFailureReason": { + "description": "The reason for the most recent OAuth token retrieval failure. Available since 2.19.", + "type": "string" + }, + "authenticationOauthClientLastFailureTime": { + "description": "The time of the last OAuth token retrieval failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.19.", + "format": "int32", + "type": "integer" + }, + "authenticationOauthClientScope": { + "description": "The OAuth scope. Available since 2.19.", + "type": "string" + }, + "authenticationOauthClientTokenEndpoint": { + "description": "The OAuth token endpoint URL that the REST Consumer will use to request a token for login to the REST host. Must begin with \"https\". Available since 2.19.", + "type": "string" + }, + "authenticationOauthClientTokenExpiryDefault": { + "description": "The default expiry time for a token, in seconds. Only used when the token endpoint does not return an expiry time. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. Available since 2.30.", + "format": "int32", + "type": "integer" + }, + "authenticationOauthClientTokenLifetime": { + "description": "The validity duration of the OAuth token. Available since 2.19.", + "format": "int64", + "type": "integer" + }, + "authenticationOauthClientTokenRetrievedTime": { + "description": "The time at which the broker requested the token from the OAuth token endpoint. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.19.", + "format": "int32", + "type": "integer" + }, + "authenticationOauthClientTokenState": { + "description": "The current state of the current OAuth token. The allowed values and their meaning are:\n\n
\n\"valid\" - The token is valid.\n\"invalid\" - The token is invalid.\n
\n Available since 2.19.", + "type": "string" + }, + "authenticationOauthJwtLastFailureReason": { + "description": "The reason for the most recent OAuth token retrieval failure. Available since 2.21.", + "type": "string" + }, + "authenticationOauthJwtLastFailureTime": { + "description": "The time of the last OAuth token retrieval failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "authenticationOauthJwtTokenEndpoint": { + "description": "The OAuth token endpoint URL that the REST Consumer will use to request a token for login to the REST host. Available since 2.21.", + "type": "string" + }, + "authenticationOauthJwtTokenExpiryDefault": { + "description": "The default expiry time for a token, in seconds. Only used when the token endpoint does not return an expiry time. Changes to this attribute are synchronized to HA mates and replication sites via config-sync. Available since 2.30.", + "format": "int32", + "type": "integer" + }, + "authenticationOauthJwtTokenLifetime": { + "description": "The validity duration of the OAuth token. Available since 2.21.", + "format": "int64", + "type": "integer" + }, + "authenticationOauthJwtTokenRetrievedTime": { + "description": "The time at which the broker requested the token from the OAuth token endpoint. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.21.", + "format": "int32", + "type": "integer" + }, + "authenticationOauthJwtTokenState": { + "description": "The current state of the current OAuth token. The allowed values and their meaning are:\n\n
\n\"valid\" - The token is valid.\n\"invalid\" - The token is invalid.\n
\n Available since 2.21.", + "type": "string" + }, + "authenticationScheme": { + "description": "The authentication scheme used by the REST Consumer to login to the REST host. The allowed values and their meaning are:\n\n
\n\"none\" - Login with no authentication. This may be useful for anonymous connections or when a REST Consumer does not require authentication.\n\"http-basic\" - Login with a username and optional password according to HTTP Basic authentication as per RFC2616.\n\"client-certificate\" - Login with a client TLS certificate as per RFC5246. Client certificate authentication is only available on TLS connections.\n\"http-header\" - Login with a specified HTTP header.\n\"oauth-client\" - Login with OAuth 2.0 client credentials.\n\"oauth-jwt\" - Login with OAuth (RFC 7523 JWT Profile).\n\"transparent\" - Login using the Authorization header from the message properties, if present. Transparent authentication passes along existing Authorization header metadata instead of discarding it. Note that if the message is coming from a REST producer, the REST service must be configured to forward the Authorization header.\n\"aws\" - Login using AWS Signature Version 4 authentication (AWS4-HMAC-SHA256).\n
\n", + "enum": [ + "none", + "http-basic", + "client-certificate", + "http-header", + "oauth-client", + "oauth-jwt", + "transparent", + "aws" + ], + "type": "string" + }, + "counter": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerCounter" + }, + "enabled": { + "description": "Indicates whether the REST Consumer is enabled.", + "type": "boolean" + }, + "httpMethod": { + "description": "The HTTP method to use (POST or PUT). This is used only when operating in the REST service \"messaging\" mode and is ignored in \"gateway\" mode. The allowed values and their meaning are:\n\n
\n\"post\" - Use the POST HTTP method.\n\"put\" - Use the PUT HTTP method.\n
\n Available since 2.17.", + "enum": [ + "post", + "put" + ], + "type": "string" + }, + "httpRequestConnectionCloseTxMsgCount": { + "description": "The number of HTTP request messages transmitted to the REST Consumer to close the connection. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "httpRequestOutstandingTxMsgCount": { + "description": "The number of HTTP request messages transmitted to the REST Consumer that are waiting for a response. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "httpRequestTimedOutTxMsgCount": { + "description": "The number of HTTP request messages transmitted to the REST Consumer that have timed out. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "httpRequestTxByteCount": { + "description": "The amount of HTTP request messages transmitted to the REST Consumer, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "httpRequestTxMsgCount": { + "description": "The number of HTTP request messages transmitted to the REST Consumer. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "httpResponseErrorRxMsgCount": { + "description": "The number of HTTP client/server error response messages received from the REST Consumer. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "httpResponseRxByteCount": { + "description": "The amount of HTTP response messages received from the REST Consumer, in bytes (B). Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "httpResponseRxMsgCount": { + "description": "The number of HTTP response messages received from the REST Consumer. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "httpResponseSuccessRxMsgCount": { + "description": "The number of HTTP successful response messages received from the REST Consumer. Available since 2.13.", + "format": "int64", + "type": "integer" + }, + "lastConnectionFailureLocalEndpoint": { + "description": "The local endpoint at the time of the last connection failure.", + "type": "string" + }, + "lastConnectionFailureReason": { + "description": "The reason for the last connection failure between local and remote endpoints.", + "type": "string" + }, + "lastConnectionFailureRemoteEndpoint": { + "description": "The remote endpoint at the time of the last connection failure.", + "type": "string" + }, + "lastConnectionFailureTime": { + "description": "The timestamp of the last connection failure between local and remote endpoints. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastFailureReason": { + "description": "The reason for the last REST Consumer failure.", + "type": "string" + }, + "lastFailureTime": { + "description": "The timestamp of the last REST Consumer failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "localInterface": { + "description": "The interface that will be used for all outgoing connections associated with the REST Consumer. When unspecified, an interface is automatically chosen.", + "type": "string" + }, + "maxPostWaitTime": { + "description": "The maximum amount of time (in seconds) to wait for an HTTP POST response from the REST Consumer. Once this time is exceeded, the TCP connection is reset.", + "format": "int32", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "outgoingConnectionCount": { + "description": "The number of concurrent TCP connections open to the REST Consumer.", + "format": "int32", + "type": "integer" + }, + "remoteHost": { + "description": "The IP address or DNS name for the REST Consumer.", + "type": "string" + }, + "remoteOutgoingConnectionUpCount": { + "description": "The number of outgoing connections for the REST Consumer that are up.", + "format": "int64", + "type": "integer" + }, + "remotePort": { + "description": "The port associated with the host of the REST Consumer.", + "format": "int64", + "type": "integer" + }, + "restConsumerName": { + "description": "The name of the REST Consumer.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + }, + "retryDelay": { + "description": "The number of seconds that must pass before retrying the remote REST Consumer connection.", + "format": "int32", + "type": "integer" + }, + "tlsCipherSuiteList": { + "description": "The colon-separated list of cipher suites the REST Consumer uses in its encrypted connection. The value `\"default\"` implies all supported suites ordered from most secure to least secure. The list of default cipher suites is available in the `tlsCipherSuiteMsgBackboneDefaultList` attribute of the Broker object in the Monitoring API. The REST Consumer should choose the first suite from this list that it supports.", + "type": "string" + }, + "tlsEnabled": { + "description": "Indicates whether encryption (TLS) is enabled for the REST Consumer.", + "type": "boolean" + }, + "up": { + "description": "Indicates whether the operational state of the REST Consumer is up.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerCollections": { + "properties": { + "oauthJwtClaims": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerCollectionsOauthJwtClaims" + }, + "tlsTrustedCommonNames": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerCollectionsTlsTrustedCommonNames" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerCollectionsOauthJwtClaims": { + "properties": { + "count": { + "description": "The total number of objects in the oauthJwtClaims collection. Available since 2.21.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerCollectionsTlsTrustedCommonNames": { + "properties": { + "count": { + "description": "The total number of objects in the tlsTrustedCommonNames collection. Deprecated since 2.17. Common Name validation has been replaced by Server Certificate Name validation.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerCounter": { + "description": "The counters for the REST Consumer. Deprecated since 2.13. All attributes in this object have been moved to the MsgVpnRestDeliveryPointRestConsumer object.", + "properties": { + "httpRequestConnectionCloseTxMsgCount": { + "description": "The number of HTTP request messages transmitted to the REST Consumer to close the connection. Deprecated since 2.13. This attribute has been moved to the MsgVpnRestDeliveryPointRestConsumer object.", + "format": "int64", + "type": "integer" + }, + "httpRequestOutstandingTxMsgCount": { + "description": "The number of HTTP request messages transmitted to the REST Consumer that are waiting for a response. Deprecated since 2.13. This attribute has been moved to the MsgVpnRestDeliveryPointRestConsumer object.", + "format": "int64", + "type": "integer" + }, + "httpRequestTimedOutTxMsgCount": { + "description": "The number of HTTP request messages transmitted to the REST Consumer that have timed out. Deprecated since 2.13. This attribute has been moved to the MsgVpnRestDeliveryPointRestConsumer object.", + "format": "int64", + "type": "integer" + }, + "httpRequestTxByteCount": { + "description": "The amount of HTTP request messages transmitted to the REST Consumer, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpnRestDeliveryPointRestConsumer object.", + "format": "int64", + "type": "integer" + }, + "httpRequestTxMsgCount": { + "description": "The number of HTTP request messages transmitted to the REST Consumer. Deprecated since 2.13. This attribute has been moved to the MsgVpnRestDeliveryPointRestConsumer object.", + "format": "int64", + "type": "integer" + }, + "httpResponseErrorRxMsgCount": { + "description": "The number of HTTP client/server error response messages received from the REST Consumer. Deprecated since 2.13. This attribute has been moved to the MsgVpnRestDeliveryPointRestConsumer object.", + "format": "int64", + "type": "integer" + }, + "httpResponseRxByteCount": { + "description": "The amount of HTTP response messages received from the REST Consumer, in bytes (B). Deprecated since 2.13. This attribute has been moved to the MsgVpnRestDeliveryPointRestConsumer object.", + "format": "int64", + "type": "integer" + }, + "httpResponseRxMsgCount": { + "description": "The number of HTTP response messages received from the REST Consumer. Deprecated since 2.13. This attribute has been moved to the MsgVpnRestDeliveryPointRestConsumer object.", + "format": "int64", + "type": "integer" + }, + "httpResponseSuccessRxMsgCount": { + "description": "The number of HTTP successful response messages received from the REST Consumer. Deprecated since 2.13. This attribute has been moved to the MsgVpnRestDeliveryPointRestConsumer object.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerLinks": { + "properties": { + "oauthJwtClaimsUri": { + "description": "The URI of this REST Consumer's collection of Claim objects. Available since 2.21.", + "type": "string" + }, + "tlsTrustedCommonNamesUri": { + "description": "The URI of this REST Consumer's collection of Trusted Common Name objects. Deprecated since 2.17. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "uri": { + "description": "The URI of this REST Consumer object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerOauthJwtClaim": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "oauthJwtClaimName": { + "description": "The name of the additional claim. Cannot be \"exp\", \"iat\", or \"jti\".", + "type": "string" + }, + "oauthJwtClaimValue": { + "description": "The value of the additional claim, which must be a string containing a valid JSON value.", + "type": "string" + }, + "restConsumerName": { + "description": "The name of the REST Consumer.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimLinks": { + "properties": { + "uri": { + "description": "The URI of this Claim object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaim" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaim" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumer" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN. Deprecated since 2.17. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "restConsumerName": { + "description": "The name of the REST Consumer. Deprecated since 2.17. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "restDeliveryPointName": { + "description": "The name of the REST Delivery Point. Deprecated since 2.17. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + }, + "tlsTrustedCommonName": { + "description": "The expected trusted common name of the remote certificate. Deprecated since 2.17. Common Name validation has been replaced by Server Certificate Name validation.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameLinks": { + "properties": { + "uri": { + "description": "The URI of this Trusted Common Name object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName" + }, + "links": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNamesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointRestConsumersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumer" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnRestDeliveryPointsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPoint" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfile": { + "properties": { + "aclProfileName": { + "description": "The name of the Telemetry Profile ACL Profile.", + "type": "string" + }, + "clientProfileName": { + "description": "The name of the Telemetry Profile Client Profile.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "queueEventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueEventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "queueMaxBindCount": { + "description": "The maximum number of consumer flows that can bind to the Queue.", + "format": "int64", + "type": "integer" + }, + "queueMaxMsgSpoolUsage": { + "description": "The maximum message spool usage allowed by the Queue, in megabytes (MB).", + "format": "int64", + "type": "integer" + }, + "queueName": { + "description": "The name of the Telemetry Profile Queue.", + "type": "string" + }, + "receiverAclConnectDefaultAction": { + "description": "The default action to take when a receiver client connects to the broker. The allowed values and their meaning are:\n\n
\n\"allow\" - Allow client connection unless an exception is found for it.\n\"disallow\" - Disallow client connection unless an exception is found for it.\n
\n", + "enum": [ + "allow", + "disallow" + ], + "type": "string" + }, + "receiverEnabled": { + "description": "Enable or disable the ability for receiver clients to consume from the #telemetry queue.", + "type": "boolean" + }, + "receiverEventConnectionCountPerClientUsernameThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "receiverMaxConnectionCountPerClientUsername": { + "description": "The maximum number of receiver connections per Client Username.", + "format": "int64", + "type": "integer" + }, + "receiverTcpCongestionWindowSize": { + "description": "The TCP initial congestion window size for clients using the Client Profile, in multiples of the TCP Maximum Segment Size (MSS). Changing the value from its default of 2 results in non-compliance with RFC 2581. Contact support before changing this value.", + "format": "int64", + "type": "integer" + }, + "receiverTcpKeepaliveCount": { + "description": "The number of TCP keepalive retransmissions to a client using the Client Profile before declaring that it is not available.", + "format": "int64", + "type": "integer" + }, + "receiverTcpKeepaliveIdleTime": { + "description": "The amount of time a client connection using the Client Profile must remain idle before TCP begins sending keepalive probes, in seconds.", + "format": "int64", + "type": "integer" + }, + "receiverTcpKeepaliveInterval": { + "description": "The amount of time between TCP keepalive retransmissions to a client using the Client Profile when no acknowledgement is received, in seconds.", + "format": "int64", + "type": "integer" + }, + "receiverTcpMaxSegmentSize": { + "description": "The TCP maximum segment size for clients using the Client Profile, in bytes. Changes are applied to all existing connections.", + "format": "int64", + "type": "integer" + }, + "receiverTcpMaxWindowSize": { + "description": "The TCP maximum window size for clients using the Client Profile, in kilobytes. Changes are applied to all existing connections.", + "format": "int64", + "type": "integer" + }, + "telemetryProfileName": { + "description": "The name of the Telemetry Profile.", + "type": "string" + }, + "traceEnabled": { + "description": "Enable or disable generation of all trace span data messages. When enabled, the state of configured trace filters control which messages get traced. When disabled, trace span data messages are never generated, regardless of the state of trace filters.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileCollections": { + "properties": { + "receiverAclConnectExceptions": { + "$ref": "#/definitions/MsgVpnTelemetryProfileCollectionsReceiverAclConnectExceptions" + }, + "traceFilters": { + "$ref": "#/definitions/MsgVpnTelemetryProfileCollectionsTraceFilters" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileCollectionsReceiverAclConnectExceptions": { + "properties": { + "count": { + "description": "The total number of objects in the receiverAclConnectExceptions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileCollectionsTraceFilters": { + "properties": { + "count": { + "description": "The total number of objects in the traceFilters collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileLinks": { + "properties": { + "receiverAclConnectExceptionsUri": { + "description": "The URI of this Telemetry Profile's collection of Receiver ACL Connect Exception objects.", + "type": "string" + }, + "traceFiltersUri": { + "description": "The URI of this Telemetry Profile's collection of Trace Filter objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Telemetry Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileReceiverAclConnectException": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "receiverAclConnectExceptionAddress": { + "description": "The IP address/netmask of the receiver connect exception in CIDR form.", + "type": "string" + }, + "telemetryProfileName": { + "description": "The name of the Telemetry Profile.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileReceiverAclConnectExceptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnTelemetryProfileReceiverAclConnectExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Receiver ACL Connect Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileReceiverAclConnectExceptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectException" + }, + "links": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileReceiverAclConnectExceptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTelemetryProfileCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTelemetryProfile" + }, + "links": { + "$ref": "#/definitions/MsgVpnTelemetryProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilter": { + "properties": { + "enabled": { + "description": "Enable or disable the trace filter. When the filter is disabled, the filter's subscriptions will not trigger a message to be traced.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "telemetryProfileName": { + "description": "The name of the Telemetry Profile.", + "type": "string" + }, + "traceFilterName": { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterCollections": { + "properties": { + "subscriptions": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterCollectionsSubscriptions" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterCollectionsSubscriptions": { + "properties": { + "count": { + "description": "The total number of objects in the subscriptions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterLinks": { + "properties": { + "subscriptionsUri": { + "description": "The URI of this Trace Filter's collection of Telemetry Trace Filter Subscription objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Trace Filter object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilter" + }, + "links": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterSubscription": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "subscription": { + "description": "Messages matching this subscription will follow this filter's configuration.", + "type": "string" + }, + "subscriptionSyntax": { + "description": "The syntax of the trace filter subscription. The allowed values and their meaning are:\n\n
\n\"smf\" - Subscription uses SMF syntax.\n\"mqtt\" - Subscription uses MQTT syntax.\n
\n", + "enum": [ + "smf", + "mqtt" + ], + "type": "string" + }, + "telemetryProfileName": { + "description": "The name of the Telemetry Profile.", + "type": "string" + }, + "traceFilterName": { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterSubscriptionCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterSubscriptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Telemetry Trace Filter Subscription object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterSubscriptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscription" + }, + "links": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFilterSubscriptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscription" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfileTraceFiltersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilter" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTelemetryProfilesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTelemetryProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpoint": { + "properties": { + "accessType": { + "description": "The access type for delivering messages to consumer flows bound to the Topic Endpoint. The allowed values and their meaning are:\n\n
\n\"exclusive\" - Exclusive delivery of messages to the first bound consumer flow.\n\"non-exclusive\" - Non-exclusive delivery of messages to bound consumer flows in a round-robin (if partition count is zero) or partitioned (if partition count is non-zero) fashion.\n
\n", + "enum": [ + "exclusive", + "non-exclusive" + ], + "type": "string" + }, + "alreadyBoundBindFailureCount": { + "description": "The number of Topic Endpoint bind failures due to being already bound.", + "format": "int64", + "type": "integer" + }, + "averageBindRequestRate": { + "description": "The one minute average of the bind request rate received by the Topic Endpoint, in binds per second (binds/sec). Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "averageRxByteRate": { + "description": "The one minute average of the message rate received by the Topic Endpoint, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "averageRxMsgRate": { + "description": "The one minute average of the message rate received by the Topic Endpoint, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "averageTxByteRate": { + "description": "The one minute average of the message rate transmitted by the Topic Endpoint, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "averageTxMsgRate": { + "description": "The one minute average of the message rate transmitted by the Topic Endpoint, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "bindRequestCount": { + "description": "The number of consumer requests to bind to the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "bindRequestRate": { + "description": "The current bind request rate received by the Topic Endpoint, in binds per second (binds/sec). Available since 2.25.", + "format": "int64", + "type": "integer" + }, + "bindSuccessCount": { + "description": "The number of successful consumer requests to bind to the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "bindTimeForwardingMode": { + "description": "The forwarding mode of the Topic Endpoint at bind time. The allowed values and their meaning are:\n\n
\n\"store-and-forward\" - Deliver messages using the guaranteed data path.\n\"cut-through\" - Deliver messages using the direct and guaranteed data paths for lower latency.\n
\n", + "type": "string" + }, + "clientProfileDeniedDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to being denied by the Client Profile.", + "format": "int64", + "type": "integer" + }, + "consumerAckPropagationEnabled": { + "description": "Indicates whether the propagation of consumer acknowledgements (ACKs) received on the active replication Message VPN to the standby replication Message VPN is enabled.", + "type": "boolean" + }, + "createdByManagement": { + "description": "Indicates whether the Topic Endpoint was created by a management API (CLI or SEMP).", + "type": "boolean" + }, + "deadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ) used by the Topic Endpoint.", + "type": "string" + }, + "deletedMsgCount": { + "description": "The number of guaranteed messages deleted from the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "deliveryCountEnabled": { + "description": "Enable or disable the ability for client applications to query the message delivery count of messages received from the Topic Endpoint. This is a controlled availability feature. Please contact support to find out if this feature is supported for your use case. Available since 2.19.", + "type": "boolean" + }, + "deliveryDelay": { + "description": "The delay, in seconds, to apply to messages arriving on the Topic Endpoint before the messages are eligible for delivery. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "destinationGroupErrorDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to a destination group error.", + "format": "int64", + "type": "integer" + }, + "destinationTopic": { + "description": "The destination topic of the Topic Endpoint.", + "type": "string" + }, + "disabledBindFailureCount": { + "description": "The number of Topic Endpoint bind failures due to being disabled.", + "format": "int64", + "type": "integer" + }, + "disabledDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to it being disabled.", + "format": "int64", + "type": "integer" + }, + "durable": { + "description": "Indicates whether the Topic Endpoint is durable and not temporary.", + "type": "boolean" + }, + "egressEnabled": { + "description": "Indicates whether the transmission of messages from the Topic Endpoint is enabled.", + "type": "boolean" + }, + "eventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventRejectLowPriorityMsgLimitThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "highestAckedMsgId": { + "description": "The highest identifier (ID) of guaranteed messages in the Topic Endpoint that were acknowledged.", + "format": "int64", + "type": "integer" + }, + "highestMsgId": { + "description": "The highest identifier (ID) of guaranteed messages in the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "inProgressAckMsgCount": { + "description": "The number of acknowledgement messages received by the Topic Endpoint that are in the process of updating and deleting associated guaranteed messages.", + "format": "int64", + "type": "integer" + }, + "ingressEnabled": { + "description": "Indicates whether the reception of messages to the Topic Endpoint is enabled.", + "type": "boolean" + }, + "invalidSelectorBindFailureCount": { + "description": "The number of Topic Endpoint bind failures due to an invalid selector.", + "format": "int64", + "type": "integer" + }, + "lastReplayCompleteTime": { + "description": "The timestamp of the last completed replay for the Topic Endpoint. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastReplayFailureReason": { + "description": "The reason for the last replay failure for the Topic Endpoint.", + "type": "string" + }, + "lastReplayFailureTime": { + "description": "The timestamp of the last replay failure for the Topic Endpoint. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastReplayStartTime": { + "description": "The timestamp of the last replay started for the Topic Endpoint. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastReplayedMsgTxTime": { + "description": "The timestamp of the last replayed message transmitted by the Topic Endpoint. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastSelectorExaminedMsgId": { + "description": "The identifier (ID) of the last message examined by the Topic Endpoint selector.", + "format": "int64", + "type": "integer" + }, + "lastSpooledMsgId": { + "description": "The identifier (ID) of the last guaranteed message spooled in the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "lowPriorityMsgCongestionDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to low priority message congestion control.", + "format": "int64", + "type": "integer" + }, + "lowPriorityMsgCongestionState": { + "description": "The state of the low priority message congestion in the Topic Endpoint. The allowed values and their meaning are:\n\n
\n\"disabled\" - Messages are not being checked for priority.\n\"not-congested\" - Low priority messages are being stored and delivered.\n\"congested\" - Low priority messages are being discarded.\n
\n", + "type": "string" + }, + "lowestAckedMsgId": { + "description": "The lowest identifier (ID) of guaranteed messages in the Topic Endpoint that were acknowledged.", + "format": "int64", + "type": "integer" + }, + "lowestMsgId": { + "description": "The lowest identifier (ID) of guaranteed messages in the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "maxBindCount": { + "description": "The maximum number of consumer flows that can bind to the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "maxBindCountExceededBindFailureCount": { + "description": "The number of Topic Endpoint bind failures due to the maximum bind count being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow for the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "maxEffectiveBindCount": { + "description": "The effective maximum number of consumer flows that can bind to the Topic Endpoint.", + "format": "int32", + "type": "integer" + }, + "maxMsgSize": { + "description": "The maximum message size allowed in the Topic Endpoint, in bytes (B).", + "format": "int32", + "type": "integer" + }, + "maxMsgSizeExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to the maximum message size being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxMsgSpoolUsageExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to the maximum message spool usage being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryCount": { + "description": "The maximum number of times the Topic Endpoint will attempt redelivery of a message prior to it being discarded or moved to the DMQ. A value of 0 means to retry forever.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to the maximum redelivery attempts being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryExceededToDmqFailedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to the maximum redelivery attempts being exceeded and failing to move to the Dead Message Queue (DMQ).", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryExceededToDmqMsgCount": { + "description": "The number of guaranteed messages moved to the Dead Message Queue (DMQ) by the Topic Endpoint due to the maximum redelivery attempts being exceeded.", + "format": "int64", + "type": "integer" + }, + "maxSpoolUsage": { + "description": "The maximum message spool usage allowed by the Topic Endpoint, in megabytes (MB). A value of 0 only allows spooling of the last message received and disables quota checking.", + "format": "int64", + "type": "integer" + }, + "maxTtl": { + "description": "The maximum time in seconds a message can stay in the Topic Endpoint when `respectTtlEnabled` is `\"true\"`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `maxTtl` configured for the Topic Endpoint, is exceeded. A value of 0 disables expiry.", + "format": "int64", + "type": "integer" + }, + "maxTtlExceededDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to the maximum time-to-live (TTL) in hops being exceeded. The TTL hop count is incremented when the message crosses a bridge.", + "format": "int64", + "type": "integer" + }, + "maxTtlExpiredDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to the maximum time-to-live (TTL) timestamp expiring.", + "format": "int64", + "type": "integer" + }, + "maxTtlExpiredToDmqFailedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to the maximum time-to-live (TTL) timestamp expiring and failing to move to the Dead Message Queue (DMQ).", + "format": "int64", + "type": "integer" + }, + "maxTtlExpiredToDmqMsgCount": { + "description": "The number of guaranteed messages moved to the Dead Message Queue (DMQ) by the Topic Endpoint due to the maximum time-to-live (TTL) timestamp expiring.", + "format": "int64", + "type": "integer" + }, + "msgSpoolPeakUsage": { + "description": "The message spool peak usage by the Topic Endpoint, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "msgSpoolUsage": { + "description": "The message spool usage by the Topic Endpoint, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "networkTopic": { + "description": "The name of the network topic for the Topic Endpoint.", + "type": "string" + }, + "noLocalDeliveryDiscardedMsgCount": { + "description": "The number of guaranteed messages discarded by the Topic Endpoint due to no local delivery being requested.", + "format": "int64", + "type": "integer" + }, + "otherBindFailureCount": { + "description": "The number of Topic Endpoint bind failures due to other reasons.", + "format": "int64", + "type": "integer" + }, + "owner": { + "description": "The Client Username that owns the Topic Endpoint and has permission equivalent to `\"delete\"`.", + "type": "string" + }, + "permission": { + "description": "The permission level for all consumers of the Topic Endpoint, excluding the owner. The allowed values and their meaning are:\n\n
\n\"no-access\" - Disallows all access.\n\"read-only\" - Read-only access to the messages.\n\"consume\" - Consume (read and remove) messages.\n\"modify-topic\" - Consume messages or modify the topic/selector.\n\"delete\" - Consume messages, modify the topic/selector or delete the Client created endpoint altogether.\n
\n", + "enum": [ + "no-access", + "read-only", + "consume", + "modify-topic", + "delete" + ], + "type": "string" + }, + "redeliveredMsgCount": { + "description": "The number of guaranteed messages transmitted by the Topic Endpoint for redelivery.", + "format": "int64", + "type": "integer" + }, + "redeliveryDelayEnabled": { + "description": "Enable or disable a message redelivery delay. When false, messages are redelivered as-soon-as-possible. When true, messages are redelivered according to the initial, max and multiplier. This should only be enabled when redelivery is enabled. Available since 2.33.", + "type": "boolean" + }, + "redeliveryDelayInitialInterval": { + "description": "The delay to be used between the first 2 redelivery attempts. This value is in milliseconds. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMaxInterval": { + "description": "The maximum delay to be used between any 2 redelivery attempts. This value is in milliseconds. Due to technical limitations, some redelivery attempt delays may slightly exceed this value. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMultiplier": { + "description": "The amount each delay interval is multiplied by after each failed delivery attempt. This number is in a fixed-point decimal format in which you must divide by 100 to get the floating point value. For example, a value of 125 would cause the delay to be multiplied by 1.25. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryEnabled": { + "description": "Enable or disable message redelivery. When enabled, the number of redelivery attempts is controlled by maxRedeliveryCount. When disabled, the message will never be delivered from the topic-endpoint more than once. Available since 2.18.", + "type": "boolean" + }, + "rejectLowPriorityMsgEnabled": { + "description": "Indicates whether the checking of low priority messages against the `rejectLowPriorityMsgLimit` is enabled.", + "type": "boolean" + }, + "rejectLowPriorityMsgLimit": { + "description": "The number of messages of any priority in the Topic Endpoint above which low priority messages are not admitted but higher priority messages are allowed.", + "format": "int64", + "type": "integer" + }, + "rejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-topic-endpoint-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Topic Endpoint is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n", + "enum": [ + "always", + "when-topic-endpoint-enabled", + "never" + ], + "type": "string" + }, + "replayFailureCount": { + "description": "The number of replays that failed for the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "replayStartCount": { + "description": "The number of replays started for the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "replayState": { + "description": "The state of replay for the Topic Endpoint. The allowed values and their meaning are:\n\n
\n\"initializing\" - All messages are being deleted from the endpoint before replay starts.\n\"active\" - Subscription matching logged messages are being replayed to the endpoint.\n\"pending-complete\" - Replay is complete, but final accounting is in progress.\n\"complete\" - Replay and all related activities are complete.\n\"failed\" - Replay has failed and is waiting for an unbind response.\n
\n", + "type": "string" + }, + "replaySuccessCount": { + "description": "The number of replays that succeeded for the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "replayedAckedMsgCount": { + "description": "The number of replayed messages transmitted by the Topic Endpoint and acked by all consumers.", + "format": "int64", + "type": "integer" + }, + "replayedTxMsgCount": { + "description": "The number of replayed messages transmitted by the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "replicationActiveAckPropTxMsgCount": { + "description": "The number of acknowledgement messages propagated by the Topic Endpoint to the replication standby remote Message VPN.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyAckPropRxMsgCount": { + "description": "The number of propagated acknowledgement messages received by the Topic Endpoint from the replication active remote Message VPN.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyAckedByAckPropMsgCount": { + "description": "The number of messages acknowledged in the Topic Endpoint by acknowledgement propagation from the replication active remote Message VPN.", + "format": "int64", + "type": "integer" + }, + "replicationStandbyRxMsgCount": { + "description": "The number of messages received by the Topic Endpoint from the replication active remote Message VPN.", + "format": "int64", + "type": "integer" + }, + "respectMsgPriorityEnabled": { + "description": "Indicates whether message priorities are respected. When enabled, messages contained in the Topic Endpoint are delivered in priority order, from 9 (highest) to 0 (lowest).", + "type": "boolean" + }, + "respectTtlEnabled": { + "description": "Indicates whether the time-to-live (TTL) for messages in the Topic Endpoint is respected. When enabled, expired messages are discarded or moved to the DMQ.", + "type": "boolean" + }, + "rxByteRate": { + "description": "The current message rate received by the Topic Endpoint, in bytes per second (B/sec).", + "format": "int32", + "type": "integer" + }, + "rxMsgRate": { + "description": "The current message rate received by the Topic Endpoint, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "rxSelector": { + "description": "Indicates whether the Topic Endpoint has a selector to filter received messages.", + "type": "boolean" + }, + "selector": { + "description": "The value of the receive selector for the Topic Endpoint.", + "type": "string" + }, + "selectorExaminedMsgCount": { + "description": "The number of guaranteed messages examined by the Topic Endpoint selector.", + "format": "int64", + "type": "integer" + }, + "selectorMatchedMsgCount": { + "description": "The number of guaranteed messages for which the Topic Endpoint selector matched.", + "format": "int64", + "type": "integer" + }, + "selectorNotMatchedMsgCount": { + "description": "The number of guaranteed messages for which the Topic Endpoint selector did not match.", + "format": "int64", + "type": "integer" + }, + "spooledByteCount": { + "description": "The amount of guaranteed messages that were spooled in the Topic Endpoint, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "spooledMsgCount": { + "description": "The number of guaranteed messages that were spooled in the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "topicEndpointName": { + "description": "The name of the Topic Endpoint.", + "type": "string" + }, + "transportRetransmitMsgCount": { + "description": "The number of guaranteed messages that were retransmitted by the Topic Endpoint at the transport layer as part of a single delivery attempt. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "txByteRate": { + "description": "The current message rate transmitted by the Topic Endpoint, in bytes per second (B/sec).", + "format": "int64", + "type": "integer" + }, + "txMsgRate": { + "description": "The current message rate transmitted by the Topic Endpoint, in messages per second (msg/sec).", + "format": "int64", + "type": "integer" + }, + "txUnackedMsgCount": { + "description": "The number of guaranteed messages in the Topic Endpoint that have been transmitted but not acknowledged by all consumers.", + "format": "int64", + "type": "integer" + }, + "virtualRouter": { + "description": "The virtual router used by the Topic Endpoint. The allowed values and their meaning are:\n\n
\n\"primary\" - The endpoint belongs to the primary virtual router.\n\"backup\" - The endpoint belongs to the backup virtual router.\n
\n Deprecated since 2.31. This attribute has been deprecated. When Guaranteed Messaging is active, this value is always the virtual router for which Guaranteed Messaging is enabled. Otherwise, this value should be ignored.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointCollections": { + "properties": { + "msgs": { + "$ref": "#/definitions/MsgVpnTopicEndpointCollectionsMsgs" + }, + "priorities": { + "$ref": "#/definitions/MsgVpnTopicEndpointCollectionsPriorities" + }, + "txFlows": { + "$ref": "#/definitions/MsgVpnTopicEndpointCollectionsTxFlows" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointCollectionsMsgs": { + "properties": { + "count": { + "description": "The total number of objects in the msgs collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointCollectionsPriorities": { + "properties": { + "count": { + "description": "The total number of objects in the priorities collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointCollectionsTxFlows": { + "properties": { + "count": { + "description": "The total number of objects in the txFlows collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointLinks": { + "properties": { + "msgsUri": { + "description": "The URI of this Topic Endpoint's collection of Topic Endpoint Message objects.", + "type": "string" + }, + "prioritiesUri": { + "description": "The URI of this Topic Endpoint's collection of Topic Endpoint Priority objects.", + "type": "string" + }, + "txFlowsUri": { + "description": "The URI of this Topic Endpoint's collection of Topic Endpoint Transmit Flow objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Topic Endpoint object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointMsg": { + "properties": { + "attachmentSize": { + "description": "The size of the Message attachment, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "contentSize": { + "description": "The size of the Message content, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "deliveryEligibleTime": { + "description": "The timestamp of when the Message is eligible for delivery. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time). Available since 2.22.", + "format": "int32", + "type": "integer" + }, + "dmqEligible": { + "description": "Indicates whether the Message is eligible for the Dead Message Queue (DMQ).", + "type": "boolean" + }, + "expiryTime": { + "description": "The timestamp of when the Message expires. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "msgId": { + "description": "The identifier (ID) of the Message.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "priority": { + "description": "The priority level of the Message, from 9 (highest) to 0 (lowest).", + "format": "int32", + "type": "integer" + }, + "publisherId": { + "description": "The identifier (ID) of the Message publisher.", + "format": "int64", + "type": "integer" + }, + "redeliveryCount": { + "description": "The number of times the Message has been redelivered.", + "format": "int32", + "type": "integer" + }, + "replicatedMateMsgId": { + "description": "The Message identifier (ID) on the replication mate. Applicable only to replicated messages.", + "format": "int64", + "type": "integer" + }, + "replicationGroupMsgId": { + "description": "An ID that uniquely identifies this Message within this replication group. Available since 2.21.", + "type": "string" + }, + "replicationState": { + "description": "The replication state of the Message. The allowed values and their meaning are:\n\n
\n\"replicated\" - The Message is replicated to the remote Message VPN.\n\"not-replicated\" - The Message is not being replicated to the remote Message VPN.\n\"pending-replication\" - The Message is queued for replication to the remote Message VPN.\n
\n", + "type": "string" + }, + "spooledTime": { + "description": "The timestamp of when the Message was spooled in the Topic Endpoint. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "topicEndpointName": { + "description": "The name of the Topic Endpoint.", + "type": "string" + }, + "undelivered": { + "description": "Indicates whether delivery of the Message has never been attempted.", + "type": "boolean" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointMsgCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnTopicEndpointMsgLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic Endpoint Message object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointMsgResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsg" + }, + "links": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointMsgsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsg" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointPrioritiesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointPriorityCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointPriority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointPriorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointPriority": { + "properties": { + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "priority": { + "description": "The level of the Priority, from 9 (highest) to 0 (lowest).", + "format": "int64", + "type": "integer" + }, + "spooledByteCount": { + "description": "The amount of guaranteed messages at this Priority spooled by the Topic Endpoint, in bytes (B).", + "format": "int64", + "type": "integer" + }, + "spooledMsgCount": { + "description": "The number of guaranteed messages at this Priority spooled by the Topic Endpoint.", + "format": "int64", + "type": "integer" + }, + "topicEndpointName": { + "description": "The name of the Topic Endpoint.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointPriorityCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnTopicEndpointPriorityLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic Endpoint Priority object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointPriorityResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTopicEndpointPriorityCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTopicEndpointPriority" + }, + "links": { + "$ref": "#/definitions/MsgVpnTopicEndpointPriorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTopicEndpointCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTopicEndpoint" + }, + "links": { + "$ref": "#/definitions/MsgVpnTopicEndpointLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointTemplate": { + "properties": { + "accessType": { + "description": "The access type for delivering messages to consumer flows. The allowed values and their meaning are:\n\n
\n\"exclusive\" - Exclusive delivery of messages to the first bound consumer flow.\n\"non-exclusive\" - Non-exclusive delivery of messages to bound consumer flows in a round-robin (if partition count is zero) or partitioned (if partition count is non-zero) fashion.\n
\n", + "enum": [ + "exclusive", + "non-exclusive" + ], + "type": "string" + }, + "consumerAckPropagationEnabled": { + "description": "Indicates whether the propagation of consumer acknowledgements (ACKs) received on the active replication Message VPN to the standby replication Message VPN is enabled.", + "type": "boolean" + }, + "deadMsgQueue": { + "description": "The name of the Dead Message Queue (DMQ).", + "type": "string" + }, + "deliveryDelay": { + "description": "The delay, in seconds, to apply to messages arriving on the Topic Endpoint before the messages are eligible for delivery. Available since 2.22.", + "format": "int64", + "type": "integer" + }, + "eventBindCountThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventMsgSpoolUsageThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "eventRejectLowPriorityMsgLimitThreshold": { + "$ref": "#/definitions/EventThreshold" + }, + "maxBindCount": { + "description": "The maximum number of consumer flows that can bind.", + "format": "int64", + "type": "integer" + }, + "maxDeliveredUnackedMsgsPerFlow": { + "description": "The maximum number of messages delivered but not acknowledged per flow.", + "format": "int64", + "type": "integer" + }, + "maxMsgSize": { + "description": "The maximum message size allowed, in bytes (B).", + "format": "int32", + "type": "integer" + }, + "maxMsgSpoolUsage": { + "description": "The maximum message spool usage allowed, in megabytes (MB). A value of 0 only allows spooling of the last message received and disables quota checking.", + "format": "int64", + "type": "integer" + }, + "maxRedeliveryCount": { + "description": "The maximum number of message redelivery attempts that will occur prior to the message being discarded or moved to the DMQ. A value of 0 means to retry forever.", + "format": "int64", + "type": "integer" + }, + "maxTtl": { + "description": "The maximum time in seconds a message can stay in the Topic Endpoint when `respectTtlEnabled` is `\"true\"`. A message expires when the lesser of the sender assigned time-to-live (TTL) in the message and the `maxTtl` configured for the Topic Endpoint, is exceeded. A value of 0 disables expiry.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "permission": { + "description": "The permission level for all consumers, excluding the owner. The allowed values and their meaning are:\n\n
\n\"no-access\" - Disallows all access.\n\"read-only\" - Read-only access to the messages.\n\"consume\" - Consume (read and remove) messages.\n\"modify-topic\" - Consume messages or modify the topic/selector.\n\"delete\" - Consume messages, modify the topic/selector or delete the Client created endpoint altogether.\n
\n", + "enum": [ + "no-access", + "read-only", + "consume", + "modify-topic", + "delete" + ], + "type": "string" + }, + "redeliveryDelayEnabled": { + "description": "Enable or disable a message redelivery delay. When false, messages are redelivered as-soon-as-possible. When true, messages are redelivered according to the initial, max and multiplier. This should only be enabled when redelivery is enabled. Available since 2.33.", + "type": "boolean" + }, + "redeliveryDelayInitialInterval": { + "description": "The delay to be used between the first 2 redelivery attempts. This value is in milliseconds. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMaxInterval": { + "description": "The maximum delay to be used between any 2 redelivery attempts. This value is in milliseconds. Due to technical limitations, some redelivery attempt delays may slightly exceed this value. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryDelayMultiplier": { + "description": "The amount each delay interval is multiplied by after each failed delivery attempt. This number is in a fixed-point decimal format in which you must divide by 100 to get the floating point value. For example, a value of 125 would cause the delay to be multiplied by 1.25. Available since 2.33.", + "format": "int32", + "type": "integer" + }, + "redeliveryEnabled": { + "description": "Enable or disable message redelivery. When enabled, the number of redelivery attempts is controlled by maxRedeliveryCount. When disabled, the message will never be delivered from the topic-endpoint more than once. Available since 2.18.", + "type": "boolean" + }, + "rejectLowPriorityMsgEnabled": { + "description": "Indicates whether the checking of low priority messages against the `rejectLowPriorityMsgLimit` is enabled.", + "type": "boolean" + }, + "rejectLowPriorityMsgLimit": { + "description": "The number of messages that are permitted before low priority messages are rejected.", + "format": "int64", + "type": "integer" + }, + "rejectMsgToSenderOnDiscardBehavior": { + "description": "Determines when to return negative acknowledgements (NACKs) to sending clients on message discards. Note that NACKs cause the message to not be delivered to any destination and Transacted Session commits to fail. The allowed values and their meaning are:\n\n
\n\"always\" - Always return a negative acknowledgment (NACK) to the sending client on message discard.\n\"when-topic-endpoint-enabled\" - Only return a negative acknowledgment (NACK) to the sending client on message discard when the Topic Endpoint is enabled.\n\"never\" - Never return a negative acknowledgment (NACK) to the sending client on message discard.\n
\n", + "enum": [ + "always", + "when-topic-endpoint-enabled", + "never" + ], + "type": "string" + }, + "respectMsgPriorityEnabled": { + "description": "Indicates whether message priorities are respected. When enabled, messages are delivered in priority order, from 9 (highest) to 0 (lowest).", + "type": "boolean" + }, + "respectTtlEnabled": { + "description": "Indicates whether the time-to-live (TTL) for messages is respected. When enabled, expired messages are discarded or moved to the DMQ.", + "type": "boolean" + }, + "topicEndpointNameFilter": { + "description": "A wildcardable pattern used to determine which Topic Endpoints use settings from this Template. Two different wildcards are supported: * and >. Similar to topic filters or subscription patterns, a > matches anything (but only when used at the end), and a * matches zero or more characters but never a slash (/). A > is only a wildcard when used at the end, after a /. A * is only allowed at the end, after a slash (/).", + "type": "string" + }, + "topicEndpointTemplateName": { + "description": "The name of the Topic Endpoint Template.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointTemplateCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnTopicEndpointTemplateLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic Endpoint Template object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointTemplateResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplate" + }, + "links": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointTemplatesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplate" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointTxFlow": { + "properties": { + "ackedMsgCount": { + "description": "The number of guaranteed messages delivered and acknowledged by the consumer.", + "format": "int64", + "type": "integer" + }, + "activityState": { + "description": "The activity state of the Flow. The allowed values and their meaning are:\n\n
\n\"active-browser\" - The Flow is active as a browser.\n\"active-consumer\" - The Flow is active as a consumer.\n\"inactive\" - The Flow is inactive.\n
\n", + "type": "string" + }, + "bindTime": { + "description": "The timestamp of when the Flow bound to the Topic Endpoint. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "consumerRedeliveryRequestAllowed": { + "description": "Indicates whether redelivery requests can be received as negative acknowledgements (NACKs) from the consumer. Applicable only to REST consumers.", + "type": "boolean" + }, + "cutThroughAckedMsgCount": { + "description": "The number of guaranteed messages that used cut-through delivery and are acknowledged by the consumer.", + "format": "int64", + "type": "integer" + }, + "deliveryState": { + "description": "The delivery state of the Flow. The allowed values and their meaning are:\n\n
\n\"closed\" - The Flow is unbound.\n\"opened\" - The Flow is bound but inactive.\n\"unbinding\" - The Flow received an unbind request.\n\"handshaking\" - The Flow is handshaking to become active.\n\"deliver-cut-through\" - The Flow is streaming messages using direct+guaranteed delivery.\n\"deliver-from-input-stream\" - The Flow is streaming messages using guaranteed delivery.\n\"deliver-from-memory\" - The Flow throttled causing message delivery from memory (RAM).\n\"deliver-from-spool\" - The Flow stalled causing message delivery from spool (ADB or disk).\n
\n", + "type": "string" + }, + "flowId": { + "description": "The identifier (ID) of the Flow.", + "format": "int64", + "type": "integer" + }, + "highestAckPendingMsgId": { + "description": "The highest identifier (ID) of message transmitted and waiting for acknowledgement.", + "format": "int64", + "type": "integer" + }, + "lastAckedMsgId": { + "description": "The identifier (ID) of the last message transmitted and acknowledged by the consumer.", + "format": "int64", + "type": "integer" + }, + "lowestAckPendingMsgId": { + "description": "The lowest identifier (ID) of message transmitted and waiting for acknowledgement.", + "format": "int64", + "type": "integer" + }, + "maxUnackedMsgsExceededMsgCount": { + "description": "The number of guaranteed messages that exceeded the maximum number of delivered unacknowledged messages.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "noLocalDelivery": { + "description": "Indicates whether not to deliver messages to a consumer that published them.", + "type": "boolean" + }, + "redeliveredMsgCount": { + "description": "The number of guaranteed messages that were redelivered.", + "format": "int64", + "type": "integer" + }, + "redeliveryRequestCount": { + "description": "The number of consumer requests via negative acknowledgements (NACKs) to redeliver guaranteed messages.", + "format": "int64", + "type": "integer" + }, + "sessionName": { + "description": "The name of the Transacted Session for the Flow.", + "type": "string" + }, + "storeAndForwardAckedMsgCount": { + "description": "The number of guaranteed messages that used store and forward delivery and are acknowledged by the consumer.", + "format": "int64", + "type": "integer" + }, + "topicEndpointName": { + "description": "The name of the Topic Endpoint.", + "type": "string" + }, + "transportRetransmitMsgCount": { + "description": "The number of guaranteed messages that were retransmitted at the transport layer as part of a single delivery attempt. Available since 2.18.", + "format": "int64", + "type": "integer" + }, + "unackedMsgCount": { + "description": "The number of guaranteed messages delivered but not yet acknowledged by the consumer.", + "format": "int64", + "type": "integer" + }, + "usedWindowSize": { + "description": "The number of guaranteed messages using the available window size.", + "format": "int64", + "type": "integer" + }, + "windowClosedCount": { + "description": "The number of times the window for guaranteed messages was filled and closed before an acknowledgement was received.", + "format": "int64", + "type": "integer" + }, + "windowSize": { + "description": "The number of outstanding guaranteed messages that can be transmitted over the Flow before an acknowledgement is received.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointTxFlowCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnTopicEndpointTxFlowLinks": { + "properties": { + "uri": { + "description": "The URI of this Topic Endpoint Transmit Flow object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTopicEndpointTxFlowResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTopicEndpointTxFlowCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTopicEndpointTxFlow" + }, + "links": { + "$ref": "#/definitions/MsgVpnTopicEndpointTxFlowLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointTxFlowsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointTxFlowCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointTxFlow" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointTxFlowLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTopicEndpointsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpoint" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTopicEndpointLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTransaction": { + "properties": { + "clientId": { + "description": "The identifier (ID) of the Client.", + "format": "int32", + "type": "integer" + }, + "clientName": { + "description": "The name of the Client.", + "type": "string" + }, + "clientUsername": { + "description": "The username of the Client.", + "type": "string" + }, + "idleTimeout": { + "description": "The number of seconds before an idle Transaction may be automatically rolled back and freed.", + "format": "int32", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "replicated": { + "description": "Indicates whether the Transaction is replicated.", + "type": "boolean" + }, + "sessionName": { + "description": "The name of the Transacted Session for the Transaction.", + "type": "string" + }, + "state": { + "description": "The state of the Transaction. The allowed values and their meaning are:\n\n
\n\"active\" - The Transaction was started.\n\"suspended\" - The Transaction was suspended.\n\"idle\" - The Transaction was ended.\n\"prepared\" - The Transaction was prepared.\n\"complete\" - The Transaction was committed or rolled back.\n
\n", + "type": "string" + }, + "timeInState": { + "description": "The number of seconds the Transaction has remained in the current state.", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "The type of Transaction. The allowed values and their meaning are:\n\n
\n\"xa\" - The Transaction is an XA Transaction.\n\"local\" - The Transaction is a local Transaction.\n
\n", + "type": "string" + }, + "xid": { + "description": "The identifier (ID) of the Transaction.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTransactionCollections": { + "properties": { + "consumerMsgs": { + "$ref": "#/definitions/MsgVpnTransactionCollectionsConsumerMsgs" + }, + "publisherMsgs": { + "$ref": "#/definitions/MsgVpnTransactionCollectionsPublisherMsgs" + } + }, + "type": "object" + }, + "MsgVpnTransactionCollectionsConsumerMsgs": { + "properties": { + "count": { + "description": "The total number of objects in the consumerMsgs collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnTransactionCollectionsPublisherMsgs": { + "properties": { + "count": { + "description": "The total number of objects in the publisherMsgs collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MsgVpnTransactionConsumerMsg": { + "properties": { + "endpointName": { + "description": "The name of the Queue or Topic Endpoint source.", + "type": "string" + }, + "endpointType": { + "description": "The type of endpoint source. The allowed values and their meaning are:\n\n
\n\"queue\" - The Message is from a Queue.\n\"topic-endpoint\" - The Message is from a Topic Endpoint.\n
\n", + "type": "string" + }, + "msgId": { + "description": "The identifier (ID) of the Message.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "replicationGroupMsgId": { + "description": "An ID that uniquely identifies this message within this replication group. Available since 2.21.", + "type": "string" + }, + "xid": { + "description": "The identifier (ID) of the Transaction.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTransactionConsumerMsgCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnTransactionConsumerMsgLinks": { + "properties": { + "uri": { + "description": "The URI of this Transaction Consumer Message object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTransactionConsumerMsgResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTransactionConsumerMsgCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTransactionConsumerMsg" + }, + "links": { + "$ref": "#/definitions/MsgVpnTransactionConsumerMsgLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTransactionConsumerMsgsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTransactionConsumerMsgCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTransactionConsumerMsg" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTransactionConsumerMsgLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTransactionLinks": { + "properties": { + "consumerMsgsUri": { + "description": "The URI of this Replicated Local Transaction or XA Transaction's collection of Transaction Consumer Message objects.", + "type": "string" + }, + "publisherMsgsUri": { + "description": "The URI of this Replicated Local Transaction or XA Transaction's collection of Transaction Publisher Message objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Replicated Local Transaction or XA Transaction object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTransactionPublisherMsg": { + "properties": { + "msgId": { + "description": "The identifier (ID) of the Message.", + "format": "int64", + "type": "integer" + }, + "msgVpnName": { + "description": "The name of the Message VPN.", + "type": "string" + }, + "topic": { + "description": "The topic destination of the Message.", + "type": "string" + }, + "xid": { + "description": "The identifier (ID) of the Transaction.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTransactionPublisherMsgCollections": { + "properties": {}, + "type": "object" + }, + "MsgVpnTransactionPublisherMsgLinks": { + "properties": { + "uri": { + "description": "The URI of this Transaction Publisher Message object.", + "type": "string" + } + }, + "type": "object" + }, + "MsgVpnTransactionPublisherMsgResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTransactionPublisherMsgCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTransactionPublisherMsg" + }, + "links": { + "$ref": "#/definitions/MsgVpnTransactionPublisherMsgLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTransactionPublisherMsgsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTransactionPublisherMsgCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTransactionPublisherMsg" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTransactionPublisherMsgLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTransactionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/MsgVpnTransactionCollections" + }, + "data": { + "$ref": "#/definitions/MsgVpnTransaction" + }, + "links": { + "$ref": "#/definitions/MsgVpnTransactionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnTransactionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnTransactionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpnTransaction" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnTransactionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "MsgVpnsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/MsgVpnCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/MsgVpn" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/MsgVpnLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfile": { + "properties": { + "accessLevelGroupsClaimName": { + "description": "The name of the groups claim.", + "type": "string" + }, + "accessLevelGroupsClaimStringFormat": { + "description": "The format of the access level groups claim value when it is a string. The allowed values and their meaning are:\n\n
\n\"single\" - When the claim is a string, it is interpreted as a single group.\n\"space-delimited\" - When the claim is a string, it is interpreted as a space-delimited list of groups, similar to the \"scope\" claim.\n
\n Available since 2.32.", + "enum": [ + "single", + "space-delimited" + ], + "type": "string" + }, + "active": { + "description": "Indicates whether the profile is active. An enabled profile may not be active if discovery is not complete, if there is no issuer specified, or if there is another profile with the same issuer. Available since 2.26.", + "type": "boolean" + }, + "clientId": { + "description": "The OAuth client id.", + "type": "string" + }, + "clientRedirectUri": { + "description": "The OAuth redirect URI.", + "type": "string" + }, + "clientRequiredType": { + "description": "The required value for the TYP field in the ID token header.", + "type": "string" + }, + "clientScope": { + "description": "The OAuth scope.", + "type": "string" + }, + "clientValidateTypeEnabled": { + "description": "Enable or disable verification of the TYP field in the ID token header.", + "type": "boolean" + }, + "completeExpiredStateCount": { + "description": "The number of requests to the broker OAuth completion endpoint with an expired state token.", + "format": "int64", + "type": "integer" + }, + "completeInvalidStateCount": { + "description": "The number of request to the broker OAuth completion endpoint with an invalid state token.", + "format": "int64", + "type": "integer" + }, + "completeRequestCount": { + "description": "The number of requests to the broker OAuth completion endpoint (successful and unsuccessful).", + "format": "int64", + "type": "integer" + }, + "completeSuccessCount": { + "description": "The number of successful requests to the broker OAuth completion endpoint. Successful requests have authenticated the user and established a browser session.", + "format": "int64", + "type": "integer" + }, + "defaultGlobalAccessLevel": { + "description": "The default global access level for this OAuth profile. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to global data.\n\"read-only\" - User has read-only access to global data.\n\"read-write\" - User has read-write access to most global data.\n\"admin\" - User has read-write access to all global data.\n
\n", + "enum": [ + "none", + "read-only", + "read-write", + "admin" + ], + "type": "string" + }, + "defaultMsgVpnAccessLevel": { + "description": "The default message VPN access level for the OAuth profile. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to a Message VPN.\n\"read-only\" - User has read-only access to a Message VPN.\n\"read-write\" - User has read-write access to most Message VPN settings.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "discoveryLastRefreshFailureReason": { + "description": "The reason for the last discovery endpoint refresh failure.", + "type": "string" + }, + "discoveryLastRefreshFailureTime": { + "description": "The timestamp of the last discovery endpoint refresh failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "discoveryLastRefreshTime": { + "description": "The timestamp of the last discovery endpoint refresh success. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "discoveryNextScheduledRefreshTime": { + "description": "The timestamp of the next scheduled discovery endpoint refresh. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "discoveryRefreshFailureCount": { + "description": "The number of discovery endpoint refresh failures.", + "format": "int64", + "type": "integer" + }, + "displayName": { + "description": "The user friendly name for the OAuth profile.", + "type": "string" + }, + "enabled": { + "description": "Enable or disable the OAuth profile.", + "type": "boolean" + }, + "endpointAuthorization": { + "description": "The OAuth authorization endpoint.", + "type": "string" + }, + "endpointAuthorizationOperational": { + "description": "The operational OAuth authorization endpoint.", + "type": "string" + }, + "endpointDiscovery": { + "description": "The OpenID Connect discovery endpoint or OAuth Authorization Server Metadata endpoint.", + "type": "string" + }, + "endpointDiscoveryRefreshInterval": { + "description": "The number of seconds between discovery endpoint requests.", + "format": "int32", + "type": "integer" + }, + "endpointIntrospection": { + "description": "The OAuth introspection endpoint.", + "type": "string" + }, + "endpointIntrospectionOperational": { + "description": "The operational OAuth introspection endpoint.", + "type": "string" + }, + "endpointIntrospectionTimeout": { + "description": "The maximum time in seconds a token introspection request is allowed to take.", + "format": "int32", + "type": "integer" + }, + "endpointJwks": { + "description": "The OAuth JWKS endpoint.", + "type": "string" + }, + "endpointJwksOperational": { + "description": "The operational OAuth JWKS endpoint.", + "type": "string" + }, + "endpointJwksRefreshInterval": { + "description": "The number of seconds between JWKS endpoint requests.", + "format": "int32", + "type": "integer" + }, + "endpointToken": { + "description": "The OAuth token endpoint.", + "type": "string" + }, + "endpointTokenOperational": { + "description": "The operational OAuth token endpoint.", + "type": "string" + }, + "endpointTokenTimeout": { + "description": "The maximum time in seconds a token request is allowed to take.", + "format": "int32", + "type": "integer" + }, + "endpointUserinfo": { + "description": "The OpenID Connect Userinfo endpoint.", + "type": "string" + }, + "endpointUserinfoOperational": { + "description": "The operational OpenID Connect Userinfo endpoint.", + "type": "string" + }, + "endpointUserinfoTimeout": { + "description": "The maximum time in seconds a userinfo request is allowed to take.", + "format": "int32", + "type": "integer" + }, + "inactiveReason": { + "description": "The reason the profile is not active. The allowed values and their meaning are:\n\n
\n\"profile-disabled\" - The OAuth profile is disabled.\n\"missing-issuer\" - The issuer has not been discovered or configured.\n\"duplicate-issuer\" - Another OAuth profile already has the same issuer.\n\"none\" - The OAuth profile is active.\n
\n Available since 2.26.", + "type": "string" + }, + "initiateInvalidErrorLinkCount": { + "description": "The number of requests to the broker OAuth initiation endpoint that had an invalid error_link_uri parameter.", + "format": "int64", + "type": "integer" + }, + "initiateInvalidHostCount": { + "description": "The number of requests to the broker OAuth initiation endpoint that did not have a valid Host header. See the Allowed Host configuration setting.", + "format": "int64", + "type": "integer" + }, + "initiateInvalidTargetLinkCount": { + "description": "The number of requests to the broker OAuth initiation endpoint that had an invalid target_link_uri parameter.", + "format": "int64", + "type": "integer" + }, + "initiateRequestCount": { + "description": "The number of requests to the broker OAuth initiation endpoint (successful and unsuccessful).", + "format": "int64", + "type": "integer" + }, + "initiateSuccessCount": { + "description": "The number of requests to the broker OAuth initiation endpoint that successfully redirected to the OAuth provider's authorization endpoint.", + "format": "int64", + "type": "integer" + }, + "interactiveEnabled": { + "description": "Enable or disable interactive logins via this OAuth provider.", + "type": "boolean" + }, + "interactiveGroupsFoundInTokenCount": { + "description": "The number of times the groups were successfully found in the ID token or access token for interactive authentication.", + "format": "int64", + "type": "integer" + }, + "interactiveIntrospectionMissingCount": { + "description": "The number of failures during interactive authentication due to missing introspection configuration (a introspection request was required but no introspection endpoint was configured).", + "format": "int64", + "type": "integer" + }, + "interactiveIntrospectionMissingGroupsCount": { + "description": "The number of introspection request made from the broker during interactive authentication for this OAuth profile where the configured groups claim wasn't found in the access token or the introspection response.", + "format": "int64", + "type": "integer" + }, + "interactiveIntrospectionMissingUsernameCount": { + "description": "The number of introspection requests made from the broker during interactive authentication for this OAuth profile where the configured username claim wasn't found in the access token or introspection response.", + "format": "int64", + "type": "integer" + }, + "interactiveIntrospectionRequestCount": { + "description": "The number of requests made to the introspection endpoint during interactive authentication.", + "format": "int64", + "type": "integer" + }, + "interactiveIntrospectionResponseInvalidCount": { + "description": "The number of introspection responses during interactive authentication that couldn't be parsed.", + "format": "int64", + "type": "integer" + }, + "interactiveIntrospectionStatusOkCount": { + "description": "The number of introspection requests made from the broker during interactive authentication for this OAuth profile with 200 status responses.", + "format": "int64", + "type": "integer" + }, + "interactiveIntrospectionStatusOtherCount": { + "description": "The number of introspection requests made from the broker during interactive authentication for this OAuth profile with status responses other than 200.", + "format": "int64", + "type": "integer" + }, + "interactiveIntrospectionTokenNotActiveCount": { + "description": "The number of introspection responses indicating that the provided token was not active.", + "format": "int64", + "type": "integer" + }, + "interactivePromptForExpiredSession": { + "description": "The value of the prompt parameter provided to the OAuth authorization server for login requests where the session has expired.", + "type": "string" + }, + "interactivePromptForNewSession": { + "description": "The value of the prompt parameter provided to the OAuth authorization server for login requests where the session is new or the user has explicitly logged out.", + "type": "string" + }, + "interactiveUserinfoMissingCount": { + "description": "The number of failures due to missing Userinfo configuration (a Userinfo request was required but no Userinfo endpoint was configured) during interactive authentication.", + "format": "int64", + "type": "integer" + }, + "interactiveUserinfoMissingGroupsCount": { + "description": "The number of Userinfo request made from the broker during interactive authentication for this OAuth profile where the configured groups claim wasn't found in the ID token or the Userinfo response.", + "format": "int64", + "type": "integer" + }, + "interactiveUserinfoMissingUsernameCount": { + "description": "The number of Userinfo requests made from the broker during interactive authentication for this OAuth profile where the configured username claim wasn't found in the ID token or Userinfo response.", + "format": "int64", + "type": "integer" + }, + "interactiveUserinfoRequestCount": { + "description": "The number of requests made to the Userinfo endpoint during interactive authentication.", + "format": "int64", + "type": "integer" + }, + "interactiveUserinfoResponseInvalidCount": { + "description": "The number of Userinfo requests made from the broker during interactive authentication for this OAuth profile with responses that couldn't be parsed.", + "format": "int64", + "type": "integer" + }, + "interactiveUserinfoStatusOkCount": { + "description": "The number of Userinfo requests made from the broker during interactive authentication for this OAuth profile with 200 status responses.", + "format": "int64", + "type": "integer" + }, + "interactiveUserinfoStatusOtherCount": { + "description": "The number of Userinfo requests made from the broker during interactive authentication for this OAuth profile with status responses other than 200.", + "format": "int64", + "type": "integer" + }, + "interactiveUserinfoSubjectMismatchCount": { + "description": "The number of Userinfo requests made from the broker during interactive authentication for this OAuth profile with subject claims that did not match the subject from the ID token.", + "format": "int64", + "type": "integer" + }, + "interactiveUsernameFoundInTokenCount": { + "description": "The number of time the username was successfully found in the ID token or access token for interactive authentication.", + "format": "int64", + "type": "integer" + }, + "introspectionAverageTime": { + "description": "The one minute average of the time required to complete a token introspection, in milliseconds (ms).", + "format": "int32", + "type": "integer" + }, + "introspectionLastFailureReason": { + "description": "The reason for the introspection endpoint request failure.", + "type": "string" + }, + "introspectionLastFailureTime": { + "description": "The timestamp of the last introspection endpoint request failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "issuer": { + "description": "The Issuer Identifier for the OAuth provider.", + "type": "string" + }, + "issuerOperational": { + "description": "The operational Issuer Identifier for the OAuth provider.", + "type": "string" + }, + "jwksLastRefreshFailureReason": { + "description": "The reason for the last JWKS public key refresh failure.", + "type": "string" + }, + "jwksLastRefreshFailureTime": { + "description": "The timestamp of the last JWKS public key refresh failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "jwksLastRefreshTime": { + "description": "The timestamp of the last JWKS public key refresh success. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "jwksNextScheduledRefreshTime": { + "description": "The timestamp of the next scheduled JWKS public key refresh. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "jwksRefreshFailureCount": { + "description": "The number of JWKS public key refresh failures.", + "format": "int64", + "type": "integer" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + }, + "oauthRole": { + "description": "The OAuth role of the broker. The allowed values and their meaning are:\n\n
\n\"client\" - The broker is in the OAuth client role.\n\"resource-server\" - The broker is in the OAuth resource server role.\n
\n", + "enum": [ + "client", + "resource-server" + ], + "type": "string" + }, + "resourceServerParseAccessTokenEnabled": { + "description": "Enable or disable parsing of the access token as a JWT.", + "type": "boolean" + }, + "resourceServerRequiredAudience": { + "description": "The required audience value.", + "type": "string" + }, + "resourceServerRequiredIssuer": { + "description": "The required issuer value.", + "type": "string" + }, + "resourceServerRequiredScope": { + "description": "A space-separated list of scopes that must be present in the scope claim.", + "type": "string" + }, + "resourceServerRequiredType": { + "description": "The required TYP value.", + "type": "string" + }, + "resourceServerValidateAudienceEnabled": { + "description": "Enable or disable verification of the audience claim in the access token or introspection response.", + "type": "boolean" + }, + "resourceServerValidateIssuerEnabled": { + "description": "Enable or disable verification of the issuer claim in the access token or introspection response.", + "type": "boolean" + }, + "resourceServerValidateScopeEnabled": { + "description": "Enable or disable verification of the scope claim in the access token or introspection response.", + "type": "boolean" + }, + "resourceServerValidateTypeEnabled": { + "description": "Enable or disable verification of the TYP field in the access token header.", + "type": "boolean" + }, + "sempEnabled": { + "description": "Enable or disable authentication of SEMP requests with OAuth tokens.", + "type": "boolean" + }, + "sempExpiredTokenCount": { + "description": "The number of SEMP requests with an expired OAuth token.", + "format": "int64", + "type": "integer" + }, + "sempGroupsFoundInTokenCount": { + "description": "The number of times the groups were successfully found in the ID token or access token for SEMP request authentication.", + "format": "int64", + "type": "integer" + }, + "sempIntrospectionMissingCount": { + "description": "The number of failures during SEMP request authentication due to missing introspection configuration (a introspection request was required but no introspection endpoint was configured).", + "format": "int64", + "type": "integer" + }, + "sempIntrospectionMissingGroupsCount": { + "description": "The number of introspection request made from the broker during SEMP request authentication for this OAuth profile where the configured groups claim wasn't found in the access token or the introspection response.", + "format": "int64", + "type": "integer" + }, + "sempIntrospectionMissingUsernameCount": { + "description": "The number of introspection requests made from the broker during SEMP request authentication for this OAuth profile where the configured username claim wasn't found in the access token or introspection response.", + "format": "int64", + "type": "integer" + }, + "sempIntrospectionRequestCount": { + "description": "The number of requests made to the introspection endpoint during SEMP request authentication.", + "format": "int64", + "type": "integer" + }, + "sempIntrospectionResponseInvalidCount": { + "description": "The number of introspection responses during SEMP request authentication that couldn't be parsed.", + "format": "int64", + "type": "integer" + }, + "sempIntrospectionStatusOkCount": { + "description": "The number of introspection requests made from the broker during SEMP request authentication for this OAuth profile with 200 status responses.", + "format": "int64", + "type": "integer" + }, + "sempIntrospectionStatusOtherCount": { + "description": "The number of introspection requests made from the broker during SEMP request authentication for this OAuth profile with status responses other than 200.", + "format": "int64", + "type": "integer" + }, + "sempIntrospectionTokenNotActiveCount": { + "description": "The number of introspection responses indicating that the provided token was not active.", + "format": "int64", + "type": "integer" + }, + "sempInvalidTokenCount": { + "description": "The number of SEMP requests with an invalid OAuth token.", + "format": "int64", + "type": "integer" + }, + "sempRequestCount": { + "description": "The number of SEMP requests (successful and unsuccessful) using this OAuth profile.", + "format": "int64", + "type": "integer" + }, + "sempSuccessCount": { + "description": "The number of successful SEMP authentications using this OAuth profile.", + "format": "int64", + "type": "integer" + }, + "sempUserinfoMissingCount": { + "description": "The number of failures due to missing Userinfo configuration (a Userinfo request was required but no Userinfo endpoint was configured) during SEMP request authentication.", + "format": "int64", + "type": "integer" + }, + "sempUserinfoMissingGroupsCount": { + "description": "The number of Userinfo request made from the broker during SEMP request authentication for this OAuth profile where the configured groups claim wasn't found in the ID token or the Userinfo response.", + "format": "int64", + "type": "integer" + }, + "sempUserinfoMissingUsernameCount": { + "description": "The number of Userinfo requests made from the broker during SEMP request authentication for this OAuth profile where the configured username claim wasn't found in the ID token or Userinfo response.", + "format": "int64", + "type": "integer" + }, + "sempUserinfoRequestCount": { + "description": "The number of requests made to the Userinfo endpoint during SEMP request authentication.", + "format": "int64", + "type": "integer" + }, + "sempUserinfoResponseInvalidCount": { + "description": "The number of Userinfo requests made from the broker during SEMP request authentication for this OAuth profile with responses that couldn't be parsed.", + "format": "int64", + "type": "integer" + }, + "sempUserinfoStatusOkCount": { + "description": "The number of Userinfo requests made from the broker during SEMP request authentication for this OAuth profile with 200 status responses.", + "format": "int64", + "type": "integer" + }, + "sempUserinfoStatusOtherCount": { + "description": "The number of Userinfo requests made from the broker during SEMP request authentication for this OAuth profile with status responses other than 200.", + "format": "int64", + "type": "integer" + }, + "sempUserinfoSubjectMismatchCount": { + "description": "The number of Userinfo requests made from the broker during SEMP request authentication for this OAuth profile with subject claims that did not match the subject from the ID token.", + "format": "int64", + "type": "integer" + }, + "sempUsernameFoundInTokenCount": { + "description": "The number of time the username was successfully found in the ID token or access token for SEMP request authentication.", + "format": "int64", + "type": "integer" + }, + "tokenEndpointAverageTime": { + "description": "The one minute average of the time required to complete a token request, in milliseconds (ms).", + "format": "int32", + "type": "integer" + }, + "tokenEndpointInvalidTokenCount": { + "description": "The number of token endpoint requests made from the broker for this OAuth profile that returned tokens that couldn't be verified.", + "format": "int64", + "type": "integer" + }, + "tokenEndpointLastFailureReason": { + "description": "The reason for the last token endpoint request failure.", + "type": "string" + }, + "tokenEndpointLastFailureTime": { + "description": "The timestamp of the last token endpoint request failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "tokenEndpointOtherErrorCount": { + "description": "The number of token endpoint requests made from the broker for this OAuth profile that returned an unexpected error not accounted for in the other failure statistics.", + "format": "int64", + "type": "integer" + }, + "tokenEndpointRequestCount": { + "description": "The number of token endpoint requests made from the broker for this OAuth profile.", + "format": "int64", + "type": "integer" + }, + "tokenEndpointStatusBadRequestCount": { + "description": "The number of token endpoint requests made from the broker for this OAuth profile with 400 status responses.", + "format": "int64", + "type": "integer" + }, + "tokenEndpointStatusOkCount": { + "description": "The number of token endpoint requests made from the broker for this OAuth profile with 200 status responses.", + "format": "int64", + "type": "integer" + }, + "tokenEndpointStatusOtherCount": { + "description": "The number of token endpoint requests made from the broker for this OAuth profile with status responses other than 200 or 400.", + "format": "int64", + "type": "integer" + }, + "userinfoAverageTime": { + "description": "The one minute average of the time required to complete a token userinfo request, in milliseconds (ms).", + "format": "int32", + "type": "integer" + }, + "userinfoLastFailureReason": { + "description": "The reason for the userinfo endpoint request failure.", + "type": "string" + }, + "userinfoLastFailureTime": { + "description": "The timestamp of the last userinfo endpoint request failure. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "usernameClaimName": { + "description": "The name of the username claim.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroup": { + "properties": { + "description": { + "description": "A description for the group.", + "type": "string" + }, + "globalAccessLevel": { + "description": "The global access level for this group. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to global data.\n\"read-only\" - User has read-only access to global data.\n\"read-write\" - User has read-write access to most global data.\n\"admin\" - User has read-write access to all global data.\n
\n", + "enum": [ + "none", + "read-only", + "read-write", + "admin" + ], + "type": "string" + }, + "groupName": { + "description": "The name of the group.", + "type": "string" + }, + "msgVpnAccessLevel": { + "description": "The default message VPN access level for this group. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to a Message VPN.\n\"read-only\" - User has read-only access to a Message VPN.\n\"read-write\" - User has read-write access to most Message VPN settings.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroupCollections": { + "properties": { + "msgVpnAccessLevelExceptions": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupCollectionsMsgVpnAccessLevelExceptions" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroupCollectionsMsgVpnAccessLevelExceptions": { + "properties": { + "count": { + "description": "The total number of objects in the msgVpnAccessLevelExceptions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroupLinks": { + "properties": { + "msgVpnAccessLevelExceptionsUri": { + "description": "The URI of this Group Access Level's collection of Message VPN Access-Level Exception objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this Group Access Level object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroupMsgVpnAccessLevelException": { + "properties": { + "accessLevel": { + "description": "The message VPN access level. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to a Message VPN.\n\"read-only\" - User has read-only access to a Message VPN.\n\"read-write\" - User has read-write access to most Message VPN settings.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "groupName": { + "description": "The name of the group.", + "type": "string" + }, + "msgVpnName": { + "description": "The name of the message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionCollections": { + "properties": {}, + "type": "object" + }, + "OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Message VPN Access-Level Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionCollections" + }, + "data": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelException" + }, + "links": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileAccessLevelGroupResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupCollections" + }, + "data": { + "$ref": "#/definitions/OauthProfileAccessLevelGroup" + }, + "links": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileAccessLevelGroupsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/OauthProfileAccessLevelGroup" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientAllowedHost": { + "properties": { + "allowedHost": { + "description": "An allowed value for the Host header.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientAllowedHostCollections": { + "properties": {}, + "type": "object" + }, + "OauthProfileClientAllowedHostLinks": { + "properties": { + "uri": { + "description": "The URI of this Allowed Host Value object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientAllowedHostResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/OauthProfileClientAllowedHostCollections" + }, + "data": { + "$ref": "#/definitions/OauthProfileClientAllowedHost" + }, + "links": { + "$ref": "#/definitions/OauthProfileClientAllowedHostLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientAllowedHostsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/OauthProfileClientAllowedHostCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/OauthProfileClientAllowedHost" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileClientAllowedHostLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientAuthorizationParameter": { + "properties": { + "authorizationParameterName": { + "description": "The name of the authorization parameter.", + "type": "string" + }, + "authorizationParameterValue": { + "description": "The authorization parameter value.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientAuthorizationParameterCollections": { + "properties": {}, + "type": "object" + }, + "OauthProfileClientAuthorizationParameterLinks": { + "properties": { + "uri": { + "description": "The URI of this Authorization Parameter object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientAuthorizationParameterResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterCollections" + }, + "data": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameter" + }, + "links": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientAuthorizationParametersResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameter" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientRequiredClaim": { + "properties": { + "clientRequiredClaimName": { + "description": "The name of the ID token claim to verify.", + "type": "string" + }, + "clientRequiredClaimValue": { + "description": "The required claim value, which must be a string containing a valid JSON value.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientRequiredClaimCollections": { + "properties": {}, + "type": "object" + }, + "OauthProfileClientRequiredClaimLinks": { + "properties": { + "uri": { + "description": "The URI of this Required Claim object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileClientRequiredClaimResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimCollections" + }, + "data": { + "$ref": "#/definitions/OauthProfileClientRequiredClaim" + }, + "links": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileClientRequiredClaimsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/OauthProfileClientRequiredClaim" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileCollections": { + "properties": { + "accessLevelGroups": { + "$ref": "#/definitions/OauthProfileCollectionsAccessLevelGroups" + }, + "clientAllowedHosts": { + "$ref": "#/definitions/OauthProfileCollectionsClientAllowedHosts" + }, + "clientAuthorizationParameters": { + "$ref": "#/definitions/OauthProfileCollectionsClientAuthorizationParameters" + }, + "clientRequiredClaims": { + "$ref": "#/definitions/OauthProfileCollectionsClientRequiredClaims" + }, + "defaultMsgVpnAccessLevelExceptions": { + "$ref": "#/definitions/OauthProfileCollectionsDefaultMsgVpnAccessLevelExceptions" + }, + "resourceServerRequiredClaims": { + "$ref": "#/definitions/OauthProfileCollectionsResourceServerRequiredClaims" + } + }, + "type": "object" + }, + "OauthProfileCollectionsAccessLevelGroups": { + "properties": { + "count": { + "description": "The total number of objects in the accessLevelGroups collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "OauthProfileCollectionsClientAllowedHosts": { + "properties": { + "count": { + "description": "The total number of objects in the clientAllowedHosts collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "OauthProfileCollectionsClientAuthorizationParameters": { + "properties": { + "count": { + "description": "The total number of objects in the clientAuthorizationParameters collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "OauthProfileCollectionsClientRequiredClaims": { + "properties": { + "count": { + "description": "The total number of objects in the clientRequiredClaims collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "OauthProfileCollectionsDefaultMsgVpnAccessLevelExceptions": { + "properties": { + "count": { + "description": "The total number of objects in the defaultMsgVpnAccessLevelExceptions collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "OauthProfileCollectionsResourceServerRequiredClaims": { + "properties": { + "count": { + "description": "The total number of objects in the resourceServerRequiredClaims collection.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "OauthProfileDefaultMsgVpnAccessLevelException": { + "properties": { + "accessLevel": { + "description": "The message VPN access level. The allowed values and their meaning are:\n\n
\n\"none\" - User has no access to a Message VPN.\n\"read-only\" - User has read-only access to a Message VPN.\n\"read-write\" - User has read-write access to most Message VPN settings.\n
\n", + "enum": [ + "none", + "read-only", + "read-write" + ], + "type": "string" + }, + "msgVpnName": { + "description": "The name of the message VPN.", + "type": "string" + }, + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileDefaultMsgVpnAccessLevelExceptionCollections": { + "properties": {}, + "type": "object" + }, + "OauthProfileDefaultMsgVpnAccessLevelExceptionLinks": { + "properties": { + "uri": { + "description": "The URI of this Message VPN Access-Level Exception object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileDefaultMsgVpnAccessLevelExceptionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionCollections" + }, + "data": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelException" + }, + "links": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileDefaultMsgVpnAccessLevelExceptionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelException" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileLinks": { + "properties": { + "accessLevelGroupsUri": { + "description": "The URI of this OAuth Profile's collection of Group Access Level objects.", + "type": "string" + }, + "clientAllowedHostsUri": { + "description": "The URI of this OAuth Profile's collection of Allowed Host Value objects.", + "type": "string" + }, + "clientAuthorizationParametersUri": { + "description": "The URI of this OAuth Profile's collection of Authorization Parameter objects.", + "type": "string" + }, + "clientRequiredClaimsUri": { + "description": "The URI of this OAuth Profile's collection of Required Claim objects.", + "type": "string" + }, + "defaultMsgVpnAccessLevelExceptionsUri": { + "description": "The URI of this OAuth Profile's collection of Message VPN Access-Level Exception objects.", + "type": "string" + }, + "resourceServerRequiredClaimsUri": { + "description": "The URI of this OAuth Profile's collection of Required Claim objects.", + "type": "string" + }, + "uri": { + "description": "The URI of this OAuth Profile object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileResourceServerRequiredClaim": { + "properties": { + "oauthProfileName": { + "description": "The name of the OAuth profile.", + "type": "string" + }, + "resourceServerRequiredClaimName": { + "description": "The name of the access token claim to verify.", + "type": "string" + }, + "resourceServerRequiredClaimValue": { + "description": "The required claim value, which must be a string containing a valid JSON value.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileResourceServerRequiredClaimCollections": { + "properties": {}, + "type": "object" + }, + "OauthProfileResourceServerRequiredClaimLinks": { + "properties": { + "uri": { + "description": "The URI of this Required Claim object.", + "type": "string" + } + }, + "type": "object" + }, + "OauthProfileResourceServerRequiredClaimResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimCollections" + }, + "data": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaim" + }, + "links": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileResourceServerRequiredClaimsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaim" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfileResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/OauthProfileCollections" + }, + "data": { + "$ref": "#/definitions/OauthProfile" + }, + "links": { + "$ref": "#/definitions/OauthProfileLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "OauthProfilesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/OauthProfileCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/OauthProfile" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/OauthProfileLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "SempError": { + "properties": { + "code": { + "description": "The error code which uniquely identifies the error that has occurred.", + "format": "int32", + "type": "integer" + }, + "description": { + "description": "The verbose description of the problem.", + "type": "string" + }, + "status": { + "description": "The terse status string associated with `code`.", + "type": "string" + } + }, + "required": [ + "code", + "status", + "description" + ], + "type": "object" + }, + "SempMeta": { + "properties": { + "count": { + "description": "The total number of objects requested, irrespective of page size. This may be a count of all objects in a collection or a filtered subset. It represents a snapshot in time and may change when paging through results.", + "format": "int64", + "type": "integer" + }, + "error": { + "$ref": "#/definitions/SempError" + }, + "paging": { + "$ref": "#/definitions/SempPaging" + }, + "request": { + "$ref": "#/definitions/SempRequest" + }, + "responseCode": { + "description": "The HTTP response code, one of 200 (success), 4xx (client error), or 5xx (server error).", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "request", + "responseCode" + ], + "type": "object" + }, + "SempMetaOnlyResponse": { + "properties": { + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "SempPaging": { + "properties": { + "cursorQuery": { + "description": "The cursor, or position, for the next page of objects. Use this as the `cursor` query parameter of the next request.", + "type": "string" + }, + "nextPageUri": { + "description": "The URI of the next page of objects. `cursorQuery` is already embedded within this URI.", + "type": "string" + } + }, + "required": [ + "cursorQuery", + "nextPageUri" + ], + "type": "object" + }, + "SempRequest": { + "properties": { + "method": { + "description": "The HTTP method of the request which resulted in this response.", + "type": "string" + }, + "uri": { + "description": "The URI of the request which resulted in this response.", + "type": "string" + } + }, + "required": [ + "method" + ], + "type": "object" + }, + "Session": { + "properties": { + "createTime": { + "description": "The timestamp of when the session was created. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "lastActivityTime": { + "description": "The timestamp of when the last activity on the session occurred. This value represents the number of seconds since 1970-01-01 00:00:00 UTC (Unix time).", + "format": "int32", + "type": "integer" + }, + "sessionId": { + "description": "The unique identifier for the session.", + "type": "string" + }, + "sessionUsername": { + "description": "The username used for authorization.", + "type": "string" + } + }, + "type": "object" + }, + "SessionCollections": { + "properties": {}, + "type": "object" + }, + "SessionLinks": { + "properties": { + "uri": { + "description": "The URI of this SEMP Session object.", + "type": "string" + } + }, + "type": "object" + }, + "SessionResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/SessionCollections" + }, + "data": { + "$ref": "#/definitions/Session" + }, + "links": { + "$ref": "#/definitions/SessionLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "SessionsResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/SessionCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/Session" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/SessionLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "StandardDomainCertAuthoritiesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/StandardDomainCertAuthorityCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/StandardDomainCertAuthority" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/StandardDomainCertAuthorityLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "StandardDomainCertAuthority": { + "properties": { + "certAuthorityName": { + "description": "The name of the Certificate Authority.", + "type": "string" + }, + "certContent": { + "description": "The PEM formatted content for the trusted root certificate of a standard domain Certificate Authority.", + "type": "string" + } + }, + "type": "object" + }, + "StandardDomainCertAuthorityCollections": { + "properties": {}, + "type": "object" + }, + "StandardDomainCertAuthorityLinks": { + "properties": { + "uri": { + "description": "The URI of this Standard Domain Certificate Authority object.", + "type": "string" + } + }, + "type": "object" + }, + "StandardDomainCertAuthorityResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/StandardDomainCertAuthorityCollections" + }, + "data": { + "$ref": "#/definitions/StandardDomainCertAuthority" + }, + "links": { + "$ref": "#/definitions/StandardDomainCertAuthorityLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "VirtualHostname": { + "properties": { + "enabled": { + "description": "Enable or disable Virtual Hostname to Message VPN mapping.", + "type": "boolean" + }, + "msgVpnName": { + "description": "The message VPN to which this virtual hostname is mapped.", + "type": "string" + }, + "virtualHostname": { + "description": "The virtual hostname.", + "type": "string" + } + }, + "type": "object" + }, + "VirtualHostnameCollections": { + "properties": {}, + "type": "object" + }, + "VirtualHostnameLinks": { + "properties": { + "uri": { + "description": "The URI of this Virtual Hostname object.", + "type": "string" + } + }, + "type": "object" + }, + "VirtualHostnameResponse": { + "properties": { + "collections": { + "$ref": "#/definitions/VirtualHostnameCollections" + }, + "data": { + "$ref": "#/definitions/VirtualHostname" + }, + "links": { + "$ref": "#/definitions/VirtualHostnameLinks" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + }, + "VirtualHostnamesResponse": { + "properties": { + "collections": { + "items": { + "$ref": "#/definitions/VirtualHostnameCollections" + }, + "type": "array" + }, + "data": { + "items": { + "$ref": "#/definitions/VirtualHostname" + }, + "type": "array" + }, + "links": { + "items": { + "$ref": "#/definitions/VirtualHostnameLinks" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/SempMeta" + } + }, + "required": [ + "meta" + ], + "type": "object" + } + }, + "host": "www.solace.com", + "info": { + "contact": { + "email": "support@solace.com", + "name": "Solace", + "url": "http://www.solace.com" + }, + "description": "SEMP (starting in `v2`, see note 1) is a RESTful API for configuring, monitoring, and administering a Solace PubSub+ broker.\n\nSEMP uses URIs to address manageable **resources** of the Solace PubSub+ broker. Resources are individual **objects**, **collections** of objects, or (exclusively in the action API) **actions**. This document applies to the following API:\n\n\nAPI|Base Path|Purpose|Comments\n:---|:---|:---|:---\nMonitoring|/SEMP/v2/monitor|Querying operational parameters|See note 2\n\n\n\nThe following APIs are also available:\n\n\nAPI|Base Path|Purpose|Comments\n:---|:---|:---|:---\nAction|/SEMP/v2/action|Performing actions|See note 2\nConfiguration|/SEMP/v2/config|Reading and writing config state|See note 2\n\n\n\nResources are always nouns, with individual objects being singular and collections being plural.\n\nObjects within a collection are identified by an `obj-id`, which follows the collection name with the form `collection-name/obj-id`.\n\nActions within an object are identified by an `action-id`, which follows the object name with the form `obj-id/action-id`.\n\nSome examples:\n\n```\n/SEMP/v2/config/msgVpns ; MsgVpn collection\n/SEMP/v2/config/msgVpns/a ; MsgVpn object named \"a\"\n/SEMP/v2/config/msgVpns/a/queues ; Queue collection in MsgVpn \"a\"\n/SEMP/v2/config/msgVpns/a/queues/b ; Queue object named \"b\" in MsgVpn \"a\"\n/SEMP/v2/action/msgVpns/a/queues/b/startReplay ; Action that starts a replay on Queue \"b\" in MsgVpn \"a\"\n/SEMP/v2/monitor/msgVpns/a/clients ; Client collection in MsgVpn \"a\"\n/SEMP/v2/monitor/msgVpns/a/clients/c ; Client object named \"c\" in MsgVpn \"a\"\n```\n\n## Collection Resources\n\nCollections are unordered lists of objects (unless described as otherwise), and are described by JSON arrays. Each item in the array represents an object in the same manner as the individual object would normally be represented. In the configuration API, the creation of a new object is done through its collection resource.\n\n## Object and Action Resources\n\nObjects are composed of attributes, actions, collections, and other objects. They are described by JSON objects as name/value pairs. The collections and actions of an object are not contained directly in the object's JSON content; rather the content includes an attribute containing a URI which points to the collections and actions. These contained resources must be managed through this URI. At a minimum, every object has one or more identifying attributes, and its own `uri` attribute which contains the URI pointing to itself.\n\nActions are also composed of attributes, and are described by JSON objects as name/value pairs. Unlike objects, however, they are not members of a collection and cannot be retrieved, only performed. Actions only exist in the action API.\n\nAttributes in an object or action may have any combination of the following properties:\n\n\nProperty|Meaning|Comments\n:---|:---|:---\nIdentifying|Attribute is involved in unique identification of the object, and appears in its URI|\nConst|Attribute value can only be chosen during object creation|\nRequired|Attribute must be provided in the request|\nRead-Only|Attribute can only be read, not written.|See note 3\nWrite-Only|Attribute can only be written, not read, unless the attribute is also opaque|See the documentation for the opaque property\nRequires-Disable|Attribute cannot be changed while the object (or the relevant part of the object) is administratively enabled|\nAuto-Disable|Modifying this attribute while the object (or the relevant part of the object) is administratively enabled may be service impacting as one or more attributes will be temporarily disabled to apply the change|\nDeprecated|Attribute is deprecated, and will disappear in the next SEMP version|\nOpaque|Attribute can be set or retrieved in opaque form when the `opaquePassword` query parameter is present|See the `opaquePassword` query parameter documentation\n\n\n\nIn some requests, certain attributes may only be provided in certain combinations with other attributes:\n\n\nRelationship|Meaning\n:---|:---\nRequires|Attribute may only be changed by a request if a particular attribute or combination of attributes is also provided in the request\nConflicts|Attribute may only be provided in a request if a particular attribute or combination of attributes is not also provided in the request\n\n\n\nIn the monitoring API, any non-identifying attribute may not be returned in a GET.\n\n## HTTP Methods\n\nThe following HTTP methods manipulate resources in accordance with these general principles. Note that some methods are only used in certain APIs:\n\n\nMethod|Resource|Meaning|Request Body|Response Body|Notes\n:---|:---|:---|:---|:---|:---\nPOST|Collection|Create object|Initial attribute values|Object attributes and metadata|Absent attributes are set to default. If object already exists, a 400 error is returned\nPUT|Object|Update object|New attribute values|Object attributes and metadata|If does not exist, the object is first created. Absent attributes are set to default, with certain exceptions (see note 4)\nPUT|Action|Performs action|Action arguments|Action metadata|\nPATCH|Object|Update object|New attribute values|Object attributes and metadata|Absent attributes are left unchanged. If the object does not exist, a 404 error is returned\nDELETE|Object|Delete object|Empty|Object metadata|If the object does not exist, a 404 is returned\nGET|Object|Get object|Empty|Object attributes and metadata|If the object does not exist, a 404 is returned\nGET|Collection|Get collection|Empty|Object attributes and collection metadata|If the collection is empty, then an empty collection is returned with a 200 code\n\n\n\n## Common Query Parameters\n\nThe following are some common query parameters that are supported by many method/URI combinations. Individual URIs may document additional parameters. Note that multiple query parameters can be used together in a single URI, separated by the ampersand character. For example:\n\n```\n; Request for the MsgVpns collection using two hypothetical query parameters\n; \"q1\" and \"q2\" with values \"val1\" and \"val2\" respectively\n/SEMP/v2/monitor/msgVpns?q1=val1&q2=val2\n```\n\n### select\n\nInclude in the response only selected attributes of the object, or exclude from the response selected attributes of the object. Use this query parameter to limit the size of the returned data for each returned object, return only those fields that are desired, or exclude fields that are not desired.\n\nThe value of `select` is a comma-separated list of attribute names. If the list contains attribute names that are not prefaced by `-`, only those attributes are included in the response. If the list contains attribute names that are prefaced by `-`, those attributes are excluded from the response. If the list contains both types, then the difference of the first set of attributes and the second set of attributes is returned. If the list is empty (i.e. `select=`), it is treated the same as if no `select` was provided: all attribute are returned.\n\nAll attributes that are prefaced by `-` must follow all attributes that are not prefaced by `-`. In addition, each attribute name in the list must match at least one attribute in the object.\n\nNames may include the `*` wildcard (zero or more characters). Nested attribute names are supported using periods (e.g. `parentName.childName`).\n\nSome examples:\n\n```\n; List of all MsgVpn names\n/SEMP/v2/monitor/msgVpns?select=msgVpnName\n; List of all MsgVpn and their attributes except for their names\n/SEMP/v2/monitor/msgVpns?select=-msgVpnName\n; Authentication attributes of MsgVpn \"finance\"\n/SEMP/v2/monitor/msgVpns/finance?select=authentication%2A\n; All attributes of MsgVpn \"finance\" except for authentication attributes\n/SEMP/v2/monitor/msgVpns/finance?select=-authentication%2A\n; Access related attributes of Queue \"orderQ\" of MsgVpn \"finance\"\n/SEMP/v2/monitor/msgVpns/finance/queues/orderQ?select=owner,permission\n```\n\n### where\n\nInclude in the response only objects where certain conditions are true. Use this query parameter to limit which objects are returned to those whose attribute values meet the given conditions.\n\nThe value of `where` is a comma-separated list of expressions. All expressions must be true for the object to be included in the response. Each expression takes the form:\n\n```\nexpression = attribute-name OP value\nOP = '==' | '!=' | '<' | '>' | '<=' | '>='\n```\n\n`value` may be a number, string, `true`, or `false`, as appropriate for the type of `attribute-name`. Greater-than and less-than comparisons only work for numbers. A `*` in a string `value` is interpreted as a wildcard (zero or more characters). Some examples:\n\n```\n; Only enabled MsgVpns\n/SEMP/v2/monitor/msgVpns?where=enabled%3D%3Dtrue\n; Only MsgVpns using basic non-LDAP authentication\n/SEMP/v2/monitor/msgVpns?where=authenticationBasicEnabled%3D%3Dtrue,authenticationBasicType%21%3Dldap\n; Only MsgVpns that allow more than 100 client connections\n/SEMP/v2/monitor/msgVpns?where=maxConnectionCount%3E100\n; Only MsgVpns with msgVpnName starting with \"B\":\n/SEMP/v2/monitor/msgVpns?where=msgVpnName%3D%3DB%2A\n```\n\n### count\n\nLimit the count of objects in the response. This can be useful to limit the size of the response for large collections. The minimum value for `count` is `1` and the default is `10`. There is also a per-collection maximum value to limit request handling time.\n\n`count` does not guarantee that a minimum number of objects will be returned. A page may contain fewer than `count` objects or even be empty. Additional objects may nonetheless be available for retrieval on subsequent pages. See the `cursor` query parameter documentation for more information on paging.\n\nFor example:\n```\n; Up to 25 MsgVpns\n/SEMP/v2/monitor/msgVpns?count=25\n```\n\n### cursor\n\nThe cursor, or position, for the next page of objects. Cursors are opaque data that should not be created or interpreted by SEMP clients, and should only be used as described below.\n\nWhen a request is made for a collection and there may be additional objects available for retrieval that are not included in the initial response, the response will include a `cursorQuery` field containing a cursor. The value of this field can be specified in the `cursor` query parameter of a subsequent request to retrieve the next page of objects.\n\nApplications must continue to use the `cursorQuery` if one is provided in order to retrieve the full set of objects associated with the request, even if a page contains fewer than the requested number of objects (see the `count` query parameter documentation) or is empty.\n\n### opaquePassword\n\nAttributes with the opaque property are also write-only and so cannot normally be retrieved in a GET. However, when a password is provided in the `opaquePassword` query parameter, attributes with the opaque property are retrieved in a GET in opaque form, encrypted with this password. The query parameter can also be used on a POST, PATCH, or PUT to set opaque attributes using opaque attribute values retrieved in a GET, so long as:\n\n1. the same password that was used to retrieve the opaque attribute values is provided; and\n\n2. the broker to which the request is being sent has the same major and minor SEMP version as the broker that produced the opaque attribute values.\n\nThe password provided in the query parameter must be a minimum of 8 characters and a maximum of 128 characters.\n\nThe query parameter can only be used in the configuration API, and only over HTTPS.\n\n## Authentication\n\nWhen a client makes its first SEMPv2 request, it must supply a username and password using HTTP Basic authentication, or an OAuth token or tokens using HTTP Bearer authentication.\n\nWhen HTTP Basic authentication is used, the broker returns a cookie containing a session key. The client can omit the username and password from subsequent requests, because the broker can use the session cookie for authentication instead. When the session expires or is deleted, the client must provide the username and password again, and the broker creates a new session.\n\nThere are a limited number of session slots available on the broker. The broker returns 529 No SEMP Session Available if it is not able to allocate a session.\n\nIf certain attributes\u2014such as a user's password\u2014are changed, the broker automatically deletes the affected sessions. These attributes are documented below. However, changes in external user configuration data stored on a RADIUS or LDAP server do not trigger the broker to delete the associated session(s), therefore you must do this manually, if required.\n\nA client can retrieve its current session information using the /about/user endpoint and delete its own session using the /about/user/logout endpoint. A client with appropriate permissions can also manage all sessions using the /sessions endpoint.\n\nSessions are not created when authenticating with an OAuth token or tokens using HTTP Bearer authentication. If a session cookie is provided, it is ignored.\n\n## Help\n\nVisit [our website](https://solace.com) to learn more about Solace.\n\nYou can also download the SEMP API specifications by clicking [here](https://solace.com/downloads/).\n\nIf you need additional support, please contact us at [support@solace.com](mailto:support@solace.com).\n\n## Notes\n\nNote|Description\n:---:|:---\n1|This specification defines SEMP starting in \"v2\", and not the original SEMP \"v1\" interface. Request and response formats between \"v1\" and \"v2\" are entirely incompatible, although both protocols share a common port configuration on the Solace PubSub+ broker. They are differentiated by the initial portion of the URI path, one of either \"/SEMP/\" or \"/SEMP/v2/\"\n2|This API is partially implemented. Only a subset of all objects are available.\n3|Read-only attributes may appear in POST and PUT/PATCH requests. However, if a read-only attribute is not marked as identifying, it will be ignored during a PUT/PATCH.\n4|On a PUT, if the SEMP user is not authorized to modify the attribute, its value is left unchanged rather than set to default. In addition, the values of write-only attributes are not set to their defaults on a PUT, except in the following two cases: there is a mutual requires relationship with another non-write-only attribute, both attributes are absent from the request, and the non-write-only attribute is not currently set to its default value; or the attribute is also opaque and the `opaquePassword` query parameter is provided in the request.\n\n", + "title": "SEMP (Solace Element Management Protocol)", + "version": "2.34" + }, + "parameters": { + "countQuery": { + "default": 10, + "description": "Limit the count of objects in the response. See the documentation for the `count` parameter.", + "in": "query", + "minimum": 1, + "name": "count", + "required": false, + "type": "integer" + }, + "cursorQuery": { + "description": "The cursor, or position, for the next page of objects. See the documentation for the `cursor` parameter.", + "in": "query", + "name": "cursor", + "required": false, + "type": "string" + }, + "selectQuery": { + "collectionFormat": "csv", + "description": "Include in the response only selected attributes of the object, or exclude from the response selected attributes of the object. See the documentation for the `select` parameter.", + "in": "query", + "items": { + "type": "string" + }, + "name": "select", + "required": false, + "type": "array" + }, + "whereQuery": { + "collectionFormat": "csv", + "description": "Include in the response only objects where certain conditions are true. See the the documentation for the `where` parameter.", + "in": "query", + "items": { + "type": "string" + }, + "name": "where", + "required": false, + "type": "array" + } + }, + "paths": { + "/": { + "get": { + "description": "Get a Broker object.\n\nThis object contains global configuration for the message broker.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation. Requests which include the following attributes require greater access scope/level:\n\n\nAttribute|Access Scope/Level\n:---|:---:\naverageRxByteRate|global/read-only\naverageRxCompressedByteRate|global/read-only\naverageRxMsgRate|global/read-only\naverageRxUncompressedByteRate|global/read-only\naverageTxByteRate|global/read-only\naverageTxCompressedByteRate|global/read-only\naverageTxMsgRate|global/read-only\naverageTxUncompressedByteRate|global/read-only\nconfigSyncAuthenticationClientCertMaxChainDepth|global/read-only\nconfigSyncAuthenticationClientCertValidateDateEnabled|global/read-only\nconfigSyncClientProfileTcpInitialCongestionWindow|global/read-only\nconfigSyncClientProfileTcpKeepaliveCount|global/read-only\nconfigSyncClientProfileTcpKeepaliveIdle|global/read-only\nconfigSyncClientProfileTcpKeepaliveInterval|global/read-only\nconfigSyncClientProfileTcpMaxWindow|global/read-only\nconfigSyncClientProfileTcpMss|global/read-only\nconfigSyncEnabled|global/read-only\nconfigSyncLastFailureReason|global/read-only\nconfigSyncSynchronizeUsernameEnabled|global/read-only\nconfigSyncTlsEnabled|global/read-only\nconfigSyncUp|global/read-only\ncspfVersion|global/read-only\nguaranteedMsgingDefragmentationEstimatedFragmentation|global/read-only\nguaranteedMsgingDefragmentationEstimatedRecoverableSpace|global/read-only\nguaranteedMsgingDefragmentationLastCompletedOn|global/read-only\nguaranteedMsgingDefragmentationLastCompletionPercentage|global/read-only\nguaranteedMsgingDefragmentationLastExitCondition|global/read-only\nguaranteedMsgingDefragmentationLastExitConditionInformation|global/read-only\nguaranteedMsgingDefragmentationScheduleDayList|global/read-only\nguaranteedMsgingDefragmentationScheduleEnabled|global/read-only\nguaranteedMsgingDefragmentationScheduleTimeList|global/read-only\nguaranteedMsgingDefragmentationStatus|global/read-only\nguaranteedMsgingDefragmentationStatusActiveCompletionPercentage|global/read-only\nguaranteedMsgingDefragmentationThresholdEnabled|global/read-only\nguaranteedMsgingDefragmentationThresholdFragmentationPercentage|global/read-only\nguaranteedMsgingDefragmentationThresholdMinInterval|global/read-only\nguaranteedMsgingDefragmentationThresholdUsagePercentage|global/read-only\nguaranteedMsgingEnabled|global/read-only\nguaranteedMsgingEventCacheUsageThreshold.clearPercent|global/read-only\nguaranteedMsgingEventCacheUsageThreshold.clearValue|global/read-only\nguaranteedMsgingEventCacheUsageThreshold.setPercent|global/read-only\nguaranteedMsgingEventCacheUsageThreshold.setValue|global/read-only\nguaranteedMsgingEventDeliveredUnackedThreshold.clearPercent|global/read-only\nguaranteedMsgingEventDeliveredUnackedThreshold.setPercent|global/read-only\nguaranteedMsgingEventDiskUsageThreshold.clearPercent|global/read-only\nguaranteedMsgingEventDiskUsageThreshold.setPercent|global/read-only\nguaranteedMsgingEventEgressFlowCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventEgressFlowCountThreshold.clearValue|global/read-only\nguaranteedMsgingEventEgressFlowCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventEgressFlowCountThreshold.setValue|global/read-only\nguaranteedMsgingEventEndpointCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventEndpointCountThreshold.clearValue|global/read-only\nguaranteedMsgingEventEndpointCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventEndpointCountThreshold.setValue|global/read-only\nguaranteedMsgingEventIngressFlowCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventIngressFlowCountThreshold.clearValue|global/read-only\nguaranteedMsgingEventIngressFlowCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventIngressFlowCountThreshold.setValue|global/read-only\nguaranteedMsgingEventMsgCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventMsgCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventMsgSpoolFileCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventMsgSpoolFileCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventMsgSpoolUsageThreshold.clearPercent|global/read-only\nguaranteedMsgingEventMsgSpoolUsageThreshold.clearValue|global/read-only\nguaranteedMsgingEventMsgSpoolUsageThreshold.setPercent|global/read-only\nguaranteedMsgingEventMsgSpoolUsageThreshold.setValue|global/read-only\nguaranteedMsgingEventTransactedSessionCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventTransactedSessionCountThreshold.clearValue|global/read-only\nguaranteedMsgingEventTransactedSessionCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventTransactedSessionCountThreshold.setValue|global/read-only\nguaranteedMsgingEventTransactedSessionResourceCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventTransactedSessionResourceCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventTransactionCountThreshold.clearPercent|global/read-only\nguaranteedMsgingEventTransactionCountThreshold.clearValue|global/read-only\nguaranteedMsgingEventTransactionCountThreshold.setPercent|global/read-only\nguaranteedMsgingEventTransactionCountThreshold.setValue|global/read-only\nguaranteedMsgingMaxCacheUsage|global/read-only\nguaranteedMsgingMaxMsgSpoolUsage|global/read-only\nguaranteedMsgingMsgSpoolSyncMirroredMsgAckTimeout|global/read-only\nguaranteedMsgingMsgSpoolSyncMirroredSpoolFileAckTimeout|global/read-only\nguaranteedMsgingOperationalStatus|global/read-only\nguaranteedMsgingTransactionReplicationCompatibilityMode|global/read-only\noauthProfileDefault|global/read-only\nrxByteCount|global/read-only\nrxByteRate|global/read-only\nrxCompressedByteCount|global/read-only\nrxCompressedByteRate|global/read-only\nrxCompressionRatio|global/read-only\nrxMsgCount|global/read-only\nrxMsgRate|global/read-only\nrxUncompressedByteCount|global/read-only\nrxUncompressedByteRate|global/read-only\nserviceAmqpEnabled|global/read-only\nserviceAmqpTlsListenPort|global/read-only\nserviceEventConnectionCountThreshold.clearPercent|global/read-only\nserviceEventConnectionCountThreshold.clearValue|global/read-only\nserviceEventConnectionCountThreshold.setPercent|global/read-only\nserviceEventConnectionCountThreshold.setValue|global/read-only\nserviceHealthCheckEnabled|global/read-only\nserviceHealthCheckListenPort|global/read-only\nserviceHealthCheckTlsEnabled|global/read-only\nserviceHealthCheckTlsListenPort|global/read-only\nserviceMateLinkEnabled|global/read-only\nserviceMateLinkListenPort|global/read-only\nserviceMqttEnabled|global/read-only\nserviceMsgBackboneEnabled|global/read-only\nserviceRedundancyEnabled|global/read-only\nserviceRedundancyFirstListenPort|global/read-only\nserviceRestEventOutgoingConnectionCountThreshold.clearPercent|global/read-only\nserviceRestEventOutgoingConnectionCountThreshold.clearValue|global/read-only\nserviceRestEventOutgoingConnectionCountThreshold.setPercent|global/read-only\nserviceRestEventOutgoingConnectionCountThreshold.setValue|global/read-only\nserviceRestIncomingEnabled|global/read-only\nserviceRestOutgoingEnabled|global/read-only\nserviceSempCorsAllowAnyHostEnabled|global/read-only\nserviceSempLegacyTimeoutEnabled|global/read-only\nserviceSempPlainTextEnabled|global/read-only\nserviceSempPlainTextListenPort|global/read-only\nserviceSempSessionIdleTimeout|global/read-only\nserviceSempSessionMaxLifetime|global/read-only\nserviceSempTlsEnabled|global/read-only\nserviceSempTlsListenPort|global/read-only\nserviceSmfCompressionListenPort|global/read-only\nserviceSmfEnabled|global/read-only\nserviceSmfEventConnectionCountThreshold.clearPercent|global/read-only\nserviceSmfEventConnectionCountThreshold.clearValue|global/read-only\nserviceSmfEventConnectionCountThreshold.setPercent|global/read-only\nserviceSmfEventConnectionCountThreshold.setValue|global/read-only\nserviceSmfPlainTextListenPort|global/read-only\nserviceSmfRoutingControlListenPort|global/read-only\nserviceSmfTlsListenPort|global/read-only\nserviceTlsEventConnectionCountThreshold.clearPercent|global/read-only\nserviceTlsEventConnectionCountThreshold.clearValue|global/read-only\nserviceTlsEventConnectionCountThreshold.setPercent|global/read-only\nserviceTlsEventConnectionCountThreshold.setValue|global/read-only\nserviceWebTransportEnabled|global/read-only\nserviceWebTransportPlainTextListenPort|global/read-only\nserviceWebTransportTlsListenPort|global/read-only\nserviceWebTransportWebUrlSuffix|global/read-only\ntelemetryTraceDemoExpiryTime|vpn/read-only\ntelemetryTraceDemoState|vpn/read-only\ntelemetryTraceMode|vpn/read-only\ntlsBlockVersion11Enabled|global/read-only\ntlsCipherSuiteManagementDefaultList|global/read-only\ntlsCipherSuiteManagementList|global/read-only\ntlsCipherSuiteManagementSupportedList|vpn/read-only\ntlsCipherSuiteMsgBackboneDefaultList|global/read-only\ntlsCipherSuiteMsgBackboneList|global/read-only\ntlsCipherSuiteMsgBackboneSupportedList|vpn/read-only\ntlsCipherSuiteSecureShellDefaultList|global/read-only\ntlsCipherSuiteSecureShellList|global/read-only\ntlsCipherSuiteSecureShellSupportedList|vpn/read-only\ntlsCrimeExploitProtectionEnabled|global/read-only\ntlsStandardDomainCertificateAuthoritiesEnabled|vpn/read-only\ntlsTicketLifetime|global/read-only\ntlsVersionSupportedList|vpn/read-only\ntxByteCount|global/read-only\ntxByteRate|global/read-only\ntxCompressedByteCount|global/read-only\ntxCompressedByteRate|global/read-only\ntxCompressionRatio|global/read-only\ntxMsgCount|global/read-only\ntxMsgRate|global/read-only\ntxUncompressedByteCount|global/read-only\ntxUncompressedByteRate|global/read-only\nwebManagerAllowUnencryptedWizardsEnabled|vpn/read-only\nwebManagerCustomization|vpn/read-only\nwebManagerRedirectHttpEnabled|vpn/read-only\nwebManagerRedirectHttpLastFailureReason|vpn/read-only\nwebManagerRedirectHttpOverrideTlsPort|vpn/read-only\nwebManagerRedirectHttpUp|vpn/read-only\n\n\n\nThis has been available since 2.13.", + "operationId": "getBroker", + "parameters": [ + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Broker object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/BrokerResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Broker object.", + "tags": [ + "all" + ] + } + }, + "/about": { + "get": { + "description": "Get an About object.\n\nThis provides metadata about the SEMP API, such as the version of the API supported by the broker.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.13.", + "operationId": "getAbout", + "parameters": [ + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The About object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an About object.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/api": { + "get": { + "description": "Get an API Description object.\n\nThe API Description object provides metadata about the SEMP API.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getAboutApi", + "parameters": [ + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The API Description object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutApiResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an API Description object.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/user": { + "get": { + "description": "Get a User object.\n\nSession and access level information about the user accessing the SEMP API.\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getAboutUser", + "parameters": [ + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The User object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutUserResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a User object.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/user/msgVpns": { + "get": { + "description": "Get a list of User Message VPN objects.\n\nThis provides information about the Message VPN access level for the username used to access the SEMP API.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getAboutUserMsgVpns", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of User Message VPN objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutUserMsgVpnsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of User Message VPN objects.", + "tags": [ + "all", + "about" + ] + } + }, + "/about/user/msgVpns/{msgVpnName}": { + "get": { + "description": "Get a User Message VPN object.\n\nThis provides information about the Message VPN access level for the username used to access the SEMP API.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getAboutUserMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The User Message VPN object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/AboutUserMsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a User Message VPN object.", + "tags": [ + "all", + "about" + ] + } + }, + "/certAuthorities": { + "get": { + "deprecated": true, + "description": "Get a list of Certificate Authority objects.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|x\ncertContent||x\ncrlDayList||x\ncrlLastDownloadTime||x\ncrlLastFailureReason||x\ncrlLastFailureTime||x\ncrlNextDownloadTime||x\ncrlTimeList||x\ncrlUp||x\ncrlUrl||x\nocspLastFailureReason||x\nocspLastFailureTime||x\nocspLastFailureUrl||x\nocspNonResponderCertEnabled||x\nocspOverrideUrl||x\nocspTimeout||x\nrevocationCheckEnabled||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "operationId": "getCertAuthorities", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Authority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthoritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Authority objects.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/certAuthorities/{certAuthorityName}": { + "get": { + "deprecated": true, + "description": "Get a Certificate Authority object.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|x\ncertContent||x\ncrlDayList||x\ncrlLastDownloadTime||x\ncrlLastFailureReason||x\ncrlLastFailureTime||x\ncrlNextDownloadTime||x\ncrlTimeList||x\ncrlUp||x\ncrlUrl||x\nocspLastFailureReason||x\nocspLastFailureTime||x\nocspLastFailureUrl||x\nocspNonResponderCertEnabled||x\nocspOverrideUrl||x\nocspTimeout||x\nrevocationCheckEnabled||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities and domainCertAuthorities.", + "operationId": "getCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Authority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Authority object.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/certAuthorities/{certAuthorityName}/ocspTlsTrustedCommonNames": { + "get": { + "deprecated": true, + "description": "Get a list of OCSP Responder Trusted Common Name objects.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|x\nocspTlsTrustedCommonName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities.", + "operationId": "getCertAuthorityOcspTlsTrustedCommonNames", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OCSP Responder Trusted Common Name objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OCSP Responder Trusted Common Name objects.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/certAuthorities/{certAuthorityName}/ocspTlsTrustedCommonNames/{ocspTlsTrustedCommonName}": { + "get": { + "deprecated": true, + "description": "Get an OCSP Responder Trusted Common Name object.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|x\nocspTlsTrustedCommonName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.19. Replaced by clientCertAuthorities.", + "operationId": "getCertAuthorityOcspTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The expected Trusted Common Name of the OCSP responder remote certificate.", + "in": "path", + "name": "ocspTlsTrustedCommonName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OCSP Responder Trusted Common Name object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/CertAuthorityOcspTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OCSP Responder Trusted Common Name object.", + "tags": [ + "all", + "certAuthority" + ] + } + }, + "/clientCertAuthorities": { + "get": { + "description": "Get a list of Client Certificate Authority objects.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getClientCertAuthorities", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Certificate Authority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthoritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Certificate Authority objects.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/clientCertAuthorities/{certAuthorityName}": { + "get": { + "description": "Get a Client Certificate Authority object.\n\nClients can authenticate with the message broker over TLS by presenting a valid client certificate. The message broker authenticates the client certificate by constructing a full certificate chain (from the client certificate to intermediate CAs to a configured root CA). The intermediate CAs in this chain can be provided by the client, or configured in the message broker. The root CA must be configured on the message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getClientCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Certificate Authority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Certificate Authority object.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/clientCertAuthorities/{certAuthorityName}/ocspTlsTrustedCommonNames": { + "get": { + "description": "Get a list of OCSP Responder Trusted Common Name objects.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|\nocspTlsTrustedCommonName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getClientCertAuthorityOcspTlsTrustedCommonNames", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OCSP Responder Trusted Common Name objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OCSP Responder Trusted Common Name objects.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/clientCertAuthorities/{certAuthorityName}/ocspTlsTrustedCommonNames/{ocspTlsTrustedCommonName}": { + "get": { + "description": "Get an OCSP Responder Trusted Common Name object.\n\nWhen an OCSP override URL is configured, the OCSP responder will be required to sign the OCSP responses with certificates issued to these Trusted Common Names. A maximum of 8 common names can be configured as valid response signers.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|\nocspTlsTrustedCommonName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getClientCertAuthorityOcspTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "description": "The expected Trusted Common Name of the OCSP responder remote certificate.", + "in": "path", + "name": "ocspTlsTrustedCommonName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OCSP Responder Trusted Common Name object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ClientCertAuthorityOcspTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OCSP Responder Trusted Common Name object.", + "tags": [ + "all", + "clientCertAuthority" + ] + } + }, + "/configSyncLocalDatabaseRows": { + "get": { + "description": "Get a list of Config Sync Local Database objects.\n\nConfig Sync Local Database Rows contains information about the status of the table for this Broker or a local Message VPN.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nname|x|\ntype|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.22.", + "operationId": "getConfigSyncLocalDatabaseRows", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Config Sync Local Database objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ConfigSyncLocalDatabaseRowsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Config Sync Local Database objects.", + "tags": [ + "all", + "configSyncLocalDatabaseRow" + ] + } + }, + "/configSyncLocalDatabaseRows/{type},{name}": { + "get": { + "description": "Get a Config Sync Local Database object.\n\nConfig Sync Local Database Rows contains information about the status of the table for this Broker or a local Message VPN.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nname|x|\ntype|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/none\" is required to perform this operation.\n\nThis has been available since 2.22.", + "operationId": "getConfigSyncLocalDatabaseRow", + "parameters": [ + { + "description": "The type of the row. Can be one of \"router\" or \"vpn\". There is one \"router\" row and one row for each configured \"vpn\". Each row represents a table of information that is synchronized between Config Sync and replication mates.", + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "description": "The name is \"site\" when the row type is \"router\", otherwise it is the Message VPN name.", + "in": "path", + "name": "name", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Config Sync Local Database object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/ConfigSyncLocalDatabaseRowResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Config Sync Local Database object.", + "tags": [ + "all", + "configSyncLocalDatabaseRow" + ] + } + }, + "/dmrClusters": { + "get": { + "description": "Get a list of Cluster objects.\n\nA Cluster is a provisioned object on a message broker that contains global DMR configuration parameters.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\ntlsServerCertEnforceTrustedCommonNameEnabled||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusters", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Cluster objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClustersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Cluster objects.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}": { + "get": { + "description": "Get a Cluster object.\n\nA Cluster is a provisioned object on a message broker that contains global DMR configuration parameters.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\ntlsServerCertEnforceTrustedCommonNameEnabled||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrCluster", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cluster object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Cluster object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules": { + "get": { + "description": "Get a list of Certificate Matching Rule objects.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given link.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nruleName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRules", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRulesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule objects.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules/{ruleName}": { + "get": { + "description": "Get a Certificate Matching Rule object.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given link.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nruleName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRule", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules/{ruleName}/attributeFilters": { + "get": { + "description": "Get a list of Certificate Matching Rule Attribute Filter objects.\n\nA Cert Matching Rule Attribute Filter compares a link attribute to a string.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nfilterName|x|\nruleName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRuleAttributeFilters", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule Attribute Filter objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFiltersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule Attribute Filter objects.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules/{ruleName}/attributeFilters/{filterName}": { + "get": { + "description": "Get a Certificate Matching Rule Attribute Filter object.\n\nA Cert Matching Rule Attribute Filter compares a link attribute to a string.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nfilterName|x|\nruleName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The name of the filter.", + "in": "path", + "name": "filterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Attribute Filter object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleAttributeFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules/{ruleName}/conditions": { + "get": { + "description": "Get a list of Certificate Matching Rule Condition objects.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a link attribute or an expression.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nruleName|x|\nsource|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRuleConditions", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule Condition objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule Condition objects.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/certMatchingRules/{ruleName}/conditions/{source}": { + "get": { + "description": "Get a Certificate Matching Rule Condition object.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a link attribute or an expression.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nruleName|x|\nsource|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterCertMatchingRuleCondition", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "Certificate field to be compared with the Attribute.", + "in": "path", + "name": "source", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Condition object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterCertMatchingRuleConditionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule Condition object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links": { + "get": { + "description": "Get a list of Link objects.\n\nA Link connects nodes (either within a Cluster or between two different Clusters) and allows them to exchange topology information, subscriptions and data.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nremoteNodeName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterLinks", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Link objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinksResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Link objects.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}": { + "get": { + "description": "Get a Link object.\n\nA Link connects nodes (either within a Cluster or between two different Clusters) and allows them to exchange topology information, subscriptions and data.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nremoteNodeName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterLink", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Link object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Link object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/attributes": { + "get": { + "description": "Get a list of Link Attribute objects.\n\nA Link Attribute is a key+value pair that can be used to locate a DMR Cluster Link, for example when using client certificate mapping.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nattributeName|x|\nattributeValue|x|\ndmrClusterName|x|\nremoteNodeName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterLinkAttributes", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Link Attribute objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkAttributesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Link Attribute objects.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/attributes/{attributeName},{attributeValue}": { + "get": { + "description": "Get a Link Attribute object.\n\nA Link Attribute is a key+value pair that can be used to locate a DMR Cluster Link, for example when using client certificate mapping.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nattributeName|x|\nattributeValue|x|\ndmrClusterName|x|\nremoteNodeName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getDmrClusterLinkAttribute", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Attribute.", + "in": "path", + "name": "attributeName", + "required": true, + "type": "string" + }, + { + "description": "The value of the Attribute.", + "in": "path", + "name": "attributeValue", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Link Attribute object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkAttributeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Link Attribute object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/channels": { + "get": { + "description": "Get a list of Cluster Link Channels objects.\n\nA Channel is a connection between this broker and a remote node in the Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nmsgVpnName|x|\nremoteNodeName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterLinkChannels", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Cluster Link Channels objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkChannelsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Cluster Link Channels objects.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/channels/{msgVpnName}": { + "get": { + "description": "Get a Cluster Link Channels object.\n\nA Channel is a connection between this broker and a remote node in the Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nmsgVpnName|x|\nremoteNodeName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterLinkChannel", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cluster Link Channels object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkChannelResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Cluster Link Channels object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/remoteAddresses": { + "get": { + "description": "Get a list of Remote Address objects.\n\nEach Remote Address, consisting of a FQDN or IP address and optional port, is used to connect to the remote node for this Link. Up to 4 addresses may be provided for each Link, and will be tried on a round-robin basis.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nremoteAddress|x|\nremoteNodeName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterLinkRemoteAddresses", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Remote Address objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Remote Address objects.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/remoteAddresses/{remoteAddress}": { + "get": { + "description": "Get a Remote Address object.\n\nEach Remote Address, consisting of a FQDN or IP address and optional port, is used to connect to the remote node for this Link. Up to 4 addresses may be provided for each Link, and will be tried on a round-robin basis.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\nremoteAddress|x|\nremoteNodeName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterLinkRemoteAddress", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The FQDN or IP address (and optional port) of the remote node. If a port is not provided, it will vary based on the transport encoding: 55555 (plain-text), 55443 (encrypted), or 55003 (compressed).", + "in": "path", + "name": "remoteAddress", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Address object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkRemoteAddressResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Remote Address object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/tlsTrustedCommonNames": { + "get": { + "deprecated": true, + "description": "Get a list of Trusted Common Name objects.\n\nThe Trusted Common Names for the Link are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|x\nremoteNodeName|x|x\ntlsTrustedCommonName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getDmrClusterLinkTlsTrustedCommonNames", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Trusted Common Name objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Trusted Common Name objects.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/links/{remoteNodeName}/tlsTrustedCommonNames/{tlsTrustedCommonName}": { + "get": { + "deprecated": true, + "description": "Get a Trusted Common Name object.\n\nThe Trusted Common Names for the Link are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|x\nremoteNodeName|x|x\ntlsTrustedCommonName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getDmrClusterLinkTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the Link.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "description": "The expected trusted common name of the remote certificate.", + "in": "path", + "name": "tlsTrustedCommonName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trusted Common Name object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterLinkTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Trusted Common Name object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/topologyIssues": { + "get": { + "description": "Get a list of Cluster Topology Issue objects.\n\nA Cluster Topology Issue indicates incorrect or inconsistent configuration within the DMR network. Such issues will cause messages to be misdelivered or lost.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\ntopologyIssue|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterTopologyIssues", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Cluster Topology Issue objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterTopologyIssuesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Cluster Topology Issue objects.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/dmrClusters/{dmrClusterName}/topologyIssues/{topologyIssue}": { + "get": { + "description": "Get a Cluster Topology Issue object.\n\nA Cluster Topology Issue indicates incorrect or inconsistent configuration within the DMR network. Such issues will cause messages to be misdelivered or lost.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ndmrClusterName|x|\ntopologyIssue|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getDmrClusterTopologyIssue", + "parameters": [ + { + "description": "The name of the Cluster.", + "in": "path", + "name": "dmrClusterName", + "required": true, + "type": "string" + }, + { + "description": "The topology issue discovered in the Cluster. A topology issue indicates incorrect or inconsistent configuration within the DMR network. Such issues will cause messages to be misdelivered or lost.", + "in": "path", + "name": "topologyIssue", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cluster Topology Issue object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DmrClusterTopologyIssueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Cluster Topology Issue object.", + "tags": [ + "all", + "dmrCluster" + ] + } + }, + "/domainCertAuthorities": { + "get": { + "description": "Get a list of Domain Certificate Authority objects.\n\nCertificate Authorities trusted for domain verification.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getDomainCertAuthorities", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Domain Certificate Authority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DomainCertAuthoritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Domain Certificate Authority objects.", + "tags": [ + "all", + "domainCertAuthority" + ] + } + }, + "/domainCertAuthorities/{certAuthorityName}": { + "get": { + "description": "Get a Domain Certificate Authority object.\n\nCertificate Authorities trusted for domain verification.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getDomainCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Domain Certificate Authority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/DomainCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Domain Certificate Authority object.", + "tags": [ + "all", + "domainCertAuthority" + ] + } + }, + "/msgVpns": { + "get": { + "description": "Get a list of Message VPN objects.\n\nMessage VPNs (Virtual Private Networks) allow for the segregation of topic space and clients. They also group clients connecting to a network of message brokers, such that messages published within a particular group are only visible to that group's clients.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nauthenticationOauthDefaultProviderName||x\nbridgingTlsServerCertEnforceTrustedCommonNameEnabled||x\nconfigSyncLocalKey||x\nconfigSyncLocalLastResult||x\nconfigSyncLocalRole||x\nconfigSyncLocalState||x\nconfigSyncLocalTimeInState||x\ncounter.controlRxByteCount||x\ncounter.controlRxMsgCount||x\ncounter.controlTxByteCount||x\ncounter.controlTxMsgCount||x\ncounter.dataRxByteCount||x\ncounter.dataRxMsgCount||x\ncounter.dataTxByteCount||x\ncounter.dataTxMsgCount||x\ncounter.discardedRxMsgCount||x\ncounter.discardedTxMsgCount||x\ncounter.loginRxMsgCount||x\ncounter.loginTxMsgCount||x\ncounter.msgSpoolRxMsgCount||x\ncounter.msgSpoolTxMsgCount||x\ncounter.tlsRxByteCount||x\ncounter.tlsTxByteCount||x\ndistributedCacheManagementEnabled||x\nmsgVpnName|x|\nrate.averageRxByteRate||x\nrate.averageRxMsgRate||x\nrate.averageTxByteRate||x\nrate.averageTxMsgRate||x\nrate.rxByteRate||x\nrate.rxMsgRate||x\nrate.tlsAverageRxByteRate||x\nrate.tlsAverageTxByteRate||x\nrate.tlsRxByteRate||x\nrate.tlsTxByteRate||x\nrate.txByteRate||x\nrate.txMsgRate||x\nrestTlsServerCertEnforceTrustedCommonNameEnabled||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpns", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Message VPN objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Message VPN objects.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}": { + "get": { + "description": "Get a Message VPN object.\n\nMessage VPNs (Virtual Private Networks) allow for the segregation of topic space and clients. They also group clients connecting to a network of message brokers, such that messages published within a particular group are only visible to that group's clients.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nauthenticationOauthDefaultProviderName||x\nbridgingTlsServerCertEnforceTrustedCommonNameEnabled||x\nconfigSyncLocalKey||x\nconfigSyncLocalLastResult||x\nconfigSyncLocalRole||x\nconfigSyncLocalState||x\nconfigSyncLocalTimeInState||x\ncounter.controlRxByteCount||x\ncounter.controlRxMsgCount||x\ncounter.controlTxByteCount||x\ncounter.controlTxMsgCount||x\ncounter.dataRxByteCount||x\ncounter.dataRxMsgCount||x\ncounter.dataTxByteCount||x\ncounter.dataTxMsgCount||x\ncounter.discardedRxMsgCount||x\ncounter.discardedTxMsgCount||x\ncounter.loginRxMsgCount||x\ncounter.loginTxMsgCount||x\ncounter.msgSpoolRxMsgCount||x\ncounter.msgSpoolTxMsgCount||x\ncounter.tlsRxByteCount||x\ncounter.tlsTxByteCount||x\ndistributedCacheManagementEnabled||x\nmsgVpnName|x|\nrate.averageRxByteRate||x\nrate.averageRxMsgRate||x\nrate.averageTxByteRate||x\nrate.averageTxMsgRate||x\nrate.rxByteRate||x\nrate.rxMsgRate||x\nrate.tlsAverageRxByteRate||x\nrate.tlsAverageTxByteRate||x\nrate.tlsRxByteRate||x\nrate.tlsTxByteRate||x\nrate.txByteRate||x\nrate.txMsgRate||x\nrestTlsServerCertEnforceTrustedCommonNameEnabled||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Message VPN object.", + "tags": [ + "all", + "msgVpn" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles": { + "get": { + "description": "Get a list of ACL Profile objects.\n\nAn ACL Profile controls whether an authenticated client is permitted to establish a connection with the message broker or permitted to publish and subscribe to specific topics.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnAclProfiles", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of ACL Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of ACL Profile objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}": { + "get": { + "description": "Get an ACL Profile object.\n\nAn ACL Profile controls whether an authenticated client is permitted to establish a connection with the message broker or permitted to publish and subscribe to specific topics.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnAclProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The ACL Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an ACL Profile object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/clientConnectExceptions": { + "get": { + "description": "Get a list of Client Connect Exception objects.\n\nA Client Connect Exception is an exception to the default action to take when a client using the ACL Profile connects to the Message VPN. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|\nclientConnectExceptionAddress|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnAclProfileClientConnectExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Connect Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Connect Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/clientConnectExceptions/{clientConnectExceptionAddress}": { + "get": { + "description": "Get a Client Connect Exception object.\n\nA Client Connect Exception is an exception to the default action to take when a client using the ACL Profile connects to the Message VPN. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|\nclientConnectExceptionAddress|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnAclProfileClientConnectException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The IP address/netmask of the client connect exception in canonical CIDR form.", + "in": "path", + "name": "clientConnectExceptionAddress", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Connect Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileClientConnectExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Connect Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/publishExceptions": { + "get": { + "deprecated": true, + "description": "Get a list of Publish Topic Exception objects.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|x\nmsgVpnName|x|x\npublishExceptionTopic|x|x\ntopicSyntax|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by publishTopicExceptions.", + "operationId": "getMsgVpnAclProfilePublishExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Publish Topic Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Publish Topic Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/publishExceptions/{topicSyntax},{publishExceptionTopic}": { + "get": { + "deprecated": true, + "description": "Get a Publish Topic Exception object.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|x\nmsgVpnName|x|x\npublishExceptionTopic|x|x\ntopicSyntax|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by publishTopicExceptions.", + "operationId": "getMsgVpnAclProfilePublishException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "topicSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "publishExceptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Publish Topic Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Publish Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/publishTopicExceptions": { + "get": { + "description": "Get a list of Publish Topic Exception objects.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|\nmsgVpnName|x|\npublishTopicException|x|\npublishTopicExceptionSyntax|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfilePublishTopicExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Publish Topic Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Publish Topic Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/publishTopicExceptions/{publishTopicExceptionSyntax},{publishTopicException}": { + "get": { + "description": "Get a Publish Topic Exception object.\n\nA Publish Topic Exception is an exception to the default action to take when a client using the ACL Profile publishes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|\nmsgVpnName|x|\npublishTopicException|x|\npublishTopicExceptionSyntax|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfilePublishTopicException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "publishTopicExceptionSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "publishTopicException", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Publish Topic Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfilePublishTopicExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Publish Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeExceptions": { + "get": { + "deprecated": true, + "description": "Get a list of Subscribe Topic Exception objects.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|x\nmsgVpnName|x|x\nsubscribeExceptionTopic|x|x\ntopicSyntax|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "operationId": "getMsgVpnAclProfileSubscribeExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Subscribe Topic Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Subscribe Topic Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeExceptions/{topicSyntax},{subscribeExceptionTopic}": { + "get": { + "deprecated": true, + "description": "Get a Subscribe Topic Exception object.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|x\nmsgVpnName|x|x\nsubscribeExceptionTopic|x|x\ntopicSyntax|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.14. Replaced by subscribeTopicExceptions.", + "operationId": "getMsgVpnAclProfileSubscribeException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "topicSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "subscribeExceptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscribe Topic Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Subscribe Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeShareNameExceptions": { + "get": { + "description": "Get a list of Subscribe Share Name Exception objects.\n\nA Subscribe Share Name Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a share-name subscription in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|\nmsgVpnName|x|\nsubscribeShareNameException|x|\nsubscribeShareNameExceptionSyntax|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfileSubscribeShareNameExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Subscribe Share Name Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Subscribe Share Name Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeShareNameExceptions/{subscribeShareNameExceptionSyntax},{subscribeShareNameException}": { + "get": { + "description": "Get a Subscribe Share Name Exception object.\n\nA Subscribe Share Name Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a share-name subscription in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|\nmsgVpnName|x|\nsubscribeShareNameException|x|\nsubscribeShareNameExceptionSyntax|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfileSubscribeShareNameException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the subscribe share name for the exception to the default action taken.", + "in": "path", + "name": "subscribeShareNameExceptionSyntax", + "required": true, + "type": "string" + }, + { + "description": "The subscribe share name exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "subscribeShareNameException", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscribe Share Name Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeShareNameExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Subscribe Share Name Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeTopicExceptions": { + "get": { + "description": "Get a list of Subscribe Topic Exception objects.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|\nmsgVpnName|x|\nsubscribeTopicException|x|\nsubscribeTopicExceptionSyntax|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfileSubscribeTopicExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Subscribe Topic Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Subscribe Topic Exception objects.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/aclProfiles/{aclProfileName}/subscribeTopicExceptions/{subscribeTopicExceptionSyntax},{subscribeTopicException}": { + "get": { + "description": "Get a Subscribe Topic Exception object.\n\nA Subscribe Topic Exception is an exception to the default action to take when a client using the ACL Profile subscribes to a topic in the Message VPN. Exceptions must be expressed as a topic.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naclProfileName|x|\nmsgVpnName|x|\nsubscribeTopicException|x|\nsubscribeTopicExceptionSyntax|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnAclProfileSubscribeTopicException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ACL Profile.", + "in": "path", + "name": "aclProfileName", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the topic for the exception to the default action taken.", + "in": "path", + "name": "subscribeTopicExceptionSyntax", + "required": true, + "type": "string" + }, + { + "description": "The topic for the exception to the default action taken. May include wildcard characters.", + "in": "path", + "name": "subscribeTopicException", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscribe Topic Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAclProfileSubscribeTopicExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Subscribe Topic Exception object.", + "tags": [ + "all", + "msgVpn", + "aclProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles": { + "get": { + "description": "Get a list of OAuth Profile objects.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfiles", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OAuth Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OAuth Profile objects.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}": { + "get": { + "description": "Get an OAuth Profile object.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OAuth Profile object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}/clientRequiredClaims": { + "get": { + "description": "Get a list of Required Claim objects.\n\nAdditional claims to be verified in the ID token.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientRequiredClaimName|x|\nmsgVpnName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfileClientRequiredClaims", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Required Claim objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Required Claim objects.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}/clientRequiredClaims/{clientRequiredClaimName}": { + "get": { + "description": "Get a Required Claim object.\n\nAdditional claims to be verified in the ID token.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientRequiredClaimName|x|\nmsgVpnName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfileClientRequiredClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ID token claim to verify.", + "in": "path", + "name": "clientRequiredClaimName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileClientRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Required Claim object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}/resourceServerRequiredClaims": { + "get": { + "description": "Get a list of Required Claim objects.\n\nAdditional claims to be verified in the access token.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\noauthProfileName|x|\nresourceServerRequiredClaimName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfileResourceServerRequiredClaims", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Required Claim objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Required Claim objects.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProfiles/{oauthProfileName}/resourceServerRequiredClaims/{resourceServerRequiredClaimName}": { + "get": { + "description": "Get a Required Claim object.\n\nAdditional claims to be verified in the access token.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\noauthProfileName|x|\nresourceServerRequiredClaimName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.25.", + "operationId": "getMsgVpnAuthenticationOauthProfileResourceServerRequiredClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the access token claim to verify.", + "in": "path", + "name": "resourceServerRequiredClaimName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProfileResourceServerRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Required Claim object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProviders": { + "get": { + "deprecated": true, + "description": "Get a list of OAuth Provider objects.\n\nOAuth Providers contain information about the issuer of an OAuth token that is needed to validate the token and derive a client username from it.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naudienceClaimName||x\naudienceClaimSource||x\naudienceClaimValue||x\naudienceValidationEnabled||x\nauthenticationSuccessCount||x\nauthorizationGroupClaimName||x\nauthorizationGroupClaimSource||x\nauthorizationGroupEnabled||x\ndisconnectOnTokenExpirationEnabled||x\nenabled||x\njwksLastRefreshFailureReason||x\njwksLastRefreshFailureTime||x\njwksLastRefreshTime||x\njwksNextScheduledRefreshTime||x\njwksRefreshFailureCount||x\njwksRefreshInterval||x\njwksUri||x\nloginFailureIncorrectAudienceValueCount||x\nloginFailureInvalidAudienceValueCount||x\nloginFailureInvalidAuthorizationGroupValueCount||x\nloginFailureInvalidJwtSignatureCount||x\nloginFailureInvalidUsernameValueCount||x\nloginFailureMismatchedUsernameCount||x\nloginFailureMissingAudienceCount||x\nloginFailureMissingJwkCount||x\nloginFailureMissingOrInvalidTokenCount||x\nloginFailureMissingUsernameCount||x\nloginFailureTokenExpiredCount||x\nloginFailureTokenIntrospectionErroredCount||x\nloginFailureTokenIntrospectionFailureCount||x\nloginFailureTokenIntrospectionHttpsErrorCount||x\nloginFailureTokenIntrospectionInvalidCount||x\nloginFailureTokenIntrospectionTimeoutCount||x\nloginFailureTokenNotValidYetCount||x\nloginFailureUnsupportedAlgCount||x\nmissingAuthorizationGroupCount||x\nmsgVpnName|x|x\noauthProviderName|x|x\ntokenIgnoreTimeLimitsEnabled||x\ntokenIntrospectionAverageTime||x\ntokenIntrospectionLastFailureReason||x\ntokenIntrospectionLastFailureTime||x\ntokenIntrospectionParameterName||x\ntokenIntrospectionSuccessCount||x\ntokenIntrospectionTimeout||x\ntokenIntrospectionUri||x\ntokenIntrospectionUsername||x\nusernameClaimName||x\nusernameClaimSource||x\nusernameValidateEnabled||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "operationId": "getMsgVpnAuthenticationOauthProviders", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OAuth Provider objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProvidersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OAuth Provider objects.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + } + }, + "/msgVpns/{msgVpnName}/authenticationOauthProviders/{oauthProviderName}": { + "get": { + "deprecated": true, + "description": "Get an OAuth Provider object.\n\nOAuth Providers contain information about the issuer of an OAuth token that is needed to validate the token and derive a client username from it.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\naudienceClaimName||x\naudienceClaimSource||x\naudienceClaimValue||x\naudienceValidationEnabled||x\nauthenticationSuccessCount||x\nauthorizationGroupClaimName||x\nauthorizationGroupClaimSource||x\nauthorizationGroupEnabled||x\ndisconnectOnTokenExpirationEnabled||x\nenabled||x\njwksLastRefreshFailureReason||x\njwksLastRefreshFailureTime||x\njwksLastRefreshTime||x\njwksNextScheduledRefreshTime||x\njwksRefreshFailureCount||x\njwksRefreshInterval||x\njwksUri||x\nloginFailureIncorrectAudienceValueCount||x\nloginFailureInvalidAudienceValueCount||x\nloginFailureInvalidAuthorizationGroupValueCount||x\nloginFailureInvalidJwtSignatureCount||x\nloginFailureInvalidUsernameValueCount||x\nloginFailureMismatchedUsernameCount||x\nloginFailureMissingAudienceCount||x\nloginFailureMissingJwkCount||x\nloginFailureMissingOrInvalidTokenCount||x\nloginFailureMissingUsernameCount||x\nloginFailureTokenExpiredCount||x\nloginFailureTokenIntrospectionErroredCount||x\nloginFailureTokenIntrospectionFailureCount||x\nloginFailureTokenIntrospectionHttpsErrorCount||x\nloginFailureTokenIntrospectionInvalidCount||x\nloginFailureTokenIntrospectionTimeoutCount||x\nloginFailureTokenNotValidYetCount||x\nloginFailureUnsupportedAlgCount||x\nmissingAuthorizationGroupCount||x\nmsgVpnName|x|x\noauthProviderName|x|x\ntokenIgnoreTimeLimitsEnabled||x\ntokenIntrospectionAverageTime||x\ntokenIntrospectionLastFailureReason||x\ntokenIntrospectionLastFailureTime||x\ntokenIntrospectionParameterName||x\ntokenIntrospectionSuccessCount||x\ntokenIntrospectionTimeout||x\ntokenIntrospectionUri||x\ntokenIntrospectionUsername||x\nusernameClaimName||x\nusernameClaimSource||x\nusernameValidateEnabled||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.25. Replaced by authenticationOauthProfiles.", + "operationId": "getMsgVpnAuthenticationOauthProvider", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the OAuth Provider.", + "in": "path", + "name": "oauthProviderName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Provider object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthenticationOauthProviderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OAuth Provider object.", + "tags": [ + "all", + "msgVpn", + "authenticationOauthProvider" + ] + } + }, + "/msgVpns/{msgVpnName}/authorizationGroups": { + "get": { + "description": "Get a list of Authorization Group objects.\n\nTo use client authorization groups configured on an external server to provide client authorizations, Authorization Group objects must be created on the Message VPN that match the authorization groups provisioned on the external server. These objects must be configured with the client profiles and ACL profiles that will be assigned to the clients that belong to those authorization groups. A newly created group is placed at the end of the group list which is the lowest priority.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nauthorizationGroupName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnAuthorizationGroups", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Authorization Group objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Authorization Group objects.", + "tags": [ + "all", + "msgVpn", + "authorizationGroup" + ] + } + }, + "/msgVpns/{msgVpnName}/authorizationGroups/{authorizationGroupName}": { + "get": { + "description": "Get an Authorization Group object.\n\nTo use client authorization groups configured on an external server to provide client authorizations, Authorization Group objects must be created on the Message VPN that match the authorization groups provisioned on the external server. These objects must be configured with the client profiles and ACL profiles that will be assigned to the clients that belong to those authorization groups. A newly created group is placed at the end of the group list which is the lowest priority.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nauthorizationGroupName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnAuthorizationGroup", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Authorization Group. For LDAP groups, special care is needed if the group name contains special characters such as '#', '+', ';', '=' as the value of the group name returned from the LDAP server might prepend those characters with '\\'. For example a group name called 'test#,lab,com' will be returned from the LDAP server as 'test\\#,lab,com'.", + "in": "path", + "name": "authorizationGroupName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Authorization Group object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnAuthorizationGroupResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an Authorization Group object.", + "tags": [ + "all", + "msgVpn", + "authorizationGroup" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges": { + "get": { + "description": "Get a list of Bridge objects.\n\nBridges can be used to link two Message VPNs so that messages published to one Message VPN that match the topic subscriptions set for the bridge are also delivered to the linked Message VPN.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|\nbridgeVirtualRouter|x|\ncounter.controlRxByteCount||x\ncounter.controlRxMsgCount||x\ncounter.controlTxByteCount||x\ncounter.controlTxMsgCount||x\ncounter.dataRxByteCount||x\ncounter.dataRxMsgCount||x\ncounter.dataTxByteCount||x\ncounter.dataTxMsgCount||x\ncounter.discardedRxMsgCount||x\ncounter.discardedTxMsgCount||x\ncounter.loginRxMsgCount||x\ncounter.loginTxMsgCount||x\ncounter.msgSpoolRxMsgCount||x\ncounter.rxByteCount||x\ncounter.rxMsgCount||x\ncounter.txByteCount||x\ncounter.txMsgCount||x\nmsgVpnName|x|\nrate.averageRxByteRate||x\nrate.averageRxMsgRate||x\nrate.averageTxByteRate||x\nrate.averageTxMsgRate||x\nrate.rxByteRate||x\nrate.rxMsgRate||x\nrate.txByteRate||x\nrate.txMsgRate||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnBridges", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Bridge objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Bridge objects.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}": { + "get": { + "description": "Get a Bridge object.\n\nBridges can be used to link two Message VPNs so that messages published to one Message VPN that match the topic subscriptions set for the bridge are also delivered to the linked Message VPN.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|\nbridgeVirtualRouter|x|\ncounter.controlRxByteCount||x\ncounter.controlRxMsgCount||x\ncounter.controlTxByteCount||x\ncounter.controlTxMsgCount||x\ncounter.dataRxByteCount||x\ncounter.dataRxMsgCount||x\ncounter.dataTxByteCount||x\ncounter.dataTxMsgCount||x\ncounter.discardedRxMsgCount||x\ncounter.discardedTxMsgCount||x\ncounter.loginRxMsgCount||x\ncounter.loginTxMsgCount||x\ncounter.msgSpoolRxMsgCount||x\ncounter.rxByteCount||x\ncounter.rxMsgCount||x\ncounter.txByteCount||x\ncounter.txMsgCount||x\nmsgVpnName|x|\nrate.averageRxByteRate||x\nrate.averageRxMsgRate||x\nrate.averageTxByteRate||x\nrate.averageTxMsgRate||x\nrate.rxByteRate||x\nrate.rxMsgRate||x\nrate.txByteRate||x\nrate.txMsgRate||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Bridge object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Bridge object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/localSubscriptions": { + "get": { + "description": "Get a list of Bridge Local Subscriptions objects.\n\nA Local Subscription is a topic subscription used by a remote Message VPN Bridge to attract messages from this broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|\nbridgeVirtualRouter|x|\nlocalSubscriptionTopic|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnBridgeLocalSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Bridge Local Subscriptions objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeLocalSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Bridge Local Subscriptions objects.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/localSubscriptions/{localSubscriptionTopic}": { + "get": { + "description": "Get a Bridge Local Subscriptions object.\n\nA Local Subscription is a topic subscription used by a remote Message VPN Bridge to attract messages from this broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|\nbridgeVirtualRouter|x|\nlocalSubscriptionTopic|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnBridgeLocalSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Bridge local subscription.", + "in": "path", + "name": "localSubscriptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Bridge Local Subscriptions object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeLocalSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Bridge Local Subscriptions object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/remoteMsgVpns": { + "get": { + "description": "Get a list of Remote Message VPN objects.\n\nThe Remote Message VPN is the Message VPN that the Bridge connects to.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|\nbridgeVirtualRouter|x|\nmsgVpnName|x|\nremoteMsgVpnInterface|x|\nremoteMsgVpnLocation|x|\nremoteMsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnBridgeRemoteMsgVpns", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Remote Message VPN objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Remote Message VPN objects.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/remoteMsgVpns/{remoteMsgVpnName},{remoteMsgVpnLocation},{remoteMsgVpnInterface}": { + "get": { + "description": "Get a Remote Message VPN object.\n\nThe Remote Message VPN is the Message VPN that the Bridge connects to.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|\nbridgeVirtualRouter|x|\nmsgVpnName|x|\nremoteMsgVpnInterface|x|\nremoteMsgVpnLocation|x|\nremoteMsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnBridgeRemoteMsgVpn", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Message VPN.", + "in": "path", + "name": "remoteMsgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The location of the remote Message VPN as either an FQDN with port, IP address with port, or virtual router name (starting with \"v:\").", + "in": "path", + "name": "remoteMsgVpnLocation", + "required": true, + "type": "string" + }, + { + "description": "The physical interface on the local Message VPN host for connecting to the remote Message VPN. By default, an interface is chosen automatically (recommended), but if specified, `remoteMsgVpnLocation` must not be a virtual router name.", + "in": "path", + "name": "remoteMsgVpnInterface", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Message VPN object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteMsgVpnResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Remote Message VPN object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/remoteSubscriptions": { + "get": { + "description": "Get a list of Remote Subscription objects.\n\nA Remote Subscription is a topic subscription used by the Message VPN Bridge to attract messages from the remote message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|\nbridgeVirtualRouter|x|\nmsgVpnName|x|\nremoteSubscriptionTopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnBridgeRemoteSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Remote Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Remote Subscription objects.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/remoteSubscriptions/{remoteSubscriptionTopic}": { + "get": { + "description": "Get a Remote Subscription object.\n\nA Remote Subscription is a topic subscription used by the Message VPN Bridge to attract messages from the remote message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|\nbridgeVirtualRouter|x|\nmsgVpnName|x|\nremoteSubscriptionTopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnBridgeRemoteSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Bridge remote subscription.", + "in": "path", + "name": "remoteSubscriptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeRemoteSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Remote Subscription object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/tlsTrustedCommonNames": { + "get": { + "deprecated": true, + "description": "Get a list of Trusted Common Name objects.\n\nThe Trusted Common Names for the Bridge are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|x\nbridgeVirtualRouter|x|x\nmsgVpnName|x|x\ntlsTrustedCommonName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getMsgVpnBridgeTlsTrustedCommonNames", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Trusted Common Name objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Trusted Common Name objects.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/bridges/{bridgeName},{bridgeVirtualRouter}/tlsTrustedCommonNames/{tlsTrustedCommonName}": { + "get": { + "deprecated": true, + "description": "Get a Trusted Common Name object.\n\nThe Trusted Common Names for the Bridge are used by encrypted transports to verify the name in the certificate presented by the remote node. They must include the common name of the remote node's server certificate or client certificate, depending upon the initiator of the connection.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nbridgeName|x|x\nbridgeVirtualRouter|x|x\nmsgVpnName|x|x\ntlsTrustedCommonName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.18. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getMsgVpnBridgeTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Bridge.", + "in": "path", + "name": "bridgeName", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the Bridge.", + "in": "path", + "name": "bridgeVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The expected trusted common name of the remote certificate.", + "in": "path", + "name": "tlsTrustedCommonName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trusted Common Name object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnBridgeTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Trusted Common Name object.", + "tags": [ + "all", + "msgVpn", + "bridge" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules": { + "get": { + "description": "Get a list of Certificate Matching Rule objects.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given username.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nruleName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnCertMatchingRules", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRulesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule objects.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules/{ruleName}": { + "get": { + "description": "Get a Certificate Matching Rule object.\n\nA Cert Matching Rule is a collection of conditions and attribute filters that all have to be satisfied for certificate to be acceptable as authentication for a given username.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nruleName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnCertMatchingRule", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules/{ruleName}/attributeFilters": { + "get": { + "description": "Get a list of Certificate Matching Rule Attribute Filter objects.\n\nA Cert Matching Rule Attribute Filter compares a username attribute to a string.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nfilterName|x|\nmsgVpnName|x|\nruleName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getMsgVpnCertMatchingRuleAttributeFilters", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule Attribute Filter objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFiltersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule Attribute Filter objects.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules/{ruleName}/attributeFilters/{filterName}": { + "get": { + "description": "Get a Certificate Matching Rule Attribute Filter object.\n\nA Cert Matching Rule Attribute Filter compares a username attribute to a string.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nfilterName|x|\nmsgVpnName|x|\nruleName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.28.", + "operationId": "getMsgVpnCertMatchingRuleAttributeFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "The name of the filter.", + "in": "path", + "name": "filterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Attribute Filter object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleAttributeFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule Attribute Filter object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules/{ruleName}/conditions": { + "get": { + "description": "Get a list of Certificate Matching Rule Condition objects.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a username attribute or an expression.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nruleName|x|\nsource|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnCertMatchingRuleConditions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Certificate Matching Rule Condition objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Certificate Matching Rule Condition objects.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/certMatchingRules/{ruleName}/conditions/{source}": { + "get": { + "description": "Get a Certificate Matching Rule Condition object.\n\nA Cert Matching Rule Condition compares data extracted from a certificate to a username attribute or an expression.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nruleName|x|\nsource|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnCertMatchingRuleCondition", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the rule.", + "in": "path", + "name": "ruleName", + "required": true, + "type": "string" + }, + { + "description": "Certificate field to be compared with the Attribute.", + "in": "path", + "name": "source", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Certificate Matching Rule Condition object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnCertMatchingRuleConditionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Certificate Matching Rule Condition object.", + "tags": [ + "all", + "msgVpn", + "certMatchingRule" + ] + } + }, + "/msgVpns/{msgVpnName}/clientProfiles": { + "get": { + "description": "Get a list of Client Profile objects.\n\nClient Profiles are used to assign common configuration properties to clients that have been successfully authorized.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nallowCutThroughForwardingEnabled||x\napiQueueManagementCopyFromOnCreateName||x\napiTopicEndpointManagementCopyFromOnCreateName||x\nclientProfileName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnClientProfiles", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Profile objects.", + "tags": [ + "all", + "msgVpn", + "clientProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/clientProfiles/{clientProfileName}": { + "get": { + "description": "Get a Client Profile object.\n\nClient Profiles are used to assign common configuration properties to clients that have been successfully authorized.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nallowCutThroughForwardingEnabled||x\napiQueueManagementCopyFromOnCreateName||x\napiTopicEndpointManagementCopyFromOnCreateName||x\nclientProfileName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnClientProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Profile.", + "in": "path", + "name": "clientProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Profile object.", + "tags": [ + "all", + "msgVpn", + "clientProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/clientUsernames": { + "get": { + "description": "Get a list of Client Username objects.\n\nA client is only authorized to connect to a Message VPN that is associated with a Client Username that the client has been assigned.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientUsername|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnClientUsernames", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Username objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Username objects.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + } + }, + "/msgVpns/{msgVpnName}/clientUsernames/{clientUsername}": { + "get": { + "description": "Get a Client Username object.\n\nA client is only authorized to connect to a Message VPN that is associated with a Client Username that the client has been assigned.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientUsername|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnClientUsername", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Username object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Username object.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + } + }, + "/msgVpns/{msgVpnName}/clientUsernames/{clientUsername}/attributes": { + "get": { + "description": "Get a list of Client Username Attribute objects.\n\nA ClientUsername Attribute is a key+value pair that can be used to locate a client username, for example when using client certificate mapping.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nattributeName|x|\nattributeValue|x|\nclientUsername|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnClientUsernameAttributes", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Username Attribute objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Username Attribute objects.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + } + }, + "/msgVpns/{msgVpnName}/clientUsernames/{clientUsername}/attributes/{attributeName},{attributeValue}": { + "get": { + "description": "Get a Client Username Attribute object.\n\nA ClientUsername Attribute is a key+value pair that can be used to locate a client username, for example when using client certificate mapping.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nattributeName|x|\nattributeValue|x|\nclientUsername|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnClientUsernameAttribute", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client Username.", + "in": "path", + "name": "clientUsername", + "required": true, + "type": "string" + }, + { + "description": "The name of the Attribute.", + "in": "path", + "name": "attributeName", + "required": true, + "type": "string" + }, + { + "description": "The value of the Attribute.", + "in": "path", + "name": "attributeValue", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Username Attribute object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientUsernameAttributeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Username Attribute object.", + "tags": [ + "all", + "msgVpn", + "clientUsername" + ] + } + }, + "/msgVpns/{msgVpnName}/clients": { + "get": { + "description": "Get a list of Client objects.\n\nApplications or devices that connect to message brokers to send and/or receive messages are represented as Clients.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClients", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client objects.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}": { + "get": { + "description": "Get a Client object.\n\nApplications or devices that connect to message brokers to send and/or receive messages are represented as Clients.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClient", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client object.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/connections": { + "get": { + "description": "Get a list of Client Connection objects.\n\nA Client Connection represents the Transmission Control Protocol (TCP) connection the Client uses to communicate with the message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientAddress|x|\nclientName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClientConnections", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Connection objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientConnectionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Connection objects.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/connections/{clientAddress}": { + "get": { + "description": "Get a Client Connection object.\n\nA Client Connection represents the Transmission Control Protocol (TCP) connection the Client uses to communicate with the message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientAddress|x|\nclientName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClientConnection", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "description": "The IP address and TCP port on the Client side of the Client Connection.", + "in": "path", + "name": "clientAddress", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Connection object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientConnectionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Connection object.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/rxFlows": { + "get": { + "description": "Get a list of Client Receive Flow objects.\n\nClient Receive Flows are used by clients to publish Guaranteed messages to a message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nflowId|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClientRxFlows", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Receive Flow objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientRxFlowsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Receive Flow objects.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/rxFlows/{flowId}": { + "get": { + "description": "Get a Client Receive Flow object.\n\nClient Receive Flows are used by clients to publish Guaranteed messages to a message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nflowId|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClientRxFlow", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the flow.", + "in": "path", + "name": "flowId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Receive Flow object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientRxFlowResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Receive Flow object.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/subscriptions": { + "get": { + "description": "Get a list of Client Subscription objects.\n\nOnce clients are authenticated on the message broker they can add and remove Client Subscriptions for Direct messages published to the Message VPN to which they have connected.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nmsgVpnName|x|\nsubscriptionTopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClientSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Subscription objects.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/subscriptions/{subscriptionTopic}": { + "get": { + "description": "Get a Client Subscription object.\n\nOnce clients are authenticated on the message broker they can add and remove Client Subscriptions for Direct messages published to the Message VPN to which they have connected.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nmsgVpnName|x|\nsubscriptionTopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClientSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Subscription.", + "in": "path", + "name": "subscriptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Subscription object.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/transactedSessions": { + "get": { + "description": "Get a list of Client Transacted Session objects.\n\nTransacted Sessions enable clients to group multiple message send and/or receive operations together in single, atomic units known as local transactions.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nmsgVpnName|x|\nsessionName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClientTransactedSessions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Transacted Session objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Transacted Session objects.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/transactedSessions/{sessionName}": { + "get": { + "description": "Get a Client Transacted Session object.\n\nTransacted Sessions enable clients to group multiple message send and/or receive operations together in single, atomic units known as local transactions.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nmsgVpnName|x|\nsessionName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClientTransactedSession", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Transacted Session.", + "in": "path", + "name": "sessionName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Transacted Session object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientTransactedSessionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Transacted Session object.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/txFlows": { + "get": { + "description": "Get a list of Client Transmit Flow objects.\n\nClient Transmit Flows are used by clients to consume Guaranteed messages from a message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nflowId|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClientTxFlows", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Client Transmit Flow objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientTxFlowsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Client Transmit Flow objects.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/clients/{clientName}/txFlows/{flowId}": { + "get": { + "description": "Get a Client Transmit Flow object.\n\nClient Transmit Flows are used by clients to consume Guaranteed messages from a message broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientName|x|\nflowId|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnClientTxFlow", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Client.", + "in": "path", + "name": "clientName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the flow.", + "in": "path", + "name": "flowId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Client Transmit Flow object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnClientTxFlowResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Client Transmit Flow object.", + "tags": [ + "all", + "msgVpn", + "client" + ] + } + }, + "/msgVpns/{msgVpnName}/configSyncRemoteNodes": { + "get": { + "deprecated": true, + "description": "Get a list of Config Sync Remote Node objects.\n\nA Config Sync Remote Node object contains information about the status of the table for this Message VPN with respect to a remote node.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nlastMsgRxTime||x\nmsgVpnName|x|x\nremoteNodeName|x|x\nrole||x\nstale||x\nstate||x\ntimeInState||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.22. This attribute has been deprecated.", + "operationId": "getMsgVpnConfigSyncRemoteNodes", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Config Sync Remote Node objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnConfigSyncRemoteNodesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Config Sync Remote Node objects.", + "tags": [ + "all", + "msgVpn", + "configSyncRemoteNode" + ] + } + }, + "/msgVpns/{msgVpnName}/configSyncRemoteNodes/{remoteNodeName}": { + "get": { + "deprecated": true, + "description": "Get a Config Sync Remote Node object.\n\nA Config Sync Remote Node object contains information about the status of the table for this Message VPN with respect to a remote node.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nlastMsgRxTime||x\nmsgVpnName|x|x\nremoteNodeName|x|x\nrole||x\nstale||x\nstate||x\ntimeInState||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.22. This attribute has been deprecated.", + "operationId": "getMsgVpnConfigSyncRemoteNode", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Config Sync Remote Node.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Config Sync Remote Node object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnConfigSyncRemoteNodeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Config Sync Remote Node object.", + "tags": [ + "all", + "msgVpn", + "configSyncRemoteNode" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches": { + "get": { + "description": "Get a list of Distributed Cache objects.\n\nA Distributed Cache is a collection of one or more Cache Clusters that belong to the same Message VPN. Each Cache Cluster in a Distributed Cache is configured to subscribe to a different set of topics. This effectively divides up the configured topic space, to provide scaling to very large topic spaces or very high cached message throughput.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCaches", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Distributed Cache objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCachesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Distributed Cache objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}": { + "get": { + "description": "Get a Distributed Cache object.\n\nA Distributed Cache is a collection of one or more Cache Clusters that belong to the same Message VPN. Each Cache Cluster in a Distributed Cache is configured to subscribe to a different set of topics. This effectively divides up the configured topic space, to provide scaling to very large topic spaces or very high cached message throughput.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Distributed Cache object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Distributed Cache object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters": { + "get": { + "description": "Get a list of Cache Cluster objects.\n\nA Cache Cluster is a collection of one or more Cache Instances that subscribe to exactly the same topics. Cache Instances are grouped together in a Cache Cluster for the purpose of fault tolerance and load balancing. As published messages are received, the message broker message bus sends these live data messages to the Cache Instances in the Cache Cluster. This enables client cache requests to be served by any of Cache Instances in the Cache Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusters", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Cache Cluster objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClustersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Cache Cluster objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}": { + "get": { + "description": "Get a Cache Cluster object.\n\nA Cache Cluster is a collection of one or more Cache Instances that subscribe to exactly the same topics. Cache Instances are grouped together in a Cache Cluster for the purpose of fault tolerance and load balancing. As published messages are received, the message broker message bus sends these live data messages to the Cache Instances in the Cache Cluster. This enables client cache requests to be served by any of Cache Instances in the Cache Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Cluster object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/globalCachingHomeClusters": { + "get": { + "description": "Get a list of Home Cache Cluster objects.\n\nA Home Cache Cluster is a Cache Cluster that is the \"definitive\" Cache Cluster for a given topic in the context of the Global Caching feature.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nhomeClusterName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterGlobalCachingHomeClusters", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Home Cache Cluster objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClustersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Home Cache Cluster objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/globalCachingHomeClusters/{homeClusterName}": { + "get": { + "description": "Get a Home Cache Cluster object.\n\nA Home Cache Cluster is a Cache Cluster that is the \"definitive\" Cache Cluster for a given topic in the context of the Global Caching feature.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nhomeClusterName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterGlobalCachingHomeCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Home Cache Cluster.", + "in": "path", + "name": "homeClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Home Cache Cluster object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Home Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/globalCachingHomeClusters/{homeClusterName}/topicPrefixes": { + "get": { + "description": "Get a list of Topic Prefix objects.\n\nA Topic Prefix is a prefix for a global topic that is available from the containing Home Cache Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nhomeClusterName|x|\nmsgVpnName|x|\ntopicPrefix|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixes", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Home Cache Cluster.", + "in": "path", + "name": "homeClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Prefix objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Prefix objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/globalCachingHomeClusters/{homeClusterName}/topicPrefixes/{topicPrefix}": { + "get": { + "description": "Get a Topic Prefix object.\n\nA Topic Prefix is a prefix for a global topic that is available from the containing Home Cache Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nhomeClusterName|x|\nmsgVpnName|x|\ntopicPrefix|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefix", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Home Cache Cluster.", + "in": "path", + "name": "homeClusterName", + "required": true, + "type": "string" + }, + { + "description": "A topic prefix for global topics available from the remote Home Cache Cluster. A wildcard (/>) is implied at the end of the prefix.", + "in": "path", + "name": "topicPrefix", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Prefix object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterGlobalCachingHomeClusterTopicPrefixResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Prefix object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances": { + "get": { + "description": "Get a list of Cache Instance objects.\n\nA Cache Instance is a single Cache process that belongs to a single Cache Cluster. A Cache Instance object provisioned on the broker is used to disseminate configuration information to the Cache process. Cache Instances listen for and cache live data messages that match the topic subscriptions configured for their parent Cache Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\ncounter.msgCount||x\ncounter.msgPeakCount||x\ncounter.requestQueueDepthCount||x\ncounter.requestQueueDepthPeakCount||x\ncounter.topicCount||x\ncounter.topicPeakCount||x\ninstanceName|x|\nmsgVpnName|x|\nrate.averageDataRxBytePeakRate||x\nrate.averageDataRxByteRate||x\nrate.averageDataRxMsgPeakRate||x\nrate.averageDataRxMsgRate||x\nrate.averageDataTxMsgPeakRate||x\nrate.averageDataTxMsgRate||x\nrate.averageRequestRxPeakRate||x\nrate.averageRequestRxRate||x\nrate.dataRxBytePeakRate||x\nrate.dataRxByteRate||x\nrate.dataRxMsgPeakRate||x\nrate.dataRxMsgRate||x\nrate.dataTxMsgPeakRate||x\nrate.dataTxMsgRate||x\nrate.requestRxPeakRate||x\nrate.requestRxRate||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterInstances", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Cache Instance objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstancesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Cache Instance objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}": { + "get": { + "description": "Get a Cache Instance object.\n\nA Cache Instance is a single Cache process that belongs to a single Cache Cluster. A Cache Instance object provisioned on the broker is used to disseminate configuration information to the Cache process. Cache Instances listen for and cache live data messages that match the topic subscriptions configured for their parent Cache Cluster.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\ncounter.msgCount||x\ncounter.msgPeakCount||x\ncounter.requestQueueDepthCount||x\ncounter.requestQueueDepthPeakCount||x\ncounter.topicCount||x\ncounter.topicPeakCount||x\ninstanceName|x|\nmsgVpnName|x|\nrate.averageDataRxBytePeakRate||x\nrate.averageDataRxByteRate||x\nrate.averageDataRxMsgPeakRate||x\nrate.averageDataRxMsgRate||x\nrate.averageDataTxMsgPeakRate||x\nrate.averageDataTxMsgRate||x\nrate.averageRequestRxPeakRate||x\nrate.averageRequestRxRate||x\nrate.dataRxBytePeakRate||x\nrate.dataRxByteRate||x\nrate.dataRxMsgPeakRate||x\nrate.dataRxMsgRate||x\nrate.dataTxMsgPeakRate||x\nrate.dataTxMsgRate||x\nrate.requestRxPeakRate||x\nrate.requestRxRate||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterInstance", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Cache Instance object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Cache Instance object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/remoteGlobalCachingHomeClusters": { + "get": { + "description": "Get a list of Remote Home Cache Cluster objects.\n\nA Remote Home Cache Cluster is a Home Cache Cluster that the Cache Instance is communicating with in the context of the Global Caching feature.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nhomeClusterName|x|\ninstanceName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClusters", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Remote Home Cache Cluster objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClustersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Remote Home Cache Cluster objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/remoteGlobalCachingHomeClusters/{homeClusterName}": { + "get": { + "description": "Get a Remote Home Cache Cluster object.\n\nA Remote Home Cache Cluster is a Home Cache Cluster that the Cache Instance is communicating with in the context of the Global Caching feature.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nhomeClusterName|x|\ninstanceName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeCluster", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The name of the remote Home Cache Cluster.", + "in": "path", + "name": "homeClusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Home Cache Cluster object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteGlobalCachingHomeClusterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Remote Home Cache Cluster object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/remoteTopics": { + "get": { + "description": "Get a list of Remote Topic objects.\n\nA Remote Topic is a topic for which the Cache Instance has cached messages.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\ninstanceName|x|\nmsgVpnName|x|\ntopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterInstanceRemoteTopics", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Remote Topic objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteTopicsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Remote Topic objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/instances/{instanceName}/remoteTopics/{topic}": { + "get": { + "description": "Get a Remote Topic object.\n\nA Remote Topic is a topic for which the Cache Instance has cached messages.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\ninstanceName|x|\nmsgVpnName|x|\ntopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterInstanceRemoteTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Instance.", + "in": "path", + "name": "instanceName", + "required": true, + "type": "string" + }, + { + "description": "The value of the remote Topic.", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Remote Topic object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterInstanceRemoteTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Remote Topic object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/topics": { + "get": { + "description": "Get a list of Topic objects.\n\nThe Cache Instances that belong to the containing Cache Cluster will cache any messages published to topics that match a Topic Subscription.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nmsgVpnName|x|\ntopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterTopics", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic objects.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/distributedCaches/{cacheName}/clusters/{clusterName}/topics/{topic}": { + "get": { + "description": "Get a Topic object.\n\nThe Cache Instances that belong to the containing Cache Cluster will cache any messages published to topics that match a Topic Subscription.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nclusterName|x|\nmsgVpnName|x|\ntopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDistributedCacheClusterTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Distributed Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Cache Cluster.", + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "description": "The value of the Topic in the form a/b/c.", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDistributedCacheClusterTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic object.", + "tags": [ + "all", + "msgVpn", + "distributedCache" + ] + } + }, + "/msgVpns/{msgVpnName}/dmrBridges": { + "get": { + "description": "Get a list of DMR Bridge objects.\n\nA DMR Bridge is required to establish a data channel over a corresponding external link to the remote node for a given Message VPN. Each DMR Bridge identifies which external link the Message VPN should use, and what the name of the equivalent Message VPN at the remote node is.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nremoteNodeName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDmrBridges", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of DMR Bridge objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDmrBridgesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of DMR Bridge objects.", + "tags": [ + "all", + "msgVpn", + "dmrBridge" + ] + } + }, + "/msgVpns/{msgVpnName}/dmrBridges/{remoteNodeName}": { + "get": { + "description": "Get a DMR Bridge object.\n\nA DMR Bridge is required to establish a data channel over a corresponding external link to the remote node for a given Message VPN. Each DMR Bridge identifies which external link the Message VPN should use, and what the name of the equivalent Message VPN at the remote node is.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nremoteNodeName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnDmrBridge", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the node at the remote end of the DMR Bridge.", + "in": "path", + "name": "remoteNodeName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The DMR Bridge object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnDmrBridgeResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a DMR Bridge object.", + "tags": [ + "all", + "msgVpn", + "dmrBridge" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiConnectionFactories": { + "get": { + "description": "Get a list of JNDI Connection Factory objects.\n\nThe message broker provides an internal JNDI store for provisioned Connection Factory objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nconnectionFactoryName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnJndiConnectionFactories", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of JNDI Connection Factory objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoriesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of JNDI Connection Factory objects.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiConnectionFactories/{connectionFactoryName}": { + "get": { + "description": "Get a JNDI Connection Factory object.\n\nThe message broker provides an internal JNDI store for provisioned Connection Factory objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nconnectionFactoryName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnJndiConnectionFactory", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the JMS Connection Factory.", + "in": "path", + "name": "connectionFactoryName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Connection Factory object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiConnectionFactoryResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a JNDI Connection Factory object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiQueues": { + "get": { + "description": "Get a list of JNDI Queue objects.\n\nThe message broker provides an internal JNDI store for provisioned Queue objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnJndiQueues", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of JNDI Queue objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiQueuesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of JNDI Queue objects.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiQueues/{queueName}": { + "get": { + "description": "Get a JNDI Queue object.\n\nThe message broker provides an internal JNDI store for provisioned Queue objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnJndiQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI name of the JMS Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Queue object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a JNDI Queue object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiTopics": { + "get": { + "description": "Get a list of JNDI Topic objects.\n\nThe message broker provides an internal JNDI store for provisioned Topic objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntopicName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnJndiTopics", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of JNDI Topic objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiTopicsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of JNDI Topic objects.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/jndiTopics/{topicName}": { + "get": { + "description": "Get a JNDI Topic object.\n\nThe message broker provides an internal JNDI store for provisioned Topic objects that clients can access through JNDI lookups.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntopicName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnJndiTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The JNDI name of the JMS Topic.", + "in": "path", + "name": "topicName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The JNDI Topic object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnJndiTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a JNDI Topic object.", + "tags": [ + "all", + "msgVpn", + "jndi" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttRetainCaches": { + "get": { + "description": "Get a list of MQTT Retain Cache objects.\n\nUsing MQTT retained messages allows publishing MQTT clients to indicate that a message must be stored for later delivery to subscribing clients when those subscribing clients add subscriptions matching the retained message's topic. An MQTT Retain Cache processes all retained messages for a Message VPN.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnMqttRetainCaches", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of MQTT Retain Cache objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttRetainCachesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of MQTT Retain Cache objects.", + "tags": [ + "all", + "msgVpn", + "mqttRetainCache" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttRetainCaches/{cacheName}": { + "get": { + "description": "Get an MQTT Retain Cache object.\n\nUsing MQTT retained messages allows publishing MQTT clients to indicate that a message must be stored for later delivery to subscribing clients when those subscribing clients add subscriptions matching the retained message's topic. An MQTT Retain Cache processes all retained messages for a Message VPN.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncacheName|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnMqttRetainCache", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the MQTT Retain Cache.", + "in": "path", + "name": "cacheName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Retain Cache object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttRetainCacheResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an MQTT Retain Cache object.", + "tags": [ + "all", + "msgVpn", + "mqttRetainCache" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions": { + "get": { + "description": "Get a list of MQTT Session objects.\n\nAn MQTT Session object is a virtual representation of an MQTT client connection. An MQTT session holds the state of an MQTT client (that is, it is used to contain a client's QoS 0 and QoS 1 subscription sets and any undelivered QoS 1 messages).\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncounter.mqttConnackErrorTxCount||x\ncounter.mqttConnackTxCount||x\ncounter.mqttConnectRxCount||x\ncounter.mqttDisconnectRxCount||x\ncounter.mqttPubcompTxCount||x\ncounter.mqttPublishQos0RxCount||x\ncounter.mqttPublishQos0TxCount||x\ncounter.mqttPublishQos1RxCount||x\ncounter.mqttPublishQos1TxCount||x\ncounter.mqttPublishQos2RxCount||x\ncounter.mqttPubrecTxCount||x\ncounter.mqttPubrelRxCount||x\nmqttSessionClientId|x|\nmqttSessionVirtualRouter|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnMqttSessions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of MQTT Session objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of MQTT Session objects.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions/{mqttSessionClientId},{mqttSessionVirtualRouter}": { + "get": { + "description": "Get an MQTT Session object.\n\nAn MQTT Session object is a virtual representation of an MQTT client connection. An MQTT session holds the state of an MQTT client (that is, it is used to contain a client's QoS 0 and QoS 1 subscription sets and any undelivered QoS 1 messages).\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncounter.mqttConnackErrorTxCount||x\ncounter.mqttConnackTxCount||x\ncounter.mqttConnectRxCount||x\ncounter.mqttDisconnectRxCount||x\ncounter.mqttPubcompTxCount||x\ncounter.mqttPublishQos0RxCount||x\ncounter.mqttPublishQos0TxCount||x\ncounter.mqttPublishQos1RxCount||x\ncounter.mqttPublishQos1TxCount||x\ncounter.mqttPublishQos2RxCount||x\ncounter.mqttPubrecTxCount||x\ncounter.mqttPubrelRxCount||x\nmqttSessionClientId|x|\nmqttSessionVirtualRouter|x|\nmsgVpnName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnMqttSession", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The MQTT Session object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an MQTT Session object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions/{mqttSessionClientId},{mqttSessionVirtualRouter}/subscriptions": { + "get": { + "description": "Get a list of Subscription objects.\n\nAn MQTT session contains a client's QoS 0 and QoS 1 subscription sets. On creation, a subscription defaults to QoS 0.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmqttSessionClientId|x|\nmqttSessionVirtualRouter|x|\nmsgVpnName|x|\nsubscriptionTopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnMqttSessionSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Subscription objects.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/mqttSessions/{mqttSessionClientId},{mqttSessionVirtualRouter}/subscriptions/{subscriptionTopic}": { + "get": { + "description": "Get a Subscription object.\n\nAn MQTT session contains a client's QoS 0 and QoS 1 subscription sets. On creation, a subscription defaults to QoS 0.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmqttSessionClientId|x|\nmqttSessionVirtualRouter|x|\nmsgVpnName|x|\nsubscriptionTopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnMqttSessionSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The Client ID of the MQTT Session, which corresponds to the ClientId provided in the MQTT CONNECT packet.", + "in": "path", + "name": "mqttSessionClientId", + "required": true, + "type": "string" + }, + { + "description": "The virtual router of the MQTT Session.", + "in": "path", + "name": "mqttSessionVirtualRouter", + "required": true, + "type": "string" + }, + { + "description": "The MQTT subscription topic.", + "in": "path", + "name": "subscriptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnMqttSessionSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Subscription object.", + "tags": [ + "all", + "msgVpn", + "mqttSession" + ] + } + }, + "/msgVpns/{msgVpnName}/queueTemplates": { + "get": { + "description": "Get a list of Queue Template objects.\n\nA Queue Template provides a mechanism for specifying the initial state for client created queues.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueTemplateName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnQueueTemplates", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue Template objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueTemplatesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue Template objects.", + "tags": [ + "all", + "msgVpn", + "queueTemplate" + ] + } + }, + "/msgVpns/{msgVpnName}/queueTemplates/{queueTemplateName}": { + "get": { + "description": "Get a Queue Template object.\n\nA Queue Template provides a mechanism for specifying the initial state for client created queues.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueTemplateName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnQueueTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue Template.", + "in": "path", + "name": "queueTemplateName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Template object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueTemplateResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue Template object.", + "tags": [ + "all", + "msgVpn", + "queueTemplate" + ] + } + }, + "/msgVpns/{msgVpnName}/queues": { + "get": { + "description": "Get a list of Queue objects.\n\nA Queue acts as both a destination that clients can publish messages to, and as an endpoint that clients can bind consumers to and consume messages from.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueName|x|\nvirtualRouter||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnQueues", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueuesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue objects.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}": { + "get": { + "description": "Get a Queue object.\n\nA Queue acts as both a destination that clients can publish messages to, and as an endpoint that clients can bind consumers to and consume messages from.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueName|x|\nvirtualRouter||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnQueue", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/msgs": { + "get": { + "description": "Get a list of Queue Message objects.\n\nA Queue Message is a packet of information sent from producers to consumers using the Queue.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnQueueMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue Message objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueMsgsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue Message objects.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/msgs/{msgId}": { + "get": { + "description": "Get a Queue Message object.\n\nA Queue Message is a packet of information sent from producers to consumers using the Queue.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnQueueMsg", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Message.", + "in": "path", + "name": "msgId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Message object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueMsgResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue Message object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/priorities": { + "get": { + "description": "Get a list of Queue Priority objects.\n\nQueues can optionally support priority message delivery; all messages of a higher priority are delivered before any messages of a lower priority. A Priority object contains information about the number and size of the messages with a particular priority in the Queue.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\npriority|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnQueuePriorities", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue Priority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueuePrioritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue Priority objects.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/priorities/{priority}": { + "get": { + "description": "Get a Queue Priority object.\n\nQueues can optionally support priority message delivery; all messages of a higher priority are delivered before any messages of a lower priority. A Priority object contains information about the number and size of the messages with a particular priority in the Queue.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\npriority|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnQueuePriority", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The level of the Priority, from 9 (highest) to 0 (lowest).", + "in": "path", + "name": "priority", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Priority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueuePriorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue Priority object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/subscriptions": { + "get": { + "description": "Get a list of Queue Subscription objects.\n\nOne or more Queue Subscriptions can be added to a durable queue so that Guaranteed messages published to matching topics are also delivered to and spooled by the queue.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueName|x|\nsubscriptionTopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnQueueSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue Subscription objects.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/subscriptions/{subscriptionTopic}": { + "get": { + "description": "Get a Queue Subscription object.\n\nOne or more Queue Subscriptions can be added to a durable queue so that Guaranteed messages published to matching topics are also delivered to and spooled by the queue.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueName|x|\nsubscriptionTopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnQueueSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Subscription.", + "in": "path", + "name": "subscriptionTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue Subscription object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/txFlows": { + "get": { + "description": "Get a list of Queue Transmit Flow objects.\n\nQueue Transmit Flows are used by clients to consume Guaranteed messages from a Queue.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nflowId|x|\nmsgVpnName|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnQueueTxFlows", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue Transmit Flow objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueTxFlowsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue Transmit Flow objects.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/queues/{queueName}/txFlows/{flowId}": { + "get": { + "description": "Get a Queue Transmit Flow object.\n\nQueue Transmit Flows are used by clients to consume Guaranteed messages from a Queue.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nflowId|x|\nmsgVpnName|x|\nqueueName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnQueueTxFlow", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Queue.", + "in": "path", + "name": "queueName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Flow.", + "in": "path", + "name": "flowId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Transmit Flow object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnQueueTxFlowResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue Transmit Flow object.", + "tags": [ + "all", + "msgVpn", + "queue" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs": { + "get": { + "description": "Get a list of Replay Log objects.\n\nWhen the Message Replay feature is enabled, message brokers store persistent messages in a Replay Log. These messages are kept until the log is full, after which the oldest messages are removed to free up space for new messages.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nreplayLogName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnReplayLogs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Replay Log objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Replay Log objects.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs/{replayLogName}": { + "get": { + "description": "Get a Replay Log object.\n\nWhen the Message Replay feature is enabled, message brokers store persistent messages in a Replay Log. These messages are kept until the log is full, after which the oldest messages are removed to free up space for new messages.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nreplayLogName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnReplayLog", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replay Log object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Replay Log object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs/{replayLogName}/msgs": { + "get": { + "description": "Get a list of Message objects.\n\nA Message is a packet of information sent from producers to consumers. Messages are the central units of information that clients exchange using the message broker and which are cached in the Replay Log.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\nreplayLogName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnReplayLogMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Message objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogMsgsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Message objects.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs/{replayLogName}/msgs/{msgId}": { + "get": { + "description": "Get a Message object.\n\nA Message is a packet of information sent from producers to consumers. Messages are the central units of information that clients exchange using the message broker and which are cached in the Replay Log.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\nreplayLogName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnReplayLogMsg", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the message.", + "in": "path", + "name": "msgId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogMsgResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Message object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs/{replayLogName}/topicFilterSubscriptions": { + "get": { + "description": "Get a list of Topic Filter Subscription objects.\n\nOne or more Subscriptions can be added to a replay-log so that only guaranteed messages published to matching topics are stored in the Replay Log.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nreplayLogName|x|\ntopicFilterSubscription|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnReplayLogTopicFilterSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Filter Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Filter Subscription objects.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replayLogs/{replayLogName}/topicFilterSubscriptions/{topicFilterSubscription}": { + "get": { + "description": "Get a Topic Filter Subscription object.\n\nOne or more Subscriptions can be added to a replay-log so that only guaranteed messages published to matching topics are stored in the Replay Log.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nreplayLogName|x|\ntopicFilterSubscription|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.27.", + "operationId": "getMsgVpnReplayLogTopicFilterSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Replay Log.", + "in": "path", + "name": "replayLogName", + "required": true, + "type": "string" + }, + { + "description": "The topic of the Subscription.", + "in": "path", + "name": "topicFilterSubscription", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Filter Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplayLogTopicFilterSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Filter Subscription object.", + "tags": [ + "all", + "msgVpn", + "replayLog" + ] + } + }, + "/msgVpns/{msgVpnName}/replicatedTopics": { + "get": { + "description": "Get a list of Replicated Topic objects.\n\nTo indicate which messages should be replicated between the active and standby site, a Replicated Topic subscription must be configured on a Message VPN. If a published message matches both a replicated topic and an endpoint on the active site, then the message is replicated to the standby site.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nreplicatedTopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnReplicatedTopics", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Replicated Topic objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplicatedTopicsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Replicated Topic objects.", + "tags": [ + "all", + "msgVpn", + "replicatedTopic" + ] + } + }, + "/msgVpns/{msgVpnName}/replicatedTopics/{replicatedTopic}": { + "get": { + "description": "Get a Replicated Topic object.\n\nTo indicate which messages should be replicated between the active and standby site, a Replicated Topic subscription must be configured on a Message VPN. If a published message matches both a replicated topic and an endpoint on the active site, then the message is replicated to the standby site.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nreplicatedTopic|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnReplicatedTopic", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The topic for applying replication. Published messages matching this topic will be replicated to the standby site.", + "in": "path", + "name": "replicatedTopic", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replicated Topic object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnReplicatedTopicResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Replicated Topic object.", + "tags": [ + "all", + "msgVpn", + "replicatedTopic" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints": { + "get": { + "description": "Get a list of REST Delivery Point objects.\n\nA REST Delivery Point manages delivery of messages from queues to a named list of REST Consumers.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnRestDeliveryPoints", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of REST Delivery Point objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of REST Delivery Point objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}": { + "get": { + "description": "Get a REST Delivery Point object.\n\nA REST Delivery Point manages delivery of messages from queues to a named list of REST Consumers.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnRestDeliveryPoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Delivery Point object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a REST Delivery Point object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings": { + "get": { + "description": "Get a list of Queue Binding objects.\n\nA Queue Binding for a REST Delivery Point attracts messages to be delivered to REST consumers. If the queue does not exist it can be created subsequently, and once the queue is operational the broker performs the queue binding. Removing the queue binding does not delete the queue itself. Similarly, removing the queue does not remove the queue binding, which fails until the queue is recreated or the queue binding is deleted.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueBindingName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnRestDeliveryPointQueueBindings", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Queue Binding objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Queue Binding objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings/{queueBindingName}": { + "get": { + "description": "Get a Queue Binding object.\n\nA Queue Binding for a REST Delivery Point attracts messages to be delivered to REST consumers. If the queue does not exist it can be created subsequently, and once the queue is operational the broker performs the queue binding. Removing the queue binding does not delete the queue itself. Similarly, removing the queue does not remove the queue binding, which fails until the queue is recreated or the queue binding is deleted.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nqueueBindingName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnRestDeliveryPointQueueBinding", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Queue Binding object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Queue Binding object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings/{queueBindingName}/protectedRequestHeaders": { + "get": { + "description": "Get a list of Protected Request Header objects.\n\nA protected request header to be added to the HTTP request. Unlike a non-protected request header, the header value cannot be displayed after it is set.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nheaderName|x|\nmsgVpnName|x|\nqueueBindingName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.30.", + "operationId": "getMsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaders", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Protected Request Header objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeadersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Protected Request Header objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings/{queueBindingName}/protectedRequestHeaders/{headerName}": { + "get": { + "description": "Get a Protected Request Header object.\n\nA protected request header to be added to the HTTP request. Unlike a non-protected request header, the header value cannot be displayed after it is set.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nheaderName|x|\nmsgVpnName|x|\nqueueBindingName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.30.", + "operationId": "getMsgVpnRestDeliveryPointQueueBindingProtectedRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The name of the protected HTTP request header.", + "in": "path", + "name": "headerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Protected Request Header object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingProtectedRequestHeaderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Protected Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings/{queueBindingName}/requestHeaders": { + "get": { + "description": "Get a list of Request Header objects.\n\nA request header to be added to the HTTP request.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nheaderName|x|\nmsgVpnName|x|\nqueueBindingName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.23.", + "operationId": "getMsgVpnRestDeliveryPointQueueBindingRequestHeaders", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Request Header objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeadersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Request Header objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/queueBindings/{queueBindingName}/requestHeaders/{headerName}": { + "get": { + "description": "Get a Request Header object.\n\nA request header to be added to the HTTP request.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nheaderName|x|\nmsgVpnName|x|\nqueueBindingName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.23.", + "operationId": "getMsgVpnRestDeliveryPointQueueBindingRequestHeader", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of a queue in the Message VPN.", + "in": "path", + "name": "queueBindingName", + "required": true, + "type": "string" + }, + { + "description": "The name of the HTTP request header.", + "in": "path", + "name": "headerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Request Header object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointQueueBindingRequestHeaderResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Request Header object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers": { + "get": { + "description": "Get a list of REST Consumer objects.\n\nREST Consumer objects establish HTTP connectivity to REST consumer applications who wish to receive messages from a broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncounter.httpRequestConnectionCloseTxMsgCount||x\ncounter.httpRequestOutstandingTxMsgCount||x\ncounter.httpRequestTimedOutTxMsgCount||x\ncounter.httpRequestTxByteCount||x\ncounter.httpRequestTxMsgCount||x\ncounter.httpResponseErrorRxMsgCount||x\ncounter.httpResponseRxByteCount||x\ncounter.httpResponseRxMsgCount||x\ncounter.httpResponseSuccessRxMsgCount||x\nmsgVpnName|x|\nrestConsumerName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumers", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of REST Consumer objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of REST Consumer objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}": { + "get": { + "description": "Get a REST Consumer object.\n\nREST Consumer objects establish HTTP connectivity to REST consumer applications who wish to receive messages from a broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncounter.httpRequestConnectionCloseTxMsgCount||x\ncounter.httpRequestOutstandingTxMsgCount||x\ncounter.httpRequestTimedOutTxMsgCount||x\ncounter.httpRequestTxByteCount||x\ncounter.httpRequestTxMsgCount||x\ncounter.httpResponseErrorRxMsgCount||x\ncounter.httpResponseRxByteCount||x\ncounter.httpResponseRxMsgCount||x\ncounter.httpResponseSuccessRxMsgCount||x\nmsgVpnName|x|\nrestConsumerName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.11.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumer", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The REST Consumer object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a REST Consumer object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}/oauthJwtClaims": { + "get": { + "description": "Get a list of Claim objects.\n\nA Claim is added to the JWT sent to the OAuth token request endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\noauthJwtClaimName|x|\nrestConsumerName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumerOauthJwtClaims", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Claim objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Claim objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}/oauthJwtClaims/{oauthJwtClaimName}": { + "get": { + "description": "Get a Claim object.\n\nA Claim is added to the JWT sent to the OAuth token request endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\noauthJwtClaimName|x|\nrestConsumerName|x|\nrestDeliveryPointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumerOauthJwtClaim", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The name of the additional claim. Cannot be \"exp\", \"iat\", or \"jti\".", + "in": "path", + "name": "oauthJwtClaimName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Claim object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerOauthJwtClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Claim object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}/tlsTrustedCommonNames": { + "get": { + "deprecated": true, + "description": "Get a list of Trusted Common Name objects.\n\nThe Trusted Common Names for the REST Consumer are used by encrypted transports to verify the name in the certificate presented by the remote REST consumer. They must include the common name of the remote REST consumer's server certificate.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|x\nrestConsumerName|x|x\nrestDeliveryPointName|x|x\ntlsTrustedCommonName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.17. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNames", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Trusted Common Name objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Trusted Common Name objects.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/restDeliveryPoints/{restDeliveryPointName}/restConsumers/{restConsumerName}/tlsTrustedCommonNames/{tlsTrustedCommonName}": { + "get": { + "deprecated": true, + "description": "Get a Trusted Common Name object.\n\nThe Trusted Common Names for the REST Consumer are used by encrypted transports to verify the name in the certificate presented by the remote REST consumer. They must include the common name of the remote REST consumer's server certificate.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|x\nrestConsumerName|x|x\nrestDeliveryPointName|x|x\ntlsTrustedCommonName|x|x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been deprecated since 2.17. Common Name validation has been replaced by Server Certificate Name validation.", + "operationId": "getMsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonName", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Delivery Point.", + "in": "path", + "name": "restDeliveryPointName", + "required": true, + "type": "string" + }, + { + "description": "The name of the REST Consumer.", + "in": "path", + "name": "restConsumerName", + "required": true, + "type": "string" + }, + { + "description": "The expected trusted common name of the remote certificate.", + "in": "path", + "name": "tlsTrustedCommonName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trusted Common Name object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnRestDeliveryPointRestConsumerTlsTrustedCommonNameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Trusted Common Name object.", + "tags": [ + "all", + "msgVpn", + "restDeliveryPoint" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles": { + "get": { + "description": "Get a list of Telemetry Profile objects.\n\nUsing the Telemetry Profile allows trace spans to be generated as messages are processed by the broker. The generated spans are stored persistently on the broker and may be consumed by the Solace receiver component of an OpenTelemetry Collector.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntelemetryProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfiles", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Telemetry Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Telemetry Profile objects.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}": { + "get": { + "description": "Get a Telemetry Profile object.\n\nUsing the Telemetry Profile allows trace spans to be generated as messages are processed by the broker. The generated spans are stored persistently on the broker and may be consumed by the Solace receiver component of an OpenTelemetry Collector.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntelemetryProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfile", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Telemetry Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Telemetry Profile object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/receiverAclConnectExceptions": { + "get": { + "description": "Get a list of Receiver ACL Connect Exception objects.\n\nA Receiver ACL Connect Exception is an exception to the default action to take when a receiver connects to the broker. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nreceiverAclConnectExceptionAddress|x|\ntelemetryProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileReceiverAclConnectExceptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Receiver ACL Connect Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Receiver ACL Connect Exception objects.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/receiverAclConnectExceptions/{receiverAclConnectExceptionAddress}": { + "get": { + "description": "Get a Receiver ACL Connect Exception object.\n\nA Receiver ACL Connect Exception is an exception to the default action to take when a receiver connects to the broker. Exceptions must be expressed as an IP address/netmask in CIDR form.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nreceiverAclConnectExceptionAddress|x|\ntelemetryProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileReceiverAclConnectException", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "The IP address/netmask of the receiver connect exception in CIDR form.", + "in": "path", + "name": "receiverAclConnectExceptionAddress", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Receiver ACL Connect Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileReceiverAclConnectExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Receiver ACL Connect Exception object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/traceFilters": { + "get": { + "description": "Get a list of Trace Filter objects.\n\nA Trace Filter controls which messages received by the broker will be traced. If an incoming message matches an enabled tracing filter's subscription, the message will be traced as it passes through the broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntelemetryProfileName|x|\ntraceFilterName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileTraceFilters", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Trace Filter objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFiltersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Trace Filter objects.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/traceFilters/{traceFilterName}": { + "get": { + "description": "Get a Trace Filter object.\n\nA Trace Filter controls which messages received by the broker will be traced. If an incoming message matches an enabled tracing filter's subscription, the message will be traced as it passes through the broker.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntelemetryProfileName|x|\ntraceFilterName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileTraceFilter", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Trace Filter object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Trace Filter object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/traceFilters/{traceFilterName}/subscriptions": { + "get": { + "description": "Get a list of Telemetry Trace Filter Subscription objects.\n\nTrace filter subscriptions control which messages will be attracted by the tracing filter.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nsubscription|x|\nsubscriptionSyntax|x|\ntelemetryProfileName|x|\ntraceFilterName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileTraceFilterSubscriptions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Telemetry Trace Filter Subscription objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Telemetry Trace Filter Subscription objects.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/telemetryProfiles/{telemetryProfileName}/traceFilters/{traceFilterName}/subscriptions/{subscription},{subscriptionSyntax}": { + "get": { + "description": "Get a Telemetry Trace Filter Subscription object.\n\nTrace filter subscriptions control which messages will be attracted by the tracing filter.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nsubscription|x|\nsubscriptionSyntax|x|\ntelemetryProfileName|x|\ntraceFilterName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.31.", + "operationId": "getMsgVpnTelemetryProfileTraceFilterSubscription", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Telemetry Profile.", + "in": "path", + "name": "telemetryProfileName", + "required": true, + "type": "string" + }, + { + "description": "A name used to identify the trace filter. Consider a name that describes the subscriptions contained within the filter, such as the name of the application and/or the scenario in which the trace filter might be enabled, such as \"appNameDebug\".", + "in": "path", + "name": "traceFilterName", + "required": true, + "type": "string" + }, + { + "description": "Messages matching this subscription will follow this filter's configuration.", + "in": "path", + "name": "subscription", + "required": true, + "type": "string" + }, + { + "description": "The syntax of the trace filter subscription.", + "in": "path", + "name": "subscriptionSyntax", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Telemetry Trace Filter Subscription object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTelemetryProfileTraceFilterSubscriptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Telemetry Trace Filter Subscription object.", + "tags": [ + "all", + "msgVpn", + "telemetryProfile" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpointTemplates": { + "get": { + "description": "Get a list of Topic Endpoint Template objects.\n\nA Topic Endpoint Template provides a mechanism for specifying the initial state for client created topic endpoints.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntopicEndpointTemplateName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnTopicEndpointTemplates", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Endpoint Template objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplatesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Endpoint Template objects.", + "tags": [ + "all", + "msgVpn", + "topicEndpointTemplate" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpointTemplates/{topicEndpointTemplateName}": { + "get": { + "description": "Get a Topic Endpoint Template object.\n\nA Topic Endpoint Template provides a mechanism for specifying the initial state for client created topic endpoints.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntopicEndpointTemplateName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.14.", + "operationId": "getMsgVpnTopicEndpointTemplate", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint Template.", + "in": "path", + "name": "topicEndpointTemplateName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint Template object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTemplateResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Endpoint Template object.", + "tags": [ + "all", + "msgVpn", + "topicEndpointTemplate" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints": { + "get": { + "description": "Get a list of Topic Endpoint objects.\n\nA Topic Endpoint attracts messages published to a topic for which the Topic Endpoint has a matching topic subscription. The topic subscription for the Topic Endpoint is specified in the client request to bind a Flow to that Topic Endpoint. Queues are significantly more flexible than Topic Endpoints and are the recommended approach for most applications. The use of Topic Endpoints should be restricted to JMS applications.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntopicEndpointName|x|\nvirtualRouter||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTopicEndpoints", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Endpoint objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Endpoint objects.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}": { + "get": { + "description": "Get a Topic Endpoint object.\n\nA Topic Endpoint attracts messages published to a topic for which the Topic Endpoint has a matching topic subscription. The topic subscription for the Topic Endpoint is specified in the client request to bind a Flow to that Topic Endpoint. Queues are significantly more flexible than Topic Endpoints and are the recommended approach for most applications. The use of Topic Endpoints should be restricted to JMS applications.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\ntopicEndpointName|x|\nvirtualRouter||x\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTopicEndpoint", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Endpoint object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/msgs": { + "get": { + "description": "Get a list of Topic Endpoint Message objects.\n\nA Topic Endpoint Message is a packet of information sent from producers to consumers using the Topic Endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\ntopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTopicEndpointMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Endpoint Message objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Endpoint Message objects.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/msgs/{msgId}": { + "get": { + "description": "Get a Topic Endpoint Message object.\n\nA Topic Endpoint Message is a packet of information sent from producers to consumers using the Topic Endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\ntopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTopicEndpointMsg", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Message.", + "in": "path", + "name": "msgId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint Message object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointMsgResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Endpoint Message object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/priorities": { + "get": { + "description": "Get a list of Topic Endpoint Priority objects.\n\nTopic Endpoints can optionally support priority message delivery; all messages of a higher priority are delivered before any messages of a lower priority. A Priority object contains information about the number and size of the messages with a particular priority in the Topic Endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\npriority|x|\ntopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTopicEndpointPriorities", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Endpoint Priority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointPrioritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Endpoint Priority objects.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/priorities/{priority}": { + "get": { + "description": "Get a Topic Endpoint Priority object.\n\nTopic Endpoints can optionally support priority message delivery; all messages of a higher priority are delivered before any messages of a lower priority. A Priority object contains information about the number and size of the messages with a particular priority in the Topic Endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\npriority|x|\ntopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTopicEndpointPriority", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The level of the Priority, from 9 (highest) to 0 (lowest).", + "in": "path", + "name": "priority", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint Priority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointPriorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Endpoint Priority object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/txFlows": { + "get": { + "description": "Get a list of Topic Endpoint Transmit Flow objects.\n\nTopic Endpoint Transmit Flows are used by clients to consume Guaranteed messages from a Topic Endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nflowId|x|\nmsgVpnName|x|\ntopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTopicEndpointTxFlows", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Topic Endpoint Transmit Flow objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTxFlowsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Topic Endpoint Transmit Flow objects.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/topicEndpoints/{topicEndpointName}/txFlows/{flowId}": { + "get": { + "description": "Get a Topic Endpoint Transmit Flow object.\n\nTopic Endpoint Transmit Flows are used by clients to consume Guaranteed messages from a Topic Endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nflowId|x|\nmsgVpnName|x|\ntopicEndpointName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTopicEndpointTxFlow", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The name of the Topic Endpoint.", + "in": "path", + "name": "topicEndpointName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Flow.", + "in": "path", + "name": "flowId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Topic Endpoint Transmit Flow object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTopicEndpointTxFlowResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Topic Endpoint Transmit Flow object.", + "tags": [ + "all", + "msgVpn", + "topicEndpoint" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions": { + "get": { + "description": "Get a list of Replicated Local Transaction or XA Transaction objects.\n\nTransactions can be used to group a set of Guaranteed messages to be published or consumed or both as an atomic unit of work.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nxid|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTransactions", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Replicated Local Transaction or XA Transaction objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTransactionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Replicated Local Transaction or XA Transaction objects.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions/{xid}": { + "get": { + "description": "Get a Replicated Local Transaction or XA Transaction object.\n\nTransactions can be used to group a set of Guaranteed messages to be published or consumed or both as an atomic unit of work.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\nxid|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTransaction", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Transaction.", + "in": "path", + "name": "xid", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Replicated Local Transaction or XA Transaction object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTransactionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Replicated Local Transaction or XA Transaction object.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions/{xid}/consumerMsgs": { + "get": { + "description": "Get a list of Transaction Consumer Message objects.\n\nA Transaction Consumer Message is a message that will be consumed as part of this Transaction once the Transaction is committed.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\nxid|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTransactionConsumerMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Transaction.", + "in": "path", + "name": "xid", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Transaction Consumer Message objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTransactionConsumerMsgsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Transaction Consumer Message objects.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions/{xid}/consumerMsgs/{msgId}": { + "get": { + "description": "Get a Transaction Consumer Message object.\n\nA Transaction Consumer Message is a message that will be consumed as part of this Transaction once the Transaction is committed.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\nxid|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTransactionConsumerMsg", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Transaction.", + "in": "path", + "name": "xid", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Message.", + "in": "path", + "name": "msgId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Transaction Consumer Message object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTransactionConsumerMsgResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Transaction Consumer Message object.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions/{xid}/publisherMsgs": { + "get": { + "description": "Get a list of Transaction Publisher Message objects.\n\nA Transaction Publisher Message is a message that will be published as part of this Transaction once the Transaction is committed.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\nxid|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTransactionPublisherMsgs", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Transaction.", + "in": "path", + "name": "xid", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Transaction Publisher Message objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTransactionPublisherMsgsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Transaction Publisher Message objects.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/msgVpns/{msgVpnName}/transactions/{xid}/publisherMsgs/{msgId}": { + "get": { + "description": "Get a Transaction Publisher Message object.\n\nA Transaction Publisher Message is a message that will be published as part of this Transaction once the Transaction is committed.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgId|x|\nmsgVpnName|x|\nxid|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"vpn/read-only\" is required to perform this operation.\n\nThis has been available since 2.12.", + "operationId": "getMsgVpnTransactionPublisherMsg", + "parameters": [ + { + "description": "The name of the Message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Transaction.", + "in": "path", + "name": "xid", + "required": true, + "type": "string" + }, + { + "description": "The identifier (ID) of the Message.", + "in": "path", + "name": "msgId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Transaction Publisher Message object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/MsgVpnTransactionPublisherMsgResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Transaction Publisher Message object.", + "tags": [ + "all", + "msgVpn", + "transaction" + ] + } + }, + "/oauthProfiles": { + "get": { + "description": "Get a list of OAuth Profile objects.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfiles", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of OAuth Profile objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfilesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of OAuth Profile objects.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}": { + "get": { + "description": "Get an OAuth Profile object.\n\nOAuth profiles specify how to securely authenticate to an OAuth provider.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfile", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The OAuth Profile object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an OAuth Profile object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/accessLevelGroups": { + "get": { + "description": "Get a list of Group Access Level objects.\n\nThe name of a group as it exists on the OAuth server being used to authenticate SEMP users.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ngroupName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileAccessLevelGroups", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Group Access Level objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Group Access Level objects.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/accessLevelGroups/{groupName}": { + "get": { + "description": "Get a Group Access Level object.\n\nThe name of a group as it exists on the OAuth server being used to authenticate SEMP users.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ngroupName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileAccessLevelGroup", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Group Access Level object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Group Access Level object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/accessLevelGroups/{groupName}/msgVpnAccessLevelExceptions": { + "get": { + "description": "Get a list of Message VPN Access-Level Exception objects.\n\nMessage VPN access-level exceptions for members of this group.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ngroupName|x|\nmsgVpnName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileAccessLevelGroupMsgVpnAccessLevelExceptions", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Message VPN Access-Level Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Message VPN Access-Level Exception objects.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/accessLevelGroups/{groupName}/msgVpnAccessLevelExceptions/{msgVpnName}": { + "get": { + "description": "Get a Message VPN Access-Level Exception object.\n\nMessage VPN access-level exceptions for members of this group.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ngroupName|x|\nmsgVpnName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileAccessLevelGroupMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the group.", + "in": "path", + "name": "groupName", + "required": true, + "type": "string" + }, + { + "description": "The name of the message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN Access-Level Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileAccessLevelGroupMsgVpnAccessLevelExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientAllowedHosts": { + "get": { + "description": "Get a list of Allowed Host Value objects.\n\nA valid hostname for this broker in OAuth redirects.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nallowedHost|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientAllowedHosts", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Allowed Host Value objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAllowedHostsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Allowed Host Value objects.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientAllowedHosts/{allowedHost}": { + "get": { + "description": "Get an Allowed Host Value object.\n\nA valid hostname for this broker in OAuth redirects.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nallowedHost|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientAllowedHost", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "An allowed value for the Host header.", + "in": "path", + "name": "allowedHost", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Allowed Host Value object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAllowedHostResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an Allowed Host Value object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientAuthorizationParameters": { + "get": { + "description": "Get a list of Authorization Parameter objects.\n\nAdditional parameters to be passed to the OAuth authorization endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nauthorizationParameterName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientAuthorizationParameters", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Authorization Parameter objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParametersResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Authorization Parameter objects.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientAuthorizationParameters/{authorizationParameterName}": { + "get": { + "description": "Get an Authorization Parameter object.\n\nAdditional parameters to be passed to the OAuth authorization endpoint.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nauthorizationParameterName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientAuthorizationParameter", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the authorization parameter.", + "in": "path", + "name": "authorizationParameterName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Authorization Parameter object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientAuthorizationParameterResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get an Authorization Parameter object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientRequiredClaims": { + "get": { + "description": "Get a list of Required Claim objects.\n\nAdditional claims to be verified in the ID token.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientRequiredClaimName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientRequiredClaims", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Required Claim objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Required Claim objects.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/clientRequiredClaims/{clientRequiredClaimName}": { + "get": { + "description": "Get a Required Claim object.\n\nAdditional claims to be verified in the ID token.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nclientRequiredClaimName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileClientRequiredClaim", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the ID token claim to verify.", + "in": "path", + "name": "clientRequiredClaimName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileClientRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Required Claim object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/defaultMsgVpnAccessLevelExceptions": { + "get": { + "description": "Get a list of Message VPN Access-Level Exception objects.\n\nDefault message VPN access-level exceptions.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileDefaultMsgVpnAccessLevelExceptions", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Message VPN Access-Level Exception objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Message VPN Access-Level Exception objects.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/defaultMsgVpnAccessLevelExceptions/{msgVpnName}": { + "get": { + "description": "Get a Message VPN Access-Level Exception object.\n\nDefault message VPN access-level exceptions.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nmsgVpnName|x|\noauthProfileName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileDefaultMsgVpnAccessLevelException", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the message VPN.", + "in": "path", + "name": "msgVpnName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Message VPN Access-Level Exception object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileDefaultMsgVpnAccessLevelExceptionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Message VPN Access-Level Exception object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/resourceServerRequiredClaims": { + "get": { + "description": "Get a list of Required Claim objects.\n\nAdditional claims to be verified in the access token.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\noauthProfileName|x|\nresourceServerRequiredClaimName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileResourceServerRequiredClaims", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Required Claim objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Required Claim objects.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/oauthProfiles/{oauthProfileName}/resourceServerRequiredClaims/{resourceServerRequiredClaimName}": { + "get": { + "description": "Get a Required Claim object.\n\nAdditional claims to be verified in the access token.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\noauthProfileName|x|\nresourceServerRequiredClaimName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.24.", + "operationId": "getOauthProfileResourceServerRequiredClaim", + "parameters": [ + { + "description": "The name of the OAuth profile.", + "in": "path", + "name": "oauthProfileName", + "required": true, + "type": "string" + }, + { + "description": "The name of the access token claim to verify.", + "in": "path", + "name": "resourceServerRequiredClaimName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Required Claim object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/OauthProfileResourceServerRequiredClaimResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Required Claim object.", + "tags": [ + "all", + "oauthProfile" + ] + } + }, + "/sessions": { + "get": { + "description": "Get a list of SEMP Session objects.\n\nAdministrative sessions for configuration and monitoring.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nsessionId|x|\nsessionUsername|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "getSessions", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of SEMP Session objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/SessionsResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of SEMP Session objects.", + "tags": [ + "all", + "session" + ] + } + }, + "/sessions/{sessionUsername},{sessionId}": { + "get": { + "description": "Get a SEMP Session object.\n\nAdministrative sessions for configuration and monitoring.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nsessionId|x|\nsessionUsername|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.21.", + "operationId": "getSession", + "parameters": [ + { + "description": "The username used for authorization.", + "in": "path", + "name": "sessionUsername", + "required": true, + "type": "string" + }, + { + "description": "The unique identifier for the session.", + "in": "path", + "name": "sessionId", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The SEMP Session object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/SessionResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a SEMP Session object.", + "tags": [ + "all", + "session" + ] + } + }, + "/standardDomainCertAuthorities": { + "get": { + "description": "Get a list of Standard Domain Certificate Authority objects.\n\nStandard Certificate Authorities trusted for domain verification.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getStandardDomainCertAuthorities", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Standard Domain Certificate Authority objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/StandardDomainCertAuthoritiesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Standard Domain Certificate Authority objects.", + "tags": [ + "all", + "standardDomainCertAuthority" + ] + } + }, + "/standardDomainCertAuthorities/{certAuthorityName}": { + "get": { + "description": "Get a Standard Domain Certificate Authority object.\n\nStandard Certificate Authorities trusted for domain verification.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\ncertAuthorityName|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.19.", + "operationId": "getStandardDomainCertAuthority", + "parameters": [ + { + "description": "The name of the Certificate Authority.", + "in": "path", + "name": "certAuthorityName", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Standard Domain Certificate Authority object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/StandardDomainCertAuthorityResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Standard Domain Certificate Authority object.", + "tags": [ + "all", + "standardDomainCertAuthority" + ] + } + }, + "/virtualHostnames": { + "get": { + "description": "Get a list of Virtual Hostname objects.\n\nA Virtual Hostname is a provisioned object on a message broker that contains a Virtual Hostname to Message VPN mapping.\n\nClients which connect to a global (as opposed to per Message VPN) port and provides this hostname will be directed to its corresponding Message VPN. A case-insentive match is performed on the full client-provided hostname against the configured virtual-hostname.\n\nThis mechanism is only supported for hostnames provided through the Server Name Indication (SNI) extension of TLS.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nvirtualHostname|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.17.", + "operationId": "getVirtualHostnames", + "parameters": [ + { + "$ref": "#/parameters/countQuery" + }, + { + "$ref": "#/parameters/cursorQuery" + }, + { + "$ref": "#/parameters/whereQuery" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The list of Virtual Hostname objects' attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/VirtualHostnamesResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a list of Virtual Hostname objects.", + "tags": [ + "all", + "virtualHostname" + ] + } + }, + "/virtualHostnames/{virtualHostname}": { + "get": { + "description": "Get a Virtual Hostname object.\n\nA Virtual Hostname is a provisioned object on a message broker that contains a Virtual Hostname to Message VPN mapping.\n\nClients which connect to a global (as opposed to per Message VPN) port and provides this hostname will be directed to its corresponding Message VPN. A case-insentive match is performed on the full client-provided hostname against the configured virtual-hostname.\n\nThis mechanism is only supported for hostnames provided through the Server Name Indication (SNI) extension of TLS.\n\n\nAttribute|Identifying|Deprecated\n:---|:---:|:---:\nvirtualHostname|x|\n\n\n\nA SEMP client authorized with a minimum access scope/level of \"global/read-only\" is required to perform this operation.\n\nThis has been available since 2.17.", + "operationId": "getVirtualHostname", + "parameters": [ + { + "description": "The virtual hostname.", + "in": "path", + "name": "virtualHostname", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/selectQuery" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Virtual Hostname object's attributes, and the request metadata.", + "schema": { + "$ref": "#/definitions/VirtualHostnameResponse" + } + }, + "default": { + "description": "The error response.", + "schema": { + "$ref": "#/definitions/SempMetaOnlyResponse" + } + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "summary": "Get a Virtual Hostname object.", + "tags": [ + "all", + "virtualHostname" + ] + } + } + }, + "produces": [ + "application/json" + ], + "schemes": [ + "http", + "https" + ], + "securityDefinitions": { + "basicAuth": { + "description": "basic authentication", + "type": "basic" + } + }, + "swagger": "2.0", + "tags": [] +} \ No newline at end of file diff --git a/test/solclient_log_debug.go b/test/solclient_log_debug.go new file mode 100644 index 0000000..8aa2ea9 --- /dev/null +++ b/test/solclient_log_debug.go @@ -0,0 +1,31 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build enable_debug_logging +// +build enable_debug_logging + +package test + +import ( + tracelogging "solace.dev/go/messaging-trace/opentelemetry/logging" + "solace.dev/go/messaging/pkg/solace/logging" +) + +func setLogLevel() { + // Setup logging before the test context + logging.SetLogLevel(logging.LogLevelDebug) + tracelogging.SetLogLevel(tracelogging.LogLevelDebug) // set up logging for this pubSub+ Opentelemtry integration component +} diff --git a/test/solclient_log_default.go b/test/solclient_log_default.go new file mode 100644 index 0000000..18f5d27 --- /dev/null +++ b/test/solclient_log_default.go @@ -0,0 +1,32 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build !enable_debug_logging +// +build !enable_debug_logging + +// Package test is defined +package test + +import ( + tracelogging "solace.dev/go/messaging-trace/opentelemetry/logging" + "solace.dev/go/messaging/pkg/solace/logging" +) + +func setLogLevel() { + // Setup logging before the test context + logging.SetLogLevel(logging.LogLevelInfo) + tracelogging.SetLogLevel(tracelogging.LogLevelInfo) // set up logging for this pubSub+ Opentelemtry integration component +} diff --git a/test/testcontext/config.go b/test/testcontext/config.go new file mode 100644 index 0000000..3b96d82 --- /dev/null +++ b/test/testcontext/config.go @@ -0,0 +1,176 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package testcontext + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "os" + "reflect" + "strconv" +) + +// TestConfig structure +type TestConfig struct { + Messaging *MessagingConfig `json:"messaging,omitempty"` + SEMP *SEMPConfig `json:"semp,omitempty"` + ToxiProxy *ToxiProxyConfig `json:"toxiproxy,omitempty"` + TestContainers *TestContainersConfig `json:"testcontainers,omitempty"` +} + +// TestContainersConfig common context specific config should be placed here +type TestContainersConfig struct { + BrokerHostname string `json:"broker_hostname,omitempty" env:"PUBSUB_HOSTNAME"` + ToxiProxyHostname string `json:"toxiproxy_hostname,omitempty" env:"TOXIPROXY_HOSTNAME"` + BrokerTag string `json:"broker_tag,omitempty" env:"PUBSUB_TAG"` + BrokerRepo string `json:"broker_repo,omitempty" env:"PUBSUB_REPO_BASE"` + BrokerEdition string `json:"broker_edition,omitempty" env:"PUBSUB_EDITION"` + NetworkName string `json:"network_name,omitempty" env:"PUBSUB_NETWORK_NAME"` +} + +// ToEnvironment dumps the config to a map of environment variables +func (config *TestConfig) ToEnvironment() map[string]string { + return toEnvironment(config) +} + +func (config *TestConfig) String() string { + str, err := json.MarshalIndent(config, "", " ") + if err != nil { + return fmt.Sprintf("%T", config) + } + return string(str) +} + +func toEnvironment(val interface{}) map[string]string { + result := make(map[string]string) + elem := reflect.ValueOf(val).Elem() + for i := 0; i < elem.NumField(); i++ { + field := elem.Field(i) + if field.Kind() == reflect.Ptr { + nestedVal := field.Interface() + if nestedVal == nil { + continue + } + nested := toEnvironment(nestedVal) + for key, value := range nested { + result[key] = value + } + } else { + fieldTag := elem.Type().Field(i).Tag.Get("env") + if fieldTag == "" { + continue + } + switch field.Kind() { + case reflect.String: + val := field.String() + if val != "" { + result[fieldTag] = field.String() + } + case reflect.Int: + result[fieldTag] = fmt.Sprintf("%d", field.Int()) + } + } + } + return result +} + +func (config *TestConfig) loadConfig(configFile string) error { + // TODO allow additional config files to be layered through environment variables + configJSON, err := ioutil.ReadFile(configFile) + if err != nil { + return err + } + json.Unmarshal(configJSON, &config) + return nil +} + +func (config *TestConfig) loadEnvironment() error { + fmt.Println("Overriding JSON config with environment variables") + _, err := loadFromEnvironment(config) + if err != nil { + return err + } + return nil +} + +func loadFromEnvironment(val interface{}) (foundAny bool, retErr error) { + foundAny = false + elem := reflect.ValueOf(val).Elem() + for i := 0; i < elem.NumField(); i++ { + // fetch each field as value, as well as the type definition of the field (StructField) + field := elem.Field(i) + if field.Kind() == reflect.Ptr { + nestedVal := field.Interface() + if field.IsNil() { + nestedVal = reflect.New(field.Type().Elem()).Interface() + } + found, err := loadFromEnvironment(nestedVal) + if found { + foundAny = true + if field.IsNil() { + field.Set(reflect.ValueOf(nestedVal)) + } + } + if err != nil { + return false, err + } + } else { + environmentVariable := elem.Type().Field(i).Tag.Get("env") + switch field.Kind() { + case reflect.Int: + loaded, found, err := loadInt(environmentVariable) + if found { + if err != nil { + return false, err + } + foundAny = true + fmt.Printf("Found environment variable %s, setting %s to %d\n", environmentVariable, elem.Type().Field(i).Name, loaded) + field.Set(reflect.ValueOf(loaded)) + } + case reflect.String: + loaded, found := loadString(environmentVariable) + if found { + foundAny = true + fmt.Printf("Found environment variable %s, setting %s to %s\n", environmentVariable, elem.Type().Field(i).Name, loaded) + field.Set(reflect.ValueOf(loaded)) + } + } + } + } + return foundAny, nil +} + +func loadInt(key string) (value int, found bool, err error) { + str, ok := os.LookupEnv(key) + if ok { + i, err := strconv.Atoi(str) + if err != nil { + return 0, true, fmt.Errorf("could not convert %s with value %s to integer: %s", key, str, err) + } + return i, true, nil + } + return 0, false, nil +} + +func loadString(key string) (val string, found bool) { + str, ok := os.LookupEnv(key) + if ok { + return str, true + } + return "", false +} diff --git a/test/testcontext/messaging.go b/test/testcontext/messaging.go new file mode 100644 index 0000000..ad92e4e --- /dev/null +++ b/test/testcontext/messaging.go @@ -0,0 +1,39 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package testcontext + +// MessagingConfig represents the configuration of the broker for messaging +type MessagingConfig struct { + Host string `json:"host" env:"PUBSUB_HOST"` + VPN string `json:"vpn" env:"PUBSUB_VPN"` + ClientProfile string `json:"client_profile" env:"PUBSUB_CLIENT_PROFILE"` + ACLProfile string `json:"acl_profile" env:"PUBSUB_ACL_PROFILE"` + + Authentication *struct { + BasicUsername string `json:"basic_username" env:"PUBSUB_BASIC_USERNAME"` + BasicPassword string `json:"basic_password" env:"PUBSUB_BASIC_PASSWORD"` + } `json:"authentication"` + + MessagingPorts *struct { + PlaintextPort int `json:"plaintext" env:"PUBSUB_PLAINTEXT_PORT"` + SecurePort int `json:"secure" env:"PUBSUB_SECURE_PORT"` + CompressedPort int `json:"compressed" env:"PUBSUB_COMPRESSED_PORT"` + HealthCheckPort int `json:"healthcheck" env:"PUBSUB_HEALTHCHECK_PORT"` + WebPort int `json:"web" env:"PUBSUB_WEB_PORT"` + SecureWebPort int `json:"secure_web" env:"PUBSUB_SECURE_WEB_PORT"` + } `json:"ports"` +} diff --git a/test/testcontext/semp.go b/test/testcontext/semp.go new file mode 100644 index 0000000..af4301e --- /dev/null +++ b/test/testcontext/semp.go @@ -0,0 +1,136 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package testcontext + +import ( + "context" + "crypto/tls" + "fmt" + "net/http" + + "solace.dev/go/messaging-trace/opentelemetry/test/sempclient/action" + "solace.dev/go/messaging-trace/opentelemetry/test/sempclient/config" + "solace.dev/go/messaging-trace/opentelemetry/test/sempclient/monitor" +) + +// SEMPConfig structure +type SEMPConfig struct { + Port int `json:"port" env:"PUBSUB_SEMP_PORT"` + Secure int `json:"secure" env:"PUBSUB_SECURE_SEMP_PORT"` + Host string `json:"host" env:"PUBSUB_MANAGEMENT_HOST"` + Username string `json:"username" env:"PUBSUB_MANAGEMENT_USER"` + Password string `json:"password" env:"PUBSUB_MANAGEMENT_PASSWORD"` + ForcePlain bool `json:"force_plain,omitempty" env:"PUBSUB_SEMP_FORCE_PLAIN"` +} + +// SEMPv2 allows access to various SEMPv2 clients as well as their authentication parameters +type SEMPv2 interface { + // ActionCtx returns the context to use when making action API calls + ActionCtx() context.Context + // Action returns the action API client entrypoint + Action() *action.APIClient + // Auth returns the auth to use when making API calls + ConfigCtx() context.Context + // Config returns the config API client entrypoint + Config() *config.APIClient + // Auth returns the auth to use when making API calls + MonitorCtx() context.Context + // Monitor returns the monitor API client entrypoint + Monitor() *monitor.APIClient +} + +// internal implementation of SEMPv2 to use +type sempV2Impl struct { + config *SEMPConfig + + actionCtx context.Context + actionClient *action.APIClient + configCtx context.Context + configClient *config.APIClient + monitorCtx context.Context + monitorClient *monitor.APIClient +} + +func newSempV2(config *SEMPConfig) *sempV2Impl { + return &sempV2Impl{ + config: config, + } +} + +// common setup functionality that instantiates sempv2 clients based on a set of connection details +func (semp *sempV2Impl) setup() error { + // Create a new HTTP client to use with SEMP that skips validation + // This lets us use SEMP over TLS allowing for server certificate configuration + httpClient := http.DefaultClient + url := fmt.Sprintf("http://%s:%d/SEMP/v2/", semp.config.Host, semp.config.Port) + if !semp.config.ForcePlain { + tr := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + } + httpClient = &http.Client{Transport: tr} + url = fmt.Sprintf("https://%s:%d/SEMP/v2/", semp.config.Host, semp.config.Secure) + } + semp.actionCtx = context.WithValue(context.Background(), action.ContextBasicAuth, action.BasicAuth{ + UserName: semp.config.Username, + Password: semp.config.Password, + }) + semp.actionClient = action.NewAPIClient(&action.Configuration{ + BasePath: url + "action", + HTTPClient: httpClient, + }) + semp.configCtx = context.WithValue(context.Background(), config.ContextBasicAuth, config.BasicAuth{ + UserName: semp.config.Username, + Password: semp.config.Password, + }) + semp.configClient = config.NewAPIClient(&config.Configuration{ + BasePath: url + "config", + HTTPClient: httpClient, + }) + semp.monitorCtx = context.WithValue(context.Background(), monitor.ContextBasicAuth, monitor.BasicAuth{ + UserName: semp.config.Username, + Password: semp.config.Password, + }) + semp.monitorClient = monitor.NewAPIClient(&monitor.Configuration{ + BasePath: url + "monitor", + HTTPClient: httpClient, + }) + return nil +} + +func (semp *sempV2Impl) ActionCtx() context.Context { + return semp.actionCtx +} + +func (semp *sempV2Impl) Action() *action.APIClient { + return semp.actionClient +} + +func (semp *sempV2Impl) ConfigCtx() context.Context { + return semp.configCtx +} + +func (semp *sempV2Impl) Config() *config.APIClient { + return semp.configClient +} + +func (semp *sempV2Impl) MonitorCtx() context.Context { + return semp.monitorCtx +} + +func (semp *sempV2Impl) Monitor() *monitor.APIClient { + return semp.monitorClient +} diff --git a/test/testcontext/test_context.go b/test/testcontext/test_context.go new file mode 100644 index 0000000..ab1cb91 --- /dev/null +++ b/test/testcontext/test_context.go @@ -0,0 +1,275 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package testcontext is the package containing different contexts +package testcontext + +import ( + "bytes" + "fmt" + "net/http" + "os" + "strings" + "time" +) + +var defaultConfigPaths = []string{"./data/config/config.json"} + +const customConfigEnv = "PUBSUB_IT_CONFIG" + +var instance testContext + +func init() { + instance = getTestContext() +} + +// Setup is a blocking call to set up the test context. For example, docker compose based +// contexts will be started with this function. +func Setup() error { + return instance.Setup() +} + +// Teardown is a blocking call to teardown the test context. For example, docker compose +// based contexts will be destroyed by this function. +func Teardown() error { + return instance.Teardown() +} + +// Messaging returns the connection details for connections to the backing broker for messaging +func Messaging() *MessagingConfig { + return instance.Messaging() +} + +// SEMP returns the SEMPv2 client entrypoint if available, or nil if SEMPv2 is unsupported (should never happen) +func SEMP() SEMPv2 { + return instance.SEMPv2() +} + +// Toxi returns a toxiproxy client if available, or nil if ToxiProxy is not available. +// ToxiProxy will not be available in certain test contexts and should always be checked for presence before executing. +// For example, when targeting an environment based broker such as an appliance, no toxi proxi will be available. +func Toxi() ToxiProxy { + return instance.ToxiProxy() +} + +// function to wait for semp serivces +func WaitForSEMPReachable() error { + return instance.WaitForSEMPReachable() +} + +// testContext represents a test context +type testContext interface { + // Setup is a blocking call to set up the test context. For example, docker compose based + // contexts will be started with this function. + Setup() error + // Teardown is a blocking call to teardown the test context. For example, docker compose + // based contexts will be destroyed by this function. + Teardown() error + // Messaging returns the connection details for connections to the backing broker for messaging + Messaging() *MessagingConfig + // SEMPv2 returns thre SEMPv2 client entrypoint if available, or nil if SEMPv2 is unsupported (should never happen) + SEMPv2() SEMPv2 + // ToxiProxy returns a toxiproxy client if available, or nil if ToxiProxy is not available. + // ToxiProxy will not be available in certain test contexts and should always be checked for presence before executing. + // For example, when targeting an environment based broker such as an appliance, no toxi proxi will be available. + ToxiProxy() ToxiProxy + // waits for semp service to be reachable + WaitForSEMPReachable() error +} + +type testContextCommon struct { + config *TestConfig + semp *sempV2Impl + toxi *toxiProxyImpl +} + +// GetConnectionDetails impl +func (context *testContextCommon) Messaging() *MessagingConfig { + return context.config.Messaging +} + +func (context *testContextCommon) SEMPv2() SEMPv2 { + if context.semp == nil { + return nil + } + return context.semp +} + +func (context *testContextCommon) ToxiProxy() ToxiProxy { + if context.toxi == nil { + return nil + } + return context.toxi +} + +// loads the configs based on the given path +func (context *testContextCommon) setupCommon(configPath string) error { + context.config = &TestConfig{} + // load a default config first + fmt.Printf("Loading common config files %s\n", defaultConfigPaths) + for _, defaultConfigPath := range defaultConfigPaths { + if err := context.config.loadConfig(defaultConfigPath); err != nil { + return err + } + } + // then load a specific config overriding whatever is necessary + fmt.Printf("Loading config file for test strategy %s\n", configPath) + if err := context.config.loadConfig(configPath); err != nil { + return err + } + // then load in the specified config if applicable + customConfig, ok := os.LookupEnv(customConfigEnv) + if ok { + fmt.Printf("Loading config file specified by %s, %s\n", customConfigEnv, customConfig) + if err := context.config.loadConfig(customConfig); err != nil { + return err + } + } + // then load the environment variables + if err := context.config.loadEnvironment(); err != nil { + return err + } + if context.config.SEMP.Host == "" { + fmt.Printf("No SEMP host provided, defaulting to messaging host %s\n", context.config.Messaging.Host) + context.config.SEMP.Host = context.config.Messaging.Host + } + fmt.Printf("Loaded config:\n%s\n", context.config) + return nil +} + +// function to poll for a msgvpn state where expected values are "up", "down", or "standby" +// note state will be convert to lower case +func (context *testContextCommon) waitForVPNState(state string) error { + //resp, httpResp, err := context.semp.Monitor().MsgVpnApi.GetMsgVpn(context.semp.MonitorCtx(), context.config.Messaging.VPN, nil) + // resp.Data.State contains a string for operational state of the message vpn values are: "up", "down", or "standby" + maxPollInterval := 500 * time.Millisecond + pollInterval := 1 * time.Millisecond + timeout := 300 * time.Second + timeoutChannel := time.After(timeout) + + for { + if pollInterval < maxPollInterval { + pollInterval = pollInterval * 2 + } else { + pollInterval = maxPollInterval + } + resp, _, err := context.semp.Monitor().MsgVpnApi.GetMsgVpn(context.semp.MonitorCtx(), context.config.Messaging.VPN, nil) + if err == nil && resp.Data != nil { + if remoteState := strings.ToLower(resp.Data.State); remoteState == strings.ToLower(state) { + return nil + } + } + select { + case <-timeoutChannel: + return fmt.Errorf("timed out waiting for vpn status", context.config.Messaging.VPN) + case <-time.After(pollInterval): + continue + } + } +} + +func (context *testContextCommon) WaitForSEMPReachable() error { + return context.waitForSEMP() +} + +func (context *testContextCommon) waitForToxiProxy() error { + err := waitForEndpoint(fmt.Sprintf("http://%s:%d", context.config.ToxiProxy.Host, context.config.ToxiProxy.Port), 404) + if err != nil { + return err + } + return nil +} + +func (context *testContextCommon) waitForSEMP() error { + err := waitForEndpoint(fmt.Sprintf("http://%s:%d/SEMP/v2/config/help/", context.config.SEMP.Host, context.config.SEMP.Port), 200) + if err != nil { + return err + } + return nil +} + +func (context *testContextCommon) waitForMessaging() error { + err := waitForEndpoint(fmt.Sprintf("http://%s:%d/health-check/direct-active", context.config.Messaging.Host, context.config.Messaging.MessagingPorts.HealthCheckPort), 200) + if err != nil { + return err + } + + err = waitForEndpoint(fmt.Sprintf("http://%s:%d/health-check/guaranteed-active", context.config.Messaging.Host, context.config.Messaging.MessagingPorts.HealthCheckPort), 200) + if err != nil { + return err + } + return nil +} + +func waitForEndpoint(endpoint string, expectedCode int) error { + maxPollInterval := 500 * time.Millisecond + pollInterval := 1 * time.Millisecond + timeout := 300 * time.Second + timeoutChannel := time.After(timeout) + + for { + if pollInterval < maxPollInterval { + pollInterval = pollInterval * 2 + } else { + pollInterval = maxPollInterval + } + resp, err := http.Get(endpoint) + if err == nil { + if err := resp.Body.Close(); resp.StatusCode == expectedCode && err == nil { + return nil + } + } + select { + case <-timeoutChannel: + return fmt.Errorf("timed out waiting for %s", endpoint) + case <-time.After(pollInterval): + continue + } + } +} + +// sempv1 sends the given data as a SEMPv1 request. the request will be wrapped in an rpc block +func (ctx testContextCommon) sempV1(data string) error { + out := []byte("" + data + "") + // Formulate request + url := fmt.Sprintf("http://%s:%d/SEMP", ctx.config.SEMP.Host, ctx.config.SEMP.Port) + req, err := http.NewRequest("POST", url, bytes.NewReader(out)) + if err != nil { + return err + } + // Set headers + req.SetBasicAuth(ctx.config.SEMP.Username, ctx.config.SEMP.Password) + req.Header.Add("ContentType", "application/xml") + // Exec + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return err + } + if resp.StatusCode != 200 { + return fmt.Errorf("expected code %d, got %d", 200, resp.StatusCode) + } + buf := new(bytes.Buffer) + _, err = buf.ReadFrom(resp.Body) + if err != nil { + return err + } + respString := buf.String() + if !strings.Contains(respString, "ok") { + return fmt.Errorf("expected response to contain string ok: %s", respString) + } + return nil +} diff --git a/test/testcontext/test_context_remote.go b/test/testcontext/test_context_remote.go new file mode 100644 index 0000000..830aa31 --- /dev/null +++ b/test/testcontext/test_context_remote.go @@ -0,0 +1,69 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build remote +// +build remote + +package testcontext + +const remoteConfig = "./data/config/config_remote.json" + +type remoteTestContext struct { + testContextCommon +} + +func getTestContext() testContext { + context := remoteTestContext{} + return &context +} + +// SetupTestContext sets up new context +func (context *remoteTestContext) Setup() error { + context.setupCommon(remoteConfig) + + err := context.waitForMessaging() + if err != nil { + return err + } + err = context.waitForSEMP() + if err != nil { + return err + } + context.semp = newSempV2(context.config.SEMP) + context.semp.setup() + + if context.config.ToxiProxy != nil && context.config.ToxiProxy.Host != "" { + err = context.waitForToxiProxy() + if err != nil { + return err + } + context.toxi = newToxiProxy(context.config.ToxiProxy) + context.toxi.setup() + } + + return nil +} + +// TeardownTestContext impl of test context +func (context *remoteTestContext) Teardown() error { + if context.toxi != nil { + err := context.toxi.teardown() + if err != nil { + return err + } + } + return nil +} diff --git a/test/testcontext/test_context_testcontainers.go b/test/testcontext/test_context_testcontainers.go new file mode 100644 index 0000000..3fc0318 --- /dev/null +++ b/test/testcontext/test_context_testcontainers.go @@ -0,0 +1,237 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build !remote +// +build !remote + +package testcontext + +import ( + "fmt" + "os" + "os/exec" + "path" + "strings" + + "github.com/google/uuid" + "github.com/testcontainers/testcontainers-go" +) + +// the default config file relative to the location the tests are run from +// this assumes that the tests are run from the root of the `test` directory +const testContainersConfig = "./data/config/config_testcontainers.json" +const defaultComposeFilePath = "data/compose/docker-compose.yml" + +type testContainersTestContext struct { + testContextCommon + compose *testcontainers.LocalDockerCompose +} + +func getTestContext() testContext { + context := testContainersTestContext{} + return &context +} + +// SetupTestContext sets up new context +func (context *testContainersTestContext) Setup() error { + fmt.Println() + fmt.Println("-- TESTCONTAINERS SETUP --") + + context.setupCommon(testContainersConfig) + + identifier := strings.ToLower(uuid.New().String()) + composeFilePaths := []string{defaultComposeFilePath} + compose := testcontainers.NewLocalDockerCompose(composeFilePaths, identifier) + + context.compose = compose + + context.semp = newSempV2(context.config.SEMP) + context.toxi = newToxiProxy(context.config.ToxiProxy) + + fmt.Println("Starting dockerized broker via docker-compose") + + execError := context.compose. + WithEnv(context.config.ToEnvironment()). + WithCommand([]string{"up", "-d"}). + Invoke() + + err := execError.Error + if err != nil { + return err + } + + fmt.Println("Docker-compose command succeeded") + fmt.Println("Waiting for SEMPv2 to be up") + + err = context.waitForSEMP() + if err != nil { + return err + } + + fmt.Println("Waiting for Messaging to be up") + err = context.waitForMessaging() + if err != nil { + return err + } + + err = context.semp.setup() + if err != nil { + return err + } + + fmt.Println("Waiting for ToxiProxy to be up") + err = context.waitForToxiProxy() + if err != nil { + return err + } + + fmt.Println("Setting up ToxiProxy proxies") + err = context.toxi.setup() + if err != nil { + return err + } + + fmt.Println("Waiting for MsgVPN " + context.config.Messaging.VPN + " to be up") + err = context.waitForVPNState("up") + if err != nil { + return err + } + + fmt.Println("-- TESTCONTAINERS SETUP COMPLETE --") + fmt.Println() + return nil +} + +// TeardownTestContext impl of test context +func (context *testContainersTestContext) Teardown() error { + fmt.Println() + fmt.Println("-- TESTCONTAINERS TEARDOWN --") + pubsubHostname := context.config.TestContainers.BrokerHostname + err := context.toxi.teardown() + if err != nil { + fmt.Println("Encountered error tearing down toxiproxy: " + err.Error()) + } + rc, output, err := context.dockerLogs(pubsubHostname) + if err == nil { + fmt.Println("Broker logs for " + pubsubHostname + ":") + fmt.Println(output) + } else { + fmt.Println("Encountered error getting docker logs from " + pubsubHostname + ": rc=" + string(rc) + " err:" + err.Error()) + } + wd, err := os.Getwd() + if err != nil { + fmt.Println("Encountered error getting working directory for " + pubsubHostname + " diagnostics err:" + err.Error()) + } + + err = context.gatherBrokerDiagnostics(path.Join(wd, "diagnostics.tgz")) + if err != nil { + fmt.Println("Encountered error getting " + pubsubHostname + " diagnostics err:" + err.Error()) + } + + composeResult := context.compose.Down() + if composeResult.Error != nil { + err = composeResult.Error + fmt.Println("Encountered error tearing down docker compose: " + composeResult.Error.Error()) + } + fmt.Println("-- TESTCONTAINERS TEARDOWN COMPLETE --") + return err +} + +func (context *testContainersTestContext) gatherBrokerDiagnostics(destinationPath string) error { + fmt.Println() + pubsubHostname := context.config.TestContainers.BrokerHostname + // gather all important infomation and logs from pubsubHostname container + fmt.Println("Run gather-diagnostics for " + pubsubHostname + "...") + resp, output, err := context.dockerExec(pubsubHostname, []string{"/bin/bash", "-l", "-c", "\"gather-diagnostics\""}) + if err != nil { + return err + } + fmt.Println(output) + if resp != 0 { + return fmt.Errorf("failed to gather %s diagnostics", pubsubHostname) + } + fmt.Println("Gathered gather-diagnostics for " + pubsubHostname) + // extract diagnostic to host + // first get absolute path from container + resp, diagnosticPath, err := context.dockerExec(pubsubHostname, []string{"/bin/bash", "-l", "-c", "ls -rt /usr/sw/jail/logs/gather-diagnostics*.tgz | tail -n 1"}) + //resp, diagnosticPath, err := context.dockerExec(pubsubHostname, []string{"/bin/bash", "-l", "-c", " realpath $(ls -rt /usr/sw/jail/logs/gather-diagnostics*.tgz | tail -n 1)"}) + if err != nil { + return err + } + if resp != 0 { + return fmt.Errorf("Failed to locate %s diagnostics", pubsubHostname) + } + fmt.Println("Exacting gather-diagnostics " + diagnosticPath + " for " + pubsubHostname + " to " + destinationPath + "...") + err = context.dockerCpToHost(pubsubHostname, strings.TrimSpace(diagnosticPath), destinationPath) + return err +} + +const dockerCmd = "docker" + +// dockerCp copies a file from one container to another container +func (ctx *testContainersTestContext) dockerCp(sourceContainer, sourcePath, destContainer, destPath string) error { + tmpFileName := path.Join(os.TempDir(), "tmp-go-docker-cp") + defer os.Remove(tmpFileName) + cmd := exec.Command(dockerCmd, "cp", sourceContainer+":"+sourcePath, tmpFileName) + output, err := cmd.CombinedOutput() + if err != nil { + fmt.Println(string(output)) + return fmt.Errorf("encountered error running docker cp to local from %s: %w", sourceContainer, err) + } + err = os.Chmod(tmpFileName, 0655) + if err != nil { + return fmt.Errorf("encountered error running chmod on %s: %w", tmpFileName, err) + } + cmd = exec.Command(dockerCmd, "cp", tmpFileName, destContainer+":"+destPath) + output, err = cmd.CombinedOutput() + if err != nil { + fmt.Println(string(output)) + return fmt.Errorf("encountered error running docker cp from local to %s: %w", destContainer, err) + } + return nil +} + +func (ctx *testContainersTestContext) dockerCpToHost(sourceContainer, sourcePath, destPath string) error { + hostFileName := destPath + fmt.Println("Copying source file " + sourceContainer + ":" + sourcePath + " to " + hostFileName) + cmd := exec.Command(dockerCmd, "cp", "-L", sourceContainer+":"+sourcePath, hostFileName) + output, err := cmd.CombinedOutput() + if err != nil { + fmt.Println(string(output)) + return fmt.Errorf("encountered error running docker cp to local from %s: %w", sourceContainer, err) + } + err = os.Chmod(hostFileName, 0655) + if err != nil { + return fmt.Errorf("encountered error running chmod on %s: %w", hostFileName, err) + } + return nil +} + +// dockerExec runs the given command on the given container using the given user if not empty +func (ctx *testContainersTestContext) dockerExec(container string, command []string) (int, string, error) { + args := append([]string{"exec", container}, command...) + cmd := exec.Command(dockerCmd, args...) + output, err := cmd.CombinedOutput() + return cmd.ProcessState.ExitCode(), string(output), err +} + +// dockerLogs runs docker log on given container +func (ctx *testContainersTestContext) dockerLogs(container string) (int, string, error) { + args := []string{"logs", container} + cmd := exec.Command(dockerCmd, args...) + output, err := cmd.CombinedOutput() + return cmd.ProcessState.ExitCode(), string(output), err +} diff --git a/test/testcontext/toxiproxy.go b/test/testcontext/toxiproxy.go new file mode 100644 index 0000000..7e699f2 --- /dev/null +++ b/test/testcontext/toxiproxy.go @@ -0,0 +1,134 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package testcontext + +import ( + "fmt" + + toxiproxy "github.com/Shopify/toxiproxy/v2/client" +) + +const ( + smfProxyName = "smf" + compressedSmfProxyName = "compressedSmf" + secureSmfProxyName = "secureSmf" +) + +// ToxiProxy interface +type ToxiProxy interface { + Config() *ToxiProxyConfig + GetClient() *toxiproxy.Client + SMF() *toxiproxy.Proxy + CompressedSMF() *toxiproxy.Proxy + SecureSMF() *toxiproxy.Proxy + SEMP() *toxiproxy.Proxy + ResetProxies() +} + +// ToxiProxyConfig structure +type ToxiProxyConfig struct { + Upstream string `json:"upstream,omitempty" env:"TOXIPROXY_UPSTREAM"` + Host string `json:"host,omitempty" env:"TOXIPROXY_HOST"` + Port int `json:"port,omitempty" env:"TOXIPROXY_PORT"` + PlaintextPort int `json:"plaintext_port,omitempty" env:"TOXIPROXY_PLAINTEXT_PORT"` + CompressedPort int `json:"compressed_port,omitempty" env:"TOXIPROXY_COMPRESSED_PORT"` + SecurePort int `json:"secure_port,omitempty" env:"TOXIPROXY_SECURE_PORT"` +} + +type toxiProxyImpl struct { + config *ToxiProxyConfig + client *toxiproxy.Client + proxies map[string]*toxiproxy.Proxy +} + +func newToxiProxy(config *ToxiProxyConfig) *toxiProxyImpl { + return &toxiProxyImpl{ + config: config, + client: toxiproxy.NewClient(fmt.Sprintf("%s:%d", config.Host, config.Port)), + } +} + +func (toxiProxy *toxiProxyImpl) setup() error { + toxiProxy.proxies = make(map[string]*toxiproxy.Proxy) + var err error + toxiProxy.proxies[smfProxyName], err = toxiProxy.client.CreateProxy( + smfProxyName, + fmt.Sprintf(":%d", toxiProxy.config.PlaintextPort), + fmt.Sprintf("%s:%d", toxiProxy.config.Upstream, 55555), + ) + if err != nil { + return err + } + toxiProxy.proxies[compressedSmfProxyName], err = toxiProxy.client.CreateProxy( + compressedSmfProxyName, + fmt.Sprintf(":%d", toxiProxy.config.CompressedPort), + fmt.Sprintf("%s:%d", toxiProxy.config.Upstream, 55003), + ) + if err != nil { + return err + } + toxiProxy.proxies[secureSmfProxyName], err = toxiProxy.client.CreateProxy( + secureSmfProxyName, + fmt.Sprintf(":%d", toxiProxy.config.SecurePort), + fmt.Sprintf("%s:%d", toxiProxy.config.Upstream, 55443), + ) + if err != nil { + return err + } + return nil +} + +func (toxiProxy *toxiProxyImpl) teardown() error { + for _, proxy := range toxiProxy.proxies { + err := proxy.Delete() + if err != nil { + return err + } + } + return nil +} + +func (toxiProxy *toxiProxyImpl) ResetProxies() { + for _, p := range toxiProxy.proxies { + p.Delete() + } + toxiProxy.setup() +} + +func (toxiProxy *toxiProxyImpl) Config() *ToxiProxyConfig { + return toxiProxy.config +} + +func (toxiProxy *toxiProxyImpl) GetClient() *toxiproxy.Client { + return toxiProxy.client +} + +func (toxiProxy *toxiProxyImpl) SMF() *toxiproxy.Proxy { + return toxiProxy.proxies[smfProxyName] +} + +func (toxiProxy *toxiProxyImpl) CompressedSMF() *toxiproxy.Proxy { + return toxiProxy.proxies[compressedSmfProxyName] +} + +func (toxiProxy *toxiProxyImpl) SecureSMF() *toxiproxy.Proxy { + return toxiProxy.proxies[secureSmfProxyName] +} + +func (toxiProxy *toxiProxyImpl) SEMP() *toxiproxy.Proxy { + panic("not implemented") // TODO: Implement +} diff --git a/test/version_test.go b/test/version_test.go new file mode 100644 index 0000000..a469dff --- /dev/null +++ b/test/version_test.go @@ -0,0 +1,32 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package test + +import ( + sol_propagation "solace.dev/go/messaging-trace/opentelemetry" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +var _ = Describe("API Version Info", func() { + It("can retrieve the version from the API", func() { + apiVersionInfo := sol_propagation.Version() + Expect(apiVersionInfo).ToNot(BeNil()) + Expect(apiVersionInfo).ToNot(BeEmpty()) + }) +}) diff --git a/tracing.go b/tracing.go new file mode 100644 index 0000000..069edd6 --- /dev/null +++ b/tracing.go @@ -0,0 +1,35 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package opentelemetry // import "solace.dev/go/messaging-trace/opentelemetry" + +import ( + "solace.dev/go/messaging-trace/opentelemetry/carrier" + impl "solace.dev/go/messaging-trace/opentelemetry/internal/impl" + "solace.dev/go/messaging/pkg/solace/message" +) + +// NewInboundMessageCarrier returns an instance of carrier.InboundMessageCarrier that can be used +// with otel integration for extracting tracing information from a received Inbound message. +func NewInboundMessageCarrier(carrier message.InboundMessage) carrier.InboundMessageCarrier { + return impl.NewInboundMessageCarrier(carrier) +} + +// NewOutboundMessageCarrier returns an instance of carrier.OutboundMessageCarrier that can be used +// with otel integration for injecting tracing information before publishing an Outbound message. +func NewOutboundMessageCarrier(carrier message.OutboundMessage) carrier.OutboundMessageCarrier { + return impl.NewOutboundMessageCarrier(carrier) +} diff --git a/tracing_property_name.go b/tracing_property_name.go new file mode 100644 index 0000000..59d5897 --- /dev/null +++ b/tracing_property_name.go @@ -0,0 +1,22 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package opentelemetry // import "solace.dev/go/messaging-trace/opentelemetry" + +import "solace.dev/go/messaging-trace/opentelemetry/internal" + +// TracingPropertyName - the tracing property names +var TracingPropertyName = internal.NewTracingPropertyNames() diff --git a/version.go b/version.go new file mode 100644 index 0000000..abae385 --- /dev/null +++ b/version.go @@ -0,0 +1,32 @@ +// pubsubplus-opentelemetry-go-integration +// +// Copyright 2024 Solace Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package opentelemetry // import "solace.dev/go/messaging-trace/opentelemetry" + +const version = "1.0.0" + +// Version is the current release version of the Solace PubSub+ OpenTelemetry Integration API. +func Version() string { + return version + // This string should updated by a pre-release script during release +} + +// SemVersion is the semantic version to be supplied to tracer/meter creation. +// +// Deprecated: Use [Version] instead. +func SemVersion() string { + return Version() +}