1{
2    "smithy": "1.0",
3    "metadata": {
4        "suppressions": [
5            {
6                "id": "HttpMethodSemantics",
7                "namespace": "*"
8            },
9            {
10                "id": "HttpResponseCodeSemantics",
11                "namespace": "*"
12            },
13            {
14                "id": "PaginatedTrait",
15                "namespace": "*"
16            },
17            {
18                "id": "HttpHeaderTrait",
19                "namespace": "*"
20            },
21            {
22                "id": "HttpUriConflict",
23                "namespace": "*"
24            },
25            {
26                "id": "Service",
27                "namespace": "*"
28            }
29        ]
30    },
31    "shapes": {
32        "com.amazonaws.apigatewaymanagementapi#ApiGatewayManagementApi": {
33            "type": "service",
34            "version": "2018-11-29",
35            "operations": [
36                {
37                    "target": "com.amazonaws.apigatewaymanagementapi#DeleteConnection"
38                },
39                {
40                    "target": "com.amazonaws.apigatewaymanagementapi#GetConnection"
41                },
42                {
43                    "target": "com.amazonaws.apigatewaymanagementapi#PostToConnection"
44                }
45            ],
46            "traits": {
47                "aws.api#service": {
48                    "sdkId": "ApiGatewayManagementApi",
49                    "arnNamespace": "apigateway",
50                    "cloudFormationName": "ApiGatewayManagementApi",
51                    "cloudTrailEventSource": "apigatewaymanagementapi.amazonaws.com",
52                    "endpointPrefix": "execute-api"
53                },
54                "aws.auth#sigv4": {
55                    "name": "execute-api"
56                },
57                "aws.protocols#restJson1": {},
58                "smithy.api#documentation": "<p>The Amazon API Gateway Management API allows you to directly manage runtime aspects of your deployed APIs. To use it, you must explicitly set the SDK's endpoint to point to the endpoint of your deployed API. The endpoint will be of the form https://{api-id}.execute-api.{region}.amazonaws.com/{stage}, or will be the endpoint corresponding to your API's custom domain and base path, if applicable.</p>",
59                "smithy.api#title": "AmazonApiGatewayManagementApi"
60            }
61        },
62        "com.amazonaws.apigatewaymanagementapi#Data": {
63            "type": "blob",
64            "traits": {
65                "smithy.api#documentation": "<p>The data to be sent to the client specified by its connection id.</p>",
66                "smithy.api#length": {
67                    "min": 0,
68                    "max": 131072
69                }
70            }
71        },
72        "com.amazonaws.apigatewaymanagementapi#DeleteConnection": {
73            "type": "operation",
74            "input": {
75                "target": "com.amazonaws.apigatewaymanagementapi#DeleteConnectionRequest"
76            },
77            "errors": [
78                {
79                    "target": "com.amazonaws.apigatewaymanagementapi#ForbiddenException"
80                },
81                {
82                    "target": "com.amazonaws.apigatewaymanagementapi#GoneException"
83                },
84                {
85                    "target": "com.amazonaws.apigatewaymanagementapi#LimitExceededException"
86                }
87            ],
88            "traits": {
89                "smithy.api#documentation": "<p>Delete the connection with the provided id.</p>",
90                "smithy.api#http": {
91                    "method": "DELETE",
92                    "uri": "/@connections/{ConnectionId}",
93                    "code": 204
94                }
95            }
96        },
97        "com.amazonaws.apigatewaymanagementapi#DeleteConnectionRequest": {
98            "type": "structure",
99            "members": {
100                "ConnectionId": {
101                    "target": "com.amazonaws.apigatewaymanagementapi#__string",
102                    "traits": {
103                        "smithy.api#httpLabel": {},
104                        "smithy.api#required": {}
105                    }
106                }
107            }
108        },
109        "com.amazonaws.apigatewaymanagementapi#ForbiddenException": {
110            "type": "structure",
111            "members": {},
112            "traits": {
113                "smithy.api#documentation": "<p>The caller is not authorized to invoke this operation.</p>",
114                "smithy.api#error": "client",
115                "smithy.api#httpError": 403
116            }
117        },
118        "com.amazonaws.apigatewaymanagementapi#GetConnection": {
119            "type": "operation",
120            "input": {
121                "target": "com.amazonaws.apigatewaymanagementapi#GetConnectionRequest"
122            },
123            "output": {
124                "target": "com.amazonaws.apigatewaymanagementapi#GetConnectionResponse"
125            },
126            "errors": [
127                {
128                    "target": "com.amazonaws.apigatewaymanagementapi#ForbiddenException"
129                },
130                {
131                    "target": "com.amazonaws.apigatewaymanagementapi#GoneException"
132                },
133                {
134                    "target": "com.amazonaws.apigatewaymanagementapi#LimitExceededException"
135                }
136            ],
137            "traits": {
138                "smithy.api#documentation": "<p>Get information about the connection with the provided id.</p>",
139                "smithy.api#http": {
140                    "method": "GET",
141                    "uri": "/@connections/{ConnectionId}",
142                    "code": 200
143                }
144            }
145        },
146        "com.amazonaws.apigatewaymanagementapi#GetConnectionRequest": {
147            "type": "structure",
148            "members": {
149                "ConnectionId": {
150                    "target": "com.amazonaws.apigatewaymanagementapi#__string",
151                    "traits": {
152                        "smithy.api#httpLabel": {},
153                        "smithy.api#required": {}
154                    }
155                }
156            }
157        },
158        "com.amazonaws.apigatewaymanagementapi#GetConnectionResponse": {
159            "type": "structure",
160            "members": {
161                "ConnectedAt": {
162                    "target": "com.amazonaws.apigatewaymanagementapi#__timestampIso8601",
163                    "traits": {
164                        "smithy.api#documentation": "<p>The time in ISO 8601 format for when the connection was established.</p>",
165                        "smithy.api#jsonName": "connectedAt"
166                    }
167                },
168                "Identity": {
169                    "target": "com.amazonaws.apigatewaymanagementapi#Identity",
170                    "traits": {
171                        "smithy.api#jsonName": "identity"
172                    }
173                },
174                "LastActiveAt": {
175                    "target": "com.amazonaws.apigatewaymanagementapi#__timestampIso8601",
176                    "traits": {
177                        "smithy.api#documentation": "<p>The time in ISO 8601 format for when the connection was last active.</p>",
178                        "smithy.api#jsonName": "lastActiveAt"
179                    }
180                }
181            }
182        },
183        "com.amazonaws.apigatewaymanagementapi#GoneException": {
184            "type": "structure",
185            "members": {},
186            "traits": {
187                "smithy.api#documentation": "<p>The connection with the provided id no longer exists.</p>",
188                "smithy.api#error": "client",
189                "smithy.api#httpError": 410
190            }
191        },
192        "com.amazonaws.apigatewaymanagementapi#Identity": {
193            "type": "structure",
194            "members": {
195                "SourceIp": {
196                    "target": "com.amazonaws.apigatewaymanagementapi#__string",
197                    "traits": {
198                        "smithy.api#documentation": "<p>The source IP address of the TCP connection making the request to API Gateway.</p>",
199                        "smithy.api#jsonName": "sourceIp",
200                        "smithy.api#required": {}
201                    }
202                },
203                "UserAgent": {
204                    "target": "com.amazonaws.apigatewaymanagementapi#__string",
205                    "traits": {
206                        "smithy.api#documentation": "<p>The User Agent of the API caller.</p>",
207                        "smithy.api#jsonName": "userAgent",
208                        "smithy.api#required": {}
209                    }
210                }
211            }
212        },
213        "com.amazonaws.apigatewaymanagementapi#LimitExceededException": {
214            "type": "structure",
215            "members": {},
216            "traits": {
217                "smithy.api#documentation": "<p>The client is sending more than the allowed number of requests per unit of time or the WebSocket client side buffer is full.</p>",
218                "smithy.api#error": "client",
219                "smithy.api#httpError": 429
220            }
221        },
222        "com.amazonaws.apigatewaymanagementapi#PayloadTooLargeException": {
223            "type": "structure",
224            "members": {
225                "Message": {
226                    "target": "com.amazonaws.apigatewaymanagementapi#__string",
227                    "traits": {
228                        "smithy.api#jsonName": "message"
229                    }
230                }
231            },
232            "traits": {
233                "smithy.api#documentation": "<p>The data has exceeded the maximum size allowed.</p>",
234                "smithy.api#error": "client",
235                "smithy.api#httpError": 413
236            }
237        },
238        "com.amazonaws.apigatewaymanagementapi#PostToConnection": {
239            "type": "operation",
240            "input": {
241                "target": "com.amazonaws.apigatewaymanagementapi#PostToConnectionRequest"
242            },
243            "errors": [
244                {
245                    "target": "com.amazonaws.apigatewaymanagementapi#ForbiddenException"
246                },
247                {
248                    "target": "com.amazonaws.apigatewaymanagementapi#GoneException"
249                },
250                {
251                    "target": "com.amazonaws.apigatewaymanagementapi#LimitExceededException"
252                },
253                {
254                    "target": "com.amazonaws.apigatewaymanagementapi#PayloadTooLargeException"
255                }
256            ],
257            "traits": {
258                "smithy.api#documentation": "<p>Sends the provided data to the specified connection.</p>",
259                "smithy.api#http": {
260                    "method": "POST",
261                    "uri": "/@connections/{ConnectionId}",
262                    "code": 200
263                }
264            }
265        },
266        "com.amazonaws.apigatewaymanagementapi#PostToConnectionRequest": {
267            "type": "structure",
268            "members": {
269                "Data": {
270                    "target": "com.amazonaws.apigatewaymanagementapi#Data",
271                    "traits": {
272                        "smithy.api#documentation": "<p>The data to be sent to the client specified by its connection id.</p>",
273                        "smithy.api#httpPayload": {},
274                        "smithy.api#required": {}
275                    }
276                },
277                "ConnectionId": {
278                    "target": "com.amazonaws.apigatewaymanagementapi#__string",
279                    "traits": {
280                        "smithy.api#documentation": "<p>The identifier of the connection that a specific client is using.</p>",
281                        "smithy.api#httpLabel": {},
282                        "smithy.api#required": {}
283                    }
284                }
285            }
286        },
287        "com.amazonaws.apigatewaymanagementapi#__string": {
288            "type": "string"
289        },
290        "com.amazonaws.apigatewaymanagementapi#__timestampIso8601": {
291            "type": "timestamp",
292            "traits": {
293                "smithy.api#timestampFormat": "date-time"
294            }
295        }
296    }
297}
298