├── .github ├── ISSUE_TEMPLATE │ ├── issue--bug-report.md │ └── issue--community-request.md └── PULL_REQUEST_TEMPLATE.md ├── BETA-CHANNEL.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── NOTICE ├── PRINCIPLES.md ├── README.md └── appmesh-preview ├── README.md ├── sdk ├── README.md ├── api.json ├── api.normal.json ├── docs.json ├── examples.json └── paginators.json └── service-model.json /.github/ISSUE_TEMPLATE/issue--bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 'Bug Report' 3 | about: Report a problem. 4 | title: "Bug: describe bug here" 5 | labels: Bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | *SECURITY NOTICE: If you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [here](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).* 11 | 12 | **Summary** 13 | What are you observing that doesn't seem right? 14 | 15 | **Steps to Reproduce** 16 | What are the steps you can take to reproduce this issue? 17 | 18 | **Are you currently working around this issue?** 19 | How are you currently solving this problem? 20 | 21 | **Additional context** 22 | Anything else we should know? 23 | 24 | **Attachments** 25 | If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.) 26 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/issue--community-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 'Feature Request' 3 | about: Suggest an idea for the roadmap! 4 | title: "Feature Request: describe request here" 5 | labels: Proposed 6 | assignees: '' 7 | 8 | --- 9 | 10 | *If you want to see App Mesh implement this idea, please upvote with a :+1:.* 11 | 12 | **Tell us about your request** 13 | What do you want us to build? 14 | 15 | **Which integration(s) is this request for?** 16 | This could be Fargate, ECS, EKS, EC2, Kubernetes, something else. 17 | 18 | **Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?** 19 | What outcome are you trying to achieve, ultimately, and why is it hard/impossible to do right now? What is the impact of not having this problem solved? The more details you can provide, the better we'll be able to understand and solve the problem. 20 | 21 | **Are you currently working around this issue?** 22 | How are you currently solving this problem? 23 | 24 | **Additional context** 25 | Anything else we should know? 26 | 27 | **Attachments** 28 | If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.) 29 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | *Issue #, if available:* 2 | 3 | *Description of changes:* 4 | 5 | 6 | By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice. 7 | -------------------------------------------------------------------------------- /BETA-CHANNEL.md: -------------------------------------------------------------------------------- 1 | # AWS App Mesh Beta Channel 2 | 3 | ## What are we announcing? 4 | 5 | The AWS App Mesh service team is announcing the availability of a Beta Channel, a new public service endpoint which allows every customer to try out and provide feedback on beta service features before they are generally available. This new service endpoint is separate from the standard production endpoint, and is coupled with beta releases of the AWS CLI for App Mesh, allowing customers to test beta features without impacting their current production infrastructure. 6 | 7 | ## What do I get from the Beta Channel? 8 | 9 | With the Beta Channel, you get the opportunity to try out features before we make them generally available. You can play a critical role in helping test the functionality of beta features for your own specific use cases. You're encouraged to provide feedback to the App Mesh team that helps us ensure we're meeting the most important requirements of our customers. In other words: your voice in the beta period will help shape the features of App Mesh so that we can deliver the best possible solution for you. 10 | 11 | ## How can I on-board? 12 | 13 | The Beta Channel is available to all existing AWS customers. To on-board to the new endpoint, you can download the latest beta version of the AWS CLI JSON configuration for App Mesh [here](https://github.com/aws/aws-app-mesh-roadmap/tree/master/appmesh-preview). 14 | 15 | In the future we may release beta SDKs for all languages. 16 | 17 | To preview upcoming features for AWS App Mesh and get information on how you can test and provide feedback, check out our [AWS App Mesh public roadmap](https://github.com/aws/aws-app-mesh-roadmap) on GitHub. Beta features are listed in our GitHub issues page with a ["Phase: In Preview" label](https://github.com/aws/aws-app-mesh-roadmap/issues?q=is%3Aissue+is%3Aopen+label%3A%22Phase%3A+In+Preview%22+). 18 | 19 | ## How long do I have to provide feedback on a preview feature? 20 | 21 | The feedback period will vary depending on the size and complexity of the feature being introduced. The minimal comment period will be 14 days from release to the preview endpoint before it will be released in production. We may opt to extend the feedback period for specific features. 22 | 23 | ## What level of support is provided for the Beta Channel? 24 | 25 | While we encourage you to provide feedback and bug reports directly on our GitHub roadmap issue, we understand you may have sensitive data to share, or have found an issue you do not feel is safe to disclose publicly. For these issues, you can contact AWS Support or email us directly at aws-appmesh-feedback@amazon.com. 26 | 27 | ## Is my data secure on the beta endpoint? 28 | 29 | Yes. The AWS App Mesh beta endpoint is given the same level of security as the standard production endpoint. 30 | 31 | ## Is my data durable on the beta endpoint? 32 | 33 | Due to the desire of getting features in the hands of customers early for feedback, AWS App Mesh does not guarantee the durability of customer data provided to the beta endpoint. We may, from time to time, reset the data store behind the preview endpoint to guarantee the best long-term customer experience. Before this occurs, the AWS App Mesh team will announce the reset and provide time and guidance for you to save your existing resources so they can be replaced once the reset has completed. Long-term, we will invest in open-source tooling to help you migrate your production resources to the beta endpoint. -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing Guidelines 2 | 3 | Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional 4 | documentation, we greatly value feedback and contributions from our community. 5 | 6 | Please read through this document before submitting any issues or pull requests to ensure we have all the necessary 7 | information to effectively respond to your bug report or contribution. 8 | 9 | 10 | ## Reporting Bugs/Feature Requests 11 | 12 | We welcome you to use issues to report bugs or suggest features. 13 | 14 | If you're suggesting a new feature (i.e., functionality that doesn't exist yet), please use our issue template. This will prompt you to answer a few questions that will help us figure out what you're looking for. The template will also tag incoming issues with "Proposed". This gives us a way to filter the community-opened issues quickly so we can review as a team. 15 | 16 | If you want to see the list of proposed features, you can see the view [here](https://github.com/aws/aws-app-mesh-roadmap/labels/Proposed). 17 | 18 | Check for duplicates, though! When filing an issue, please check [existing open](https://github.com/aws/aws-app-mesh-roadmap/issues), or [recently closed](https://github.com/aws/aws-app-mesh-roadmap/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20) issues to make sure somebody else hasn't already reported the issue. 19 | 20 | 21 | If you're reporting what you think is a bug (i.e., something isn't right with an existing feature), please try to include as much information as you can. Details like these are incredibly useful: 22 | 23 | * A reproducible test case or series of steps 24 | * The version of our code being used (For App Mesh, the integration you are trying to use would be helpful) 25 | * Any modifications you've made relevant to the bug 26 | * Anything unusual about your environment or deployment 27 | 28 | 29 | ## Code of Conduct 30 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 31 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 32 | opensource-codeofconduct@amazon.com with any additional questions or comments. 33 | 34 | 35 | ## Security issue notifications 36 | If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue. 37 | 38 | 39 | ## Licensing 40 | 41 | See the [LICENSE](https://github.com/aws/aws-app-mesh-roadmap/blob/master/LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution. 42 | 43 | We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes. 44 | 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | AWS App Mesh Roadmap 2 | Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | -------------------------------------------------------------------------------- /PRINCIPLES.md: -------------------------------------------------------------------------------- 1 | # Principles 2 | 3 | These are the principles that embody the culture of the container services, and app mesh organizations. They build on the [Amazon Leadership Principles](https://www.amazon.jobs/en/principles). 4 | 5 | ## People 6 | 7 | * we invest in people through a focus on individual development, career progression, mentorship, and active sponsorship; 8 | * we embrace diversity and inclusiveness recognizing that innovation is fueled by challenging accepted norms, driving for understanding, and broadening perspective; 9 | * we empower the voice of the individual by creating an environment where everyone can speak up, where leaders listen, actively address, and follow through on feedback; 10 | 11 | ## Priorities 12 | 13 | * we emphasize service reliability as the primary mechanism for earning and retaining customer trust, we factor operational sustainability into our development practices; 14 | * we consider user experience to be our top feature, understanding that simplicity is powerful, and we are confident in being opinionated; 15 | * we focus on the long-term, and build a roadmap that blends large and small improvements, preferring steady and consistent releases; 16 | * we deliver on the right priorities because we work backwards from our customers, have the right mechanisms for measuring value, and have the ability to respond quickly to shifts in customer expectations. 17 | 18 | ## Product 19 | 20 | * we are open and transparent in sharing the product vision and direction with the team and customers, identifying where we are succeeding and where we can improve, recognizing that sharing this information accurately advises us on how we get better; 21 | * we encourage and enable individuals to interact directly with customers as a means toward building awareness, understanding, and customer empathy; 22 | * we embrace Open Source where possible as a mechanism to build better software, to give our customers insight into our designs, and because we don't assume that we always have the best answers. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## AWS App Mesh Roadmap 2 | 3 | *After careful consideration, we have made the decision to discontinue support for AWS App Mesh, effective September 30th, 2026. Until this date, existing AWS App Mesh customers will be able to use the service as normal, including creating new resources and onboarding new accounts via the AWS CLI and AWS CloudFormation. Additionally, AWS will continue to provide critical security and availability updates to AWS App Mesh during this period. However, starting from September 24th, 2024, new customers will be unable to onboard to AWS App Mesh.* 4 | 5 | AWS App Mesh makes it easy to monitor and control microservices running on AWS. App Mesh standardizes how your microservices communicate, giving you end-to-end visibility and helping to ensure high-availability for your applications. 6 | You can use App Mesh with [AWS Fargate](https://aws.amazon.com/fargate), [Amazon Elastic Container Service (ECS)](https://aws.amazon.com/ecs/), [Amazon Elastic Container Service for Kubernetes (EKS)](https://aws.amazon.com/eks/), and Kubernetes on EC2 to better run containerized microservices at scale. App Mesh uses Envoy, an open source proxy, making it compatible with a wide range of AWS partner and open source tools for monitoring microservices. 7 | 8 | For help getting started with App Mesh, head to https://aws.amazon.com/app-mesh. Or, to see examples, you can visit our examples repository: https://github.com/aws/aws-app-mesh-examples 9 | 10 | --- 11 | 12 | ## Introduction 13 | This is the experimental public roadmap for AWS App Mesh. 14 | Knowing about our upcoming products and priorities helps our customers plan. This repository contains information about what we are working on and allows all AWS customers to give direct feedback. 15 | 16 | [See the roadmap »](https://github.com/aws/aws-app-mesh-roadmap/projects/1) 17 | 18 | ## Beta Channel 19 | AWS App Mesh offers a Beta Channel, a public service endpoint which allows every customer to try out and provide feedback on beta service features before they are generally available. The service endpoint is separate from the standard production endpoint, and is coupled with preview releases of the AWS CLI for App Mesh, allowing customers to test beta features without impacting their current production infrastructure. 20 | 21 | For more information on the Beta Channel, see [AWS App Mesh Beta Channel](/BETA-CHANNEL.md). 22 | 23 | ## Slack Community 24 | AWS App Mesh participates in an open Slack community in which participants can share tips and tricks, get help troubleshooting a problem, or discuss new and potential future features of App Mesh. 25 | 26 | The slack community can be found at https://awsappmesh.slack.com, and you can join the slack community with [this invite](https://join.slack.com/t/awsappmesh/shared_invite/zt-dwgbt85c-Sj_md92__quV8YADKfsQSA). 27 | 28 | ## Security disclosures 29 | 30 | If you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [here](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com). 31 | 32 | 33 | ## FAQs 34 | **Q: Why did you build this?** 35 | 36 | A: We know that our customers are making decisions and plans based on what we are developing, and we want to provide our customers the insights they need to plan. 37 | 38 | **Q: Why are there no dates on your roadmap?** 39 | 40 | A: Because job zero is security and operational stability, we can't provide specific target dates for features. 41 | 42 | **Q: What do the roadmap categories mean?** 43 | * *Just shipped* - obvious, right? 44 | * *Coming soon* - coming up. Think a couple of months out, give or take. 45 | * *We're working on it* - in progress, but further out. We might still be working through the implementation details, or scoping stuff out. 46 | * *Researching* - We're thinking about it. This might mean we're still designing, or thinking through how this might work. This is a great phase to send how you want to see something implemented! We'd love to see your usecase or design ideas here. 47 | 48 | **Q: Is everything on the roadmap?** 49 | 50 | A: The majority of our development work for AWS App Mesh and other AWS-sponsored OSS projects are included on this roadmap. Of course, there will be technologies we are very excited about that we are going to launch without notice to surprise and delight our customers. 51 | 52 | **Q: How can I provide feedback or ask for more information?** 53 | 54 | A: Please open an issue! 55 | 56 | **Q: How can I request a feature be added to the roadmap?** 57 | 58 | A: Please open an issue! You can read about how to contribute [here](/CONTRIBUTING.md). Community submitted issues will be tagged "Proposed" and will be reviewed by the team. 59 | 60 | **Q: Will you accept a pull request?** 61 | 62 | A: We haven't worked out how pull requests should work for a public roadmap page, but we will take all PRs very seriously and review for inclusion. Read about [contributing](/CONTRIBUTING.md). 63 | 64 | ## License 65 | 66 | This library is licensed under the Apache 2.0 License. 67 | 68 | To learn more about the services, head here: https://aws.amazon.com/app-mesh 69 | -------------------------------------------------------------------------------- /appmesh-preview/README.md: -------------------------------------------------------------------------------- 1 | # AWS App Mesh Preview CLI Model 2 | 3 | ## How do I use this? 4 | 5 | If you are using [AWS CLI v1](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html), you can use the cli model by loading it directly from GitHub, using the following command 6 | 7 | ``` 8 | aws configure add-model \ 9 | --service-name appmesh-preview \ 10 | --service-model https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/service-model.json 11 | ``` 12 | 13 | 14 | If you are using [AWS CLI v2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html), check out this repository locally, and load the file using the following command 15 | 16 | ``` 17 | aws configure add-model \ 18 | --service-name appmesh-preview \ 19 | --service-model file:///path/to/repo/aws-app-mesh-roadmap/appmesh-preview/service-model.json 20 | ``` 21 | -------------------------------------------------------------------------------- /appmesh-preview/sdk/README.md: -------------------------------------------------------------------------------- 1 | # App Mesh Preview SDKs 2 | 3 | Some AWS SDKs use a set of JSON models to generate the final SDK. SDKs which allow this include: 4 | 5 | * [Go](https://github.com/aws/aws-sdk-go) 6 | * [JavaScript](https://github.com/aws/aws-sdk-js) 7 | * [Ruby](https://github.com/aws/aws-sdk-ruby/) 8 | 9 | For these SDKs, you can use the JSON files in this directory to generate an SDK which can be used for the [App Mesh Preview Channel](https://docs.aws.amazon.com/app-mesh/latest/userguide/preview.html). 10 | 11 | ## Generating an SDK 12 | 13 | ### Go 14 | 15 | Clone the AWS SDK for Go: 16 | 17 | ```bash 18 | git clone https://github.com/aws/aws-sdk-go.git 19 | cd aws-sdk-go 20 | ``` 21 | 22 | Download the JSON files, replacing the appropriate files in the SDK: 23 | 24 | ```bash 25 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/api.json > models/apis/appmesh/2019-01-25/api-2.json 26 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/docs.json > models/apis/appmesh/2019-01-25/docs-2.json 27 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/examples.json > models/apis/appmesh/2019-01-25/examples-1.json 28 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/paginators.json > models/apis/appmesh/2019-01-25/paginators-1.json 29 | ``` 30 | 31 | Generate the SDK: 32 | 33 | ```bash 34 | make generate 35 | ``` 36 | 37 | ### JavaScript 38 | 39 | Clone the AWS SDK for JavaScript: 40 | 41 | ```bash 42 | git clone https://github.com/aws/aws-sdk-js.git 43 | cd aws-sdk-js 44 | ``` 45 | 46 | Download the JSON files, replacing the appropriate files in the SDK: 47 | 48 | ```bash 49 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/api.json > apis/appmesh-2019-01-25.min.json 50 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/api.normal.json > apis/appmesh-2019-01-25.normal.json 51 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/examples.json > apis/appmesh-2019-01-25.examples.json 52 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/paginators.json > apis/appmesh-2019-01-25.paginators.json 53 | ``` 54 | 55 | Generate the SDK: 56 | 57 | ```bash 58 | rake api 59 | ``` 60 | 61 | ### Ruby 62 | 63 | Clone the AWS SDK for Ruby: 64 | 65 | ```bash 66 | git clone https://github.com/aws/aws-sdk-ruby.git 67 | cd aws-sdk-ruby 68 | ``` 69 | 70 | Download the JSON files, replacing the appropriate files in the SDK: 71 | 72 | ```bash 73 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/api.json > apis/appmesh/2019-01-25/api-2.json 74 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/docs.json > apis/appmesh/2019-01-25/docs-2.json 75 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/examples.json > apis/appmesh/2019-01-25/examples-1.json 76 | curl -s https://raw.githubusercontent.com/aws/aws-app-mesh-roadmap/main/appmesh-preview/sdk/paginators.json > apis/appmesh/2019-01-25/paginators-1.json 77 | ``` 78 | 79 | Generate the SDK: 80 | 81 | ```bash 82 | bundle install 83 | rake build 84 | ``` 85 | -------------------------------------------------------------------------------- /appmesh-preview/sdk/api.json: -------------------------------------------------------------------------------- 1 | { 2 | "version":"2.0", 3 | "metadata":{ 4 | "apiVersion":"2019-01-25", 5 | "endpointPrefix":"appmesh-preview", 6 | "jsonVersion":"1.1", 7 | "protocol":"rest-json", 8 | "serviceFullName":"AWS App Mesh Preview", 9 | "serviceId":"App Mesh Preview", 10 | "signatureVersion":"v4", 11 | "signingName":"appmesh-preview", 12 | "uid":"appmesh-preview-2019-01-25" 13 | }, 14 | "operations":{ 15 | "CreateGatewayRoute":{ 16 | "name":"CreateGatewayRoute", 17 | "http":{ 18 | "method":"PUT", 19 | "requestUri":"/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes", 20 | "responseCode":200 21 | }, 22 | "input":{"shape":"CreateGatewayRouteInput"}, 23 | "output":{"shape":"CreateGatewayRouteOutput"}, 24 | "errors":[ 25 | {"shape":"NotFoundException"}, 26 | {"shape":"BadRequestException"}, 27 | {"shape":"ConflictException"}, 28 | {"shape":"TooManyRequestsException"}, 29 | {"shape":"ForbiddenException"}, 30 | {"shape":"ServiceUnavailableException"}, 31 | {"shape":"InternalServerErrorException"}, 32 | {"shape":"LimitExceededException"} 33 | ], 34 | "idempotent":true 35 | }, 36 | "CreateMesh":{ 37 | "name":"CreateMesh", 38 | "http":{ 39 | "method":"PUT", 40 | "requestUri":"/v20190125/meshes", 41 | "responseCode":200 42 | }, 43 | "input":{"shape":"CreateMeshInput"}, 44 | "output":{"shape":"CreateMeshOutput"}, 45 | "errors":[ 46 | {"shape":"NotFoundException"}, 47 | {"shape":"BadRequestException"}, 48 | {"shape":"ConflictException"}, 49 | {"shape":"TooManyRequestsException"}, 50 | {"shape":"ForbiddenException"}, 51 | {"shape":"ServiceUnavailableException"}, 52 | {"shape":"InternalServerErrorException"}, 53 | {"shape":"LimitExceededException"} 54 | ], 55 | "idempotent":true 56 | }, 57 | "CreateRoute":{ 58 | "name":"CreateRoute", 59 | "http":{ 60 | "method":"PUT", 61 | "requestUri":"/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes", 62 | "responseCode":200 63 | }, 64 | "input":{"shape":"CreateRouteInput"}, 65 | "output":{"shape":"CreateRouteOutput"}, 66 | "errors":[ 67 | {"shape":"NotFoundException"}, 68 | {"shape":"BadRequestException"}, 69 | {"shape":"ConflictException"}, 70 | {"shape":"TooManyRequestsException"}, 71 | {"shape":"ForbiddenException"}, 72 | {"shape":"ServiceUnavailableException"}, 73 | {"shape":"InternalServerErrorException"}, 74 | {"shape":"LimitExceededException"} 75 | ], 76 | "idempotent":true 77 | }, 78 | "CreateVirtualGateway":{ 79 | "name":"CreateVirtualGateway", 80 | "http":{ 81 | "method":"PUT", 82 | "requestUri":"/v20190125/meshes/{meshName}/virtualGateways", 83 | "responseCode":200 84 | }, 85 | "input":{"shape":"CreateVirtualGatewayInput"}, 86 | "output":{"shape":"CreateVirtualGatewayOutput"}, 87 | "errors":[ 88 | {"shape":"NotFoundException"}, 89 | {"shape":"BadRequestException"}, 90 | {"shape":"ConflictException"}, 91 | {"shape":"TooManyRequestsException"}, 92 | {"shape":"ForbiddenException"}, 93 | {"shape":"ServiceUnavailableException"}, 94 | {"shape":"InternalServerErrorException"}, 95 | {"shape":"LimitExceededException"} 96 | ], 97 | "idempotent":true 98 | }, 99 | "CreateVirtualNode":{ 100 | "name":"CreateVirtualNode", 101 | "http":{ 102 | "method":"PUT", 103 | "requestUri":"/v20190125/meshes/{meshName}/virtualNodes", 104 | "responseCode":200 105 | }, 106 | "input":{"shape":"CreateVirtualNodeInput"}, 107 | "output":{"shape":"CreateVirtualNodeOutput"}, 108 | "errors":[ 109 | {"shape":"NotFoundException"}, 110 | {"shape":"BadRequestException"}, 111 | {"shape":"ConflictException"}, 112 | {"shape":"TooManyRequestsException"}, 113 | {"shape":"ForbiddenException"}, 114 | {"shape":"ServiceUnavailableException"}, 115 | {"shape":"InternalServerErrorException"}, 116 | {"shape":"LimitExceededException"} 117 | ], 118 | "idempotent":true 119 | }, 120 | "CreateVirtualRouter":{ 121 | "name":"CreateVirtualRouter", 122 | "http":{ 123 | "method":"PUT", 124 | "requestUri":"/v20190125/meshes/{meshName}/virtualRouters", 125 | "responseCode":200 126 | }, 127 | "input":{"shape":"CreateVirtualRouterInput"}, 128 | "output":{"shape":"CreateVirtualRouterOutput"}, 129 | "errors":[ 130 | {"shape":"NotFoundException"}, 131 | {"shape":"BadRequestException"}, 132 | {"shape":"ConflictException"}, 133 | {"shape":"TooManyRequestsException"}, 134 | {"shape":"ForbiddenException"}, 135 | {"shape":"ServiceUnavailableException"}, 136 | {"shape":"InternalServerErrorException"}, 137 | {"shape":"LimitExceededException"} 138 | ], 139 | "idempotent":true 140 | }, 141 | "CreateVirtualService":{ 142 | "name":"CreateVirtualService", 143 | "http":{ 144 | "method":"PUT", 145 | "requestUri":"/v20190125/meshes/{meshName}/virtualServices", 146 | "responseCode":200 147 | }, 148 | "input":{"shape":"CreateVirtualServiceInput"}, 149 | "output":{"shape":"CreateVirtualServiceOutput"}, 150 | "errors":[ 151 | {"shape":"NotFoundException"}, 152 | {"shape":"BadRequestException"}, 153 | {"shape":"ConflictException"}, 154 | {"shape":"TooManyRequestsException"}, 155 | {"shape":"ForbiddenException"}, 156 | {"shape":"ServiceUnavailableException"}, 157 | {"shape":"InternalServerErrorException"}, 158 | {"shape":"LimitExceededException"} 159 | ], 160 | "idempotent":true 161 | }, 162 | "DeleteGatewayRoute":{ 163 | "name":"DeleteGatewayRoute", 164 | "http":{ 165 | "method":"DELETE", 166 | "requestUri":"/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes/{gatewayRouteName}", 167 | "responseCode":200 168 | }, 169 | "input":{"shape":"DeleteGatewayRouteInput"}, 170 | "output":{"shape":"DeleteGatewayRouteOutput"}, 171 | "errors":[ 172 | {"shape":"NotFoundException"}, 173 | {"shape":"BadRequestException"}, 174 | {"shape":"TooManyRequestsException"}, 175 | {"shape":"ForbiddenException"}, 176 | {"shape":"ResourceInUseException"}, 177 | {"shape":"ServiceUnavailableException"}, 178 | {"shape":"InternalServerErrorException"} 179 | ], 180 | "idempotent":true 181 | }, 182 | "DeleteMesh":{ 183 | "name":"DeleteMesh", 184 | "http":{ 185 | "method":"DELETE", 186 | "requestUri":"/v20190125/meshes/{meshName}", 187 | "responseCode":200 188 | }, 189 | "input":{"shape":"DeleteMeshInput"}, 190 | "output":{"shape":"DeleteMeshOutput"}, 191 | "errors":[ 192 | {"shape":"NotFoundException"}, 193 | {"shape":"BadRequestException"}, 194 | {"shape":"TooManyRequestsException"}, 195 | {"shape":"ForbiddenException"}, 196 | {"shape":"ResourceInUseException"}, 197 | {"shape":"ServiceUnavailableException"}, 198 | {"shape":"InternalServerErrorException"} 199 | ], 200 | "idempotent":true 201 | }, 202 | "DeleteRoute":{ 203 | "name":"DeleteRoute", 204 | "http":{ 205 | "method":"DELETE", 206 | "requestUri":"/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}", 207 | "responseCode":200 208 | }, 209 | "input":{"shape":"DeleteRouteInput"}, 210 | "output":{"shape":"DeleteRouteOutput"}, 211 | "errors":[ 212 | {"shape":"NotFoundException"}, 213 | {"shape":"BadRequestException"}, 214 | {"shape":"TooManyRequestsException"}, 215 | {"shape":"ForbiddenException"}, 216 | {"shape":"ResourceInUseException"}, 217 | {"shape":"ServiceUnavailableException"}, 218 | {"shape":"InternalServerErrorException"} 219 | ], 220 | "idempotent":true 221 | }, 222 | "DeleteVirtualGateway":{ 223 | "name":"DeleteVirtualGateway", 224 | "http":{ 225 | "method":"DELETE", 226 | "requestUri":"/v20190125/meshes/{meshName}/virtualGateways/{virtualGatewayName}", 227 | "responseCode":200 228 | }, 229 | "input":{"shape":"DeleteVirtualGatewayInput"}, 230 | "output":{"shape":"DeleteVirtualGatewayOutput"}, 231 | "errors":[ 232 | {"shape":"NotFoundException"}, 233 | {"shape":"BadRequestException"}, 234 | {"shape":"TooManyRequestsException"}, 235 | {"shape":"ForbiddenException"}, 236 | {"shape":"ResourceInUseException"}, 237 | {"shape":"ServiceUnavailableException"}, 238 | {"shape":"InternalServerErrorException"} 239 | ], 240 | "idempotent":true 241 | }, 242 | "DeleteVirtualNode":{ 243 | "name":"DeleteVirtualNode", 244 | "http":{ 245 | "method":"DELETE", 246 | "requestUri":"/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}", 247 | "responseCode":200 248 | }, 249 | "input":{"shape":"DeleteVirtualNodeInput"}, 250 | "output":{"shape":"DeleteVirtualNodeOutput"}, 251 | "errors":[ 252 | {"shape":"NotFoundException"}, 253 | {"shape":"BadRequestException"}, 254 | {"shape":"TooManyRequestsException"}, 255 | {"shape":"ForbiddenException"}, 256 | {"shape":"ResourceInUseException"}, 257 | {"shape":"ServiceUnavailableException"}, 258 | {"shape":"InternalServerErrorException"} 259 | ], 260 | "idempotent":true 261 | }, 262 | "DeleteVirtualRouter":{ 263 | "name":"DeleteVirtualRouter", 264 | "http":{ 265 | "method":"DELETE", 266 | "requestUri":"/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}", 267 | "responseCode":200 268 | }, 269 | "input":{"shape":"DeleteVirtualRouterInput"}, 270 | "output":{"shape":"DeleteVirtualRouterOutput"}, 271 | "errors":[ 272 | {"shape":"NotFoundException"}, 273 | {"shape":"BadRequestException"}, 274 | {"shape":"TooManyRequestsException"}, 275 | {"shape":"ForbiddenException"}, 276 | {"shape":"ResourceInUseException"}, 277 | {"shape":"ServiceUnavailableException"}, 278 | {"shape":"InternalServerErrorException"} 279 | ], 280 | "idempotent":true 281 | }, 282 | "DeleteVirtualService":{ 283 | "name":"DeleteVirtualService", 284 | "http":{ 285 | "method":"DELETE", 286 | "requestUri":"/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}", 287 | "responseCode":200 288 | }, 289 | "input":{"shape":"DeleteVirtualServiceInput"}, 290 | "output":{"shape":"DeleteVirtualServiceOutput"}, 291 | "errors":[ 292 | {"shape":"NotFoundException"}, 293 | {"shape":"BadRequestException"}, 294 | {"shape":"TooManyRequestsException"}, 295 | {"shape":"ForbiddenException"}, 296 | {"shape":"ResourceInUseException"}, 297 | {"shape":"ServiceUnavailableException"}, 298 | {"shape":"InternalServerErrorException"} 299 | ], 300 | "idempotent":true 301 | }, 302 | "DescribeGatewayRoute":{ 303 | "name":"DescribeGatewayRoute", 304 | "http":{ 305 | "method":"GET", 306 | "requestUri":"/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes/{gatewayRouteName}", 307 | "responseCode":200 308 | }, 309 | "input":{"shape":"DescribeGatewayRouteInput"}, 310 | "output":{"shape":"DescribeGatewayRouteOutput"}, 311 | "errors":[ 312 | {"shape":"NotFoundException"}, 313 | {"shape":"BadRequestException"}, 314 | {"shape":"TooManyRequestsException"}, 315 | {"shape":"ForbiddenException"}, 316 | {"shape":"ServiceUnavailableException"}, 317 | {"shape":"InternalServerErrorException"} 318 | ] 319 | }, 320 | "DescribeMesh":{ 321 | "name":"DescribeMesh", 322 | "http":{ 323 | "method":"GET", 324 | "requestUri":"/v20190125/meshes/{meshName}", 325 | "responseCode":200 326 | }, 327 | "input":{"shape":"DescribeMeshInput"}, 328 | "output":{"shape":"DescribeMeshOutput"}, 329 | "errors":[ 330 | {"shape":"NotFoundException"}, 331 | {"shape":"BadRequestException"}, 332 | {"shape":"TooManyRequestsException"}, 333 | {"shape":"ForbiddenException"}, 334 | {"shape":"ServiceUnavailableException"}, 335 | {"shape":"InternalServerErrorException"} 336 | ] 337 | }, 338 | "DescribeRoute":{ 339 | "name":"DescribeRoute", 340 | "http":{ 341 | "method":"GET", 342 | "requestUri":"/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}", 343 | "responseCode":200 344 | }, 345 | "input":{"shape":"DescribeRouteInput"}, 346 | "output":{"shape":"DescribeRouteOutput"}, 347 | "errors":[ 348 | {"shape":"NotFoundException"}, 349 | {"shape":"BadRequestException"}, 350 | {"shape":"TooManyRequestsException"}, 351 | {"shape":"ForbiddenException"}, 352 | {"shape":"ServiceUnavailableException"}, 353 | {"shape":"InternalServerErrorException"} 354 | ] 355 | }, 356 | "DescribeVirtualGateway":{ 357 | "name":"DescribeVirtualGateway", 358 | "http":{ 359 | "method":"GET", 360 | "requestUri":"/v20190125/meshes/{meshName}/virtualGateways/{virtualGatewayName}", 361 | "responseCode":200 362 | }, 363 | "input":{"shape":"DescribeVirtualGatewayInput"}, 364 | "output":{"shape":"DescribeVirtualGatewayOutput"}, 365 | "errors":[ 366 | {"shape":"NotFoundException"}, 367 | {"shape":"BadRequestException"}, 368 | {"shape":"TooManyRequestsException"}, 369 | {"shape":"ForbiddenException"}, 370 | {"shape":"ServiceUnavailableException"}, 371 | {"shape":"InternalServerErrorException"} 372 | ] 373 | }, 374 | "DescribeVirtualNode":{ 375 | "name":"DescribeVirtualNode", 376 | "http":{ 377 | "method":"GET", 378 | "requestUri":"/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}", 379 | "responseCode":200 380 | }, 381 | "input":{"shape":"DescribeVirtualNodeInput"}, 382 | "output":{"shape":"DescribeVirtualNodeOutput"}, 383 | "errors":[ 384 | {"shape":"NotFoundException"}, 385 | {"shape":"BadRequestException"}, 386 | {"shape":"TooManyRequestsException"}, 387 | {"shape":"ForbiddenException"}, 388 | {"shape":"ServiceUnavailableException"}, 389 | {"shape":"InternalServerErrorException"} 390 | ] 391 | }, 392 | "DescribeVirtualRouter":{ 393 | "name":"DescribeVirtualRouter", 394 | "http":{ 395 | "method":"GET", 396 | "requestUri":"/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}", 397 | "responseCode":200 398 | }, 399 | "input":{"shape":"DescribeVirtualRouterInput"}, 400 | "output":{"shape":"DescribeVirtualRouterOutput"}, 401 | "errors":[ 402 | {"shape":"NotFoundException"}, 403 | {"shape":"BadRequestException"}, 404 | {"shape":"TooManyRequestsException"}, 405 | {"shape":"ForbiddenException"}, 406 | {"shape":"ServiceUnavailableException"}, 407 | {"shape":"InternalServerErrorException"} 408 | ] 409 | }, 410 | "DescribeVirtualService":{ 411 | "name":"DescribeVirtualService", 412 | "http":{ 413 | "method":"GET", 414 | "requestUri":"/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}", 415 | "responseCode":200 416 | }, 417 | "input":{"shape":"DescribeVirtualServiceInput"}, 418 | "output":{"shape":"DescribeVirtualServiceOutput"}, 419 | "errors":[ 420 | {"shape":"NotFoundException"}, 421 | {"shape":"BadRequestException"}, 422 | {"shape":"TooManyRequestsException"}, 423 | {"shape":"ForbiddenException"}, 424 | {"shape":"ServiceUnavailableException"}, 425 | {"shape":"InternalServerErrorException"} 426 | ] 427 | }, 428 | "ListGatewayRoutes":{ 429 | "name":"ListGatewayRoutes", 430 | "http":{ 431 | "method":"GET", 432 | "requestUri":"/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes", 433 | "responseCode":200 434 | }, 435 | "input":{"shape":"ListGatewayRoutesInput"}, 436 | "output":{"shape":"ListGatewayRoutesOutput"}, 437 | "errors":[ 438 | {"shape":"NotFoundException"}, 439 | {"shape":"BadRequestException"}, 440 | {"shape":"TooManyRequestsException"}, 441 | {"shape":"ForbiddenException"}, 442 | {"shape":"ServiceUnavailableException"}, 443 | {"shape":"InternalServerErrorException"} 444 | ] 445 | }, 446 | "ListMeshes":{ 447 | "name":"ListMeshes", 448 | "http":{ 449 | "method":"GET", 450 | "requestUri":"/v20190125/meshes", 451 | "responseCode":200 452 | }, 453 | "input":{"shape":"ListMeshesInput"}, 454 | "output":{"shape":"ListMeshesOutput"}, 455 | "errors":[ 456 | {"shape":"NotFoundException"}, 457 | {"shape":"BadRequestException"}, 458 | {"shape":"TooManyRequestsException"}, 459 | {"shape":"ForbiddenException"}, 460 | {"shape":"ServiceUnavailableException"}, 461 | {"shape":"InternalServerErrorException"} 462 | ] 463 | }, 464 | "ListRoutes":{ 465 | "name":"ListRoutes", 466 | "http":{ 467 | "method":"GET", 468 | "requestUri":"/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes", 469 | "responseCode":200 470 | }, 471 | "input":{"shape":"ListRoutesInput"}, 472 | "output":{"shape":"ListRoutesOutput"}, 473 | "errors":[ 474 | {"shape":"NotFoundException"}, 475 | {"shape":"BadRequestException"}, 476 | {"shape":"TooManyRequestsException"}, 477 | {"shape":"ForbiddenException"}, 478 | {"shape":"ServiceUnavailableException"}, 479 | {"shape":"InternalServerErrorException"} 480 | ] 481 | }, 482 | "ListVirtualGateways":{ 483 | "name":"ListVirtualGateways", 484 | "http":{ 485 | "method":"GET", 486 | "requestUri":"/v20190125/meshes/{meshName}/virtualGateways", 487 | "responseCode":200 488 | }, 489 | "input":{"shape":"ListVirtualGatewaysInput"}, 490 | "output":{"shape":"ListVirtualGatewaysOutput"}, 491 | "errors":[ 492 | {"shape":"NotFoundException"}, 493 | {"shape":"BadRequestException"}, 494 | {"shape":"TooManyRequestsException"}, 495 | {"shape":"ForbiddenException"}, 496 | {"shape":"ServiceUnavailableException"}, 497 | {"shape":"InternalServerErrorException"} 498 | ] 499 | }, 500 | "ListVirtualNodes":{ 501 | "name":"ListVirtualNodes", 502 | "http":{ 503 | "method":"GET", 504 | "requestUri":"/v20190125/meshes/{meshName}/virtualNodes", 505 | "responseCode":200 506 | }, 507 | "input":{"shape":"ListVirtualNodesInput"}, 508 | "output":{"shape":"ListVirtualNodesOutput"}, 509 | "errors":[ 510 | {"shape":"NotFoundException"}, 511 | {"shape":"BadRequestException"}, 512 | {"shape":"TooManyRequestsException"}, 513 | {"shape":"ForbiddenException"}, 514 | {"shape":"ServiceUnavailableException"}, 515 | {"shape":"InternalServerErrorException"} 516 | ] 517 | }, 518 | "ListVirtualRouters":{ 519 | "name":"ListVirtualRouters", 520 | "http":{ 521 | "method":"GET", 522 | "requestUri":"/v20190125/meshes/{meshName}/virtualRouters", 523 | "responseCode":200 524 | }, 525 | "input":{"shape":"ListVirtualRoutersInput"}, 526 | "output":{"shape":"ListVirtualRoutersOutput"}, 527 | "errors":[ 528 | {"shape":"NotFoundException"}, 529 | {"shape":"BadRequestException"}, 530 | {"shape":"TooManyRequestsException"}, 531 | {"shape":"ForbiddenException"}, 532 | {"shape":"ServiceUnavailableException"}, 533 | {"shape":"InternalServerErrorException"} 534 | ] 535 | }, 536 | "ListVirtualServices":{ 537 | "name":"ListVirtualServices", 538 | "http":{ 539 | "method":"GET", 540 | "requestUri":"/v20190125/meshes/{meshName}/virtualServices", 541 | "responseCode":200 542 | }, 543 | "input":{"shape":"ListVirtualServicesInput"}, 544 | "output":{"shape":"ListVirtualServicesOutput"}, 545 | "errors":[ 546 | {"shape":"NotFoundException"}, 547 | {"shape":"BadRequestException"}, 548 | {"shape":"TooManyRequestsException"}, 549 | {"shape":"ForbiddenException"}, 550 | {"shape":"ServiceUnavailableException"}, 551 | {"shape":"InternalServerErrorException"} 552 | ] 553 | }, 554 | "UpdateGatewayRoute":{ 555 | "name":"UpdateGatewayRoute", 556 | "http":{ 557 | "method":"PUT", 558 | "requestUri":"/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes/{gatewayRouteName}", 559 | "responseCode":200 560 | }, 561 | "input":{"shape":"UpdateGatewayRouteInput"}, 562 | "output":{"shape":"UpdateGatewayRouteOutput"}, 563 | "errors":[ 564 | {"shape":"NotFoundException"}, 565 | {"shape":"BadRequestException"}, 566 | {"shape":"ConflictException"}, 567 | {"shape":"TooManyRequestsException"}, 568 | {"shape":"ForbiddenException"}, 569 | {"shape":"ServiceUnavailableException"}, 570 | {"shape":"InternalServerErrorException"}, 571 | {"shape":"LimitExceededException"} 572 | ], 573 | "idempotent":true 574 | }, 575 | "UpdateMesh":{ 576 | "name":"UpdateMesh", 577 | "http":{ 578 | "method":"PUT", 579 | "requestUri":"/v20190125/meshes/{meshName}", 580 | "responseCode":200 581 | }, 582 | "input":{"shape":"UpdateMeshInput"}, 583 | "output":{"shape":"UpdateMeshOutput"}, 584 | "errors":[ 585 | {"shape":"NotFoundException"}, 586 | {"shape":"BadRequestException"}, 587 | {"shape":"ConflictException"}, 588 | {"shape":"TooManyRequestsException"}, 589 | {"shape":"ForbiddenException"}, 590 | {"shape":"ServiceUnavailableException"}, 591 | {"shape":"InternalServerErrorException"} 592 | ], 593 | "idempotent":true 594 | }, 595 | "UpdateRoute":{ 596 | "name":"UpdateRoute", 597 | "http":{ 598 | "method":"PUT", 599 | "requestUri":"/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}", 600 | "responseCode":200 601 | }, 602 | "input":{"shape":"UpdateRouteInput"}, 603 | "output":{"shape":"UpdateRouteOutput"}, 604 | "errors":[ 605 | {"shape":"NotFoundException"}, 606 | {"shape":"BadRequestException"}, 607 | {"shape":"ConflictException"}, 608 | {"shape":"TooManyRequestsException"}, 609 | {"shape":"ForbiddenException"}, 610 | {"shape":"ServiceUnavailableException"}, 611 | {"shape":"InternalServerErrorException"}, 612 | {"shape":"LimitExceededException"} 613 | ], 614 | "idempotent":true 615 | }, 616 | "UpdateVirtualGateway":{ 617 | "name":"UpdateVirtualGateway", 618 | "http":{ 619 | "method":"PUT", 620 | "requestUri":"/v20190125/meshes/{meshName}/virtualGateways/{virtualGatewayName}", 621 | "responseCode":200 622 | }, 623 | "input":{"shape":"UpdateVirtualGatewayInput"}, 624 | "output":{"shape":"UpdateVirtualGatewayOutput"}, 625 | "errors":[ 626 | {"shape":"NotFoundException"}, 627 | {"shape":"BadRequestException"}, 628 | {"shape":"ConflictException"}, 629 | {"shape":"TooManyRequestsException"}, 630 | {"shape":"ForbiddenException"}, 631 | {"shape":"ServiceUnavailableException"}, 632 | {"shape":"InternalServerErrorException"}, 633 | {"shape":"LimitExceededException"} 634 | ], 635 | "idempotent":true 636 | }, 637 | "UpdateVirtualNode":{ 638 | "name":"UpdateVirtualNode", 639 | "http":{ 640 | "method":"PUT", 641 | "requestUri":"/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}", 642 | "responseCode":200 643 | }, 644 | "input":{"shape":"UpdateVirtualNodeInput"}, 645 | "output":{"shape":"UpdateVirtualNodeOutput"}, 646 | "errors":[ 647 | {"shape":"NotFoundException"}, 648 | {"shape":"BadRequestException"}, 649 | {"shape":"ConflictException"}, 650 | {"shape":"TooManyRequestsException"}, 651 | {"shape":"ForbiddenException"}, 652 | {"shape":"ServiceUnavailableException"}, 653 | {"shape":"InternalServerErrorException"}, 654 | {"shape":"LimitExceededException"} 655 | ], 656 | "idempotent":true 657 | }, 658 | "UpdateVirtualRouter":{ 659 | "name":"UpdateVirtualRouter", 660 | "http":{ 661 | "method":"PUT", 662 | "requestUri":"/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}", 663 | "responseCode":200 664 | }, 665 | "input":{"shape":"UpdateVirtualRouterInput"}, 666 | "output":{"shape":"UpdateVirtualRouterOutput"}, 667 | "errors":[ 668 | {"shape":"NotFoundException"}, 669 | {"shape":"BadRequestException"}, 670 | {"shape":"ConflictException"}, 671 | {"shape":"TooManyRequestsException"}, 672 | {"shape":"ForbiddenException"}, 673 | {"shape":"ServiceUnavailableException"}, 674 | {"shape":"InternalServerErrorException"}, 675 | {"shape":"LimitExceededException"} 676 | ], 677 | "idempotent":true 678 | }, 679 | "UpdateVirtualService":{ 680 | "name":"UpdateVirtualService", 681 | "http":{ 682 | "method":"PUT", 683 | "requestUri":"/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}", 684 | "responseCode":200 685 | }, 686 | "input":{"shape":"UpdateVirtualServiceInput"}, 687 | "output":{"shape":"UpdateVirtualServiceOutput"}, 688 | "errors":[ 689 | {"shape":"NotFoundException"}, 690 | {"shape":"BadRequestException"}, 691 | {"shape":"ConflictException"}, 692 | {"shape":"TooManyRequestsException"}, 693 | {"shape":"ForbiddenException"}, 694 | {"shape":"ServiceUnavailableException"}, 695 | {"shape":"InternalServerErrorException"}, 696 | {"shape":"LimitExceededException"} 697 | ], 698 | "idempotent":true 699 | } 700 | }, 701 | "shapes":{ 702 | "AccessLog":{ 703 | "type":"structure", 704 | "members":{ 705 | "file":{"shape":"FileAccessLog"} 706 | }, 707 | "union":true 708 | }, 709 | "AccountId":{ 710 | "type":"string", 711 | "max":12, 712 | "min":12 713 | }, 714 | "Arn":{"type":"string"}, 715 | "AwsCloudMapInstanceAttribute":{ 716 | "type":"structure", 717 | "required":[ 718 | "key", 719 | "value" 720 | ], 721 | "members":{ 722 | "key":{"shape":"AwsCloudMapInstanceAttributeKey"}, 723 | "value":{"shape":"AwsCloudMapInstanceAttributeValue"} 724 | } 725 | }, 726 | "AwsCloudMapInstanceAttributeKey":{ 727 | "type":"string", 728 | "max":255, 729 | "min":1, 730 | "pattern":"^[a-zA-Z0-9!-~]+$" 731 | }, 732 | "AwsCloudMapInstanceAttributeValue":{ 733 | "type":"string", 734 | "max":1024, 735 | "min":1, 736 | "pattern":"^([a-zA-Z0-9!-~][ a-zA-Z0-9!-~]*){0,1}[a-zA-Z0-9!-~]{0,1}$" 737 | }, 738 | "AwsCloudMapInstanceAttributes":{ 739 | "type":"list", 740 | "member":{"shape":"AwsCloudMapInstanceAttribute"} 741 | }, 742 | "AwsCloudMapName":{ 743 | "type":"string", 744 | "max":1024, 745 | "min":1 746 | }, 747 | "AwsCloudMapServiceDiscovery":{ 748 | "type":"structure", 749 | "required":[ 750 | "namespaceName", 751 | "serviceName" 752 | ], 753 | "members":{ 754 | "attributes":{"shape":"AwsCloudMapInstanceAttributes"}, 755 | "namespaceName":{"shape":"AwsCloudMapName"}, 756 | "serviceName":{"shape":"AwsCloudMapName"} 757 | } 758 | }, 759 | "Backend":{ 760 | "type":"structure", 761 | "members":{ 762 | "virtualService":{"shape":"VirtualServiceBackend"} 763 | }, 764 | "union":true 765 | }, 766 | "BackendDefaults":{ 767 | "type":"structure", 768 | "members":{ 769 | "clientPolicy":{"shape":"ClientPolicy"} 770 | } 771 | }, 772 | "Backends":{ 773 | "type":"list", 774 | "member":{"shape":"Backend"} 775 | }, 776 | "BadRequestException":{ 777 | "type":"structure", 778 | "members":{ 779 | "message":{"shape":"String"} 780 | }, 781 | "error":{ 782 | "httpStatusCode":400, 783 | "senderFault":true 784 | }, 785 | "exception":true 786 | }, 787 | "Boolean":{ 788 | "type":"boolean", 789 | "box":true 790 | }, 791 | "CertificateAuthorityArns":{ 792 | "type":"list", 793 | "member":{"shape":"Arn"}, 794 | "max":3, 795 | "min":1 796 | }, 797 | "ClientPolicy":{ 798 | "type":"structure", 799 | "members":{ 800 | "tls":{"shape":"ClientPolicyTls"} 801 | } 802 | }, 803 | "ClientPolicyTls":{ 804 | "type":"structure", 805 | "required":["validation"], 806 | "members":{ 807 | "certificate":{"shape":"ClientTlsCertificate"}, 808 | "enforce":{ 809 | "shape":"Boolean", 810 | "box":true 811 | }, 812 | "ports":{"shape":"PortSet"}, 813 | "validation":{"shape":"TlsValidationContext"} 814 | } 815 | }, 816 | "ClientTlsCertificate":{ 817 | "type":"structure", 818 | "members":{ 819 | "file":{"shape":"ListenerTlsFileCertificate"}, 820 | "sds":{"shape":"ListenerTlsSdsCertificate"} 821 | }, 822 | "union":true 823 | }, 824 | "ConflictException":{ 825 | "type":"structure", 826 | "members":{ 827 | "message":{"shape":"String"} 828 | }, 829 | "error":{ 830 | "httpStatusCode":409, 831 | "senderFault":true 832 | }, 833 | "exception":true 834 | }, 835 | "CreateGatewayRouteInput":{ 836 | "type":"structure", 837 | "required":[ 838 | "gatewayRouteName", 839 | "meshName", 840 | "spec", 841 | "virtualGatewayName" 842 | ], 843 | "members":{ 844 | "clientToken":{ 845 | "shape":"String", 846 | "idempotencyToken":true 847 | }, 848 | "gatewayRouteName":{"shape":"ResourceName"}, 849 | "meshName":{ 850 | "shape":"ResourceName", 851 | "location":"uri", 852 | "locationName":"meshName" 853 | }, 854 | "meshOwner":{ 855 | "shape":"AccountId", 856 | "location":"querystring", 857 | "locationName":"meshOwner" 858 | }, 859 | "spec":{"shape":"GatewayRouteSpec"}, 860 | "tags":{"shape":"TagList"}, 861 | "virtualGatewayName":{ 862 | "shape":"ResourceName", 863 | "location":"uri", 864 | "locationName":"virtualGatewayName" 865 | } 866 | } 867 | }, 868 | "CreateGatewayRouteOutput":{ 869 | "type":"structure", 870 | "required":["gatewayRoute"], 871 | "members":{ 872 | "gatewayRoute":{"shape":"GatewayRouteData"} 873 | }, 874 | "payload":"gatewayRoute" 875 | }, 876 | "CreateMeshInput":{ 877 | "type":"structure", 878 | "required":["meshName"], 879 | "members":{ 880 | "clientToken":{ 881 | "shape":"String", 882 | "idempotencyToken":true 883 | }, 884 | "meshName":{"shape":"ResourceName"}, 885 | "spec":{"shape":"MeshSpec"} 886 | } 887 | }, 888 | "CreateMeshOutput":{ 889 | "type":"structure", 890 | "required":["mesh"], 891 | "members":{ 892 | "mesh":{"shape":"MeshData"} 893 | }, 894 | "payload":"mesh" 895 | }, 896 | "CreateRouteInput":{ 897 | "type":"structure", 898 | "required":[ 899 | "meshName", 900 | "routeName", 901 | "spec", 902 | "virtualRouterName" 903 | ], 904 | "members":{ 905 | "clientToken":{ 906 | "shape":"String", 907 | "idempotencyToken":true 908 | }, 909 | "meshName":{ 910 | "shape":"ResourceName", 911 | "location":"uri", 912 | "locationName":"meshName" 913 | }, 914 | "meshOwner":{ 915 | "shape":"AccountId", 916 | "location":"querystring", 917 | "locationName":"meshOwner" 918 | }, 919 | "routeName":{"shape":"ResourceName"}, 920 | "spec":{"shape":"RouteSpec"}, 921 | "virtualRouterName":{ 922 | "shape":"ResourceName", 923 | "location":"uri", 924 | "locationName":"virtualRouterName" 925 | } 926 | } 927 | }, 928 | "CreateRouteOutput":{ 929 | "type":"structure", 930 | "required":["route"], 931 | "members":{ 932 | "route":{"shape":"RouteData"} 933 | }, 934 | "payload":"route" 935 | }, 936 | "CreateVirtualGatewayInput":{ 937 | "type":"structure", 938 | "required":[ 939 | "meshName", 940 | "spec", 941 | "virtualGatewayName" 942 | ], 943 | "members":{ 944 | "clientToken":{ 945 | "shape":"String", 946 | "idempotencyToken":true 947 | }, 948 | "meshName":{ 949 | "shape":"ResourceName", 950 | "location":"uri", 951 | "locationName":"meshName" 952 | }, 953 | "meshOwner":{ 954 | "shape":"AccountId", 955 | "location":"querystring", 956 | "locationName":"meshOwner" 957 | }, 958 | "spec":{"shape":"VirtualGatewaySpec"}, 959 | "tags":{"shape":"TagList"}, 960 | "virtualGatewayName":{"shape":"ResourceName"} 961 | } 962 | }, 963 | "CreateVirtualGatewayOutput":{ 964 | "type":"structure", 965 | "required":["virtualGateway"], 966 | "members":{ 967 | "virtualGateway":{"shape":"VirtualGatewayData"} 968 | }, 969 | "payload":"virtualGateway" 970 | }, 971 | "CreateVirtualNodeInput":{ 972 | "type":"structure", 973 | "required":[ 974 | "meshName", 975 | "spec", 976 | "virtualNodeName" 977 | ], 978 | "members":{ 979 | "clientToken":{ 980 | "shape":"String", 981 | "idempotencyToken":true 982 | }, 983 | "meshName":{ 984 | "shape":"ResourceName", 985 | "location":"uri", 986 | "locationName":"meshName" 987 | }, 988 | "meshOwner":{ 989 | "shape":"AccountId", 990 | "location":"querystring", 991 | "locationName":"meshOwner" 992 | }, 993 | "spec":{"shape":"VirtualNodeSpec"}, 994 | "virtualNodeName":{"shape":"ResourceName"} 995 | } 996 | }, 997 | "CreateVirtualNodeOutput":{ 998 | "type":"structure", 999 | "required":["virtualNode"], 1000 | "members":{ 1001 | "virtualNode":{"shape":"VirtualNodeData"} 1002 | }, 1003 | "payload":"virtualNode" 1004 | }, 1005 | "CreateVirtualRouterInput":{ 1006 | "type":"structure", 1007 | "required":[ 1008 | "meshName", 1009 | "spec", 1010 | "virtualRouterName" 1011 | ], 1012 | "members":{ 1013 | "clientToken":{ 1014 | "shape":"String", 1015 | "idempotencyToken":true 1016 | }, 1017 | "meshName":{ 1018 | "shape":"ResourceName", 1019 | "location":"uri", 1020 | "locationName":"meshName" 1021 | }, 1022 | "meshOwner":{ 1023 | "shape":"AccountId", 1024 | "location":"querystring", 1025 | "locationName":"meshOwner" 1026 | }, 1027 | "spec":{"shape":"VirtualRouterSpec"}, 1028 | "virtualRouterName":{"shape":"ResourceName"} 1029 | } 1030 | }, 1031 | "CreateVirtualRouterOutput":{ 1032 | "type":"structure", 1033 | "required":["virtualRouter"], 1034 | "members":{ 1035 | "virtualRouter":{"shape":"VirtualRouterData"} 1036 | }, 1037 | "payload":"virtualRouter" 1038 | }, 1039 | "CreateVirtualServiceInput":{ 1040 | "type":"structure", 1041 | "required":[ 1042 | "meshName", 1043 | "spec", 1044 | "virtualServiceName" 1045 | ], 1046 | "members":{ 1047 | "clientToken":{ 1048 | "shape":"String", 1049 | "idempotencyToken":true 1050 | }, 1051 | "meshName":{ 1052 | "shape":"ResourceName", 1053 | "location":"uri", 1054 | "locationName":"meshName" 1055 | }, 1056 | "meshOwner":{ 1057 | "shape":"AccountId", 1058 | "location":"querystring", 1059 | "locationName":"meshOwner" 1060 | }, 1061 | "spec":{"shape":"VirtualServiceSpec"}, 1062 | "virtualServiceName":{"shape":"ServiceName"} 1063 | } 1064 | }, 1065 | "CreateVirtualServiceOutput":{ 1066 | "type":"structure", 1067 | "required":["virtualService"], 1068 | "members":{ 1069 | "virtualService":{"shape":"VirtualServiceData"} 1070 | }, 1071 | "payload":"virtualService" 1072 | }, 1073 | "DefaultGatewayRouteRewrite":{ 1074 | "type":"string", 1075 | "enum":[ 1076 | "ENABLED", 1077 | "DISABLED" 1078 | ] 1079 | }, 1080 | "DeleteGatewayRouteInput":{ 1081 | "type":"structure", 1082 | "required":[ 1083 | "gatewayRouteName", 1084 | "meshName", 1085 | "virtualGatewayName" 1086 | ], 1087 | "members":{ 1088 | "gatewayRouteName":{ 1089 | "shape":"ResourceName", 1090 | "location":"uri", 1091 | "locationName":"gatewayRouteName" 1092 | }, 1093 | "meshName":{ 1094 | "shape":"ResourceName", 1095 | "location":"uri", 1096 | "locationName":"meshName" 1097 | }, 1098 | "meshOwner":{ 1099 | "shape":"AccountId", 1100 | "location":"querystring", 1101 | "locationName":"meshOwner" 1102 | }, 1103 | "virtualGatewayName":{ 1104 | "shape":"ResourceName", 1105 | "location":"uri", 1106 | "locationName":"virtualGatewayName" 1107 | } 1108 | } 1109 | }, 1110 | "DeleteGatewayRouteOutput":{ 1111 | "type":"structure", 1112 | "required":["gatewayRoute"], 1113 | "members":{ 1114 | "gatewayRoute":{"shape":"GatewayRouteData"} 1115 | }, 1116 | "payload":"gatewayRoute" 1117 | }, 1118 | "DeleteMeshInput":{ 1119 | "type":"structure", 1120 | "required":["meshName"], 1121 | "members":{ 1122 | "meshName":{ 1123 | "shape":"ResourceName", 1124 | "location":"uri", 1125 | "locationName":"meshName" 1126 | } 1127 | } 1128 | }, 1129 | "DeleteMeshOutput":{ 1130 | "type":"structure", 1131 | "required":["mesh"], 1132 | "members":{ 1133 | "mesh":{"shape":"MeshData"} 1134 | }, 1135 | "payload":"mesh" 1136 | }, 1137 | "DeleteRouteInput":{ 1138 | "type":"structure", 1139 | "required":[ 1140 | "meshName", 1141 | "routeName", 1142 | "virtualRouterName" 1143 | ], 1144 | "members":{ 1145 | "meshName":{ 1146 | "shape":"ResourceName", 1147 | "location":"uri", 1148 | "locationName":"meshName" 1149 | }, 1150 | "meshOwner":{ 1151 | "shape":"AccountId", 1152 | "location":"querystring", 1153 | "locationName":"meshOwner" 1154 | }, 1155 | "routeName":{ 1156 | "shape":"ResourceName", 1157 | "location":"uri", 1158 | "locationName":"routeName" 1159 | }, 1160 | "virtualRouterName":{ 1161 | "shape":"ResourceName", 1162 | "location":"uri", 1163 | "locationName":"virtualRouterName" 1164 | } 1165 | } 1166 | }, 1167 | "DeleteRouteOutput":{ 1168 | "type":"structure", 1169 | "required":["route"], 1170 | "members":{ 1171 | "route":{"shape":"RouteData"} 1172 | }, 1173 | "payload":"route" 1174 | }, 1175 | "DeleteVirtualGatewayInput":{ 1176 | "type":"structure", 1177 | "required":[ 1178 | "meshName", 1179 | "virtualGatewayName" 1180 | ], 1181 | "members":{ 1182 | "meshName":{ 1183 | "shape":"ResourceName", 1184 | "location":"uri", 1185 | "locationName":"meshName" 1186 | }, 1187 | "meshOwner":{ 1188 | "shape":"AccountId", 1189 | "location":"querystring", 1190 | "locationName":"meshOwner" 1191 | }, 1192 | "virtualGatewayName":{ 1193 | "shape":"ResourceName", 1194 | "location":"uri", 1195 | "locationName":"virtualGatewayName" 1196 | } 1197 | } 1198 | }, 1199 | "DeleteVirtualGatewayOutput":{ 1200 | "type":"structure", 1201 | "required":["virtualGateway"], 1202 | "members":{ 1203 | "virtualGateway":{"shape":"VirtualGatewayData"} 1204 | }, 1205 | "payload":"virtualGateway" 1206 | }, 1207 | "DeleteVirtualNodeInput":{ 1208 | "type":"structure", 1209 | "required":[ 1210 | "meshName", 1211 | "virtualNodeName" 1212 | ], 1213 | "members":{ 1214 | "meshName":{ 1215 | "shape":"ResourceName", 1216 | "location":"uri", 1217 | "locationName":"meshName" 1218 | }, 1219 | "meshOwner":{ 1220 | "shape":"AccountId", 1221 | "location":"querystring", 1222 | "locationName":"meshOwner" 1223 | }, 1224 | "virtualNodeName":{ 1225 | "shape":"ResourceName", 1226 | "location":"uri", 1227 | "locationName":"virtualNodeName" 1228 | } 1229 | } 1230 | }, 1231 | "DeleteVirtualNodeOutput":{ 1232 | "type":"structure", 1233 | "required":["virtualNode"], 1234 | "members":{ 1235 | "virtualNode":{"shape":"VirtualNodeData"} 1236 | }, 1237 | "payload":"virtualNode" 1238 | }, 1239 | "DeleteVirtualRouterInput":{ 1240 | "type":"structure", 1241 | "required":[ 1242 | "meshName", 1243 | "virtualRouterName" 1244 | ], 1245 | "members":{ 1246 | "meshName":{ 1247 | "shape":"ResourceName", 1248 | "location":"uri", 1249 | "locationName":"meshName" 1250 | }, 1251 | "meshOwner":{ 1252 | "shape":"AccountId", 1253 | "location":"querystring", 1254 | "locationName":"meshOwner" 1255 | }, 1256 | "virtualRouterName":{ 1257 | "shape":"ResourceName", 1258 | "location":"uri", 1259 | "locationName":"virtualRouterName" 1260 | } 1261 | } 1262 | }, 1263 | "DeleteVirtualRouterOutput":{ 1264 | "type":"structure", 1265 | "required":["virtualRouter"], 1266 | "members":{ 1267 | "virtualRouter":{"shape":"VirtualRouterData"} 1268 | }, 1269 | "payload":"virtualRouter" 1270 | }, 1271 | "DeleteVirtualServiceInput":{ 1272 | "type":"structure", 1273 | "required":[ 1274 | "meshName", 1275 | "virtualServiceName" 1276 | ], 1277 | "members":{ 1278 | "meshName":{ 1279 | "shape":"ResourceName", 1280 | "location":"uri", 1281 | "locationName":"meshName" 1282 | }, 1283 | "meshOwner":{ 1284 | "shape":"AccountId", 1285 | "location":"querystring", 1286 | "locationName":"meshOwner" 1287 | }, 1288 | "virtualServiceName":{ 1289 | "shape":"ServiceName", 1290 | "location":"uri", 1291 | "locationName":"virtualServiceName" 1292 | } 1293 | } 1294 | }, 1295 | "DeleteVirtualServiceOutput":{ 1296 | "type":"structure", 1297 | "required":["virtualService"], 1298 | "members":{ 1299 | "virtualService":{"shape":"VirtualServiceData"} 1300 | }, 1301 | "payload":"virtualService" 1302 | }, 1303 | "DescribeGatewayRouteInput":{ 1304 | "type":"structure", 1305 | "required":[ 1306 | "gatewayRouteName", 1307 | "meshName", 1308 | "virtualGatewayName" 1309 | ], 1310 | "members":{ 1311 | "gatewayRouteName":{ 1312 | "shape":"ResourceName", 1313 | "location":"uri", 1314 | "locationName":"gatewayRouteName" 1315 | }, 1316 | "meshName":{ 1317 | "shape":"ResourceName", 1318 | "location":"uri", 1319 | "locationName":"meshName" 1320 | }, 1321 | "meshOwner":{ 1322 | "shape":"AccountId", 1323 | "location":"querystring", 1324 | "locationName":"meshOwner" 1325 | }, 1326 | "virtualGatewayName":{ 1327 | "shape":"ResourceName", 1328 | "location":"uri", 1329 | "locationName":"virtualGatewayName" 1330 | } 1331 | } 1332 | }, 1333 | "DescribeGatewayRouteOutput":{ 1334 | "type":"structure", 1335 | "required":["gatewayRoute"], 1336 | "members":{ 1337 | "gatewayRoute":{"shape":"GatewayRouteData"} 1338 | }, 1339 | "payload":"gatewayRoute" 1340 | }, 1341 | "DescribeMeshInput":{ 1342 | "type":"structure", 1343 | "required":["meshName"], 1344 | "members":{ 1345 | "meshName":{ 1346 | "shape":"ResourceName", 1347 | "location":"uri", 1348 | "locationName":"meshName" 1349 | }, 1350 | "meshOwner":{ 1351 | "shape":"AccountId", 1352 | "location":"querystring", 1353 | "locationName":"meshOwner" 1354 | } 1355 | } 1356 | }, 1357 | "DescribeMeshOutput":{ 1358 | "type":"structure", 1359 | "required":["mesh"], 1360 | "members":{ 1361 | "mesh":{"shape":"MeshData"} 1362 | }, 1363 | "payload":"mesh" 1364 | }, 1365 | "DescribeRouteInput":{ 1366 | "type":"structure", 1367 | "required":[ 1368 | "meshName", 1369 | "routeName", 1370 | "virtualRouterName" 1371 | ], 1372 | "members":{ 1373 | "meshName":{ 1374 | "shape":"ResourceName", 1375 | "location":"uri", 1376 | "locationName":"meshName" 1377 | }, 1378 | "meshOwner":{ 1379 | "shape":"AccountId", 1380 | "location":"querystring", 1381 | "locationName":"meshOwner" 1382 | }, 1383 | "routeName":{ 1384 | "shape":"ResourceName", 1385 | "location":"uri", 1386 | "locationName":"routeName" 1387 | }, 1388 | "virtualRouterName":{ 1389 | "shape":"ResourceName", 1390 | "location":"uri", 1391 | "locationName":"virtualRouterName" 1392 | } 1393 | } 1394 | }, 1395 | "DescribeRouteOutput":{ 1396 | "type":"structure", 1397 | "required":["route"], 1398 | "members":{ 1399 | "route":{"shape":"RouteData"} 1400 | }, 1401 | "payload":"route" 1402 | }, 1403 | "DescribeVirtualGatewayInput":{ 1404 | "type":"structure", 1405 | "required":[ 1406 | "meshName", 1407 | "virtualGatewayName" 1408 | ], 1409 | "members":{ 1410 | "meshName":{ 1411 | "shape":"ResourceName", 1412 | "location":"uri", 1413 | "locationName":"meshName" 1414 | }, 1415 | "meshOwner":{ 1416 | "shape":"AccountId", 1417 | "location":"querystring", 1418 | "locationName":"meshOwner" 1419 | }, 1420 | "virtualGatewayName":{ 1421 | "shape":"ResourceName", 1422 | "location":"uri", 1423 | "locationName":"virtualGatewayName" 1424 | } 1425 | } 1426 | }, 1427 | "DescribeVirtualGatewayOutput":{ 1428 | "type":"structure", 1429 | "required":["virtualGateway"], 1430 | "members":{ 1431 | "virtualGateway":{"shape":"VirtualGatewayData"} 1432 | }, 1433 | "payload":"virtualGateway" 1434 | }, 1435 | "DescribeVirtualNodeInput":{ 1436 | "type":"structure", 1437 | "required":[ 1438 | "meshName", 1439 | "virtualNodeName" 1440 | ], 1441 | "members":{ 1442 | "meshName":{ 1443 | "shape":"ResourceName", 1444 | "location":"uri", 1445 | "locationName":"meshName" 1446 | }, 1447 | "meshOwner":{ 1448 | "shape":"AccountId", 1449 | "location":"querystring", 1450 | "locationName":"meshOwner" 1451 | }, 1452 | "virtualNodeName":{ 1453 | "shape":"ResourceName", 1454 | "location":"uri", 1455 | "locationName":"virtualNodeName" 1456 | } 1457 | } 1458 | }, 1459 | "DescribeVirtualNodeOutput":{ 1460 | "type":"structure", 1461 | "required":["virtualNode"], 1462 | "members":{ 1463 | "virtualNode":{"shape":"VirtualNodeData"} 1464 | }, 1465 | "payload":"virtualNode" 1466 | }, 1467 | "DescribeVirtualRouterInput":{ 1468 | "type":"structure", 1469 | "required":[ 1470 | "meshName", 1471 | "virtualRouterName" 1472 | ], 1473 | "members":{ 1474 | "meshName":{ 1475 | "shape":"ResourceName", 1476 | "location":"uri", 1477 | "locationName":"meshName" 1478 | }, 1479 | "meshOwner":{ 1480 | "shape":"AccountId", 1481 | "location":"querystring", 1482 | "locationName":"meshOwner" 1483 | }, 1484 | "virtualRouterName":{ 1485 | "shape":"ResourceName", 1486 | "location":"uri", 1487 | "locationName":"virtualRouterName" 1488 | } 1489 | } 1490 | }, 1491 | "DescribeVirtualRouterOutput":{ 1492 | "type":"structure", 1493 | "required":["virtualRouter"], 1494 | "members":{ 1495 | "virtualRouter":{"shape":"VirtualRouterData"} 1496 | }, 1497 | "payload":"virtualRouter" 1498 | }, 1499 | "DescribeVirtualServiceInput":{ 1500 | "type":"structure", 1501 | "required":[ 1502 | "meshName", 1503 | "virtualServiceName" 1504 | ], 1505 | "members":{ 1506 | "meshName":{ 1507 | "shape":"ResourceName", 1508 | "location":"uri", 1509 | "locationName":"meshName" 1510 | }, 1511 | "meshOwner":{ 1512 | "shape":"AccountId", 1513 | "location":"querystring", 1514 | "locationName":"meshOwner" 1515 | }, 1516 | "virtualServiceName":{ 1517 | "shape":"ServiceName", 1518 | "location":"uri", 1519 | "locationName":"virtualServiceName" 1520 | } 1521 | } 1522 | }, 1523 | "DescribeVirtualServiceOutput":{ 1524 | "type":"structure", 1525 | "required":["virtualService"], 1526 | "members":{ 1527 | "virtualService":{"shape":"VirtualServiceData"} 1528 | }, 1529 | "payload":"virtualService" 1530 | }, 1531 | "DnsResponseType":{ 1532 | "type":"string", 1533 | "enum":[ 1534 | "LOADBALANCER", 1535 | "ENDPOINTS" 1536 | ] 1537 | }, 1538 | "DnsServiceDiscovery":{ 1539 | "type":"structure", 1540 | "required":["hostname"], 1541 | "members":{ 1542 | "hostname":{"shape":"Hostname"}, 1543 | "responseType":{"shape":"DnsResponseType"} 1544 | } 1545 | }, 1546 | "Duration":{ 1547 | "type":"structure", 1548 | "members":{ 1549 | "unit":{"shape":"DurationUnit"}, 1550 | "value":{"shape":"DurationValue"} 1551 | } 1552 | }, 1553 | "DurationUnit":{ 1554 | "type":"string", 1555 | "enum":[ 1556 | "s", 1557 | "ms" 1558 | ] 1559 | }, 1560 | "DurationValue":{ 1561 | "type":"long", 1562 | "box":true, 1563 | "min":0 1564 | }, 1565 | "EgressFilter":{ 1566 | "type":"structure", 1567 | "required":["type"], 1568 | "members":{ 1569 | "type":{"shape":"EgressFilterType"} 1570 | } 1571 | }, 1572 | "EgressFilterType":{ 1573 | "type":"string", 1574 | "enum":[ 1575 | "ALLOW_ALL", 1576 | "DROP_ALL" 1577 | ] 1578 | }, 1579 | "ExactHostName":{ 1580 | "type":"string", 1581 | "max":253, 1582 | "min":1 1583 | }, 1584 | "FileAccessLog":{ 1585 | "type":"structure", 1586 | "required":["path"], 1587 | "members":{ 1588 | "path":{"shape":"FilePath"} 1589 | } 1590 | }, 1591 | "FilePath":{ 1592 | "type":"string", 1593 | "max":255, 1594 | "min":1 1595 | }, 1596 | "ForbiddenException":{ 1597 | "type":"structure", 1598 | "members":{ 1599 | "message":{"shape":"String"} 1600 | }, 1601 | "error":{ 1602 | "httpStatusCode":403, 1603 | "senderFault":true 1604 | }, 1605 | "exception":true 1606 | }, 1607 | "GatewayRouteData":{ 1608 | "type":"structure", 1609 | "required":[ 1610 | "gatewayRouteName", 1611 | "meshName", 1612 | "metadata", 1613 | "spec", 1614 | "status", 1615 | "virtualGatewayName" 1616 | ], 1617 | "members":{ 1618 | "gatewayRouteName":{"shape":"ResourceName"}, 1619 | "meshName":{"shape":"ResourceName"}, 1620 | "metadata":{"shape":"ResourceMetadata"}, 1621 | "spec":{"shape":"GatewayRouteSpec"}, 1622 | "status":{"shape":"GatewayRouteStatus"}, 1623 | "virtualGatewayName":{"shape":"ResourceName"} 1624 | } 1625 | }, 1626 | "GatewayRouteHostnameMatch":{ 1627 | "type":"structure", 1628 | "members":{ 1629 | "exact":{"shape":"ExactHostName"}, 1630 | "suffix":{"shape":"SuffixHostname"} 1631 | } 1632 | }, 1633 | "GatewayRouteHostnameRewrite":{ 1634 | "type":"structure", 1635 | "members":{ 1636 | "defaultTargetHostname":{"shape":"DefaultGatewayRouteRewrite"} 1637 | } 1638 | }, 1639 | "GatewayRouteList":{ 1640 | "type":"list", 1641 | "member":{"shape":"GatewayRouteRef"} 1642 | }, 1643 | "GatewayRoutePriority":{ 1644 | "type":"integer", 1645 | "box":true, 1646 | "max":1000, 1647 | "min":0 1648 | }, 1649 | "GatewayRouteRef":{ 1650 | "type":"structure", 1651 | "required":[ 1652 | "arn", 1653 | "createdAt", 1654 | "gatewayRouteName", 1655 | "lastUpdatedAt", 1656 | "meshName", 1657 | "meshOwner", 1658 | "resourceOwner", 1659 | "version", 1660 | "virtualGatewayName" 1661 | ], 1662 | "members":{ 1663 | "arn":{"shape":"Arn"}, 1664 | "createdAt":{"shape":"Timestamp"}, 1665 | "gatewayRouteName":{"shape":"ResourceName"}, 1666 | "lastUpdatedAt":{"shape":"Timestamp"}, 1667 | "meshName":{"shape":"ResourceName"}, 1668 | "meshOwner":{"shape":"AccountId"}, 1669 | "resourceOwner":{"shape":"AccountId"}, 1670 | "version":{"shape":"Long"}, 1671 | "virtualGatewayName":{"shape":"ResourceName"} 1672 | } 1673 | }, 1674 | "GatewayRouteSpec":{ 1675 | "type":"structure", 1676 | "members":{ 1677 | "grpcRoute":{"shape":"GrpcGatewayRoute"}, 1678 | "http2Route":{"shape":"HttpGatewayRoute"}, 1679 | "httpRoute":{"shape":"HttpGatewayRoute"}, 1680 | "priority":{"shape":"GatewayRoutePriority"} 1681 | } 1682 | }, 1683 | "GatewayRouteStatus":{ 1684 | "type":"structure", 1685 | "required":["status"], 1686 | "members":{ 1687 | "status":{"shape":"GatewayRouteStatusCode"} 1688 | } 1689 | }, 1690 | "GatewayRouteStatusCode":{ 1691 | "type":"string", 1692 | "enum":[ 1693 | "ACTIVE", 1694 | "INACTIVE", 1695 | "DELETED" 1696 | ] 1697 | }, 1698 | "GatewayRouteTarget":{ 1699 | "type":"structure", 1700 | "required":["virtualService"], 1701 | "members":{ 1702 | "port":{"shape":"ListenerPort"}, 1703 | "virtualService":{"shape":"GatewayRouteVirtualService"} 1704 | } 1705 | }, 1706 | "GatewayRouteVirtualService":{ 1707 | "type":"structure", 1708 | "required":["virtualServiceName"], 1709 | "members":{ 1710 | "virtualServiceName":{"shape":"ResourceName"} 1711 | } 1712 | }, 1713 | "GrpcGatewayRoute":{ 1714 | "type":"structure", 1715 | "required":[ 1716 | "action", 1717 | "match" 1718 | ], 1719 | "members":{ 1720 | "action":{"shape":"GrpcGatewayRouteAction"}, 1721 | "match":{"shape":"GrpcGatewayRouteMatch"} 1722 | } 1723 | }, 1724 | "GrpcGatewayRouteAction":{ 1725 | "type":"structure", 1726 | "required":["target"], 1727 | "members":{ 1728 | "rewrite":{"shape":"GrpcGatewayRouteRewrite"}, 1729 | "target":{"shape":"GatewayRouteTarget"} 1730 | } 1731 | }, 1732 | "GrpcGatewayRouteMatch":{ 1733 | "type":"structure", 1734 | "members":{ 1735 | "hostname":{"shape":"GatewayRouteHostnameMatch"}, 1736 | "metadata":{"shape":"GrpcGatewayRouteMetadataList"}, 1737 | "port":{"shape":"ListenerPort"}, 1738 | "serviceName":{"shape":"ServiceName"} 1739 | } 1740 | }, 1741 | "GrpcGatewayRouteMetadata":{ 1742 | "type":"structure", 1743 | "required":["name"], 1744 | "members":{ 1745 | "invert":{"shape":"Boolean"}, 1746 | "match":{"shape":"GrpcMetadataMatchMethod"}, 1747 | "name":{"shape":"HeaderName"} 1748 | } 1749 | }, 1750 | "GrpcGatewayRouteMetadataList":{ 1751 | "type":"list", 1752 | "member":{"shape":"GrpcGatewayRouteMetadata"}, 1753 | "max":10, 1754 | "min":1 1755 | }, 1756 | "GrpcGatewayRouteRewrite":{ 1757 | "type":"structure", 1758 | "members":{ 1759 | "hostname":{"shape":"GatewayRouteHostnameRewrite"} 1760 | } 1761 | }, 1762 | "GrpcMetadataMatchMethod":{ 1763 | "type":"structure", 1764 | "members":{ 1765 | "exact":{"shape":"HeaderMatch"}, 1766 | "prefix":{"shape":"HeaderMatch"}, 1767 | "range":{"shape":"MatchRange"}, 1768 | "regex":{"shape":"HeaderMatch"}, 1769 | "suffix":{"shape":"HeaderMatch"} 1770 | }, 1771 | "union":true 1772 | }, 1773 | "GrpcRetryPolicy":{ 1774 | "type":"structure", 1775 | "required":[ 1776 | "maxRetries", 1777 | "perRetryTimeout" 1778 | ], 1779 | "members":{ 1780 | "grpcRetryEvents":{"shape":"GrpcRetryPolicyEvents"}, 1781 | "httpRetryEvents":{"shape":"HttpRetryPolicyEvents"}, 1782 | "maxRetries":{"shape":"MaxRetries"}, 1783 | "perRetryTimeout":{"shape":"Duration"}, 1784 | "tcpRetryEvents":{"shape":"TcpRetryPolicyEvents"} 1785 | } 1786 | }, 1787 | "GrpcRetryPolicyEvent":{ 1788 | "type":"string", 1789 | "enum":[ 1790 | "cancelled", 1791 | "deadline-exceeded", 1792 | "internal", 1793 | "resource-exhausted", 1794 | "unavailable" 1795 | ] 1796 | }, 1797 | "GrpcRetryPolicyEvents":{ 1798 | "type":"list", 1799 | "member":{"shape":"GrpcRetryPolicyEvent"}, 1800 | "max":5, 1801 | "min":1 1802 | }, 1803 | "GrpcRoute":{ 1804 | "type":"structure", 1805 | "required":[ 1806 | "action", 1807 | "match" 1808 | ], 1809 | "members":{ 1810 | "action":{"shape":"GrpcRouteAction"}, 1811 | "match":{"shape":"GrpcRouteMatch"}, 1812 | "retryPolicy":{"shape":"GrpcRetryPolicy"}, 1813 | "timeout":{"shape":"GrpcTimeout"} 1814 | } 1815 | }, 1816 | "GrpcRouteAction":{ 1817 | "type":"structure", 1818 | "required":["weightedTargets"], 1819 | "members":{ 1820 | "weightedTargets":{"shape":"WeightedTargets"} 1821 | } 1822 | }, 1823 | "GrpcRouteMatch":{ 1824 | "type":"structure", 1825 | "members":{ 1826 | "metadata":{"shape":"GrpcRouteMetadataList"}, 1827 | "methodName":{"shape":"MethodName"}, 1828 | "port":{"shape":"ListenerPort"}, 1829 | "serviceName":{"shape":"ServiceName"} 1830 | } 1831 | }, 1832 | "GrpcRouteMetadata":{ 1833 | "type":"structure", 1834 | "required":["name"], 1835 | "members":{ 1836 | "invert":{"shape":"Boolean"}, 1837 | "match":{"shape":"GrpcRouteMetadataMatchMethod"}, 1838 | "name":{"shape":"HeaderName"} 1839 | } 1840 | }, 1841 | "GrpcRouteMetadataList":{ 1842 | "type":"list", 1843 | "member":{"shape":"GrpcRouteMetadata"}, 1844 | "max":10, 1845 | "min":1 1846 | }, 1847 | "GrpcRouteMetadataMatchMethod":{ 1848 | "type":"structure", 1849 | "members":{ 1850 | "exact":{"shape":"HeaderMatch"}, 1851 | "prefix":{"shape":"HeaderMatch"}, 1852 | "range":{"shape":"MatchRange"}, 1853 | "regex":{"shape":"HeaderMatch"}, 1854 | "suffix":{"shape":"HeaderMatch"} 1855 | }, 1856 | "union":true 1857 | }, 1858 | "GrpcTimeout":{ 1859 | "type":"structure", 1860 | "members":{ 1861 | "idle":{"shape":"Duration"}, 1862 | "perRequest":{"shape":"Duration"} 1863 | } 1864 | }, 1865 | "HeaderMatch":{ 1866 | "type":"string", 1867 | "max":255, 1868 | "min":1 1869 | }, 1870 | "HeaderMatchMethod":{ 1871 | "type":"structure", 1872 | "members":{ 1873 | "exact":{"shape":"HeaderMatch"}, 1874 | "prefix":{"shape":"HeaderMatch"}, 1875 | "range":{"shape":"MatchRange"}, 1876 | "regex":{"shape":"HeaderMatch"}, 1877 | "suffix":{"shape":"HeaderMatch"} 1878 | }, 1879 | "union":true 1880 | }, 1881 | "HeaderName":{ 1882 | "type":"string", 1883 | "max":50, 1884 | "min":1 1885 | }, 1886 | "HealthCheckIntervalMillis":{ 1887 | "type":"long", 1888 | "box":true, 1889 | "max":300000, 1890 | "min":5000 1891 | }, 1892 | "HealthCheckPolicy":{ 1893 | "type":"structure", 1894 | "required":[ 1895 | "healthyThreshold", 1896 | "intervalMillis", 1897 | "protocol", 1898 | "timeoutMillis", 1899 | "unhealthyThreshold" 1900 | ], 1901 | "members":{ 1902 | "healthyThreshold":{"shape":"HealthCheckThreshold"}, 1903 | "intervalMillis":{"shape":"HealthCheckIntervalMillis"}, 1904 | "path":{"shape":"String"}, 1905 | "port":{"shape":"PortNumber"}, 1906 | "protocol":{"shape":"PortProtocol"}, 1907 | "timeoutMillis":{"shape":"HealthCheckTimeoutMillis"}, 1908 | "unhealthyThreshold":{"shape":"HealthCheckThreshold"} 1909 | } 1910 | }, 1911 | "HealthCheckThreshold":{ 1912 | "type":"integer", 1913 | "max":10, 1914 | "min":2 1915 | }, 1916 | "HealthCheckTimeoutMillis":{ 1917 | "type":"long", 1918 | "box":true, 1919 | "max":60000, 1920 | "min":2000 1921 | }, 1922 | "Hostname":{"type":"string"}, 1923 | "HttpGatewayRoute":{ 1924 | "type":"structure", 1925 | "required":[ 1926 | "action", 1927 | "match" 1928 | ], 1929 | "members":{ 1930 | "action":{"shape":"HttpGatewayRouteAction"}, 1931 | "match":{"shape":"HttpGatewayRouteMatch"} 1932 | } 1933 | }, 1934 | "HttpGatewayRouteAction":{ 1935 | "type":"structure", 1936 | "required":["target"], 1937 | "members":{ 1938 | "rewrite":{"shape":"HttpGatewayRouteRewrite"}, 1939 | "target":{"shape":"GatewayRouteTarget"} 1940 | } 1941 | }, 1942 | "HttpGatewayRouteHeader":{ 1943 | "type":"structure", 1944 | "required":["name"], 1945 | "members":{ 1946 | "invert":{"shape":"Boolean"}, 1947 | "match":{"shape":"HeaderMatchMethod"}, 1948 | "name":{"shape":"HeaderName"} 1949 | } 1950 | }, 1951 | "HttpGatewayRouteHeaders":{ 1952 | "type":"list", 1953 | "member":{"shape":"HttpGatewayRouteHeader"}, 1954 | "max":10, 1955 | "min":1 1956 | }, 1957 | "HttpGatewayRouteMatch":{ 1958 | "type":"structure", 1959 | "members":{ 1960 | "headers":{"shape":"HttpGatewayRouteHeaders"}, 1961 | "hostname":{"shape":"GatewayRouteHostnameMatch"}, 1962 | "method":{"shape":"HttpMethod"}, 1963 | "path":{"shape":"HttpPathMatch"}, 1964 | "port":{"shape":"ListenerPort"}, 1965 | "prefix":{"shape":"String"}, 1966 | "queryParameters":{"shape":"HttpQueryParameters"} 1967 | } 1968 | }, 1969 | "HttpGatewayRoutePathRewrite":{ 1970 | "type":"structure", 1971 | "members":{ 1972 | "exact":{"shape":"HttpPathExact"} 1973 | } 1974 | }, 1975 | "HttpGatewayRoutePrefix":{ 1976 | "type":"string", 1977 | "max":255, 1978 | "min":1 1979 | }, 1980 | "HttpGatewayRoutePrefixRewrite":{ 1981 | "type":"structure", 1982 | "members":{ 1983 | "defaultPrefix":{"shape":"DefaultGatewayRouteRewrite"}, 1984 | "value":{"shape":"HttpGatewayRoutePrefix"} 1985 | } 1986 | }, 1987 | "HttpGatewayRouteRewrite":{ 1988 | "type":"structure", 1989 | "members":{ 1990 | "hostname":{"shape":"GatewayRouteHostnameRewrite"}, 1991 | "path":{"shape":"HttpGatewayRoutePathRewrite"}, 1992 | "prefix":{"shape":"HttpGatewayRoutePrefixRewrite"} 1993 | } 1994 | }, 1995 | "HttpMethod":{ 1996 | "type":"string", 1997 | "enum":[ 1998 | "GET", 1999 | "HEAD", 2000 | "POST", 2001 | "PUT", 2002 | "DELETE", 2003 | "CONNECT", 2004 | "OPTIONS", 2005 | "TRACE", 2006 | "PATCH" 2007 | ] 2008 | }, 2009 | "HttpPathExact":{ 2010 | "type":"string", 2011 | "max":255, 2012 | "min":1 2013 | }, 2014 | "HttpPathMatch":{ 2015 | "type":"structure", 2016 | "members":{ 2017 | "exact":{"shape":"HttpPathExact"}, 2018 | "regex":{"shape":"HttpPathRegex"} 2019 | } 2020 | }, 2021 | "HttpPathRegex":{ 2022 | "type":"string", 2023 | "max":255, 2024 | "min":1 2025 | }, 2026 | "HttpQueryParameter":{ 2027 | "type":"structure", 2028 | "required":["name"], 2029 | "members":{ 2030 | "match":{"shape":"QueryParameterMatch"}, 2031 | "name":{"shape":"QueryParameterName"} 2032 | } 2033 | }, 2034 | "HttpQueryParameters":{ 2035 | "type":"list", 2036 | "member":{"shape":"HttpQueryParameter"}, 2037 | "max":10, 2038 | "min":1 2039 | }, 2040 | "HttpRetryPolicy":{ 2041 | "type":"structure", 2042 | "required":[ 2043 | "maxRetries", 2044 | "perRetryTimeout" 2045 | ], 2046 | "members":{ 2047 | "httpRetryEvents":{"shape":"HttpRetryPolicyEvents"}, 2048 | "maxRetries":{"shape":"MaxRetries"}, 2049 | "perRetryTimeout":{"shape":"Duration"}, 2050 | "tcpRetryEvents":{"shape":"TcpRetryPolicyEvents"} 2051 | } 2052 | }, 2053 | "HttpRetryPolicyEvent":{ 2054 | "type":"string", 2055 | "max":25, 2056 | "min":1 2057 | }, 2058 | "HttpRetryPolicyEvents":{ 2059 | "type":"list", 2060 | "member":{"shape":"HttpRetryPolicyEvent"}, 2061 | "max":25, 2062 | "min":1 2063 | }, 2064 | "HttpRoute":{ 2065 | "type":"structure", 2066 | "required":[ 2067 | "action", 2068 | "match" 2069 | ], 2070 | "members":{ 2071 | "action":{"shape":"HttpRouteAction"}, 2072 | "match":{"shape":"HttpRouteMatch"}, 2073 | "retryPolicy":{"shape":"HttpRetryPolicy"}, 2074 | "timeout":{"shape":"HttpTimeout"} 2075 | } 2076 | }, 2077 | "HttpRouteAction":{ 2078 | "type":"structure", 2079 | "required":["weightedTargets"], 2080 | "members":{ 2081 | "weightedTargets":{"shape":"WeightedTargets"} 2082 | } 2083 | }, 2084 | "HttpRouteHeader":{ 2085 | "type":"structure", 2086 | "required":["name"], 2087 | "members":{ 2088 | "invert":{"shape":"Boolean"}, 2089 | "match":{"shape":"HeaderMatchMethod"}, 2090 | "name":{"shape":"HeaderName"} 2091 | } 2092 | }, 2093 | "HttpRouteHeaders":{ 2094 | "type":"list", 2095 | "member":{"shape":"HttpRouteHeader"}, 2096 | "max":10, 2097 | "min":1 2098 | }, 2099 | "HttpRouteMatch":{ 2100 | "type":"structure", 2101 | "members":{ 2102 | "headers":{"shape":"HttpRouteHeaders"}, 2103 | "method":{"shape":"HttpMethod"}, 2104 | "path":{"shape":"HttpPathMatch"}, 2105 | "port":{"shape":"ListenerPort"}, 2106 | "prefix":{"shape":"String"}, 2107 | "queryParameters":{"shape":"HttpQueryParameters"}, 2108 | "scheme":{"shape":"HttpScheme"} 2109 | } 2110 | }, 2111 | "HttpScheme":{ 2112 | "type":"string", 2113 | "enum":[ 2114 | "http", 2115 | "https" 2116 | ] 2117 | }, 2118 | "HttpTimeout":{ 2119 | "type":"structure", 2120 | "members":{ 2121 | "idle":{"shape":"Duration"}, 2122 | "perRequest":{"shape":"Duration"} 2123 | } 2124 | }, 2125 | "InternalServerErrorException":{ 2126 | "type":"structure", 2127 | "members":{ 2128 | "message":{"shape":"String"} 2129 | }, 2130 | "error":{"httpStatusCode":500}, 2131 | "exception":true, 2132 | "fault":true, 2133 | "retryable":{"throttling":false} 2134 | }, 2135 | "LimitExceededException":{ 2136 | "type":"structure", 2137 | "members":{ 2138 | "message":{"shape":"String"} 2139 | }, 2140 | "error":{ 2141 | "httpStatusCode":400, 2142 | "senderFault":true 2143 | }, 2144 | "exception":true 2145 | }, 2146 | "ListGatewayRoutesInput":{ 2147 | "type":"structure", 2148 | "required":[ 2149 | "meshName", 2150 | "virtualGatewayName" 2151 | ], 2152 | "members":{ 2153 | "limit":{ 2154 | "shape":"ListGatewayRoutesLimit", 2155 | "location":"querystring", 2156 | "locationName":"limit" 2157 | }, 2158 | "meshName":{ 2159 | "shape":"ResourceName", 2160 | "location":"uri", 2161 | "locationName":"meshName" 2162 | }, 2163 | "meshOwner":{ 2164 | "shape":"AccountId", 2165 | "location":"querystring", 2166 | "locationName":"meshOwner" 2167 | }, 2168 | "nextToken":{ 2169 | "shape":"String", 2170 | "location":"querystring", 2171 | "locationName":"nextToken" 2172 | }, 2173 | "virtualGatewayName":{ 2174 | "shape":"ResourceName", 2175 | "location":"uri", 2176 | "locationName":"virtualGatewayName" 2177 | } 2178 | } 2179 | }, 2180 | "ListGatewayRoutesLimit":{ 2181 | "type":"integer", 2182 | "box":true, 2183 | "max":100, 2184 | "min":1 2185 | }, 2186 | "ListGatewayRoutesOutput":{ 2187 | "type":"structure", 2188 | "required":["gatewayRoutes"], 2189 | "members":{ 2190 | "gatewayRoutes":{"shape":"GatewayRouteList"}, 2191 | "nextToken":{"shape":"String"} 2192 | } 2193 | }, 2194 | "ListMeshesInput":{ 2195 | "type":"structure", 2196 | "members":{ 2197 | "limit":{ 2198 | "shape":"ListMeshesLimit", 2199 | "location":"querystring", 2200 | "locationName":"limit" 2201 | }, 2202 | "nextToken":{ 2203 | "shape":"String", 2204 | "location":"querystring", 2205 | "locationName":"nextToken" 2206 | } 2207 | } 2208 | }, 2209 | "ListMeshesLimit":{ 2210 | "type":"integer", 2211 | "box":true, 2212 | "max":100, 2213 | "min":1 2214 | }, 2215 | "ListMeshesOutput":{ 2216 | "type":"structure", 2217 | "required":["meshes"], 2218 | "members":{ 2219 | "meshes":{"shape":"MeshList"}, 2220 | "nextToken":{"shape":"String"} 2221 | } 2222 | }, 2223 | "ListRoutesInput":{ 2224 | "type":"structure", 2225 | "required":[ 2226 | "meshName", 2227 | "virtualRouterName" 2228 | ], 2229 | "members":{ 2230 | "limit":{ 2231 | "shape":"ListRoutesLimit", 2232 | "location":"querystring", 2233 | "locationName":"limit" 2234 | }, 2235 | "meshName":{ 2236 | "shape":"ResourceName", 2237 | "location":"uri", 2238 | "locationName":"meshName" 2239 | }, 2240 | "meshOwner":{ 2241 | "shape":"AccountId", 2242 | "location":"querystring", 2243 | "locationName":"meshOwner" 2244 | }, 2245 | "nextToken":{ 2246 | "shape":"String", 2247 | "location":"querystring", 2248 | "locationName":"nextToken" 2249 | }, 2250 | "virtualRouterName":{ 2251 | "shape":"ResourceName", 2252 | "location":"uri", 2253 | "locationName":"virtualRouterName" 2254 | } 2255 | } 2256 | }, 2257 | "ListRoutesLimit":{ 2258 | "type":"integer", 2259 | "box":true, 2260 | "max":100, 2261 | "min":1 2262 | }, 2263 | "ListRoutesOutput":{ 2264 | "type":"structure", 2265 | "required":["routes"], 2266 | "members":{ 2267 | "nextToken":{"shape":"String"}, 2268 | "routes":{"shape":"RouteList"} 2269 | } 2270 | }, 2271 | "ListVirtualGatewaysInput":{ 2272 | "type":"structure", 2273 | "required":["meshName"], 2274 | "members":{ 2275 | "limit":{ 2276 | "shape":"ListVirtualGatewaysLimit", 2277 | "location":"querystring", 2278 | "locationName":"limit" 2279 | }, 2280 | "meshName":{ 2281 | "shape":"ResourceName", 2282 | "location":"uri", 2283 | "locationName":"meshName" 2284 | }, 2285 | "meshOwner":{ 2286 | "shape":"AccountId", 2287 | "location":"querystring", 2288 | "locationName":"meshOwner" 2289 | }, 2290 | "nextToken":{ 2291 | "shape":"String", 2292 | "location":"querystring", 2293 | "locationName":"nextToken" 2294 | } 2295 | } 2296 | }, 2297 | "ListVirtualGatewaysLimit":{ 2298 | "type":"integer", 2299 | "box":true, 2300 | "max":100, 2301 | "min":1 2302 | }, 2303 | "ListVirtualGatewaysOutput":{ 2304 | "type":"structure", 2305 | "required":["virtualGateways"], 2306 | "members":{ 2307 | "nextToken":{"shape":"String"}, 2308 | "virtualGateways":{"shape":"VirtualGatewayList"} 2309 | } 2310 | }, 2311 | "ListVirtualNodesInput":{ 2312 | "type":"structure", 2313 | "required":["meshName"], 2314 | "members":{ 2315 | "limit":{ 2316 | "shape":"ListVirtualNodesLimit", 2317 | "location":"querystring", 2318 | "locationName":"limit" 2319 | }, 2320 | "meshName":{ 2321 | "shape":"ResourceName", 2322 | "location":"uri", 2323 | "locationName":"meshName" 2324 | }, 2325 | "meshOwner":{ 2326 | "shape":"AccountId", 2327 | "location":"querystring", 2328 | "locationName":"meshOwner" 2329 | }, 2330 | "nextToken":{ 2331 | "shape":"String", 2332 | "location":"querystring", 2333 | "locationName":"nextToken" 2334 | } 2335 | } 2336 | }, 2337 | "ListVirtualNodesLimit":{ 2338 | "type":"integer", 2339 | "box":true, 2340 | "max":100, 2341 | "min":1 2342 | }, 2343 | "ListVirtualNodesOutput":{ 2344 | "type":"structure", 2345 | "required":["virtualNodes"], 2346 | "members":{ 2347 | "nextToken":{"shape":"String"}, 2348 | "virtualNodes":{"shape":"VirtualNodeList"} 2349 | } 2350 | }, 2351 | "ListVirtualRoutersInput":{ 2352 | "type":"structure", 2353 | "required":["meshName"], 2354 | "members":{ 2355 | "limit":{ 2356 | "shape":"ListVirtualRoutersLimit", 2357 | "location":"querystring", 2358 | "locationName":"limit" 2359 | }, 2360 | "meshName":{ 2361 | "shape":"ResourceName", 2362 | "location":"uri", 2363 | "locationName":"meshName" 2364 | }, 2365 | "meshOwner":{ 2366 | "shape":"AccountId", 2367 | "location":"querystring", 2368 | "locationName":"meshOwner" 2369 | }, 2370 | "nextToken":{ 2371 | "shape":"String", 2372 | "location":"querystring", 2373 | "locationName":"nextToken" 2374 | } 2375 | } 2376 | }, 2377 | "ListVirtualRoutersLimit":{ 2378 | "type":"integer", 2379 | "box":true, 2380 | "max":100, 2381 | "min":1 2382 | }, 2383 | "ListVirtualRoutersOutput":{ 2384 | "type":"structure", 2385 | "required":["virtualRouters"], 2386 | "members":{ 2387 | "nextToken":{"shape":"String"}, 2388 | "virtualRouters":{"shape":"VirtualRouterList"} 2389 | } 2390 | }, 2391 | "ListVirtualServicesInput":{ 2392 | "type":"structure", 2393 | "required":["meshName"], 2394 | "members":{ 2395 | "limit":{ 2396 | "shape":"ListVirtualServicesLimit", 2397 | "location":"querystring", 2398 | "locationName":"limit" 2399 | }, 2400 | "meshName":{ 2401 | "shape":"ResourceName", 2402 | "location":"uri", 2403 | "locationName":"meshName" 2404 | }, 2405 | "meshOwner":{ 2406 | "shape":"AccountId", 2407 | "location":"querystring", 2408 | "locationName":"meshOwner" 2409 | }, 2410 | "nextToken":{ 2411 | "shape":"String", 2412 | "location":"querystring", 2413 | "locationName":"nextToken" 2414 | } 2415 | } 2416 | }, 2417 | "ListVirtualServicesLimit":{ 2418 | "type":"integer", 2419 | "box":true, 2420 | "max":100, 2421 | "min":1 2422 | }, 2423 | "ListVirtualServicesOutput":{ 2424 | "type":"structure", 2425 | "required":["virtualServices"], 2426 | "members":{ 2427 | "nextToken":{"shape":"String"}, 2428 | "virtualServices":{"shape":"VirtualServiceList"} 2429 | } 2430 | }, 2431 | "Listener":{ 2432 | "type":"structure", 2433 | "required":["portMapping"], 2434 | "members":{ 2435 | "connectionPool":{"shape":"VirtualNodeConnectionPool"}, 2436 | "healthCheck":{"shape":"HealthCheckPolicy"}, 2437 | "outlierDetection":{"shape":"OutlierDetection"}, 2438 | "portMapping":{"shape":"PortMapping"}, 2439 | "timeout":{"shape":"ListenerTimeout"}, 2440 | "tls":{"shape":"ListenerTls"} 2441 | } 2442 | }, 2443 | "ListenerPort":{ 2444 | "type":"integer", 2445 | "box":true, 2446 | "max":65535, 2447 | "min":1 2448 | }, 2449 | "ListenerTimeout":{ 2450 | "type":"structure", 2451 | "members":{ 2452 | "grpc":{"shape":"GrpcTimeout"}, 2453 | "http":{"shape":"HttpTimeout"}, 2454 | "http2":{"shape":"HttpTimeout"}, 2455 | "tcp":{"shape":"TcpTimeout"} 2456 | }, 2457 | "union":true 2458 | }, 2459 | "ListenerTls":{ 2460 | "type":"structure", 2461 | "required":[ 2462 | "certificate", 2463 | "mode" 2464 | ], 2465 | "members":{ 2466 | "certificate":{"shape":"ListenerTlsCertificate"}, 2467 | "mode":{"shape":"ListenerTlsMode"}, 2468 | "validation":{"shape":"ListenerTlsValidationContext"} 2469 | } 2470 | }, 2471 | "ListenerTlsAcmCertificate":{ 2472 | "type":"structure", 2473 | "required":["certificateArn"], 2474 | "members":{ 2475 | "certificateArn":{"shape":"Arn"} 2476 | } 2477 | }, 2478 | "ListenerTlsCertificate":{ 2479 | "type":"structure", 2480 | "members":{ 2481 | "acm":{"shape":"ListenerTlsAcmCertificate"}, 2482 | "file":{"shape":"ListenerTlsFileCertificate"}, 2483 | "sds":{"shape":"ListenerTlsSdsCertificate"} 2484 | }, 2485 | "union":true 2486 | }, 2487 | "ListenerTlsFileCertificate":{ 2488 | "type":"structure", 2489 | "required":[ 2490 | "certificateChain", 2491 | "privateKey" 2492 | ], 2493 | "members":{ 2494 | "certificateChain":{"shape":"FilePath"}, 2495 | "privateKey":{"shape":"FilePath"} 2496 | } 2497 | }, 2498 | "ListenerTlsMode":{ 2499 | "type":"string", 2500 | "enum":[ 2501 | "STRICT", 2502 | "PERMISSIVE", 2503 | "DISABLED" 2504 | ] 2505 | }, 2506 | "ListenerTlsSdsCertificate":{ 2507 | "type":"structure", 2508 | "required":["secretName"], 2509 | "members":{ 2510 | "secretName":{"shape":"SdsSecretName"} 2511 | } 2512 | }, 2513 | "ListenerTlsValidationContext":{ 2514 | "type":"structure", 2515 | "required":["trust"], 2516 | "members":{ 2517 | "subjectAlternativeNames":{"shape":"SubjectAlternativeNames"}, 2518 | "trust":{"shape":"ListenerTlsValidationContextTrust"} 2519 | } 2520 | }, 2521 | "ListenerTlsValidationContextTrust":{ 2522 | "type":"structure", 2523 | "members":{ 2524 | "file":{"shape":"TlsValidationContextFileTrust"}, 2525 | "sds":{"shape":"TlsValidationContextSdsTrust"} 2526 | }, 2527 | "union":true 2528 | }, 2529 | "Listeners":{ 2530 | "type":"list", 2531 | "member":{"shape":"Listener"} 2532 | }, 2533 | "Logging":{ 2534 | "type":"structure", 2535 | "members":{ 2536 | "accessLog":{"shape":"AccessLog"} 2537 | } 2538 | }, 2539 | "Long":{ 2540 | "type":"long", 2541 | "box":true 2542 | }, 2543 | "MatchRange":{ 2544 | "type":"structure", 2545 | "required":[ 2546 | "end", 2547 | "start" 2548 | ], 2549 | "members":{ 2550 | "end":{"shape":"Long"}, 2551 | "start":{"shape":"Long"} 2552 | } 2553 | }, 2554 | "MaxConnections":{ 2555 | "type":"integer", 2556 | "min":1 2557 | }, 2558 | "MaxPendingRequests":{ 2559 | "type":"integer", 2560 | "min":1 2561 | }, 2562 | "MaxRequests":{ 2563 | "type":"integer", 2564 | "min":1 2565 | }, 2566 | "MaxRetries":{ 2567 | "type":"long", 2568 | "box":true, 2569 | "min":0 2570 | }, 2571 | "MeshData":{ 2572 | "type":"structure", 2573 | "required":[ 2574 | "meshName", 2575 | "metadata", 2576 | "spec", 2577 | "status" 2578 | ], 2579 | "members":{ 2580 | "meshName":{"shape":"ResourceName"}, 2581 | "metadata":{"shape":"ResourceMetadata"}, 2582 | "spec":{"shape":"MeshSpec"}, 2583 | "status":{"shape":"MeshStatus"} 2584 | } 2585 | }, 2586 | "MeshList":{ 2587 | "type":"list", 2588 | "member":{"shape":"MeshRef"} 2589 | }, 2590 | "MeshRef":{ 2591 | "type":"structure", 2592 | "required":[ 2593 | "arn", 2594 | "createdAt", 2595 | "lastUpdatedAt", 2596 | "meshName", 2597 | "meshOwner", 2598 | "resourceOwner", 2599 | "version" 2600 | ], 2601 | "members":{ 2602 | "arn":{"shape":"Arn"}, 2603 | "createdAt":{"shape":"Timestamp"}, 2604 | "lastUpdatedAt":{"shape":"Timestamp"}, 2605 | "meshName":{"shape":"ResourceName"}, 2606 | "meshOwner":{"shape":"AccountId"}, 2607 | "resourceOwner":{"shape":"AccountId"}, 2608 | "version":{"shape":"Long"} 2609 | } 2610 | }, 2611 | "MeshSpec":{ 2612 | "type":"structure", 2613 | "members":{ 2614 | "egressFilter":{"shape":"EgressFilter"} 2615 | } 2616 | }, 2617 | "MeshStatus":{ 2618 | "type":"structure", 2619 | "members":{ 2620 | "status":{"shape":"MeshStatusCode"} 2621 | } 2622 | }, 2623 | "MeshStatusCode":{ 2624 | "type":"string", 2625 | "enum":[ 2626 | "ACTIVE", 2627 | "INACTIVE", 2628 | "DELETED" 2629 | ] 2630 | }, 2631 | "MethodName":{ 2632 | "type":"string", 2633 | "max":50, 2634 | "min":1 2635 | }, 2636 | "NotFoundException":{ 2637 | "type":"structure", 2638 | "members":{ 2639 | "message":{"shape":"String"} 2640 | }, 2641 | "error":{ 2642 | "httpStatusCode":404, 2643 | "senderFault":true 2644 | }, 2645 | "exception":true 2646 | }, 2647 | "OutlierDetection":{ 2648 | "type":"structure", 2649 | "required":[ 2650 | "baseEjectionDuration", 2651 | "interval", 2652 | "maxEjectionPercent", 2653 | "maxServerErrors" 2654 | ], 2655 | "members":{ 2656 | "baseEjectionDuration":{"shape":"Duration"}, 2657 | "interval":{"shape":"Duration"}, 2658 | "maxEjectionPercent":{"shape":"OutlierDetectionMaxEjectionPercent"}, 2659 | "maxServerErrors":{"shape":"OutlierDetectionMaxServerErrors"} 2660 | } 2661 | }, 2662 | "OutlierDetectionMaxEjectionPercent":{ 2663 | "type":"integer", 2664 | "box":true, 2665 | "max":100, 2666 | "min":0 2667 | }, 2668 | "OutlierDetectionMaxServerErrors":{ 2669 | "type":"long", 2670 | "box":true, 2671 | "min":1 2672 | }, 2673 | "PercentInt":{ 2674 | "type":"integer", 2675 | "max":100, 2676 | "min":0 2677 | }, 2678 | "PortMapping":{ 2679 | "type":"structure", 2680 | "required":[ 2681 | "port", 2682 | "protocol" 2683 | ], 2684 | "members":{ 2685 | "port":{"shape":"PortNumber"}, 2686 | "protocol":{"shape":"PortProtocol"} 2687 | } 2688 | }, 2689 | "PortNumber":{ 2690 | "type":"integer", 2691 | "max":65535, 2692 | "min":1 2693 | }, 2694 | "PortProtocol":{ 2695 | "type":"string", 2696 | "enum":[ 2697 | "http", 2698 | "tcp", 2699 | "http2", 2700 | "grpc" 2701 | ] 2702 | }, 2703 | "PortSet":{ 2704 | "type":"list", 2705 | "member":{"shape":"PortNumber"} 2706 | }, 2707 | "QueryParameterMatch":{ 2708 | "type":"structure", 2709 | "members":{ 2710 | "exact":{"shape":"String"} 2711 | } 2712 | }, 2713 | "QueryParameterName":{"type":"string"}, 2714 | "ResourceInUseException":{ 2715 | "type":"structure", 2716 | "members":{ 2717 | "message":{"shape":"String"} 2718 | }, 2719 | "error":{ 2720 | "httpStatusCode":409, 2721 | "senderFault":true 2722 | }, 2723 | "exception":true 2724 | }, 2725 | "ResourceMetadata":{ 2726 | "type":"structure", 2727 | "required":[ 2728 | "arn", 2729 | "createdAt", 2730 | "lastUpdatedAt", 2731 | "meshOwner", 2732 | "resourceOwner", 2733 | "uid", 2734 | "version" 2735 | ], 2736 | "members":{ 2737 | "arn":{"shape":"Arn"}, 2738 | "createdAt":{"shape":"Timestamp"}, 2739 | "lastUpdatedAt":{"shape":"Timestamp"}, 2740 | "meshOwner":{"shape":"AccountId"}, 2741 | "resourceOwner":{"shape":"AccountId"}, 2742 | "uid":{"shape":"String"}, 2743 | "version":{"shape":"Long"} 2744 | } 2745 | }, 2746 | "ResourceName":{ 2747 | "type":"string", 2748 | "max":255, 2749 | "min":1 2750 | }, 2751 | "RouteData":{ 2752 | "type":"structure", 2753 | "required":[ 2754 | "meshName", 2755 | "metadata", 2756 | "routeName", 2757 | "spec", 2758 | "status", 2759 | "virtualRouterName" 2760 | ], 2761 | "members":{ 2762 | "meshName":{"shape":"ResourceName"}, 2763 | "metadata":{"shape":"ResourceMetadata"}, 2764 | "routeName":{"shape":"ResourceName"}, 2765 | "spec":{"shape":"RouteSpec"}, 2766 | "status":{"shape":"RouteStatus"}, 2767 | "virtualRouterName":{"shape":"ResourceName"} 2768 | } 2769 | }, 2770 | "RouteList":{ 2771 | "type":"list", 2772 | "member":{"shape":"RouteRef"} 2773 | }, 2774 | "RoutePriority":{ 2775 | "type":"integer", 2776 | "box":true, 2777 | "max":1000, 2778 | "min":0 2779 | }, 2780 | "RouteRef":{ 2781 | "type":"structure", 2782 | "required":[ 2783 | "arn", 2784 | "createdAt", 2785 | "lastUpdatedAt", 2786 | "meshName", 2787 | "meshOwner", 2788 | "resourceOwner", 2789 | "routeName", 2790 | "version", 2791 | "virtualRouterName" 2792 | ], 2793 | "members":{ 2794 | "arn":{"shape":"Arn"}, 2795 | "createdAt":{"shape":"Timestamp"}, 2796 | "lastUpdatedAt":{"shape":"Timestamp"}, 2797 | "meshName":{"shape":"ResourceName"}, 2798 | "meshOwner":{"shape":"AccountId"}, 2799 | "resourceOwner":{"shape":"AccountId"}, 2800 | "routeName":{"shape":"ResourceName"}, 2801 | "version":{"shape":"Long"}, 2802 | "virtualRouterName":{"shape":"ResourceName"} 2803 | } 2804 | }, 2805 | "RouteSpec":{ 2806 | "type":"structure", 2807 | "members":{ 2808 | "grpcRoute":{"shape":"GrpcRoute"}, 2809 | "http2Route":{"shape":"HttpRoute"}, 2810 | "httpRoute":{"shape":"HttpRoute"}, 2811 | "priority":{"shape":"RoutePriority"}, 2812 | "tcpRoute":{"shape":"TcpRoute"} 2813 | } 2814 | }, 2815 | "RouteStatus":{ 2816 | "type":"structure", 2817 | "required":["status"], 2818 | "members":{ 2819 | "status":{"shape":"RouteStatusCode"} 2820 | } 2821 | }, 2822 | "RouteStatusCode":{ 2823 | "type":"string", 2824 | "enum":[ 2825 | "ACTIVE", 2826 | "INACTIVE", 2827 | "DELETED" 2828 | ] 2829 | }, 2830 | "SdsSecretName":{"type":"string"}, 2831 | "ServiceDiscovery":{ 2832 | "type":"structure", 2833 | "members":{ 2834 | "awsCloudMap":{"shape":"AwsCloudMapServiceDiscovery"}, 2835 | "dns":{"shape":"DnsServiceDiscovery"} 2836 | }, 2837 | "union":true 2838 | }, 2839 | "ServiceName":{"type":"string"}, 2840 | "ServiceUnavailableException":{ 2841 | "type":"structure", 2842 | "members":{ 2843 | "message":{"shape":"String"} 2844 | }, 2845 | "error":{"httpStatusCode":503}, 2846 | "exception":true, 2847 | "fault":true, 2848 | "retryable":{"throttling":false} 2849 | }, 2850 | "String":{"type":"string"}, 2851 | "SubjectAlternativeName":{ 2852 | "type":"string", 2853 | "max":254, 2854 | "min":1 2855 | }, 2856 | "SubjectAlternativeNameList":{ 2857 | "type":"list", 2858 | "member":{"shape":"SubjectAlternativeName"} 2859 | }, 2860 | "SubjectAlternativeNameMatchers":{ 2861 | "type":"structure", 2862 | "required":["exact"], 2863 | "members":{ 2864 | "exact":{"shape":"SubjectAlternativeNameList"} 2865 | } 2866 | }, 2867 | "SubjectAlternativeNames":{ 2868 | "type":"structure", 2869 | "required":["match"], 2870 | "members":{ 2871 | "match":{"shape":"SubjectAlternativeNameMatchers"} 2872 | } 2873 | }, 2874 | "SuffixHostname":{ 2875 | "type":"string", 2876 | "max":253, 2877 | "min":1 2878 | }, 2879 | "TagKey":{ 2880 | "type":"string", 2881 | "max":128, 2882 | "min":1 2883 | }, 2884 | "TagList":{ 2885 | "type":"list", 2886 | "member":{"shape":"TagRef"}, 2887 | "max":50, 2888 | "min":0 2889 | }, 2890 | "TagRef":{ 2891 | "type":"structure", 2892 | "required":[ 2893 | "key", 2894 | "value" 2895 | ], 2896 | "members":{ 2897 | "key":{"shape":"TagKey"}, 2898 | "value":{"shape":"TagValue"} 2899 | } 2900 | }, 2901 | "TagValue":{ 2902 | "type":"string", 2903 | "max":256, 2904 | "min":0 2905 | }, 2906 | "TcpRetryPolicyEvent":{ 2907 | "type":"string", 2908 | "enum":["connection-error"] 2909 | }, 2910 | "TcpRetryPolicyEvents":{ 2911 | "type":"list", 2912 | "member":{"shape":"TcpRetryPolicyEvent"}, 2913 | "max":1, 2914 | "min":1 2915 | }, 2916 | "TcpRoute":{ 2917 | "type":"structure", 2918 | "required":["action"], 2919 | "members":{ 2920 | "action":{"shape":"TcpRouteAction"}, 2921 | "match":{"shape":"TcpRouteMatch"}, 2922 | "timeout":{"shape":"TcpTimeout"} 2923 | } 2924 | }, 2925 | "TcpRouteAction":{ 2926 | "type":"structure", 2927 | "required":["weightedTargets"], 2928 | "members":{ 2929 | "weightedTargets":{"shape":"WeightedTargets"} 2930 | } 2931 | }, 2932 | "TcpRouteMatch":{ 2933 | "type":"structure", 2934 | "members":{ 2935 | "port":{"shape":"ListenerPort"} 2936 | } 2937 | }, 2938 | "TcpTimeout":{ 2939 | "type":"structure", 2940 | "members":{ 2941 | "idle":{"shape":"Duration"} 2942 | } 2943 | }, 2944 | "Timestamp":{"type":"timestamp"}, 2945 | "TlsValidationContext":{ 2946 | "type":"structure", 2947 | "required":["trust"], 2948 | "members":{ 2949 | "subjectAlternativeNames":{"shape":"SubjectAlternativeNames"}, 2950 | "trust":{"shape":"TlsValidationContextTrust"} 2951 | } 2952 | }, 2953 | "TlsValidationContextAcmTrust":{ 2954 | "type":"structure", 2955 | "required":["certificateAuthorityArns"], 2956 | "members":{ 2957 | "certificateAuthorityArns":{"shape":"CertificateAuthorityArns"} 2958 | } 2959 | }, 2960 | "TlsValidationContextFileTrust":{ 2961 | "type":"structure", 2962 | "required":["certificateChain"], 2963 | "members":{ 2964 | "certificateChain":{"shape":"FilePath"} 2965 | } 2966 | }, 2967 | "TlsValidationContextSdsTrust":{ 2968 | "type":"structure", 2969 | "required":["secretName"], 2970 | "members":{ 2971 | "secretName":{"shape":"SdsSecretName"} 2972 | } 2973 | }, 2974 | "TlsValidationContextTrust":{ 2975 | "type":"structure", 2976 | "members":{ 2977 | "acm":{"shape":"TlsValidationContextAcmTrust"}, 2978 | "file":{"shape":"TlsValidationContextFileTrust"}, 2979 | "sds":{"shape":"TlsValidationContextSdsTrust"} 2980 | }, 2981 | "union":true 2982 | }, 2983 | "TooManyRequestsException":{ 2984 | "type":"structure", 2985 | "members":{ 2986 | "message":{"shape":"String"} 2987 | }, 2988 | "error":{ 2989 | "httpStatusCode":429, 2990 | "senderFault":true 2991 | }, 2992 | "exception":true, 2993 | "retryable":{"throttling":true} 2994 | }, 2995 | "UpdateGatewayRouteInput":{ 2996 | "type":"structure", 2997 | "required":[ 2998 | "gatewayRouteName", 2999 | "meshName", 3000 | "spec", 3001 | "virtualGatewayName" 3002 | ], 3003 | "members":{ 3004 | "clientToken":{ 3005 | "shape":"String", 3006 | "idempotencyToken":true 3007 | }, 3008 | "gatewayRouteName":{ 3009 | "shape":"ResourceName", 3010 | "location":"uri", 3011 | "locationName":"gatewayRouteName" 3012 | }, 3013 | "meshName":{ 3014 | "shape":"ResourceName", 3015 | "location":"uri", 3016 | "locationName":"meshName" 3017 | }, 3018 | "meshOwner":{ 3019 | "shape":"AccountId", 3020 | "location":"querystring", 3021 | "locationName":"meshOwner" 3022 | }, 3023 | "spec":{"shape":"GatewayRouteSpec"}, 3024 | "virtualGatewayName":{ 3025 | "shape":"ResourceName", 3026 | "location":"uri", 3027 | "locationName":"virtualGatewayName" 3028 | } 3029 | } 3030 | }, 3031 | "UpdateGatewayRouteOutput":{ 3032 | "type":"structure", 3033 | "required":["gatewayRoute"], 3034 | "members":{ 3035 | "gatewayRoute":{"shape":"GatewayRouteData"} 3036 | }, 3037 | "payload":"gatewayRoute" 3038 | }, 3039 | "UpdateMeshInput":{ 3040 | "type":"structure", 3041 | "required":["meshName"], 3042 | "members":{ 3043 | "clientToken":{ 3044 | "shape":"String", 3045 | "idempotencyToken":true 3046 | }, 3047 | "meshName":{ 3048 | "shape":"ResourceName", 3049 | "location":"uri", 3050 | "locationName":"meshName" 3051 | }, 3052 | "spec":{"shape":"MeshSpec"} 3053 | } 3054 | }, 3055 | "UpdateMeshOutput":{ 3056 | "type":"structure", 3057 | "required":["mesh"], 3058 | "members":{ 3059 | "mesh":{"shape":"MeshData"} 3060 | }, 3061 | "payload":"mesh" 3062 | }, 3063 | "UpdateRouteInput":{ 3064 | "type":"structure", 3065 | "required":[ 3066 | "meshName", 3067 | "routeName", 3068 | "spec", 3069 | "virtualRouterName" 3070 | ], 3071 | "members":{ 3072 | "clientToken":{ 3073 | "shape":"String", 3074 | "idempotencyToken":true 3075 | }, 3076 | "meshName":{ 3077 | "shape":"ResourceName", 3078 | "location":"uri", 3079 | "locationName":"meshName" 3080 | }, 3081 | "meshOwner":{ 3082 | "shape":"AccountId", 3083 | "location":"querystring", 3084 | "locationName":"meshOwner" 3085 | }, 3086 | "routeName":{ 3087 | "shape":"ResourceName", 3088 | "location":"uri", 3089 | "locationName":"routeName" 3090 | }, 3091 | "spec":{"shape":"RouteSpec"}, 3092 | "virtualRouterName":{ 3093 | "shape":"ResourceName", 3094 | "location":"uri", 3095 | "locationName":"virtualRouterName" 3096 | } 3097 | } 3098 | }, 3099 | "UpdateRouteOutput":{ 3100 | "type":"structure", 3101 | "required":["route"], 3102 | "members":{ 3103 | "route":{"shape":"RouteData"} 3104 | }, 3105 | "payload":"route" 3106 | }, 3107 | "UpdateVirtualGatewayInput":{ 3108 | "type":"structure", 3109 | "required":[ 3110 | "meshName", 3111 | "spec", 3112 | "virtualGatewayName" 3113 | ], 3114 | "members":{ 3115 | "clientToken":{ 3116 | "shape":"String", 3117 | "idempotencyToken":true 3118 | }, 3119 | "meshName":{ 3120 | "shape":"ResourceName", 3121 | "location":"uri", 3122 | "locationName":"meshName" 3123 | }, 3124 | "meshOwner":{ 3125 | "shape":"AccountId", 3126 | "location":"querystring", 3127 | "locationName":"meshOwner" 3128 | }, 3129 | "spec":{"shape":"VirtualGatewaySpec"}, 3130 | "virtualGatewayName":{ 3131 | "shape":"ResourceName", 3132 | "location":"uri", 3133 | "locationName":"virtualGatewayName" 3134 | } 3135 | } 3136 | }, 3137 | "UpdateVirtualGatewayOutput":{ 3138 | "type":"structure", 3139 | "required":["virtualGateway"], 3140 | "members":{ 3141 | "virtualGateway":{"shape":"VirtualGatewayData"} 3142 | }, 3143 | "payload":"virtualGateway" 3144 | }, 3145 | "UpdateVirtualNodeInput":{ 3146 | "type":"structure", 3147 | "required":[ 3148 | "meshName", 3149 | "spec", 3150 | "virtualNodeName" 3151 | ], 3152 | "members":{ 3153 | "clientToken":{ 3154 | "shape":"String", 3155 | "idempotencyToken":true 3156 | }, 3157 | "meshName":{ 3158 | "shape":"ResourceName", 3159 | "location":"uri", 3160 | "locationName":"meshName" 3161 | }, 3162 | "meshOwner":{ 3163 | "shape":"AccountId", 3164 | "location":"querystring", 3165 | "locationName":"meshOwner" 3166 | }, 3167 | "spec":{"shape":"VirtualNodeSpec"}, 3168 | "virtualNodeName":{ 3169 | "shape":"ResourceName", 3170 | "location":"uri", 3171 | "locationName":"virtualNodeName" 3172 | } 3173 | } 3174 | }, 3175 | "UpdateVirtualNodeOutput":{ 3176 | "type":"structure", 3177 | "required":["virtualNode"], 3178 | "members":{ 3179 | "virtualNode":{"shape":"VirtualNodeData"} 3180 | }, 3181 | "payload":"virtualNode" 3182 | }, 3183 | "UpdateVirtualRouterInput":{ 3184 | "type":"structure", 3185 | "required":[ 3186 | "meshName", 3187 | "spec", 3188 | "virtualRouterName" 3189 | ], 3190 | "members":{ 3191 | "clientToken":{ 3192 | "shape":"String", 3193 | "idempotencyToken":true 3194 | }, 3195 | "meshName":{ 3196 | "shape":"ResourceName", 3197 | "location":"uri", 3198 | "locationName":"meshName" 3199 | }, 3200 | "meshOwner":{ 3201 | "shape":"AccountId", 3202 | "location":"querystring", 3203 | "locationName":"meshOwner" 3204 | }, 3205 | "spec":{"shape":"VirtualRouterSpec"}, 3206 | "virtualRouterName":{ 3207 | "shape":"ResourceName", 3208 | "location":"uri", 3209 | "locationName":"virtualRouterName" 3210 | } 3211 | } 3212 | }, 3213 | "UpdateVirtualRouterOutput":{ 3214 | "type":"structure", 3215 | "required":["virtualRouter"], 3216 | "members":{ 3217 | "virtualRouter":{"shape":"VirtualRouterData"} 3218 | }, 3219 | "payload":"virtualRouter" 3220 | }, 3221 | "UpdateVirtualServiceInput":{ 3222 | "type":"structure", 3223 | "required":[ 3224 | "meshName", 3225 | "spec", 3226 | "virtualServiceName" 3227 | ], 3228 | "members":{ 3229 | "clientToken":{ 3230 | "shape":"String", 3231 | "idempotencyToken":true 3232 | }, 3233 | "meshName":{ 3234 | "shape":"ResourceName", 3235 | "location":"uri", 3236 | "locationName":"meshName" 3237 | }, 3238 | "meshOwner":{ 3239 | "shape":"AccountId", 3240 | "location":"querystring", 3241 | "locationName":"meshOwner" 3242 | }, 3243 | "spec":{"shape":"VirtualServiceSpec"}, 3244 | "virtualServiceName":{ 3245 | "shape":"ServiceName", 3246 | "location":"uri", 3247 | "locationName":"virtualServiceName" 3248 | } 3249 | } 3250 | }, 3251 | "UpdateVirtualServiceOutput":{ 3252 | "type":"structure", 3253 | "required":["virtualService"], 3254 | "members":{ 3255 | "virtualService":{"shape":"VirtualServiceData"} 3256 | }, 3257 | "payload":"virtualService" 3258 | }, 3259 | "VirtualGatewayAccessLog":{ 3260 | "type":"structure", 3261 | "members":{ 3262 | "file":{"shape":"VirtualGatewayFileAccessLog"} 3263 | }, 3264 | "union":true 3265 | }, 3266 | "VirtualGatewayBackendDefaults":{ 3267 | "type":"structure", 3268 | "members":{ 3269 | "clientPolicy":{"shape":"VirtualGatewayClientPolicy"} 3270 | } 3271 | }, 3272 | "VirtualGatewayCertificateAuthorityArns":{ 3273 | "type":"list", 3274 | "member":{"shape":"Arn"}, 3275 | "max":3, 3276 | "min":1 3277 | }, 3278 | "VirtualGatewayClientPolicy":{ 3279 | "type":"structure", 3280 | "members":{ 3281 | "tls":{"shape":"VirtualGatewayClientPolicyTls"} 3282 | } 3283 | }, 3284 | "VirtualGatewayClientPolicyTls":{ 3285 | "type":"structure", 3286 | "required":["validation"], 3287 | "members":{ 3288 | "certificate":{"shape":"VirtualGatewayClientTlsCertificate"}, 3289 | "enforce":{ 3290 | "shape":"Boolean", 3291 | "box":true 3292 | }, 3293 | "ports":{"shape":"PortSet"}, 3294 | "validation":{"shape":"VirtualGatewayTlsValidationContext"} 3295 | } 3296 | }, 3297 | "VirtualGatewayClientTlsCertificate":{ 3298 | "type":"structure", 3299 | "members":{ 3300 | "file":{"shape":"VirtualGatewayListenerTlsFileCertificate"}, 3301 | "sds":{"shape":"VirtualGatewayListenerTlsSdsCertificate"} 3302 | }, 3303 | "union":true 3304 | }, 3305 | "VirtualGatewayConnectionPool":{ 3306 | "type":"structure", 3307 | "members":{ 3308 | "grpc":{"shape":"VirtualGatewayGrpcConnectionPool"}, 3309 | "http":{"shape":"VirtualGatewayHttpConnectionPool"}, 3310 | "http2":{"shape":"VirtualGatewayHttp2ConnectionPool"} 3311 | }, 3312 | "union":true 3313 | }, 3314 | "VirtualGatewayData":{ 3315 | "type":"structure", 3316 | "required":[ 3317 | "meshName", 3318 | "metadata", 3319 | "spec", 3320 | "status", 3321 | "virtualGatewayName" 3322 | ], 3323 | "members":{ 3324 | "meshName":{"shape":"ResourceName"}, 3325 | "metadata":{"shape":"ResourceMetadata"}, 3326 | "spec":{"shape":"VirtualGatewaySpec"}, 3327 | "status":{"shape":"VirtualGatewayStatus"}, 3328 | "virtualGatewayName":{"shape":"ResourceName"} 3329 | } 3330 | }, 3331 | "VirtualGatewayFileAccessLog":{ 3332 | "type":"structure", 3333 | "required":["path"], 3334 | "members":{ 3335 | "path":{"shape":"FilePath"} 3336 | } 3337 | }, 3338 | "VirtualGatewayGrpcConnectionPool":{ 3339 | "type":"structure", 3340 | "required":["maxRequests"], 3341 | "members":{ 3342 | "maxRequests":{"shape":"MaxRequests"} 3343 | } 3344 | }, 3345 | "VirtualGatewayHealthCheckIntervalMillis":{ 3346 | "type":"long", 3347 | "box":true, 3348 | "max":300000, 3349 | "min":5000 3350 | }, 3351 | "VirtualGatewayHealthCheckPolicy":{ 3352 | "type":"structure", 3353 | "required":[ 3354 | "healthyThreshold", 3355 | "intervalMillis", 3356 | "protocol", 3357 | "timeoutMillis", 3358 | "unhealthyThreshold" 3359 | ], 3360 | "members":{ 3361 | "healthyThreshold":{"shape":"VirtualGatewayHealthCheckThreshold"}, 3362 | "intervalMillis":{"shape":"VirtualGatewayHealthCheckIntervalMillis"}, 3363 | "path":{"shape":"String"}, 3364 | "port":{"shape":"PortNumber"}, 3365 | "protocol":{"shape":"VirtualGatewayPortProtocol"}, 3366 | "timeoutMillis":{"shape":"VirtualGatewayHealthCheckTimeoutMillis"}, 3367 | "unhealthyThreshold":{"shape":"VirtualGatewayHealthCheckThreshold"} 3368 | } 3369 | }, 3370 | "VirtualGatewayHealthCheckThreshold":{ 3371 | "type":"integer", 3372 | "max":10, 3373 | "min":2 3374 | }, 3375 | "VirtualGatewayHealthCheckTimeoutMillis":{ 3376 | "type":"long", 3377 | "box":true, 3378 | "max":60000, 3379 | "min":2000 3380 | }, 3381 | "VirtualGatewayHttp2ConnectionPool":{ 3382 | "type":"structure", 3383 | "required":["maxRequests"], 3384 | "members":{ 3385 | "maxRequests":{"shape":"MaxRequests"} 3386 | } 3387 | }, 3388 | "VirtualGatewayHttpConnectionPool":{ 3389 | "type":"structure", 3390 | "required":["maxConnections"], 3391 | "members":{ 3392 | "maxConnections":{"shape":"MaxConnections"}, 3393 | "maxPendingRequests":{ 3394 | "shape":"MaxPendingRequests", 3395 | "box":true 3396 | } 3397 | } 3398 | }, 3399 | "VirtualGatewayList":{ 3400 | "type":"list", 3401 | "member":{"shape":"VirtualGatewayRef"} 3402 | }, 3403 | "VirtualGatewayListener":{ 3404 | "type":"structure", 3405 | "required":["portMapping"], 3406 | "members":{ 3407 | "connectionPool":{"shape":"VirtualGatewayConnectionPool"}, 3408 | "healthCheck":{"shape":"VirtualGatewayHealthCheckPolicy"}, 3409 | "portMapping":{"shape":"VirtualGatewayPortMapping"}, 3410 | "tls":{"shape":"VirtualGatewayListenerTls"} 3411 | } 3412 | }, 3413 | "VirtualGatewayListenerTls":{ 3414 | "type":"structure", 3415 | "required":[ 3416 | "certificate", 3417 | "mode" 3418 | ], 3419 | "members":{ 3420 | "certificate":{"shape":"VirtualGatewayListenerTlsCertificate"}, 3421 | "mode":{"shape":"VirtualGatewayListenerTlsMode"}, 3422 | "validation":{"shape":"VirtualGatewayListenerTlsValidationContext"} 3423 | } 3424 | }, 3425 | "VirtualGatewayListenerTlsAcmCertificate":{ 3426 | "type":"structure", 3427 | "required":["certificateArn"], 3428 | "members":{ 3429 | "certificateArn":{"shape":"Arn"} 3430 | } 3431 | }, 3432 | "VirtualGatewayListenerTlsCertificate":{ 3433 | "type":"structure", 3434 | "members":{ 3435 | "acm":{"shape":"VirtualGatewayListenerTlsAcmCertificate"}, 3436 | "file":{"shape":"VirtualGatewayListenerTlsFileCertificate"}, 3437 | "sds":{"shape":"VirtualGatewayListenerTlsSdsCertificate"} 3438 | }, 3439 | "union":true 3440 | }, 3441 | "VirtualGatewayListenerTlsFileCertificate":{ 3442 | "type":"structure", 3443 | "required":[ 3444 | "certificateChain", 3445 | "privateKey" 3446 | ], 3447 | "members":{ 3448 | "certificateChain":{"shape":"FilePath"}, 3449 | "privateKey":{"shape":"FilePath"} 3450 | } 3451 | }, 3452 | "VirtualGatewayListenerTlsMode":{ 3453 | "type":"string", 3454 | "enum":[ 3455 | "STRICT", 3456 | "PERMISSIVE", 3457 | "DISABLED" 3458 | ] 3459 | }, 3460 | "VirtualGatewayListenerTlsSdsCertificate":{ 3461 | "type":"structure", 3462 | "required":["secretName"], 3463 | "members":{ 3464 | "secretName":{"shape":"VirtualGatewaySdsSecretName"} 3465 | } 3466 | }, 3467 | "VirtualGatewayListenerTlsValidationContext":{ 3468 | "type":"structure", 3469 | "required":["trust"], 3470 | "members":{ 3471 | "subjectAlternativeNames":{"shape":"SubjectAlternativeNames"}, 3472 | "trust":{"shape":"VirtualGatewayListenerTlsValidationContextTrust"} 3473 | } 3474 | }, 3475 | "VirtualGatewayListenerTlsValidationContextTrust":{ 3476 | "type":"structure", 3477 | "members":{ 3478 | "file":{"shape":"VirtualGatewayTlsValidationContextFileTrust"}, 3479 | "sds":{"shape":"VirtualGatewayTlsValidationContextSdsTrust"} 3480 | }, 3481 | "union":true 3482 | }, 3483 | "VirtualGatewayListeners":{ 3484 | "type":"list", 3485 | "member":{"shape":"VirtualGatewayListener"} 3486 | }, 3487 | "VirtualGatewayLogging":{ 3488 | "type":"structure", 3489 | "members":{ 3490 | "accessLog":{"shape":"VirtualGatewayAccessLog"} 3491 | } 3492 | }, 3493 | "VirtualGatewayPortMapping":{ 3494 | "type":"structure", 3495 | "required":[ 3496 | "port", 3497 | "protocol" 3498 | ], 3499 | "members":{ 3500 | "port":{"shape":"PortNumber"}, 3501 | "protocol":{"shape":"VirtualGatewayPortProtocol"} 3502 | } 3503 | }, 3504 | "VirtualGatewayPortProtocol":{ 3505 | "type":"string", 3506 | "enum":[ 3507 | "http", 3508 | "http2", 3509 | "grpc" 3510 | ] 3511 | }, 3512 | "VirtualGatewayRef":{ 3513 | "type":"structure", 3514 | "required":[ 3515 | "arn", 3516 | "createdAt", 3517 | "lastUpdatedAt", 3518 | "meshName", 3519 | "meshOwner", 3520 | "resourceOwner", 3521 | "version", 3522 | "virtualGatewayName" 3523 | ], 3524 | "members":{ 3525 | "arn":{"shape":"Arn"}, 3526 | "createdAt":{"shape":"Timestamp"}, 3527 | "lastUpdatedAt":{"shape":"Timestamp"}, 3528 | "meshName":{"shape":"ResourceName"}, 3529 | "meshOwner":{"shape":"AccountId"}, 3530 | "resourceOwner":{"shape":"AccountId"}, 3531 | "version":{"shape":"Long"}, 3532 | "virtualGatewayName":{"shape":"ResourceName"} 3533 | } 3534 | }, 3535 | "VirtualGatewaySdsSecretName":{"type":"string"}, 3536 | "VirtualGatewaySpec":{ 3537 | "type":"structure", 3538 | "required":["listeners"], 3539 | "members":{ 3540 | "backendDefaults":{"shape":"VirtualGatewayBackendDefaults"}, 3541 | "listeners":{"shape":"VirtualGatewayListeners"}, 3542 | "logging":{"shape":"VirtualGatewayLogging"} 3543 | } 3544 | }, 3545 | "VirtualGatewayStatus":{ 3546 | "type":"structure", 3547 | "required":["status"], 3548 | "members":{ 3549 | "status":{"shape":"VirtualGatewayStatusCode"} 3550 | } 3551 | }, 3552 | "VirtualGatewayStatusCode":{ 3553 | "type":"string", 3554 | "enum":[ 3555 | "ACTIVE", 3556 | "INACTIVE", 3557 | "DELETED" 3558 | ] 3559 | }, 3560 | "VirtualGatewayTlsValidationContext":{ 3561 | "type":"structure", 3562 | "required":["trust"], 3563 | "members":{ 3564 | "subjectAlternativeNames":{"shape":"SubjectAlternativeNames"}, 3565 | "trust":{"shape":"VirtualGatewayTlsValidationContextTrust"} 3566 | } 3567 | }, 3568 | "VirtualGatewayTlsValidationContextAcmTrust":{ 3569 | "type":"structure", 3570 | "required":["certificateAuthorityArns"], 3571 | "members":{ 3572 | "certificateAuthorityArns":{"shape":"VirtualGatewayCertificateAuthorityArns"} 3573 | } 3574 | }, 3575 | "VirtualGatewayTlsValidationContextFileTrust":{ 3576 | "type":"structure", 3577 | "required":["certificateChain"], 3578 | "members":{ 3579 | "certificateChain":{"shape":"FilePath"} 3580 | } 3581 | }, 3582 | "VirtualGatewayTlsValidationContextSdsTrust":{ 3583 | "type":"structure", 3584 | "required":["secretName"], 3585 | "members":{ 3586 | "secretName":{"shape":"VirtualGatewaySdsSecretName"} 3587 | } 3588 | }, 3589 | "VirtualGatewayTlsValidationContextTrust":{ 3590 | "type":"structure", 3591 | "members":{ 3592 | "acm":{"shape":"VirtualGatewayTlsValidationContextAcmTrust"}, 3593 | "file":{"shape":"VirtualGatewayTlsValidationContextFileTrust"}, 3594 | "sds":{"shape":"VirtualGatewayTlsValidationContextSdsTrust"} 3595 | }, 3596 | "union":true 3597 | }, 3598 | "VirtualNodeConnectionPool":{ 3599 | "type":"structure", 3600 | "members":{ 3601 | "grpc":{"shape":"VirtualNodeGrpcConnectionPool"}, 3602 | "http":{"shape":"VirtualNodeHttpConnectionPool"}, 3603 | "http2":{"shape":"VirtualNodeHttp2ConnectionPool"}, 3604 | "tcp":{"shape":"VirtualNodeTcpConnectionPool"} 3605 | }, 3606 | "union":true 3607 | }, 3608 | "VirtualNodeData":{ 3609 | "type":"structure", 3610 | "required":[ 3611 | "meshName", 3612 | "metadata", 3613 | "spec", 3614 | "status", 3615 | "virtualNodeName" 3616 | ], 3617 | "members":{ 3618 | "meshName":{"shape":"ResourceName"}, 3619 | "metadata":{"shape":"ResourceMetadata"}, 3620 | "spec":{"shape":"VirtualNodeSpec"}, 3621 | "status":{"shape":"VirtualNodeStatus"}, 3622 | "virtualNodeName":{"shape":"ResourceName"} 3623 | } 3624 | }, 3625 | "VirtualNodeGrpcConnectionPool":{ 3626 | "type":"structure", 3627 | "required":["maxRequests"], 3628 | "members":{ 3629 | "maxRequests":{"shape":"MaxRequests"} 3630 | } 3631 | }, 3632 | "VirtualNodeHttp2ConnectionPool":{ 3633 | "type":"structure", 3634 | "required":["maxRequests"], 3635 | "members":{ 3636 | "maxRequests":{"shape":"MaxRequests"} 3637 | } 3638 | }, 3639 | "VirtualNodeHttpConnectionPool":{ 3640 | "type":"structure", 3641 | "required":["maxConnections"], 3642 | "members":{ 3643 | "maxConnections":{"shape":"MaxConnections"}, 3644 | "maxPendingRequests":{ 3645 | "shape":"MaxPendingRequests", 3646 | "box":true 3647 | } 3648 | } 3649 | }, 3650 | "VirtualNodeList":{ 3651 | "type":"list", 3652 | "member":{"shape":"VirtualNodeRef"} 3653 | }, 3654 | "VirtualNodeRef":{ 3655 | "type":"structure", 3656 | "required":[ 3657 | "arn", 3658 | "createdAt", 3659 | "lastUpdatedAt", 3660 | "meshName", 3661 | "meshOwner", 3662 | "resourceOwner", 3663 | "version", 3664 | "virtualNodeName" 3665 | ], 3666 | "members":{ 3667 | "arn":{"shape":"Arn"}, 3668 | "createdAt":{"shape":"Timestamp"}, 3669 | "lastUpdatedAt":{"shape":"Timestamp"}, 3670 | "meshName":{"shape":"ResourceName"}, 3671 | "meshOwner":{"shape":"AccountId"}, 3672 | "resourceOwner":{"shape":"AccountId"}, 3673 | "version":{"shape":"Long"}, 3674 | "virtualNodeName":{"shape":"ResourceName"} 3675 | } 3676 | }, 3677 | "VirtualNodeServiceProvider":{ 3678 | "type":"structure", 3679 | "required":["virtualNodeName"], 3680 | "members":{ 3681 | "virtualNodeName":{"shape":"ResourceName"} 3682 | } 3683 | }, 3684 | "VirtualNodeSpec":{ 3685 | "type":"structure", 3686 | "members":{ 3687 | "backendDefaults":{"shape":"BackendDefaults"}, 3688 | "backends":{"shape":"Backends"}, 3689 | "listeners":{"shape":"Listeners"}, 3690 | "logging":{"shape":"Logging"}, 3691 | "serviceDiscovery":{"shape":"ServiceDiscovery"} 3692 | } 3693 | }, 3694 | "VirtualNodeStatus":{ 3695 | "type":"structure", 3696 | "required":["status"], 3697 | "members":{ 3698 | "status":{"shape":"VirtualNodeStatusCode"} 3699 | } 3700 | }, 3701 | "VirtualNodeStatusCode":{ 3702 | "type":"string", 3703 | "enum":[ 3704 | "ACTIVE", 3705 | "INACTIVE", 3706 | "DELETED" 3707 | ] 3708 | }, 3709 | "VirtualNodeTcpConnectionPool":{ 3710 | "type":"structure", 3711 | "required":["maxConnections"], 3712 | "members":{ 3713 | "maxConnections":{"shape":"MaxConnections"} 3714 | } 3715 | }, 3716 | "VirtualRouterData":{ 3717 | "type":"structure", 3718 | "required":[ 3719 | "meshName", 3720 | "metadata", 3721 | "spec", 3722 | "status", 3723 | "virtualRouterName" 3724 | ], 3725 | "members":{ 3726 | "meshName":{"shape":"ResourceName"}, 3727 | "metadata":{"shape":"ResourceMetadata"}, 3728 | "spec":{"shape":"VirtualRouterSpec"}, 3729 | "status":{"shape":"VirtualRouterStatus"}, 3730 | "virtualRouterName":{"shape":"ResourceName"} 3731 | } 3732 | }, 3733 | "VirtualRouterList":{ 3734 | "type":"list", 3735 | "member":{"shape":"VirtualRouterRef"} 3736 | }, 3737 | "VirtualRouterListener":{ 3738 | "type":"structure", 3739 | "required":["portMapping"], 3740 | "members":{ 3741 | "portMapping":{"shape":"PortMapping"} 3742 | } 3743 | }, 3744 | "VirtualRouterListeners":{ 3745 | "type":"list", 3746 | "member":{"shape":"VirtualRouterListener"} 3747 | }, 3748 | "VirtualRouterRef":{ 3749 | "type":"structure", 3750 | "required":[ 3751 | "arn", 3752 | "createdAt", 3753 | "lastUpdatedAt", 3754 | "meshName", 3755 | "meshOwner", 3756 | "resourceOwner", 3757 | "version", 3758 | "virtualRouterName" 3759 | ], 3760 | "members":{ 3761 | "arn":{"shape":"Arn"}, 3762 | "createdAt":{"shape":"Timestamp"}, 3763 | "lastUpdatedAt":{"shape":"Timestamp"}, 3764 | "meshName":{"shape":"ResourceName"}, 3765 | "meshOwner":{"shape":"AccountId"}, 3766 | "resourceOwner":{"shape":"AccountId"}, 3767 | "version":{"shape":"Long"}, 3768 | "virtualRouterName":{"shape":"ResourceName"} 3769 | } 3770 | }, 3771 | "VirtualRouterServiceProvider":{ 3772 | "type":"structure", 3773 | "required":["virtualRouterName"], 3774 | "members":{ 3775 | "virtualRouterName":{"shape":"ResourceName"} 3776 | } 3777 | }, 3778 | "VirtualRouterSpec":{ 3779 | "type":"structure", 3780 | "members":{ 3781 | "listeners":{"shape":"VirtualRouterListeners"} 3782 | } 3783 | }, 3784 | "VirtualRouterStatus":{ 3785 | "type":"structure", 3786 | "required":["status"], 3787 | "members":{ 3788 | "status":{"shape":"VirtualRouterStatusCode"} 3789 | } 3790 | }, 3791 | "VirtualRouterStatusCode":{ 3792 | "type":"string", 3793 | "enum":[ 3794 | "ACTIVE", 3795 | "INACTIVE", 3796 | "DELETED" 3797 | ] 3798 | }, 3799 | "VirtualServiceBackend":{ 3800 | "type":"structure", 3801 | "required":["virtualServiceName"], 3802 | "members":{ 3803 | "clientPolicy":{"shape":"ClientPolicy"}, 3804 | "virtualServiceName":{"shape":"ServiceName"} 3805 | } 3806 | }, 3807 | "VirtualServiceData":{ 3808 | "type":"structure", 3809 | "required":[ 3810 | "meshName", 3811 | "metadata", 3812 | "spec", 3813 | "status", 3814 | "virtualServiceName" 3815 | ], 3816 | "members":{ 3817 | "meshName":{"shape":"ResourceName"}, 3818 | "metadata":{"shape":"ResourceMetadata"}, 3819 | "spec":{"shape":"VirtualServiceSpec"}, 3820 | "status":{"shape":"VirtualServiceStatus"}, 3821 | "virtualServiceName":{"shape":"ServiceName"} 3822 | } 3823 | }, 3824 | "VirtualServiceList":{ 3825 | "type":"list", 3826 | "member":{"shape":"VirtualServiceRef"} 3827 | }, 3828 | "VirtualServiceProvider":{ 3829 | "type":"structure", 3830 | "members":{ 3831 | "virtualNode":{"shape":"VirtualNodeServiceProvider"}, 3832 | "virtualRouter":{"shape":"VirtualRouterServiceProvider"} 3833 | }, 3834 | "union":true 3835 | }, 3836 | "VirtualServiceRef":{ 3837 | "type":"structure", 3838 | "required":[ 3839 | "arn", 3840 | "createdAt", 3841 | "lastUpdatedAt", 3842 | "meshName", 3843 | "meshOwner", 3844 | "resourceOwner", 3845 | "version", 3846 | "virtualServiceName" 3847 | ], 3848 | "members":{ 3849 | "arn":{"shape":"Arn"}, 3850 | "createdAt":{"shape":"Timestamp"}, 3851 | "lastUpdatedAt":{"shape":"Timestamp"}, 3852 | "meshName":{"shape":"ResourceName"}, 3853 | "meshOwner":{"shape":"AccountId"}, 3854 | "resourceOwner":{"shape":"AccountId"}, 3855 | "version":{"shape":"Long"}, 3856 | "virtualServiceName":{"shape":"ServiceName"} 3857 | } 3858 | }, 3859 | "VirtualServiceSpec":{ 3860 | "type":"structure", 3861 | "members":{ 3862 | "provider":{"shape":"VirtualServiceProvider"} 3863 | } 3864 | }, 3865 | "VirtualServiceStatus":{ 3866 | "type":"structure", 3867 | "required":["status"], 3868 | "members":{ 3869 | "status":{"shape":"VirtualServiceStatusCode"} 3870 | } 3871 | }, 3872 | "VirtualServiceStatusCode":{ 3873 | "type":"string", 3874 | "enum":[ 3875 | "ACTIVE", 3876 | "INACTIVE", 3877 | "DELETED" 3878 | ] 3879 | }, 3880 | "WeightedTarget":{ 3881 | "type":"structure", 3882 | "required":[ 3883 | "virtualNode", 3884 | "weight" 3885 | ], 3886 | "members":{ 3887 | "port":{"shape":"ListenerPort"}, 3888 | "virtualNode":{"shape":"ResourceName"}, 3889 | "weight":{"shape":"PercentInt"} 3890 | } 3891 | }, 3892 | "WeightedTargets":{ 3893 | "type":"list", 3894 | "member":{"shape":"WeightedTarget"}, 3895 | "max":10, 3896 | "min":1 3897 | } 3898 | } 3899 | } 3900 | -------------------------------------------------------------------------------- /appmesh-preview/sdk/examples.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "examples": { 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /appmesh-preview/sdk/paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListGatewayRoutes": { 4 | "input_token": "nextToken", 5 | "output_token": "nextToken", 6 | "limit_key": "limit", 7 | "result_key": "gatewayRoutes" 8 | }, 9 | "ListMeshes": { 10 | "input_token": "nextToken", 11 | "output_token": "nextToken", 12 | "limit_key": "limit", 13 | "result_key": "meshes" 14 | }, 15 | "ListRoutes": { 16 | "input_token": "nextToken", 17 | "output_token": "nextToken", 18 | "limit_key": "limit", 19 | "result_key": "routes" 20 | }, 21 | "ListVirtualGateways": { 22 | "input_token": "nextToken", 23 | "output_token": "nextToken", 24 | "limit_key": "limit", 25 | "result_key": "virtualGateways" 26 | }, 27 | "ListVirtualNodes": { 28 | "input_token": "nextToken", 29 | "output_token": "nextToken", 30 | "limit_key": "limit", 31 | "result_key": "virtualNodes" 32 | }, 33 | "ListVirtualRouters": { 34 | "input_token": "nextToken", 35 | "output_token": "nextToken", 36 | "limit_key": "limit", 37 | "result_key": "virtualRouters" 38 | }, 39 | "ListVirtualServices": { 40 | "input_token": "nextToken", 41 | "output_token": "nextToken", 42 | "limit_key": "limit", 43 | "result_key": "virtualServices" 44 | } 45 | } 46 | } 47 | --------------------------------------------------------------------------------