1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package apigateway
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opCreateApiKey = "CreateApiKey"
17
18// CreateApiKeyRequest generates a "aws/request.Request" representing the
19// client's request for the CreateApiKey operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateApiKey for more information on using the CreateApiKey
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CreateApiKeyRequest method.
34//    req, resp := client.CreateApiKeyRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40func (c *APIGateway) CreateApiKeyRequest(input *CreateApiKeyInput) (req *request.Request, output *ApiKey) {
41	op := &request.Operation{
42		Name:       opCreateApiKey,
43		HTTPMethod: "POST",
44		HTTPPath:   "/apikeys",
45	}
46
47	if input == nil {
48		input = &CreateApiKeyInput{}
49	}
50
51	output = &ApiKey{}
52	req = c.newRequest(op, input, output)
53	return
54}
55
56// CreateApiKey API operation for Amazon API Gateway.
57//
58// Create an ApiKey resource.
59//
60// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-api-key.html)
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for Amazon API Gateway's
67// API operation CreateApiKey for usage and error information.
68//
69// Returned Error Types:
70//   * BadRequestException
71//   The submitted request is not valid, for example, the input is incomplete
72//   or incorrect. See the accompanying error message for details.
73//
74//   * ConflictException
75//   The request configuration has conflicts. For details, see the accompanying
76//   error message.
77//
78//   * LimitExceededException
79//   The request exceeded the rate limit. Retry after the specified time period.
80//
81//   * NotFoundException
82//   The requested resource is not found. Make sure that the request URI is correct.
83//
84//   * UnauthorizedException
85//   The request is denied because the caller has insufficient permissions.
86//
87//   * TooManyRequestsException
88//   The request has reached its throttling limit. Retry after the specified time
89//   period.
90//
91func (c *APIGateway) CreateApiKey(input *CreateApiKeyInput) (*ApiKey, error) {
92	req, out := c.CreateApiKeyRequest(input)
93	return out, req.Send()
94}
95
96// CreateApiKeyWithContext is the same as CreateApiKey with the addition of
97// the ability to pass a context and additional request options.
98//
99// See CreateApiKey for details on how to use this API operation.
100//
101// The context must be non-nil and will be used for request cancellation. If
102// the context is nil a panic will occur. In the future the SDK may create
103// sub-contexts for http.Requests. See https://golang.org/pkg/context/
104// for more information on using Contexts.
105func (c *APIGateway) CreateApiKeyWithContext(ctx aws.Context, input *CreateApiKeyInput, opts ...request.Option) (*ApiKey, error) {
106	req, out := c.CreateApiKeyRequest(input)
107	req.SetContext(ctx)
108	req.ApplyOptions(opts...)
109	return out, req.Send()
110}
111
112const opCreateAuthorizer = "CreateAuthorizer"
113
114// CreateAuthorizerRequest generates a "aws/request.Request" representing the
115// client's request for the CreateAuthorizer operation. The "output" return
116// value will be populated with the request's response once the request completes
117// successfully.
118//
119// Use "Send" method on the returned Request to send the API call to the service.
120// the "output" return value is not valid until after Send returns without error.
121//
122// See CreateAuthorizer for more information on using the CreateAuthorizer
123// API call, and error handling.
124//
125// This method is useful when you want to inject custom logic or configuration
126// into the SDK's request lifecycle. Such as custom headers, or retry logic.
127//
128//
129//    // Example sending a request using the CreateAuthorizerRequest method.
130//    req, resp := client.CreateAuthorizerRequest(params)
131//
132//    err := req.Send()
133//    if err == nil { // resp is now filled
134//        fmt.Println(resp)
135//    }
136func (c *APIGateway) CreateAuthorizerRequest(input *CreateAuthorizerInput) (req *request.Request, output *Authorizer) {
137	op := &request.Operation{
138		Name:       opCreateAuthorizer,
139		HTTPMethod: "POST",
140		HTTPPath:   "/restapis/{restapi_id}/authorizers",
141	}
142
143	if input == nil {
144		input = &CreateAuthorizerInput{}
145	}
146
147	output = &Authorizer{}
148	req = c.newRequest(op, input, output)
149	return
150}
151
152// CreateAuthorizer API operation for Amazon API Gateway.
153//
154// Adds a new Authorizer resource to an existing RestApi resource.
155//
156// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html)
157//
158// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
159// with awserr.Error's Code and Message methods to get detailed information about
160// the error.
161//
162// See the AWS API reference guide for Amazon API Gateway's
163// API operation CreateAuthorizer for usage and error information.
164//
165// Returned Error Types:
166//   * BadRequestException
167//   The submitted request is not valid, for example, the input is incomplete
168//   or incorrect. See the accompanying error message for details.
169//
170//   * ConflictException
171//   The request configuration has conflicts. For details, see the accompanying
172//   error message.
173//
174//   * LimitExceededException
175//   The request exceeded the rate limit. Retry after the specified time period.
176//
177//   * NotFoundException
178//   The requested resource is not found. Make sure that the request URI is correct.
179//
180//   * UnauthorizedException
181//   The request is denied because the caller has insufficient permissions.
182//
183//   * TooManyRequestsException
184//   The request has reached its throttling limit. Retry after the specified time
185//   period.
186//
187func (c *APIGateway) CreateAuthorizer(input *CreateAuthorizerInput) (*Authorizer, error) {
188	req, out := c.CreateAuthorizerRequest(input)
189	return out, req.Send()
190}
191
192// CreateAuthorizerWithContext is the same as CreateAuthorizer with the addition of
193// the ability to pass a context and additional request options.
194//
195// See CreateAuthorizer for details on how to use this API operation.
196//
197// The context must be non-nil and will be used for request cancellation. If
198// the context is nil a panic will occur. In the future the SDK may create
199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
200// for more information on using Contexts.
201func (c *APIGateway) CreateAuthorizerWithContext(ctx aws.Context, input *CreateAuthorizerInput, opts ...request.Option) (*Authorizer, error) {
202	req, out := c.CreateAuthorizerRequest(input)
203	req.SetContext(ctx)
204	req.ApplyOptions(opts...)
205	return out, req.Send()
206}
207
208const opCreateBasePathMapping = "CreateBasePathMapping"
209
210// CreateBasePathMappingRequest generates a "aws/request.Request" representing the
211// client's request for the CreateBasePathMapping operation. The "output" return
212// value will be populated with the request's response once the request completes
213// successfully.
214//
215// Use "Send" method on the returned Request to send the API call to the service.
216// the "output" return value is not valid until after Send returns without error.
217//
218// See CreateBasePathMapping for more information on using the CreateBasePathMapping
219// API call, and error handling.
220//
221// This method is useful when you want to inject custom logic or configuration
222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
223//
224//
225//    // Example sending a request using the CreateBasePathMappingRequest method.
226//    req, resp := client.CreateBasePathMappingRequest(params)
227//
228//    err := req.Send()
229//    if err == nil { // resp is now filled
230//        fmt.Println(resp)
231//    }
232func (c *APIGateway) CreateBasePathMappingRequest(input *CreateBasePathMappingInput) (req *request.Request, output *BasePathMapping) {
233	op := &request.Operation{
234		Name:       opCreateBasePathMapping,
235		HTTPMethod: "POST",
236		HTTPPath:   "/domainnames/{domain_name}/basepathmappings",
237	}
238
239	if input == nil {
240		input = &CreateBasePathMappingInput{}
241	}
242
243	output = &BasePathMapping{}
244	req = c.newRequest(op, input, output)
245	return
246}
247
248// CreateBasePathMapping API operation for Amazon API Gateway.
249//
250// Creates a new BasePathMapping resource.
251//
252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
253// with awserr.Error's Code and Message methods to get detailed information about
254// the error.
255//
256// See the AWS API reference guide for Amazon API Gateway's
257// API operation CreateBasePathMapping for usage and error information.
258//
259// Returned Error Types:
260//   * BadRequestException
261//   The submitted request is not valid, for example, the input is incomplete
262//   or incorrect. See the accompanying error message for details.
263//
264//   * ConflictException
265//   The request configuration has conflicts. For details, see the accompanying
266//   error message.
267//
268//   * LimitExceededException
269//   The request exceeded the rate limit. Retry after the specified time period.
270//
271//   * NotFoundException
272//   The requested resource is not found. Make sure that the request URI is correct.
273//
274//   * UnauthorizedException
275//   The request is denied because the caller has insufficient permissions.
276//
277//   * TooManyRequestsException
278//   The request has reached its throttling limit. Retry after the specified time
279//   period.
280//
281func (c *APIGateway) CreateBasePathMapping(input *CreateBasePathMappingInput) (*BasePathMapping, error) {
282	req, out := c.CreateBasePathMappingRequest(input)
283	return out, req.Send()
284}
285
286// CreateBasePathMappingWithContext is the same as CreateBasePathMapping with the addition of
287// the ability to pass a context and additional request options.
288//
289// See CreateBasePathMapping for details on how to use this API operation.
290//
291// The context must be non-nil and will be used for request cancellation. If
292// the context is nil a panic will occur. In the future the SDK may create
293// sub-contexts for http.Requests. See https://golang.org/pkg/context/
294// for more information on using Contexts.
295func (c *APIGateway) CreateBasePathMappingWithContext(ctx aws.Context, input *CreateBasePathMappingInput, opts ...request.Option) (*BasePathMapping, error) {
296	req, out := c.CreateBasePathMappingRequest(input)
297	req.SetContext(ctx)
298	req.ApplyOptions(opts...)
299	return out, req.Send()
300}
301
302const opCreateDeployment = "CreateDeployment"
303
304// CreateDeploymentRequest generates a "aws/request.Request" representing the
305// client's request for the CreateDeployment operation. The "output" return
306// value will be populated with the request's response once the request completes
307// successfully.
308//
309// Use "Send" method on the returned Request to send the API call to the service.
310// the "output" return value is not valid until after Send returns without error.
311//
312// See CreateDeployment for more information on using the CreateDeployment
313// API call, and error handling.
314//
315// This method is useful when you want to inject custom logic or configuration
316// into the SDK's request lifecycle. Such as custom headers, or retry logic.
317//
318//
319//    // Example sending a request using the CreateDeploymentRequest method.
320//    req, resp := client.CreateDeploymentRequest(params)
321//
322//    err := req.Send()
323//    if err == nil { // resp is now filled
324//        fmt.Println(resp)
325//    }
326func (c *APIGateway) CreateDeploymentRequest(input *CreateDeploymentInput) (req *request.Request, output *Deployment) {
327	op := &request.Operation{
328		Name:       opCreateDeployment,
329		HTTPMethod: "POST",
330		HTTPPath:   "/restapis/{restapi_id}/deployments",
331	}
332
333	if input == nil {
334		input = &CreateDeploymentInput{}
335	}
336
337	output = &Deployment{}
338	req = c.newRequest(op, input, output)
339	return
340}
341
342// CreateDeployment API operation for Amazon API Gateway.
343//
344// Creates a Deployment resource, which makes a specified RestApi callable over
345// the internet.
346//
347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
348// with awserr.Error's Code and Message methods to get detailed information about
349// the error.
350//
351// See the AWS API reference guide for Amazon API Gateway's
352// API operation CreateDeployment for usage and error information.
353//
354// Returned Error Types:
355//   * BadRequestException
356//   The submitted request is not valid, for example, the input is incomplete
357//   or incorrect. See the accompanying error message for details.
358//
359//   * ConflictException
360//   The request configuration has conflicts. For details, see the accompanying
361//   error message.
362//
363//   * LimitExceededException
364//   The request exceeded the rate limit. Retry after the specified time period.
365//
366//   * NotFoundException
367//   The requested resource is not found. Make sure that the request URI is correct.
368//
369//   * UnauthorizedException
370//   The request is denied because the caller has insufficient permissions.
371//
372//   * TooManyRequestsException
373//   The request has reached its throttling limit. Retry after the specified time
374//   period.
375//
376//   * ServiceUnavailableException
377//   The requested service is not available. For details see the accompanying
378//   error message. Retry after the specified time period.
379//
380func (c *APIGateway) CreateDeployment(input *CreateDeploymentInput) (*Deployment, error) {
381	req, out := c.CreateDeploymentRequest(input)
382	return out, req.Send()
383}
384
385// CreateDeploymentWithContext is the same as CreateDeployment with the addition of
386// the ability to pass a context and additional request options.
387//
388// See CreateDeployment for details on how to use this API operation.
389//
390// The context must be non-nil and will be used for request cancellation. If
391// the context is nil a panic will occur. In the future the SDK may create
392// sub-contexts for http.Requests. See https://golang.org/pkg/context/
393// for more information on using Contexts.
394func (c *APIGateway) CreateDeploymentWithContext(ctx aws.Context, input *CreateDeploymentInput, opts ...request.Option) (*Deployment, error) {
395	req, out := c.CreateDeploymentRequest(input)
396	req.SetContext(ctx)
397	req.ApplyOptions(opts...)
398	return out, req.Send()
399}
400
401const opCreateDocumentationPart = "CreateDocumentationPart"
402
403// CreateDocumentationPartRequest generates a "aws/request.Request" representing the
404// client's request for the CreateDocumentationPart operation. The "output" return
405// value will be populated with the request's response once the request completes
406// successfully.
407//
408// Use "Send" method on the returned Request to send the API call to the service.
409// the "output" return value is not valid until after Send returns without error.
410//
411// See CreateDocumentationPart for more information on using the CreateDocumentationPart
412// API call, and error handling.
413//
414// This method is useful when you want to inject custom logic or configuration
415// into the SDK's request lifecycle. Such as custom headers, or retry logic.
416//
417//
418//    // Example sending a request using the CreateDocumentationPartRequest method.
419//    req, resp := client.CreateDocumentationPartRequest(params)
420//
421//    err := req.Send()
422//    if err == nil { // resp is now filled
423//        fmt.Println(resp)
424//    }
425func (c *APIGateway) CreateDocumentationPartRequest(input *CreateDocumentationPartInput) (req *request.Request, output *DocumentationPart) {
426	op := &request.Operation{
427		Name:       opCreateDocumentationPart,
428		HTTPMethod: "POST",
429		HTTPPath:   "/restapis/{restapi_id}/documentation/parts",
430	}
431
432	if input == nil {
433		input = &CreateDocumentationPartInput{}
434	}
435
436	output = &DocumentationPart{}
437	req = c.newRequest(op, input, output)
438	return
439}
440
441// CreateDocumentationPart API operation for Amazon API Gateway.
442//
443// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
444// with awserr.Error's Code and Message methods to get detailed information about
445// the error.
446//
447// See the AWS API reference guide for Amazon API Gateway's
448// API operation CreateDocumentationPart for usage and error information.
449//
450// Returned Error Types:
451//   * BadRequestException
452//   The submitted request is not valid, for example, the input is incomplete
453//   or incorrect. See the accompanying error message for details.
454//
455//   * ConflictException
456//   The request configuration has conflicts. For details, see the accompanying
457//   error message.
458//
459//   * LimitExceededException
460//   The request exceeded the rate limit. Retry after the specified time period.
461//
462//   * NotFoundException
463//   The requested resource is not found. Make sure that the request URI is correct.
464//
465//   * UnauthorizedException
466//   The request is denied because the caller has insufficient permissions.
467//
468//   * TooManyRequestsException
469//   The request has reached its throttling limit. Retry after the specified time
470//   period.
471//
472func (c *APIGateway) CreateDocumentationPart(input *CreateDocumentationPartInput) (*DocumentationPart, error) {
473	req, out := c.CreateDocumentationPartRequest(input)
474	return out, req.Send()
475}
476
477// CreateDocumentationPartWithContext is the same as CreateDocumentationPart with the addition of
478// the ability to pass a context and additional request options.
479//
480// See CreateDocumentationPart for details on how to use this API operation.
481//
482// The context must be non-nil and will be used for request cancellation. If
483// the context is nil a panic will occur. In the future the SDK may create
484// sub-contexts for http.Requests. See https://golang.org/pkg/context/
485// for more information on using Contexts.
486func (c *APIGateway) CreateDocumentationPartWithContext(ctx aws.Context, input *CreateDocumentationPartInput, opts ...request.Option) (*DocumentationPart, error) {
487	req, out := c.CreateDocumentationPartRequest(input)
488	req.SetContext(ctx)
489	req.ApplyOptions(opts...)
490	return out, req.Send()
491}
492
493const opCreateDocumentationVersion = "CreateDocumentationVersion"
494
495// CreateDocumentationVersionRequest generates a "aws/request.Request" representing the
496// client's request for the CreateDocumentationVersion operation. The "output" return
497// value will be populated with the request's response once the request completes
498// successfully.
499//
500// Use "Send" method on the returned Request to send the API call to the service.
501// the "output" return value is not valid until after Send returns without error.
502//
503// See CreateDocumentationVersion for more information on using the CreateDocumentationVersion
504// API call, and error handling.
505//
506// This method is useful when you want to inject custom logic or configuration
507// into the SDK's request lifecycle. Such as custom headers, or retry logic.
508//
509//
510//    // Example sending a request using the CreateDocumentationVersionRequest method.
511//    req, resp := client.CreateDocumentationVersionRequest(params)
512//
513//    err := req.Send()
514//    if err == nil { // resp is now filled
515//        fmt.Println(resp)
516//    }
517func (c *APIGateway) CreateDocumentationVersionRequest(input *CreateDocumentationVersionInput) (req *request.Request, output *DocumentationVersion) {
518	op := &request.Operation{
519		Name:       opCreateDocumentationVersion,
520		HTTPMethod: "POST",
521		HTTPPath:   "/restapis/{restapi_id}/documentation/versions",
522	}
523
524	if input == nil {
525		input = &CreateDocumentationVersionInput{}
526	}
527
528	output = &DocumentationVersion{}
529	req = c.newRequest(op, input, output)
530	return
531}
532
533// CreateDocumentationVersion API operation for Amazon API Gateway.
534//
535// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
536// with awserr.Error's Code and Message methods to get detailed information about
537// the error.
538//
539// See the AWS API reference guide for Amazon API Gateway's
540// API operation CreateDocumentationVersion for usage and error information.
541//
542// Returned Error Types:
543//   * BadRequestException
544//   The submitted request is not valid, for example, the input is incomplete
545//   or incorrect. See the accompanying error message for details.
546//
547//   * ConflictException
548//   The request configuration has conflicts. For details, see the accompanying
549//   error message.
550//
551//   * LimitExceededException
552//   The request exceeded the rate limit. Retry after the specified time period.
553//
554//   * NotFoundException
555//   The requested resource is not found. Make sure that the request URI is correct.
556//
557//   * UnauthorizedException
558//   The request is denied because the caller has insufficient permissions.
559//
560//   * TooManyRequestsException
561//   The request has reached its throttling limit. Retry after the specified time
562//   period.
563//
564func (c *APIGateway) CreateDocumentationVersion(input *CreateDocumentationVersionInput) (*DocumentationVersion, error) {
565	req, out := c.CreateDocumentationVersionRequest(input)
566	return out, req.Send()
567}
568
569// CreateDocumentationVersionWithContext is the same as CreateDocumentationVersion with the addition of
570// the ability to pass a context and additional request options.
571//
572// See CreateDocumentationVersion for details on how to use this API operation.
573//
574// The context must be non-nil and will be used for request cancellation. If
575// the context is nil a panic will occur. In the future the SDK may create
576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
577// for more information on using Contexts.
578func (c *APIGateway) CreateDocumentationVersionWithContext(ctx aws.Context, input *CreateDocumentationVersionInput, opts ...request.Option) (*DocumentationVersion, error) {
579	req, out := c.CreateDocumentationVersionRequest(input)
580	req.SetContext(ctx)
581	req.ApplyOptions(opts...)
582	return out, req.Send()
583}
584
585const opCreateDomainName = "CreateDomainName"
586
587// CreateDomainNameRequest generates a "aws/request.Request" representing the
588// client's request for the CreateDomainName operation. The "output" return
589// value will be populated with the request's response once the request completes
590// successfully.
591//
592// Use "Send" method on the returned Request to send the API call to the service.
593// the "output" return value is not valid until after Send returns without error.
594//
595// See CreateDomainName for more information on using the CreateDomainName
596// API call, and error handling.
597//
598// This method is useful when you want to inject custom logic or configuration
599// into the SDK's request lifecycle. Such as custom headers, or retry logic.
600//
601//
602//    // Example sending a request using the CreateDomainNameRequest method.
603//    req, resp := client.CreateDomainNameRequest(params)
604//
605//    err := req.Send()
606//    if err == nil { // resp is now filled
607//        fmt.Println(resp)
608//    }
609func (c *APIGateway) CreateDomainNameRequest(input *CreateDomainNameInput) (req *request.Request, output *DomainName) {
610	op := &request.Operation{
611		Name:       opCreateDomainName,
612		HTTPMethod: "POST",
613		HTTPPath:   "/domainnames",
614	}
615
616	if input == nil {
617		input = &CreateDomainNameInput{}
618	}
619
620	output = &DomainName{}
621	req = c.newRequest(op, input, output)
622	return
623}
624
625// CreateDomainName API operation for Amazon API Gateway.
626//
627// Creates a new domain name.
628//
629// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
630// with awserr.Error's Code and Message methods to get detailed information about
631// the error.
632//
633// See the AWS API reference guide for Amazon API Gateway's
634// API operation CreateDomainName for usage and error information.
635//
636// Returned Error Types:
637//   * BadRequestException
638//   The submitted request is not valid, for example, the input is incomplete
639//   or incorrect. See the accompanying error message for details.
640//
641//   * ConflictException
642//   The request configuration has conflicts. For details, see the accompanying
643//   error message.
644//
645//   * LimitExceededException
646//   The request exceeded the rate limit. Retry after the specified time period.
647//
648//   * UnauthorizedException
649//   The request is denied because the caller has insufficient permissions.
650//
651//   * TooManyRequestsException
652//   The request has reached its throttling limit. Retry after the specified time
653//   period.
654//
655func (c *APIGateway) CreateDomainName(input *CreateDomainNameInput) (*DomainName, error) {
656	req, out := c.CreateDomainNameRequest(input)
657	return out, req.Send()
658}
659
660// CreateDomainNameWithContext is the same as CreateDomainName with the addition of
661// the ability to pass a context and additional request options.
662//
663// See CreateDomainName for details on how to use this API operation.
664//
665// The context must be non-nil and will be used for request cancellation. If
666// the context is nil a panic will occur. In the future the SDK may create
667// sub-contexts for http.Requests. See https://golang.org/pkg/context/
668// for more information on using Contexts.
669func (c *APIGateway) CreateDomainNameWithContext(ctx aws.Context, input *CreateDomainNameInput, opts ...request.Option) (*DomainName, error) {
670	req, out := c.CreateDomainNameRequest(input)
671	req.SetContext(ctx)
672	req.ApplyOptions(opts...)
673	return out, req.Send()
674}
675
676const opCreateModel = "CreateModel"
677
678// CreateModelRequest generates a "aws/request.Request" representing the
679// client's request for the CreateModel operation. The "output" return
680// value will be populated with the request's response once the request completes
681// successfully.
682//
683// Use "Send" method on the returned Request to send the API call to the service.
684// the "output" return value is not valid until after Send returns without error.
685//
686// See CreateModel for more information on using the CreateModel
687// API call, and error handling.
688//
689// This method is useful when you want to inject custom logic or configuration
690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
691//
692//
693//    // Example sending a request using the CreateModelRequest method.
694//    req, resp := client.CreateModelRequest(params)
695//
696//    err := req.Send()
697//    if err == nil { // resp is now filled
698//        fmt.Println(resp)
699//    }
700func (c *APIGateway) CreateModelRequest(input *CreateModelInput) (req *request.Request, output *Model) {
701	op := &request.Operation{
702		Name:       opCreateModel,
703		HTTPMethod: "POST",
704		HTTPPath:   "/restapis/{restapi_id}/models",
705	}
706
707	if input == nil {
708		input = &CreateModelInput{}
709	}
710
711	output = &Model{}
712	req = c.newRequest(op, input, output)
713	return
714}
715
716// CreateModel API operation for Amazon API Gateway.
717//
718// Adds a new Model resource to an existing RestApi resource.
719//
720// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
721// with awserr.Error's Code and Message methods to get detailed information about
722// the error.
723//
724// See the AWS API reference guide for Amazon API Gateway's
725// API operation CreateModel for usage and error information.
726//
727// Returned Error Types:
728//   * BadRequestException
729//   The submitted request is not valid, for example, the input is incomplete
730//   or incorrect. See the accompanying error message for details.
731//
732//   * ConflictException
733//   The request configuration has conflicts. For details, see the accompanying
734//   error message.
735//
736//   * LimitExceededException
737//   The request exceeded the rate limit. Retry after the specified time period.
738//
739//   * NotFoundException
740//   The requested resource is not found. Make sure that the request URI is correct.
741//
742//   * UnauthorizedException
743//   The request is denied because the caller has insufficient permissions.
744//
745//   * TooManyRequestsException
746//   The request has reached its throttling limit. Retry after the specified time
747//   period.
748//
749func (c *APIGateway) CreateModel(input *CreateModelInput) (*Model, error) {
750	req, out := c.CreateModelRequest(input)
751	return out, req.Send()
752}
753
754// CreateModelWithContext is the same as CreateModel with the addition of
755// the ability to pass a context and additional request options.
756//
757// See CreateModel for details on how to use this API operation.
758//
759// The context must be non-nil and will be used for request cancellation. If
760// the context is nil a panic will occur. In the future the SDK may create
761// sub-contexts for http.Requests. See https://golang.org/pkg/context/
762// for more information on using Contexts.
763func (c *APIGateway) CreateModelWithContext(ctx aws.Context, input *CreateModelInput, opts ...request.Option) (*Model, error) {
764	req, out := c.CreateModelRequest(input)
765	req.SetContext(ctx)
766	req.ApplyOptions(opts...)
767	return out, req.Send()
768}
769
770const opCreateRequestValidator = "CreateRequestValidator"
771
772// CreateRequestValidatorRequest generates a "aws/request.Request" representing the
773// client's request for the CreateRequestValidator operation. The "output" return
774// value will be populated with the request's response once the request completes
775// successfully.
776//
777// Use "Send" method on the returned Request to send the API call to the service.
778// the "output" return value is not valid until after Send returns without error.
779//
780// See CreateRequestValidator for more information on using the CreateRequestValidator
781// API call, and error handling.
782//
783// This method is useful when you want to inject custom logic or configuration
784// into the SDK's request lifecycle. Such as custom headers, or retry logic.
785//
786//
787//    // Example sending a request using the CreateRequestValidatorRequest method.
788//    req, resp := client.CreateRequestValidatorRequest(params)
789//
790//    err := req.Send()
791//    if err == nil { // resp is now filled
792//        fmt.Println(resp)
793//    }
794func (c *APIGateway) CreateRequestValidatorRequest(input *CreateRequestValidatorInput) (req *request.Request, output *UpdateRequestValidatorOutput) {
795	op := &request.Operation{
796		Name:       opCreateRequestValidator,
797		HTTPMethod: "POST",
798		HTTPPath:   "/restapis/{restapi_id}/requestvalidators",
799	}
800
801	if input == nil {
802		input = &CreateRequestValidatorInput{}
803	}
804
805	output = &UpdateRequestValidatorOutput{}
806	req = c.newRequest(op, input, output)
807	return
808}
809
810// CreateRequestValidator API operation for Amazon API Gateway.
811//
812// Creates a ReqeustValidator of a given RestApi.
813//
814// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
815// with awserr.Error's Code and Message methods to get detailed information about
816// the error.
817//
818// See the AWS API reference guide for Amazon API Gateway's
819// API operation CreateRequestValidator for usage and error information.
820//
821// Returned Error Types:
822//   * BadRequestException
823//   The submitted request is not valid, for example, the input is incomplete
824//   or incorrect. See the accompanying error message for details.
825//
826//   * ConflictException
827//   The request configuration has conflicts. For details, see the accompanying
828//   error message.
829//
830//   * LimitExceededException
831//   The request exceeded the rate limit. Retry after the specified time period.
832//
833//   * NotFoundException
834//   The requested resource is not found. Make sure that the request URI is correct.
835//
836//   * UnauthorizedException
837//   The request is denied because the caller has insufficient permissions.
838//
839//   * TooManyRequestsException
840//   The request has reached its throttling limit. Retry after the specified time
841//   period.
842//
843func (c *APIGateway) CreateRequestValidator(input *CreateRequestValidatorInput) (*UpdateRequestValidatorOutput, error) {
844	req, out := c.CreateRequestValidatorRequest(input)
845	return out, req.Send()
846}
847
848// CreateRequestValidatorWithContext is the same as CreateRequestValidator with the addition of
849// the ability to pass a context and additional request options.
850//
851// See CreateRequestValidator for details on how to use this API operation.
852//
853// The context must be non-nil and will be used for request cancellation. If
854// the context is nil a panic will occur. In the future the SDK may create
855// sub-contexts for http.Requests. See https://golang.org/pkg/context/
856// for more information on using Contexts.
857func (c *APIGateway) CreateRequestValidatorWithContext(ctx aws.Context, input *CreateRequestValidatorInput, opts ...request.Option) (*UpdateRequestValidatorOutput, error) {
858	req, out := c.CreateRequestValidatorRequest(input)
859	req.SetContext(ctx)
860	req.ApplyOptions(opts...)
861	return out, req.Send()
862}
863
864const opCreateResource = "CreateResource"
865
866// CreateResourceRequest generates a "aws/request.Request" representing the
867// client's request for the CreateResource operation. The "output" return
868// value will be populated with the request's response once the request completes
869// successfully.
870//
871// Use "Send" method on the returned Request to send the API call to the service.
872// the "output" return value is not valid until after Send returns without error.
873//
874// See CreateResource for more information on using the CreateResource
875// API call, and error handling.
876//
877// This method is useful when you want to inject custom logic or configuration
878// into the SDK's request lifecycle. Such as custom headers, or retry logic.
879//
880//
881//    // Example sending a request using the CreateResourceRequest method.
882//    req, resp := client.CreateResourceRequest(params)
883//
884//    err := req.Send()
885//    if err == nil { // resp is now filled
886//        fmt.Println(resp)
887//    }
888func (c *APIGateway) CreateResourceRequest(input *CreateResourceInput) (req *request.Request, output *Resource) {
889	op := &request.Operation{
890		Name:       opCreateResource,
891		HTTPMethod: "POST",
892		HTTPPath:   "/restapis/{restapi_id}/resources/{parent_id}",
893	}
894
895	if input == nil {
896		input = &CreateResourceInput{}
897	}
898
899	output = &Resource{}
900	req = c.newRequest(op, input, output)
901	return
902}
903
904// CreateResource API operation for Amazon API Gateway.
905//
906// Creates a Resource resource.
907//
908// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
909// with awserr.Error's Code and Message methods to get detailed information about
910// the error.
911//
912// See the AWS API reference guide for Amazon API Gateway's
913// API operation CreateResource for usage and error information.
914//
915// Returned Error Types:
916//   * UnauthorizedException
917//   The request is denied because the caller has insufficient permissions.
918//
919//   * NotFoundException
920//   The requested resource is not found. Make sure that the request URI is correct.
921//
922//   * ConflictException
923//   The request configuration has conflicts. For details, see the accompanying
924//   error message.
925//
926//   * LimitExceededException
927//   The request exceeded the rate limit. Retry after the specified time period.
928//
929//   * BadRequestException
930//   The submitted request is not valid, for example, the input is incomplete
931//   or incorrect. See the accompanying error message for details.
932//
933//   * TooManyRequestsException
934//   The request has reached its throttling limit. Retry after the specified time
935//   period.
936//
937func (c *APIGateway) CreateResource(input *CreateResourceInput) (*Resource, error) {
938	req, out := c.CreateResourceRequest(input)
939	return out, req.Send()
940}
941
942// CreateResourceWithContext is the same as CreateResource with the addition of
943// the ability to pass a context and additional request options.
944//
945// See CreateResource for details on how to use this API operation.
946//
947// The context must be non-nil and will be used for request cancellation. If
948// the context is nil a panic will occur. In the future the SDK may create
949// sub-contexts for http.Requests. See https://golang.org/pkg/context/
950// for more information on using Contexts.
951func (c *APIGateway) CreateResourceWithContext(ctx aws.Context, input *CreateResourceInput, opts ...request.Option) (*Resource, error) {
952	req, out := c.CreateResourceRequest(input)
953	req.SetContext(ctx)
954	req.ApplyOptions(opts...)
955	return out, req.Send()
956}
957
958const opCreateRestApi = "CreateRestApi"
959
960// CreateRestApiRequest generates a "aws/request.Request" representing the
961// client's request for the CreateRestApi operation. The "output" return
962// value will be populated with the request's response once the request completes
963// successfully.
964//
965// Use "Send" method on the returned Request to send the API call to the service.
966// the "output" return value is not valid until after Send returns without error.
967//
968// See CreateRestApi for more information on using the CreateRestApi
969// API call, and error handling.
970//
971// This method is useful when you want to inject custom logic or configuration
972// into the SDK's request lifecycle. Such as custom headers, or retry logic.
973//
974//
975//    // Example sending a request using the CreateRestApiRequest method.
976//    req, resp := client.CreateRestApiRequest(params)
977//
978//    err := req.Send()
979//    if err == nil { // resp is now filled
980//        fmt.Println(resp)
981//    }
982func (c *APIGateway) CreateRestApiRequest(input *CreateRestApiInput) (req *request.Request, output *RestApi) {
983	op := &request.Operation{
984		Name:       opCreateRestApi,
985		HTTPMethod: "POST",
986		HTTPPath:   "/restapis",
987	}
988
989	if input == nil {
990		input = &CreateRestApiInput{}
991	}
992
993	output = &RestApi{}
994	req = c.newRequest(op, input, output)
995	return
996}
997
998// CreateRestApi API operation for Amazon API Gateway.
999//
1000// Creates a new RestApi resource.
1001//
1002// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1003// with awserr.Error's Code and Message methods to get detailed information about
1004// the error.
1005//
1006// See the AWS API reference guide for Amazon API Gateway's
1007// API operation CreateRestApi for usage and error information.
1008//
1009// Returned Error Types:
1010//   * BadRequestException
1011//   The submitted request is not valid, for example, the input is incomplete
1012//   or incorrect. See the accompanying error message for details.
1013//
1014//   * ConflictException
1015//   The request configuration has conflicts. For details, see the accompanying
1016//   error message.
1017//
1018//   * LimitExceededException
1019//   The request exceeded the rate limit. Retry after the specified time period.
1020//
1021//   * UnauthorizedException
1022//   The request is denied because the caller has insufficient permissions.
1023//
1024//   * TooManyRequestsException
1025//   The request has reached its throttling limit. Retry after the specified time
1026//   period.
1027//
1028func (c *APIGateway) CreateRestApi(input *CreateRestApiInput) (*RestApi, error) {
1029	req, out := c.CreateRestApiRequest(input)
1030	return out, req.Send()
1031}
1032
1033// CreateRestApiWithContext is the same as CreateRestApi with the addition of
1034// the ability to pass a context and additional request options.
1035//
1036// See CreateRestApi for details on how to use this API operation.
1037//
1038// The context must be non-nil and will be used for request cancellation. If
1039// the context is nil a panic will occur. In the future the SDK may create
1040// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1041// for more information on using Contexts.
1042func (c *APIGateway) CreateRestApiWithContext(ctx aws.Context, input *CreateRestApiInput, opts ...request.Option) (*RestApi, error) {
1043	req, out := c.CreateRestApiRequest(input)
1044	req.SetContext(ctx)
1045	req.ApplyOptions(opts...)
1046	return out, req.Send()
1047}
1048
1049const opCreateStage = "CreateStage"
1050
1051// CreateStageRequest generates a "aws/request.Request" representing the
1052// client's request for the CreateStage operation. The "output" return
1053// value will be populated with the request's response once the request completes
1054// successfully.
1055//
1056// Use "Send" method on the returned Request to send the API call to the service.
1057// the "output" return value is not valid until after Send returns without error.
1058//
1059// See CreateStage for more information on using the CreateStage
1060// API call, and error handling.
1061//
1062// This method is useful when you want to inject custom logic or configuration
1063// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1064//
1065//
1066//    // Example sending a request using the CreateStageRequest method.
1067//    req, resp := client.CreateStageRequest(params)
1068//
1069//    err := req.Send()
1070//    if err == nil { // resp is now filled
1071//        fmt.Println(resp)
1072//    }
1073func (c *APIGateway) CreateStageRequest(input *CreateStageInput) (req *request.Request, output *Stage) {
1074	op := &request.Operation{
1075		Name:       opCreateStage,
1076		HTTPMethod: "POST",
1077		HTTPPath:   "/restapis/{restapi_id}/stages",
1078	}
1079
1080	if input == nil {
1081		input = &CreateStageInput{}
1082	}
1083
1084	output = &Stage{}
1085	req = c.newRequest(op, input, output)
1086	return
1087}
1088
1089// CreateStage API operation for Amazon API Gateway.
1090//
1091// Creates a new Stage resource that references a pre-existing Deployment for
1092// the API.
1093//
1094// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1095// with awserr.Error's Code and Message methods to get detailed information about
1096// the error.
1097//
1098// See the AWS API reference guide for Amazon API Gateway's
1099// API operation CreateStage for usage and error information.
1100//
1101// Returned Error Types:
1102//   * UnauthorizedException
1103//   The request is denied because the caller has insufficient permissions.
1104//
1105//   * BadRequestException
1106//   The submitted request is not valid, for example, the input is incomplete
1107//   or incorrect. See the accompanying error message for details.
1108//
1109//   * NotFoundException
1110//   The requested resource is not found. Make sure that the request URI is correct.
1111//
1112//   * ConflictException
1113//   The request configuration has conflicts. For details, see the accompanying
1114//   error message.
1115//
1116//   * LimitExceededException
1117//   The request exceeded the rate limit. Retry after the specified time period.
1118//
1119//   * TooManyRequestsException
1120//   The request has reached its throttling limit. Retry after the specified time
1121//   period.
1122//
1123func (c *APIGateway) CreateStage(input *CreateStageInput) (*Stage, error) {
1124	req, out := c.CreateStageRequest(input)
1125	return out, req.Send()
1126}
1127
1128// CreateStageWithContext is the same as CreateStage with the addition of
1129// the ability to pass a context and additional request options.
1130//
1131// See CreateStage for details on how to use this API operation.
1132//
1133// The context must be non-nil and will be used for request cancellation. If
1134// the context is nil a panic will occur. In the future the SDK may create
1135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1136// for more information on using Contexts.
1137func (c *APIGateway) CreateStageWithContext(ctx aws.Context, input *CreateStageInput, opts ...request.Option) (*Stage, error) {
1138	req, out := c.CreateStageRequest(input)
1139	req.SetContext(ctx)
1140	req.ApplyOptions(opts...)
1141	return out, req.Send()
1142}
1143
1144const opCreateUsagePlan = "CreateUsagePlan"
1145
1146// CreateUsagePlanRequest generates a "aws/request.Request" representing the
1147// client's request for the CreateUsagePlan operation. The "output" return
1148// value will be populated with the request's response once the request completes
1149// successfully.
1150//
1151// Use "Send" method on the returned Request to send the API call to the service.
1152// the "output" return value is not valid until after Send returns without error.
1153//
1154// See CreateUsagePlan for more information on using the CreateUsagePlan
1155// API call, and error handling.
1156//
1157// This method is useful when you want to inject custom logic or configuration
1158// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1159//
1160//
1161//    // Example sending a request using the CreateUsagePlanRequest method.
1162//    req, resp := client.CreateUsagePlanRequest(params)
1163//
1164//    err := req.Send()
1165//    if err == nil { // resp is now filled
1166//        fmt.Println(resp)
1167//    }
1168func (c *APIGateway) CreateUsagePlanRequest(input *CreateUsagePlanInput) (req *request.Request, output *UsagePlan) {
1169	op := &request.Operation{
1170		Name:       opCreateUsagePlan,
1171		HTTPMethod: "POST",
1172		HTTPPath:   "/usageplans",
1173	}
1174
1175	if input == nil {
1176		input = &CreateUsagePlanInput{}
1177	}
1178
1179	output = &UsagePlan{}
1180	req = c.newRequest(op, input, output)
1181	return
1182}
1183
1184// CreateUsagePlan API operation for Amazon API Gateway.
1185//
1186// Creates a usage plan with the throttle and quota limits, as well as the associated
1187// API stages, specified in the payload.
1188//
1189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1190// with awserr.Error's Code and Message methods to get detailed information about
1191// the error.
1192//
1193// See the AWS API reference guide for Amazon API Gateway's
1194// API operation CreateUsagePlan for usage and error information.
1195//
1196// Returned Error Types:
1197//   * BadRequestException
1198//   The submitted request is not valid, for example, the input is incomplete
1199//   or incorrect. See the accompanying error message for details.
1200//
1201//   * ConflictException
1202//   The request configuration has conflicts. For details, see the accompanying
1203//   error message.
1204//
1205//   * LimitExceededException
1206//   The request exceeded the rate limit. Retry after the specified time period.
1207//
1208//   * NotFoundException
1209//   The requested resource is not found. Make sure that the request URI is correct.
1210//
1211//   * UnauthorizedException
1212//   The request is denied because the caller has insufficient permissions.
1213//
1214//   * TooManyRequestsException
1215//   The request has reached its throttling limit. Retry after the specified time
1216//   period.
1217//
1218func (c *APIGateway) CreateUsagePlan(input *CreateUsagePlanInput) (*UsagePlan, error) {
1219	req, out := c.CreateUsagePlanRequest(input)
1220	return out, req.Send()
1221}
1222
1223// CreateUsagePlanWithContext is the same as CreateUsagePlan with the addition of
1224// the ability to pass a context and additional request options.
1225//
1226// See CreateUsagePlan for details on how to use this API operation.
1227//
1228// The context must be non-nil and will be used for request cancellation. If
1229// the context is nil a panic will occur. In the future the SDK may create
1230// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1231// for more information on using Contexts.
1232func (c *APIGateway) CreateUsagePlanWithContext(ctx aws.Context, input *CreateUsagePlanInput, opts ...request.Option) (*UsagePlan, error) {
1233	req, out := c.CreateUsagePlanRequest(input)
1234	req.SetContext(ctx)
1235	req.ApplyOptions(opts...)
1236	return out, req.Send()
1237}
1238
1239const opCreateUsagePlanKey = "CreateUsagePlanKey"
1240
1241// CreateUsagePlanKeyRequest generates a "aws/request.Request" representing the
1242// client's request for the CreateUsagePlanKey operation. The "output" return
1243// value will be populated with the request's response once the request completes
1244// successfully.
1245//
1246// Use "Send" method on the returned Request to send the API call to the service.
1247// the "output" return value is not valid until after Send returns without error.
1248//
1249// See CreateUsagePlanKey for more information on using the CreateUsagePlanKey
1250// API call, and error handling.
1251//
1252// This method is useful when you want to inject custom logic or configuration
1253// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1254//
1255//
1256//    // Example sending a request using the CreateUsagePlanKeyRequest method.
1257//    req, resp := client.CreateUsagePlanKeyRequest(params)
1258//
1259//    err := req.Send()
1260//    if err == nil { // resp is now filled
1261//        fmt.Println(resp)
1262//    }
1263func (c *APIGateway) CreateUsagePlanKeyRequest(input *CreateUsagePlanKeyInput) (req *request.Request, output *UsagePlanKey) {
1264	op := &request.Operation{
1265		Name:       opCreateUsagePlanKey,
1266		HTTPMethod: "POST",
1267		HTTPPath:   "/usageplans/{usageplanId}/keys",
1268	}
1269
1270	if input == nil {
1271		input = &CreateUsagePlanKeyInput{}
1272	}
1273
1274	output = &UsagePlanKey{}
1275	req = c.newRequest(op, input, output)
1276	return
1277}
1278
1279// CreateUsagePlanKey API operation for Amazon API Gateway.
1280//
1281// Creates a usage plan key for adding an existing API key to a usage plan.
1282//
1283// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1284// with awserr.Error's Code and Message methods to get detailed information about
1285// the error.
1286//
1287// See the AWS API reference guide for Amazon API Gateway's
1288// API operation CreateUsagePlanKey for usage and error information.
1289//
1290// Returned Error Types:
1291//   * BadRequestException
1292//   The submitted request is not valid, for example, the input is incomplete
1293//   or incorrect. See the accompanying error message for details.
1294//
1295//   * ConflictException
1296//   The request configuration has conflicts. For details, see the accompanying
1297//   error message.
1298//
1299//   * LimitExceededException
1300//   The request exceeded the rate limit. Retry after the specified time period.
1301//
1302//   * NotFoundException
1303//   The requested resource is not found. Make sure that the request URI is correct.
1304//
1305//   * UnauthorizedException
1306//   The request is denied because the caller has insufficient permissions.
1307//
1308//   * TooManyRequestsException
1309//   The request has reached its throttling limit. Retry after the specified time
1310//   period.
1311//
1312func (c *APIGateway) CreateUsagePlanKey(input *CreateUsagePlanKeyInput) (*UsagePlanKey, error) {
1313	req, out := c.CreateUsagePlanKeyRequest(input)
1314	return out, req.Send()
1315}
1316
1317// CreateUsagePlanKeyWithContext is the same as CreateUsagePlanKey with the addition of
1318// the ability to pass a context and additional request options.
1319//
1320// See CreateUsagePlanKey for details on how to use this API operation.
1321//
1322// The context must be non-nil and will be used for request cancellation. If
1323// the context is nil a panic will occur. In the future the SDK may create
1324// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1325// for more information on using Contexts.
1326func (c *APIGateway) CreateUsagePlanKeyWithContext(ctx aws.Context, input *CreateUsagePlanKeyInput, opts ...request.Option) (*UsagePlanKey, error) {
1327	req, out := c.CreateUsagePlanKeyRequest(input)
1328	req.SetContext(ctx)
1329	req.ApplyOptions(opts...)
1330	return out, req.Send()
1331}
1332
1333const opCreateVpcLink = "CreateVpcLink"
1334
1335// CreateVpcLinkRequest generates a "aws/request.Request" representing the
1336// client's request for the CreateVpcLink operation. The "output" return
1337// value will be populated with the request's response once the request completes
1338// successfully.
1339//
1340// Use "Send" method on the returned Request to send the API call to the service.
1341// the "output" return value is not valid until after Send returns without error.
1342//
1343// See CreateVpcLink for more information on using the CreateVpcLink
1344// API call, and error handling.
1345//
1346// This method is useful when you want to inject custom logic or configuration
1347// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1348//
1349//
1350//    // Example sending a request using the CreateVpcLinkRequest method.
1351//    req, resp := client.CreateVpcLinkRequest(params)
1352//
1353//    err := req.Send()
1354//    if err == nil { // resp is now filled
1355//        fmt.Println(resp)
1356//    }
1357func (c *APIGateway) CreateVpcLinkRequest(input *CreateVpcLinkInput) (req *request.Request, output *UpdateVpcLinkOutput) {
1358	op := &request.Operation{
1359		Name:       opCreateVpcLink,
1360		HTTPMethod: "POST",
1361		HTTPPath:   "/vpclinks",
1362	}
1363
1364	if input == nil {
1365		input = &CreateVpcLinkInput{}
1366	}
1367
1368	output = &UpdateVpcLinkOutput{}
1369	req = c.newRequest(op, input, output)
1370	return
1371}
1372
1373// CreateVpcLink API operation for Amazon API Gateway.
1374//
1375// Creates a VPC link, under the caller's account in a selected region, in an
1376// asynchronous operation that typically takes 2-4 minutes to complete and become
1377// operational. The caller must have permissions to create and update VPC Endpoint
1378// services.
1379//
1380// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1381// with awserr.Error's Code and Message methods to get detailed information about
1382// the error.
1383//
1384// See the AWS API reference guide for Amazon API Gateway's
1385// API operation CreateVpcLink for usage and error information.
1386//
1387// Returned Error Types:
1388//   * BadRequestException
1389//   The submitted request is not valid, for example, the input is incomplete
1390//   or incorrect. See the accompanying error message for details.
1391//
1392//   * ConflictException
1393//   The request configuration has conflicts. For details, see the accompanying
1394//   error message.
1395//
1396//   * LimitExceededException
1397//   The request exceeded the rate limit. Retry after the specified time period.
1398//
1399//   * UnauthorizedException
1400//   The request is denied because the caller has insufficient permissions.
1401//
1402//   * TooManyRequestsException
1403//   The request has reached its throttling limit. Retry after the specified time
1404//   period.
1405//
1406func (c *APIGateway) CreateVpcLink(input *CreateVpcLinkInput) (*UpdateVpcLinkOutput, error) {
1407	req, out := c.CreateVpcLinkRequest(input)
1408	return out, req.Send()
1409}
1410
1411// CreateVpcLinkWithContext is the same as CreateVpcLink with the addition of
1412// the ability to pass a context and additional request options.
1413//
1414// See CreateVpcLink for details on how to use this API operation.
1415//
1416// The context must be non-nil and will be used for request cancellation. If
1417// the context is nil a panic will occur. In the future the SDK may create
1418// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1419// for more information on using Contexts.
1420func (c *APIGateway) CreateVpcLinkWithContext(ctx aws.Context, input *CreateVpcLinkInput, opts ...request.Option) (*UpdateVpcLinkOutput, error) {
1421	req, out := c.CreateVpcLinkRequest(input)
1422	req.SetContext(ctx)
1423	req.ApplyOptions(opts...)
1424	return out, req.Send()
1425}
1426
1427const opDeleteApiKey = "DeleteApiKey"
1428
1429// DeleteApiKeyRequest generates a "aws/request.Request" representing the
1430// client's request for the DeleteApiKey operation. The "output" return
1431// value will be populated with the request's response once the request completes
1432// successfully.
1433//
1434// Use "Send" method on the returned Request to send the API call to the service.
1435// the "output" return value is not valid until after Send returns without error.
1436//
1437// See DeleteApiKey for more information on using the DeleteApiKey
1438// API call, and error handling.
1439//
1440// This method is useful when you want to inject custom logic or configuration
1441// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1442//
1443//
1444//    // Example sending a request using the DeleteApiKeyRequest method.
1445//    req, resp := client.DeleteApiKeyRequest(params)
1446//
1447//    err := req.Send()
1448//    if err == nil { // resp is now filled
1449//        fmt.Println(resp)
1450//    }
1451func (c *APIGateway) DeleteApiKeyRequest(input *DeleteApiKeyInput) (req *request.Request, output *DeleteApiKeyOutput) {
1452	op := &request.Operation{
1453		Name:       opDeleteApiKey,
1454		HTTPMethod: "DELETE",
1455		HTTPPath:   "/apikeys/{api_Key}",
1456	}
1457
1458	if input == nil {
1459		input = &DeleteApiKeyInput{}
1460	}
1461
1462	output = &DeleteApiKeyOutput{}
1463	req = c.newRequest(op, input, output)
1464	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1465	return
1466}
1467
1468// DeleteApiKey API operation for Amazon API Gateway.
1469//
1470// Deletes the ApiKey resource.
1471//
1472// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1473// with awserr.Error's Code and Message methods to get detailed information about
1474// the error.
1475//
1476// See the AWS API reference guide for Amazon API Gateway's
1477// API operation DeleteApiKey for usage and error information.
1478//
1479// Returned Error Types:
1480//   * BadRequestException
1481//   The submitted request is not valid, for example, the input is incomplete
1482//   or incorrect. See the accompanying error message for details.
1483//
1484//   * ConflictException
1485//   The request configuration has conflicts. For details, see the accompanying
1486//   error message.
1487//
1488//   * NotFoundException
1489//   The requested resource is not found. Make sure that the request URI is correct.
1490//
1491//   * UnauthorizedException
1492//   The request is denied because the caller has insufficient permissions.
1493//
1494//   * TooManyRequestsException
1495//   The request has reached its throttling limit. Retry after the specified time
1496//   period.
1497//
1498func (c *APIGateway) DeleteApiKey(input *DeleteApiKeyInput) (*DeleteApiKeyOutput, error) {
1499	req, out := c.DeleteApiKeyRequest(input)
1500	return out, req.Send()
1501}
1502
1503// DeleteApiKeyWithContext is the same as DeleteApiKey with the addition of
1504// the ability to pass a context and additional request options.
1505//
1506// See DeleteApiKey for details on how to use this API operation.
1507//
1508// The context must be non-nil and will be used for request cancellation. If
1509// the context is nil a panic will occur. In the future the SDK may create
1510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1511// for more information on using Contexts.
1512func (c *APIGateway) DeleteApiKeyWithContext(ctx aws.Context, input *DeleteApiKeyInput, opts ...request.Option) (*DeleteApiKeyOutput, error) {
1513	req, out := c.DeleteApiKeyRequest(input)
1514	req.SetContext(ctx)
1515	req.ApplyOptions(opts...)
1516	return out, req.Send()
1517}
1518
1519const opDeleteAuthorizer = "DeleteAuthorizer"
1520
1521// DeleteAuthorizerRequest generates a "aws/request.Request" representing the
1522// client's request for the DeleteAuthorizer operation. The "output" return
1523// value will be populated with the request's response once the request completes
1524// successfully.
1525//
1526// Use "Send" method on the returned Request to send the API call to the service.
1527// the "output" return value is not valid until after Send returns without error.
1528//
1529// See DeleteAuthorizer for more information on using the DeleteAuthorizer
1530// API call, and error handling.
1531//
1532// This method is useful when you want to inject custom logic or configuration
1533// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1534//
1535//
1536//    // Example sending a request using the DeleteAuthorizerRequest method.
1537//    req, resp := client.DeleteAuthorizerRequest(params)
1538//
1539//    err := req.Send()
1540//    if err == nil { // resp is now filled
1541//        fmt.Println(resp)
1542//    }
1543func (c *APIGateway) DeleteAuthorizerRequest(input *DeleteAuthorizerInput) (req *request.Request, output *DeleteAuthorizerOutput) {
1544	op := &request.Operation{
1545		Name:       opDeleteAuthorizer,
1546		HTTPMethod: "DELETE",
1547		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
1548	}
1549
1550	if input == nil {
1551		input = &DeleteAuthorizerInput{}
1552	}
1553
1554	output = &DeleteAuthorizerOutput{}
1555	req = c.newRequest(op, input, output)
1556	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1557	return
1558}
1559
1560// DeleteAuthorizer API operation for Amazon API Gateway.
1561//
1562// Deletes an existing Authorizer resource.
1563//
1564// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/delete-authorizer.html)
1565//
1566// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1567// with awserr.Error's Code and Message methods to get detailed information about
1568// the error.
1569//
1570// See the AWS API reference guide for Amazon API Gateway's
1571// API operation DeleteAuthorizer for usage and error information.
1572//
1573// Returned Error Types:
1574//   * BadRequestException
1575//   The submitted request is not valid, for example, the input is incomplete
1576//   or incorrect. See the accompanying error message for details.
1577//
1578//   * ConflictException
1579//   The request configuration has conflicts. For details, see the accompanying
1580//   error message.
1581//
1582//   * NotFoundException
1583//   The requested resource is not found. Make sure that the request URI is correct.
1584//
1585//   * UnauthorizedException
1586//   The request is denied because the caller has insufficient permissions.
1587//
1588//   * TooManyRequestsException
1589//   The request has reached its throttling limit. Retry after the specified time
1590//   period.
1591//
1592func (c *APIGateway) DeleteAuthorizer(input *DeleteAuthorizerInput) (*DeleteAuthorizerOutput, error) {
1593	req, out := c.DeleteAuthorizerRequest(input)
1594	return out, req.Send()
1595}
1596
1597// DeleteAuthorizerWithContext is the same as DeleteAuthorizer with the addition of
1598// the ability to pass a context and additional request options.
1599//
1600// See DeleteAuthorizer for details on how to use this API operation.
1601//
1602// The context must be non-nil and will be used for request cancellation. If
1603// the context is nil a panic will occur. In the future the SDK may create
1604// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1605// for more information on using Contexts.
1606func (c *APIGateway) DeleteAuthorizerWithContext(ctx aws.Context, input *DeleteAuthorizerInput, opts ...request.Option) (*DeleteAuthorizerOutput, error) {
1607	req, out := c.DeleteAuthorizerRequest(input)
1608	req.SetContext(ctx)
1609	req.ApplyOptions(opts...)
1610	return out, req.Send()
1611}
1612
1613const opDeleteBasePathMapping = "DeleteBasePathMapping"
1614
1615// DeleteBasePathMappingRequest generates a "aws/request.Request" representing the
1616// client's request for the DeleteBasePathMapping operation. The "output" return
1617// value will be populated with the request's response once the request completes
1618// successfully.
1619//
1620// Use "Send" method on the returned Request to send the API call to the service.
1621// the "output" return value is not valid until after Send returns without error.
1622//
1623// See DeleteBasePathMapping for more information on using the DeleteBasePathMapping
1624// API call, and error handling.
1625//
1626// This method is useful when you want to inject custom logic or configuration
1627// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1628//
1629//
1630//    // Example sending a request using the DeleteBasePathMappingRequest method.
1631//    req, resp := client.DeleteBasePathMappingRequest(params)
1632//
1633//    err := req.Send()
1634//    if err == nil { // resp is now filled
1635//        fmt.Println(resp)
1636//    }
1637func (c *APIGateway) DeleteBasePathMappingRequest(input *DeleteBasePathMappingInput) (req *request.Request, output *DeleteBasePathMappingOutput) {
1638	op := &request.Operation{
1639		Name:       opDeleteBasePathMapping,
1640		HTTPMethod: "DELETE",
1641		HTTPPath:   "/domainnames/{domain_name}/basepathmappings/{base_path}",
1642	}
1643
1644	if input == nil {
1645		input = &DeleteBasePathMappingInput{}
1646	}
1647
1648	output = &DeleteBasePathMappingOutput{}
1649	req = c.newRequest(op, input, output)
1650	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1651	return
1652}
1653
1654// DeleteBasePathMapping API operation for Amazon API Gateway.
1655//
1656// Deletes the BasePathMapping resource.
1657//
1658// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1659// with awserr.Error's Code and Message methods to get detailed information about
1660// the error.
1661//
1662// See the AWS API reference guide for Amazon API Gateway's
1663// API operation DeleteBasePathMapping for usage and error information.
1664//
1665// Returned Error Types:
1666//   * BadRequestException
1667//   The submitted request is not valid, for example, the input is incomplete
1668//   or incorrect. See the accompanying error message for details.
1669//
1670//   * ConflictException
1671//   The request configuration has conflicts. For details, see the accompanying
1672//   error message.
1673//
1674//   * NotFoundException
1675//   The requested resource is not found. Make sure that the request URI is correct.
1676//
1677//   * UnauthorizedException
1678//   The request is denied because the caller has insufficient permissions.
1679//
1680//   * TooManyRequestsException
1681//   The request has reached its throttling limit. Retry after the specified time
1682//   period.
1683//
1684func (c *APIGateway) DeleteBasePathMapping(input *DeleteBasePathMappingInput) (*DeleteBasePathMappingOutput, error) {
1685	req, out := c.DeleteBasePathMappingRequest(input)
1686	return out, req.Send()
1687}
1688
1689// DeleteBasePathMappingWithContext is the same as DeleteBasePathMapping with the addition of
1690// the ability to pass a context and additional request options.
1691//
1692// See DeleteBasePathMapping for details on how to use this API operation.
1693//
1694// The context must be non-nil and will be used for request cancellation. If
1695// the context is nil a panic will occur. In the future the SDK may create
1696// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1697// for more information on using Contexts.
1698func (c *APIGateway) DeleteBasePathMappingWithContext(ctx aws.Context, input *DeleteBasePathMappingInput, opts ...request.Option) (*DeleteBasePathMappingOutput, error) {
1699	req, out := c.DeleteBasePathMappingRequest(input)
1700	req.SetContext(ctx)
1701	req.ApplyOptions(opts...)
1702	return out, req.Send()
1703}
1704
1705const opDeleteClientCertificate = "DeleteClientCertificate"
1706
1707// DeleteClientCertificateRequest generates a "aws/request.Request" representing the
1708// client's request for the DeleteClientCertificate operation. The "output" return
1709// value will be populated with the request's response once the request completes
1710// successfully.
1711//
1712// Use "Send" method on the returned Request to send the API call to the service.
1713// the "output" return value is not valid until after Send returns without error.
1714//
1715// See DeleteClientCertificate for more information on using the DeleteClientCertificate
1716// API call, and error handling.
1717//
1718// This method is useful when you want to inject custom logic or configuration
1719// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1720//
1721//
1722//    // Example sending a request using the DeleteClientCertificateRequest method.
1723//    req, resp := client.DeleteClientCertificateRequest(params)
1724//
1725//    err := req.Send()
1726//    if err == nil { // resp is now filled
1727//        fmt.Println(resp)
1728//    }
1729func (c *APIGateway) DeleteClientCertificateRequest(input *DeleteClientCertificateInput) (req *request.Request, output *DeleteClientCertificateOutput) {
1730	op := &request.Operation{
1731		Name:       opDeleteClientCertificate,
1732		HTTPMethod: "DELETE",
1733		HTTPPath:   "/clientcertificates/{clientcertificate_id}",
1734	}
1735
1736	if input == nil {
1737		input = &DeleteClientCertificateInput{}
1738	}
1739
1740	output = &DeleteClientCertificateOutput{}
1741	req = c.newRequest(op, input, output)
1742	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1743	return
1744}
1745
1746// DeleteClientCertificate API operation for Amazon API Gateway.
1747//
1748// Deletes the ClientCertificate resource.
1749//
1750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1751// with awserr.Error's Code and Message methods to get detailed information about
1752// the error.
1753//
1754// See the AWS API reference guide for Amazon API Gateway's
1755// API operation DeleteClientCertificate for usage and error information.
1756//
1757// Returned Error Types:
1758//   * BadRequestException
1759//   The submitted request is not valid, for example, the input is incomplete
1760//   or incorrect. See the accompanying error message for details.
1761//
1762//   * ConflictException
1763//   The request configuration has conflicts. For details, see the accompanying
1764//   error message.
1765//
1766//   * NotFoundException
1767//   The requested resource is not found. Make sure that the request URI is correct.
1768//
1769//   * UnauthorizedException
1770//   The request is denied because the caller has insufficient permissions.
1771//
1772//   * TooManyRequestsException
1773//   The request has reached its throttling limit. Retry after the specified time
1774//   period.
1775//
1776func (c *APIGateway) DeleteClientCertificate(input *DeleteClientCertificateInput) (*DeleteClientCertificateOutput, error) {
1777	req, out := c.DeleteClientCertificateRequest(input)
1778	return out, req.Send()
1779}
1780
1781// DeleteClientCertificateWithContext is the same as DeleteClientCertificate with the addition of
1782// the ability to pass a context and additional request options.
1783//
1784// See DeleteClientCertificate for details on how to use this API operation.
1785//
1786// The context must be non-nil and will be used for request cancellation. If
1787// the context is nil a panic will occur. In the future the SDK may create
1788// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1789// for more information on using Contexts.
1790func (c *APIGateway) DeleteClientCertificateWithContext(ctx aws.Context, input *DeleteClientCertificateInput, opts ...request.Option) (*DeleteClientCertificateOutput, error) {
1791	req, out := c.DeleteClientCertificateRequest(input)
1792	req.SetContext(ctx)
1793	req.ApplyOptions(opts...)
1794	return out, req.Send()
1795}
1796
1797const opDeleteDeployment = "DeleteDeployment"
1798
1799// DeleteDeploymentRequest generates a "aws/request.Request" representing the
1800// client's request for the DeleteDeployment operation. The "output" return
1801// value will be populated with the request's response once the request completes
1802// successfully.
1803//
1804// Use "Send" method on the returned Request to send the API call to the service.
1805// the "output" return value is not valid until after Send returns without error.
1806//
1807// See DeleteDeployment for more information on using the DeleteDeployment
1808// API call, and error handling.
1809//
1810// This method is useful when you want to inject custom logic or configuration
1811// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1812//
1813//
1814//    // Example sending a request using the DeleteDeploymentRequest method.
1815//    req, resp := client.DeleteDeploymentRequest(params)
1816//
1817//    err := req.Send()
1818//    if err == nil { // resp is now filled
1819//        fmt.Println(resp)
1820//    }
1821func (c *APIGateway) DeleteDeploymentRequest(input *DeleteDeploymentInput) (req *request.Request, output *DeleteDeploymentOutput) {
1822	op := &request.Operation{
1823		Name:       opDeleteDeployment,
1824		HTTPMethod: "DELETE",
1825		HTTPPath:   "/restapis/{restapi_id}/deployments/{deployment_id}",
1826	}
1827
1828	if input == nil {
1829		input = &DeleteDeploymentInput{}
1830	}
1831
1832	output = &DeleteDeploymentOutput{}
1833	req = c.newRequest(op, input, output)
1834	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1835	return
1836}
1837
1838// DeleteDeployment API operation for Amazon API Gateway.
1839//
1840// Deletes a Deployment resource. Deleting a deployment will only succeed if
1841// there are no Stage resources associated with it.
1842//
1843// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1844// with awserr.Error's Code and Message methods to get detailed information about
1845// the error.
1846//
1847// See the AWS API reference guide for Amazon API Gateway's
1848// API operation DeleteDeployment for usage and error information.
1849//
1850// Returned Error Types:
1851//   * BadRequestException
1852//   The submitted request is not valid, for example, the input is incomplete
1853//   or incorrect. See the accompanying error message for details.
1854//
1855//   * ConflictException
1856//   The request configuration has conflicts. For details, see the accompanying
1857//   error message.
1858//
1859//   * LimitExceededException
1860//   The request exceeded the rate limit. Retry after the specified time period.
1861//
1862//   * NotFoundException
1863//   The requested resource is not found. Make sure that the request URI is correct.
1864//
1865//   * UnauthorizedException
1866//   The request is denied because the caller has insufficient permissions.
1867//
1868//   * TooManyRequestsException
1869//   The request has reached its throttling limit. Retry after the specified time
1870//   period.
1871//
1872func (c *APIGateway) DeleteDeployment(input *DeleteDeploymentInput) (*DeleteDeploymentOutput, error) {
1873	req, out := c.DeleteDeploymentRequest(input)
1874	return out, req.Send()
1875}
1876
1877// DeleteDeploymentWithContext is the same as DeleteDeployment with the addition of
1878// the ability to pass a context and additional request options.
1879//
1880// See DeleteDeployment for details on how to use this API operation.
1881//
1882// The context must be non-nil and will be used for request cancellation. If
1883// the context is nil a panic will occur. In the future the SDK may create
1884// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1885// for more information on using Contexts.
1886func (c *APIGateway) DeleteDeploymentWithContext(ctx aws.Context, input *DeleteDeploymentInput, opts ...request.Option) (*DeleteDeploymentOutput, error) {
1887	req, out := c.DeleteDeploymentRequest(input)
1888	req.SetContext(ctx)
1889	req.ApplyOptions(opts...)
1890	return out, req.Send()
1891}
1892
1893const opDeleteDocumentationPart = "DeleteDocumentationPart"
1894
1895// DeleteDocumentationPartRequest generates a "aws/request.Request" representing the
1896// client's request for the DeleteDocumentationPart operation. The "output" return
1897// value will be populated with the request's response once the request completes
1898// successfully.
1899//
1900// Use "Send" method on the returned Request to send the API call to the service.
1901// the "output" return value is not valid until after Send returns without error.
1902//
1903// See DeleteDocumentationPart for more information on using the DeleteDocumentationPart
1904// API call, and error handling.
1905//
1906// This method is useful when you want to inject custom logic or configuration
1907// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1908//
1909//
1910//    // Example sending a request using the DeleteDocumentationPartRequest method.
1911//    req, resp := client.DeleteDocumentationPartRequest(params)
1912//
1913//    err := req.Send()
1914//    if err == nil { // resp is now filled
1915//        fmt.Println(resp)
1916//    }
1917func (c *APIGateway) DeleteDocumentationPartRequest(input *DeleteDocumentationPartInput) (req *request.Request, output *DeleteDocumentationPartOutput) {
1918	op := &request.Operation{
1919		Name:       opDeleteDocumentationPart,
1920		HTTPMethod: "DELETE",
1921		HTTPPath:   "/restapis/{restapi_id}/documentation/parts/{part_id}",
1922	}
1923
1924	if input == nil {
1925		input = &DeleteDocumentationPartInput{}
1926	}
1927
1928	output = &DeleteDocumentationPartOutput{}
1929	req = c.newRequest(op, input, output)
1930	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1931	return
1932}
1933
1934// DeleteDocumentationPart API operation for Amazon API Gateway.
1935//
1936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1937// with awserr.Error's Code and Message methods to get detailed information about
1938// the error.
1939//
1940// See the AWS API reference guide for Amazon API Gateway's
1941// API operation DeleteDocumentationPart for usage and error information.
1942//
1943// Returned Error Types:
1944//   * BadRequestException
1945//   The submitted request is not valid, for example, the input is incomplete
1946//   or incorrect. See the accompanying error message for details.
1947//
1948//   * ConflictException
1949//   The request configuration has conflicts. For details, see the accompanying
1950//   error message.
1951//
1952//   * NotFoundException
1953//   The requested resource is not found. Make sure that the request URI is correct.
1954//
1955//   * UnauthorizedException
1956//   The request is denied because the caller has insufficient permissions.
1957//
1958//   * TooManyRequestsException
1959//   The request has reached its throttling limit. Retry after the specified time
1960//   period.
1961//
1962func (c *APIGateway) DeleteDocumentationPart(input *DeleteDocumentationPartInput) (*DeleteDocumentationPartOutput, error) {
1963	req, out := c.DeleteDocumentationPartRequest(input)
1964	return out, req.Send()
1965}
1966
1967// DeleteDocumentationPartWithContext is the same as DeleteDocumentationPart with the addition of
1968// the ability to pass a context and additional request options.
1969//
1970// See DeleteDocumentationPart for details on how to use this API operation.
1971//
1972// The context must be non-nil and will be used for request cancellation. If
1973// the context is nil a panic will occur. In the future the SDK may create
1974// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1975// for more information on using Contexts.
1976func (c *APIGateway) DeleteDocumentationPartWithContext(ctx aws.Context, input *DeleteDocumentationPartInput, opts ...request.Option) (*DeleteDocumentationPartOutput, error) {
1977	req, out := c.DeleteDocumentationPartRequest(input)
1978	req.SetContext(ctx)
1979	req.ApplyOptions(opts...)
1980	return out, req.Send()
1981}
1982
1983const opDeleteDocumentationVersion = "DeleteDocumentationVersion"
1984
1985// DeleteDocumentationVersionRequest generates a "aws/request.Request" representing the
1986// client's request for the DeleteDocumentationVersion operation. The "output" return
1987// value will be populated with the request's response once the request completes
1988// successfully.
1989//
1990// Use "Send" method on the returned Request to send the API call to the service.
1991// the "output" return value is not valid until after Send returns without error.
1992//
1993// See DeleteDocumentationVersion for more information on using the DeleteDocumentationVersion
1994// API call, and error handling.
1995//
1996// This method is useful when you want to inject custom logic or configuration
1997// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1998//
1999//
2000//    // Example sending a request using the DeleteDocumentationVersionRequest method.
2001//    req, resp := client.DeleteDocumentationVersionRequest(params)
2002//
2003//    err := req.Send()
2004//    if err == nil { // resp is now filled
2005//        fmt.Println(resp)
2006//    }
2007func (c *APIGateway) DeleteDocumentationVersionRequest(input *DeleteDocumentationVersionInput) (req *request.Request, output *DeleteDocumentationVersionOutput) {
2008	op := &request.Operation{
2009		Name:       opDeleteDocumentationVersion,
2010		HTTPMethod: "DELETE",
2011		HTTPPath:   "/restapis/{restapi_id}/documentation/versions/{doc_version}",
2012	}
2013
2014	if input == nil {
2015		input = &DeleteDocumentationVersionInput{}
2016	}
2017
2018	output = &DeleteDocumentationVersionOutput{}
2019	req = c.newRequest(op, input, output)
2020	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2021	return
2022}
2023
2024// DeleteDocumentationVersion API operation for Amazon API Gateway.
2025//
2026// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2027// with awserr.Error's Code and Message methods to get detailed information about
2028// the error.
2029//
2030// See the AWS API reference guide for Amazon API Gateway's
2031// API operation DeleteDocumentationVersion for usage and error information.
2032//
2033// Returned Error Types:
2034//   * BadRequestException
2035//   The submitted request is not valid, for example, the input is incomplete
2036//   or incorrect. See the accompanying error message for details.
2037//
2038//   * ConflictException
2039//   The request configuration has conflicts. For details, see the accompanying
2040//   error message.
2041//
2042//   * NotFoundException
2043//   The requested resource is not found. Make sure that the request URI is correct.
2044//
2045//   * UnauthorizedException
2046//   The request is denied because the caller has insufficient permissions.
2047//
2048//   * TooManyRequestsException
2049//   The request has reached its throttling limit. Retry after the specified time
2050//   period.
2051//
2052func (c *APIGateway) DeleteDocumentationVersion(input *DeleteDocumentationVersionInput) (*DeleteDocumentationVersionOutput, error) {
2053	req, out := c.DeleteDocumentationVersionRequest(input)
2054	return out, req.Send()
2055}
2056
2057// DeleteDocumentationVersionWithContext is the same as DeleteDocumentationVersion with the addition of
2058// the ability to pass a context and additional request options.
2059//
2060// See DeleteDocumentationVersion for details on how to use this API operation.
2061//
2062// The context must be non-nil and will be used for request cancellation. If
2063// the context is nil a panic will occur. In the future the SDK may create
2064// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2065// for more information on using Contexts.
2066func (c *APIGateway) DeleteDocumentationVersionWithContext(ctx aws.Context, input *DeleteDocumentationVersionInput, opts ...request.Option) (*DeleteDocumentationVersionOutput, error) {
2067	req, out := c.DeleteDocumentationVersionRequest(input)
2068	req.SetContext(ctx)
2069	req.ApplyOptions(opts...)
2070	return out, req.Send()
2071}
2072
2073const opDeleteDomainName = "DeleteDomainName"
2074
2075// DeleteDomainNameRequest generates a "aws/request.Request" representing the
2076// client's request for the DeleteDomainName operation. The "output" return
2077// value will be populated with the request's response once the request completes
2078// successfully.
2079//
2080// Use "Send" method on the returned Request to send the API call to the service.
2081// the "output" return value is not valid until after Send returns without error.
2082//
2083// See DeleteDomainName for more information on using the DeleteDomainName
2084// API call, and error handling.
2085//
2086// This method is useful when you want to inject custom logic or configuration
2087// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2088//
2089//
2090//    // Example sending a request using the DeleteDomainNameRequest method.
2091//    req, resp := client.DeleteDomainNameRequest(params)
2092//
2093//    err := req.Send()
2094//    if err == nil { // resp is now filled
2095//        fmt.Println(resp)
2096//    }
2097func (c *APIGateway) DeleteDomainNameRequest(input *DeleteDomainNameInput) (req *request.Request, output *DeleteDomainNameOutput) {
2098	op := &request.Operation{
2099		Name:       opDeleteDomainName,
2100		HTTPMethod: "DELETE",
2101		HTTPPath:   "/domainnames/{domain_name}",
2102	}
2103
2104	if input == nil {
2105		input = &DeleteDomainNameInput{}
2106	}
2107
2108	output = &DeleteDomainNameOutput{}
2109	req = c.newRequest(op, input, output)
2110	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2111	return
2112}
2113
2114// DeleteDomainName API operation for Amazon API Gateway.
2115//
2116// Deletes the DomainName resource.
2117//
2118// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2119// with awserr.Error's Code and Message methods to get detailed information about
2120// the error.
2121//
2122// See the AWS API reference guide for Amazon API Gateway's
2123// API operation DeleteDomainName for usage and error information.
2124//
2125// Returned Error Types:
2126//   * BadRequestException
2127//   The submitted request is not valid, for example, the input is incomplete
2128//   or incorrect. See the accompanying error message for details.
2129//
2130//   * ConflictException
2131//   The request configuration has conflicts. For details, see the accompanying
2132//   error message.
2133//
2134//   * NotFoundException
2135//   The requested resource is not found. Make sure that the request URI is correct.
2136//
2137//   * UnauthorizedException
2138//   The request is denied because the caller has insufficient permissions.
2139//
2140//   * TooManyRequestsException
2141//   The request has reached its throttling limit. Retry after the specified time
2142//   period.
2143//
2144func (c *APIGateway) DeleteDomainName(input *DeleteDomainNameInput) (*DeleteDomainNameOutput, error) {
2145	req, out := c.DeleteDomainNameRequest(input)
2146	return out, req.Send()
2147}
2148
2149// DeleteDomainNameWithContext is the same as DeleteDomainName with the addition of
2150// the ability to pass a context and additional request options.
2151//
2152// See DeleteDomainName for details on how to use this API operation.
2153//
2154// The context must be non-nil and will be used for request cancellation. If
2155// the context is nil a panic will occur. In the future the SDK may create
2156// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2157// for more information on using Contexts.
2158func (c *APIGateway) DeleteDomainNameWithContext(ctx aws.Context, input *DeleteDomainNameInput, opts ...request.Option) (*DeleteDomainNameOutput, error) {
2159	req, out := c.DeleteDomainNameRequest(input)
2160	req.SetContext(ctx)
2161	req.ApplyOptions(opts...)
2162	return out, req.Send()
2163}
2164
2165const opDeleteGatewayResponse = "DeleteGatewayResponse"
2166
2167// DeleteGatewayResponseRequest generates a "aws/request.Request" representing the
2168// client's request for the DeleteGatewayResponse operation. The "output" return
2169// value will be populated with the request's response once the request completes
2170// successfully.
2171//
2172// Use "Send" method on the returned Request to send the API call to the service.
2173// the "output" return value is not valid until after Send returns without error.
2174//
2175// See DeleteGatewayResponse for more information on using the DeleteGatewayResponse
2176// API call, and error handling.
2177//
2178// This method is useful when you want to inject custom logic or configuration
2179// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2180//
2181//
2182//    // Example sending a request using the DeleteGatewayResponseRequest method.
2183//    req, resp := client.DeleteGatewayResponseRequest(params)
2184//
2185//    err := req.Send()
2186//    if err == nil { // resp is now filled
2187//        fmt.Println(resp)
2188//    }
2189func (c *APIGateway) DeleteGatewayResponseRequest(input *DeleteGatewayResponseInput) (req *request.Request, output *DeleteGatewayResponseOutput) {
2190	op := &request.Operation{
2191		Name:       opDeleteGatewayResponse,
2192		HTTPMethod: "DELETE",
2193		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
2194	}
2195
2196	if input == nil {
2197		input = &DeleteGatewayResponseInput{}
2198	}
2199
2200	output = &DeleteGatewayResponseOutput{}
2201	req = c.newRequest(op, input, output)
2202	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2203	return
2204}
2205
2206// DeleteGatewayResponse API operation for Amazon API Gateway.
2207//
2208// Clears any customization of a GatewayResponse of a specified response type
2209// on the given RestApi and resets it with the default settings.
2210//
2211// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2212// with awserr.Error's Code and Message methods to get detailed information about
2213// the error.
2214//
2215// See the AWS API reference guide for Amazon API Gateway's
2216// API operation DeleteGatewayResponse for usage and error information.
2217//
2218// Returned Error Types:
2219//   * BadRequestException
2220//   The submitted request is not valid, for example, the input is incomplete
2221//   or incorrect. See the accompanying error message for details.
2222//
2223//   * ConflictException
2224//   The request configuration has conflicts. For details, see the accompanying
2225//   error message.
2226//
2227//   * NotFoundException
2228//   The requested resource is not found. Make sure that the request URI is correct.
2229//
2230//   * UnauthorizedException
2231//   The request is denied because the caller has insufficient permissions.
2232//
2233//   * TooManyRequestsException
2234//   The request has reached its throttling limit. Retry after the specified time
2235//   period.
2236//
2237func (c *APIGateway) DeleteGatewayResponse(input *DeleteGatewayResponseInput) (*DeleteGatewayResponseOutput, error) {
2238	req, out := c.DeleteGatewayResponseRequest(input)
2239	return out, req.Send()
2240}
2241
2242// DeleteGatewayResponseWithContext is the same as DeleteGatewayResponse with the addition of
2243// the ability to pass a context and additional request options.
2244//
2245// See DeleteGatewayResponse for details on how to use this API operation.
2246//
2247// The context must be non-nil and will be used for request cancellation. If
2248// the context is nil a panic will occur. In the future the SDK may create
2249// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2250// for more information on using Contexts.
2251func (c *APIGateway) DeleteGatewayResponseWithContext(ctx aws.Context, input *DeleteGatewayResponseInput, opts ...request.Option) (*DeleteGatewayResponseOutput, error) {
2252	req, out := c.DeleteGatewayResponseRequest(input)
2253	req.SetContext(ctx)
2254	req.ApplyOptions(opts...)
2255	return out, req.Send()
2256}
2257
2258const opDeleteIntegration = "DeleteIntegration"
2259
2260// DeleteIntegrationRequest generates a "aws/request.Request" representing the
2261// client's request for the DeleteIntegration operation. The "output" return
2262// value will be populated with the request's response once the request completes
2263// successfully.
2264//
2265// Use "Send" method on the returned Request to send the API call to the service.
2266// the "output" return value is not valid until after Send returns without error.
2267//
2268// See DeleteIntegration for more information on using the DeleteIntegration
2269// API call, and error handling.
2270//
2271// This method is useful when you want to inject custom logic or configuration
2272// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2273//
2274//
2275//    // Example sending a request using the DeleteIntegrationRequest method.
2276//    req, resp := client.DeleteIntegrationRequest(params)
2277//
2278//    err := req.Send()
2279//    if err == nil { // resp is now filled
2280//        fmt.Println(resp)
2281//    }
2282func (c *APIGateway) DeleteIntegrationRequest(input *DeleteIntegrationInput) (req *request.Request, output *DeleteIntegrationOutput) {
2283	op := &request.Operation{
2284		Name:       opDeleteIntegration,
2285		HTTPMethod: "DELETE",
2286		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
2287	}
2288
2289	if input == nil {
2290		input = &DeleteIntegrationInput{}
2291	}
2292
2293	output = &DeleteIntegrationOutput{}
2294	req = c.newRequest(op, input, output)
2295	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2296	return
2297}
2298
2299// DeleteIntegration API operation for Amazon API Gateway.
2300//
2301// Represents a delete integration.
2302//
2303// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2304// with awserr.Error's Code and Message methods to get detailed information about
2305// the error.
2306//
2307// See the AWS API reference guide for Amazon API Gateway's
2308// API operation DeleteIntegration for usage and error information.
2309//
2310// Returned Error Types:
2311//   * BadRequestException
2312//   The submitted request is not valid, for example, the input is incomplete
2313//   or incorrect. See the accompanying error message for details.
2314//
2315//   * ConflictException
2316//   The request configuration has conflicts. For details, see the accompanying
2317//   error message.
2318//
2319//   * NotFoundException
2320//   The requested resource is not found. Make sure that the request URI is correct.
2321//
2322//   * UnauthorizedException
2323//   The request is denied because the caller has insufficient permissions.
2324//
2325//   * TooManyRequestsException
2326//   The request has reached its throttling limit. Retry after the specified time
2327//   period.
2328//
2329func (c *APIGateway) DeleteIntegration(input *DeleteIntegrationInput) (*DeleteIntegrationOutput, error) {
2330	req, out := c.DeleteIntegrationRequest(input)
2331	return out, req.Send()
2332}
2333
2334// DeleteIntegrationWithContext is the same as DeleteIntegration with the addition of
2335// the ability to pass a context and additional request options.
2336//
2337// See DeleteIntegration for details on how to use this API operation.
2338//
2339// The context must be non-nil and will be used for request cancellation. If
2340// the context is nil a panic will occur. In the future the SDK may create
2341// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2342// for more information on using Contexts.
2343func (c *APIGateway) DeleteIntegrationWithContext(ctx aws.Context, input *DeleteIntegrationInput, opts ...request.Option) (*DeleteIntegrationOutput, error) {
2344	req, out := c.DeleteIntegrationRequest(input)
2345	req.SetContext(ctx)
2346	req.ApplyOptions(opts...)
2347	return out, req.Send()
2348}
2349
2350const opDeleteIntegrationResponse = "DeleteIntegrationResponse"
2351
2352// DeleteIntegrationResponseRequest generates a "aws/request.Request" representing the
2353// client's request for the DeleteIntegrationResponse operation. The "output" return
2354// value will be populated with the request's response once the request completes
2355// successfully.
2356//
2357// Use "Send" method on the returned Request to send the API call to the service.
2358// the "output" return value is not valid until after Send returns without error.
2359//
2360// See DeleteIntegrationResponse for more information on using the DeleteIntegrationResponse
2361// API call, and error handling.
2362//
2363// This method is useful when you want to inject custom logic or configuration
2364// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2365//
2366//
2367//    // Example sending a request using the DeleteIntegrationResponseRequest method.
2368//    req, resp := client.DeleteIntegrationResponseRequest(params)
2369//
2370//    err := req.Send()
2371//    if err == nil { // resp is now filled
2372//        fmt.Println(resp)
2373//    }
2374func (c *APIGateway) DeleteIntegrationResponseRequest(input *DeleteIntegrationResponseInput) (req *request.Request, output *DeleteIntegrationResponseOutput) {
2375	op := &request.Operation{
2376		Name:       opDeleteIntegrationResponse,
2377		HTTPMethod: "DELETE",
2378		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
2379	}
2380
2381	if input == nil {
2382		input = &DeleteIntegrationResponseInput{}
2383	}
2384
2385	output = &DeleteIntegrationResponseOutput{}
2386	req = c.newRequest(op, input, output)
2387	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2388	return
2389}
2390
2391// DeleteIntegrationResponse API operation for Amazon API Gateway.
2392//
2393// Represents a delete integration response.
2394//
2395// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2396// with awserr.Error's Code and Message methods to get detailed information about
2397// the error.
2398//
2399// See the AWS API reference guide for Amazon API Gateway's
2400// API operation DeleteIntegrationResponse for usage and error information.
2401//
2402// Returned Error Types:
2403//   * BadRequestException
2404//   The submitted request is not valid, for example, the input is incomplete
2405//   or incorrect. See the accompanying error message for details.
2406//
2407//   * ConflictException
2408//   The request configuration has conflicts. For details, see the accompanying
2409//   error message.
2410//
2411//   * NotFoundException
2412//   The requested resource is not found. Make sure that the request URI is correct.
2413//
2414//   * UnauthorizedException
2415//   The request is denied because the caller has insufficient permissions.
2416//
2417//   * TooManyRequestsException
2418//   The request has reached its throttling limit. Retry after the specified time
2419//   period.
2420//
2421func (c *APIGateway) DeleteIntegrationResponse(input *DeleteIntegrationResponseInput) (*DeleteIntegrationResponseOutput, error) {
2422	req, out := c.DeleteIntegrationResponseRequest(input)
2423	return out, req.Send()
2424}
2425
2426// DeleteIntegrationResponseWithContext is the same as DeleteIntegrationResponse with the addition of
2427// the ability to pass a context and additional request options.
2428//
2429// See DeleteIntegrationResponse for details on how to use this API operation.
2430//
2431// The context must be non-nil and will be used for request cancellation. If
2432// the context is nil a panic will occur. In the future the SDK may create
2433// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2434// for more information on using Contexts.
2435func (c *APIGateway) DeleteIntegrationResponseWithContext(ctx aws.Context, input *DeleteIntegrationResponseInput, opts ...request.Option) (*DeleteIntegrationResponseOutput, error) {
2436	req, out := c.DeleteIntegrationResponseRequest(input)
2437	req.SetContext(ctx)
2438	req.ApplyOptions(opts...)
2439	return out, req.Send()
2440}
2441
2442const opDeleteMethod = "DeleteMethod"
2443
2444// DeleteMethodRequest generates a "aws/request.Request" representing the
2445// client's request for the DeleteMethod operation. The "output" return
2446// value will be populated with the request's response once the request completes
2447// successfully.
2448//
2449// Use "Send" method on the returned Request to send the API call to the service.
2450// the "output" return value is not valid until after Send returns without error.
2451//
2452// See DeleteMethod for more information on using the DeleteMethod
2453// API call, and error handling.
2454//
2455// This method is useful when you want to inject custom logic or configuration
2456// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2457//
2458//
2459//    // Example sending a request using the DeleteMethodRequest method.
2460//    req, resp := client.DeleteMethodRequest(params)
2461//
2462//    err := req.Send()
2463//    if err == nil { // resp is now filled
2464//        fmt.Println(resp)
2465//    }
2466func (c *APIGateway) DeleteMethodRequest(input *DeleteMethodInput) (req *request.Request, output *DeleteMethodOutput) {
2467	op := &request.Operation{
2468		Name:       opDeleteMethod,
2469		HTTPMethod: "DELETE",
2470		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
2471	}
2472
2473	if input == nil {
2474		input = &DeleteMethodInput{}
2475	}
2476
2477	output = &DeleteMethodOutput{}
2478	req = c.newRequest(op, input, output)
2479	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2480	return
2481}
2482
2483// DeleteMethod API operation for Amazon API Gateway.
2484//
2485// Deletes an existing Method resource.
2486//
2487// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2488// with awserr.Error's Code and Message methods to get detailed information about
2489// the error.
2490//
2491// See the AWS API reference guide for Amazon API Gateway's
2492// API operation DeleteMethod for usage and error information.
2493//
2494// Returned Error Types:
2495//   * UnauthorizedException
2496//   The request is denied because the caller has insufficient permissions.
2497//
2498//   * NotFoundException
2499//   The requested resource is not found. Make sure that the request URI is correct.
2500//
2501//   * TooManyRequestsException
2502//   The request has reached its throttling limit. Retry after the specified time
2503//   period.
2504//
2505//   * ConflictException
2506//   The request configuration has conflicts. For details, see the accompanying
2507//   error message.
2508//
2509func (c *APIGateway) DeleteMethod(input *DeleteMethodInput) (*DeleteMethodOutput, error) {
2510	req, out := c.DeleteMethodRequest(input)
2511	return out, req.Send()
2512}
2513
2514// DeleteMethodWithContext is the same as DeleteMethod with the addition of
2515// the ability to pass a context and additional request options.
2516//
2517// See DeleteMethod for details on how to use this API operation.
2518//
2519// The context must be non-nil and will be used for request cancellation. If
2520// the context is nil a panic will occur. In the future the SDK may create
2521// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2522// for more information on using Contexts.
2523func (c *APIGateway) DeleteMethodWithContext(ctx aws.Context, input *DeleteMethodInput, opts ...request.Option) (*DeleteMethodOutput, error) {
2524	req, out := c.DeleteMethodRequest(input)
2525	req.SetContext(ctx)
2526	req.ApplyOptions(opts...)
2527	return out, req.Send()
2528}
2529
2530const opDeleteMethodResponse = "DeleteMethodResponse"
2531
2532// DeleteMethodResponseRequest generates a "aws/request.Request" representing the
2533// client's request for the DeleteMethodResponse operation. The "output" return
2534// value will be populated with the request's response once the request completes
2535// successfully.
2536//
2537// Use "Send" method on the returned Request to send the API call to the service.
2538// the "output" return value is not valid until after Send returns without error.
2539//
2540// See DeleteMethodResponse for more information on using the DeleteMethodResponse
2541// API call, and error handling.
2542//
2543// This method is useful when you want to inject custom logic or configuration
2544// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2545//
2546//
2547//    // Example sending a request using the DeleteMethodResponseRequest method.
2548//    req, resp := client.DeleteMethodResponseRequest(params)
2549//
2550//    err := req.Send()
2551//    if err == nil { // resp is now filled
2552//        fmt.Println(resp)
2553//    }
2554func (c *APIGateway) DeleteMethodResponseRequest(input *DeleteMethodResponseInput) (req *request.Request, output *DeleteMethodResponseOutput) {
2555	op := &request.Operation{
2556		Name:       opDeleteMethodResponse,
2557		HTTPMethod: "DELETE",
2558		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
2559	}
2560
2561	if input == nil {
2562		input = &DeleteMethodResponseInput{}
2563	}
2564
2565	output = &DeleteMethodResponseOutput{}
2566	req = c.newRequest(op, input, output)
2567	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2568	return
2569}
2570
2571// DeleteMethodResponse API operation for Amazon API Gateway.
2572//
2573// Deletes an existing MethodResponse resource.
2574//
2575// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2576// with awserr.Error's Code and Message methods to get detailed information about
2577// the error.
2578//
2579// See the AWS API reference guide for Amazon API Gateway's
2580// API operation DeleteMethodResponse for usage and error information.
2581//
2582// Returned Error Types:
2583//   * UnauthorizedException
2584//   The request is denied because the caller has insufficient permissions.
2585//
2586//   * NotFoundException
2587//   The requested resource is not found. Make sure that the request URI is correct.
2588//
2589//   * TooManyRequestsException
2590//   The request has reached its throttling limit. Retry after the specified time
2591//   period.
2592//
2593//   * BadRequestException
2594//   The submitted request is not valid, for example, the input is incomplete
2595//   or incorrect. See the accompanying error message for details.
2596//
2597//   * ConflictException
2598//   The request configuration has conflicts. For details, see the accompanying
2599//   error message.
2600//
2601func (c *APIGateway) DeleteMethodResponse(input *DeleteMethodResponseInput) (*DeleteMethodResponseOutput, error) {
2602	req, out := c.DeleteMethodResponseRequest(input)
2603	return out, req.Send()
2604}
2605
2606// DeleteMethodResponseWithContext is the same as DeleteMethodResponse with the addition of
2607// the ability to pass a context and additional request options.
2608//
2609// See DeleteMethodResponse for details on how to use this API operation.
2610//
2611// The context must be non-nil and will be used for request cancellation. If
2612// the context is nil a panic will occur. In the future the SDK may create
2613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2614// for more information on using Contexts.
2615func (c *APIGateway) DeleteMethodResponseWithContext(ctx aws.Context, input *DeleteMethodResponseInput, opts ...request.Option) (*DeleteMethodResponseOutput, error) {
2616	req, out := c.DeleteMethodResponseRequest(input)
2617	req.SetContext(ctx)
2618	req.ApplyOptions(opts...)
2619	return out, req.Send()
2620}
2621
2622const opDeleteModel = "DeleteModel"
2623
2624// DeleteModelRequest generates a "aws/request.Request" representing the
2625// client's request for the DeleteModel operation. The "output" return
2626// value will be populated with the request's response once the request completes
2627// successfully.
2628//
2629// Use "Send" method on the returned Request to send the API call to the service.
2630// the "output" return value is not valid until after Send returns without error.
2631//
2632// See DeleteModel for more information on using the DeleteModel
2633// API call, and error handling.
2634//
2635// This method is useful when you want to inject custom logic or configuration
2636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2637//
2638//
2639//    // Example sending a request using the DeleteModelRequest method.
2640//    req, resp := client.DeleteModelRequest(params)
2641//
2642//    err := req.Send()
2643//    if err == nil { // resp is now filled
2644//        fmt.Println(resp)
2645//    }
2646func (c *APIGateway) DeleteModelRequest(input *DeleteModelInput) (req *request.Request, output *DeleteModelOutput) {
2647	op := &request.Operation{
2648		Name:       opDeleteModel,
2649		HTTPMethod: "DELETE",
2650		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}",
2651	}
2652
2653	if input == nil {
2654		input = &DeleteModelInput{}
2655	}
2656
2657	output = &DeleteModelOutput{}
2658	req = c.newRequest(op, input, output)
2659	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2660	return
2661}
2662
2663// DeleteModel API operation for Amazon API Gateway.
2664//
2665// Deletes a model.
2666//
2667// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2668// with awserr.Error's Code and Message methods to get detailed information about
2669// the error.
2670//
2671// See the AWS API reference guide for Amazon API Gateway's
2672// API operation DeleteModel for usage and error information.
2673//
2674// Returned Error Types:
2675//   * BadRequestException
2676//   The submitted request is not valid, for example, the input is incomplete
2677//   or incorrect. See the accompanying error message for details.
2678//
2679//   * ConflictException
2680//   The request configuration has conflicts. For details, see the accompanying
2681//   error message.
2682//
2683//   * NotFoundException
2684//   The requested resource is not found. Make sure that the request URI is correct.
2685//
2686//   * UnauthorizedException
2687//   The request is denied because the caller has insufficient permissions.
2688//
2689//   * TooManyRequestsException
2690//   The request has reached its throttling limit. Retry after the specified time
2691//   period.
2692//
2693func (c *APIGateway) DeleteModel(input *DeleteModelInput) (*DeleteModelOutput, error) {
2694	req, out := c.DeleteModelRequest(input)
2695	return out, req.Send()
2696}
2697
2698// DeleteModelWithContext is the same as DeleteModel with the addition of
2699// the ability to pass a context and additional request options.
2700//
2701// See DeleteModel for details on how to use this API operation.
2702//
2703// The context must be non-nil and will be used for request cancellation. If
2704// the context is nil a panic will occur. In the future the SDK may create
2705// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2706// for more information on using Contexts.
2707func (c *APIGateway) DeleteModelWithContext(ctx aws.Context, input *DeleteModelInput, opts ...request.Option) (*DeleteModelOutput, error) {
2708	req, out := c.DeleteModelRequest(input)
2709	req.SetContext(ctx)
2710	req.ApplyOptions(opts...)
2711	return out, req.Send()
2712}
2713
2714const opDeleteRequestValidator = "DeleteRequestValidator"
2715
2716// DeleteRequestValidatorRequest generates a "aws/request.Request" representing the
2717// client's request for the DeleteRequestValidator operation. The "output" return
2718// value will be populated with the request's response once the request completes
2719// successfully.
2720//
2721// Use "Send" method on the returned Request to send the API call to the service.
2722// the "output" return value is not valid until after Send returns without error.
2723//
2724// See DeleteRequestValidator for more information on using the DeleteRequestValidator
2725// API call, and error handling.
2726//
2727// This method is useful when you want to inject custom logic or configuration
2728// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2729//
2730//
2731//    // Example sending a request using the DeleteRequestValidatorRequest method.
2732//    req, resp := client.DeleteRequestValidatorRequest(params)
2733//
2734//    err := req.Send()
2735//    if err == nil { // resp is now filled
2736//        fmt.Println(resp)
2737//    }
2738func (c *APIGateway) DeleteRequestValidatorRequest(input *DeleteRequestValidatorInput) (req *request.Request, output *DeleteRequestValidatorOutput) {
2739	op := &request.Operation{
2740		Name:       opDeleteRequestValidator,
2741		HTTPMethod: "DELETE",
2742		HTTPPath:   "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}",
2743	}
2744
2745	if input == nil {
2746		input = &DeleteRequestValidatorInput{}
2747	}
2748
2749	output = &DeleteRequestValidatorOutput{}
2750	req = c.newRequest(op, input, output)
2751	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2752	return
2753}
2754
2755// DeleteRequestValidator API operation for Amazon API Gateway.
2756//
2757// Deletes a RequestValidator of a given RestApi.
2758//
2759// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2760// with awserr.Error's Code and Message methods to get detailed information about
2761// the error.
2762//
2763// See the AWS API reference guide for Amazon API Gateway's
2764// API operation DeleteRequestValidator for usage and error information.
2765//
2766// Returned Error Types:
2767//   * BadRequestException
2768//   The submitted request is not valid, for example, the input is incomplete
2769//   or incorrect. See the accompanying error message for details.
2770//
2771//   * ConflictException
2772//   The request configuration has conflicts. For details, see the accompanying
2773//   error message.
2774//
2775//   * NotFoundException
2776//   The requested resource is not found. Make sure that the request URI is correct.
2777//
2778//   * UnauthorizedException
2779//   The request is denied because the caller has insufficient permissions.
2780//
2781//   * TooManyRequestsException
2782//   The request has reached its throttling limit. Retry after the specified time
2783//   period.
2784//
2785func (c *APIGateway) DeleteRequestValidator(input *DeleteRequestValidatorInput) (*DeleteRequestValidatorOutput, error) {
2786	req, out := c.DeleteRequestValidatorRequest(input)
2787	return out, req.Send()
2788}
2789
2790// DeleteRequestValidatorWithContext is the same as DeleteRequestValidator with the addition of
2791// the ability to pass a context and additional request options.
2792//
2793// See DeleteRequestValidator for details on how to use this API operation.
2794//
2795// The context must be non-nil and will be used for request cancellation. If
2796// the context is nil a panic will occur. In the future the SDK may create
2797// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2798// for more information on using Contexts.
2799func (c *APIGateway) DeleteRequestValidatorWithContext(ctx aws.Context, input *DeleteRequestValidatorInput, opts ...request.Option) (*DeleteRequestValidatorOutput, error) {
2800	req, out := c.DeleteRequestValidatorRequest(input)
2801	req.SetContext(ctx)
2802	req.ApplyOptions(opts...)
2803	return out, req.Send()
2804}
2805
2806const opDeleteResource = "DeleteResource"
2807
2808// DeleteResourceRequest generates a "aws/request.Request" representing the
2809// client's request for the DeleteResource operation. The "output" return
2810// value will be populated with the request's response once the request completes
2811// successfully.
2812//
2813// Use "Send" method on the returned Request to send the API call to the service.
2814// the "output" return value is not valid until after Send returns without error.
2815//
2816// See DeleteResource for more information on using the DeleteResource
2817// API call, and error handling.
2818//
2819// This method is useful when you want to inject custom logic or configuration
2820// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2821//
2822//
2823//    // Example sending a request using the DeleteResourceRequest method.
2824//    req, resp := client.DeleteResourceRequest(params)
2825//
2826//    err := req.Send()
2827//    if err == nil { // resp is now filled
2828//        fmt.Println(resp)
2829//    }
2830func (c *APIGateway) DeleteResourceRequest(input *DeleteResourceInput) (req *request.Request, output *DeleteResourceOutput) {
2831	op := &request.Operation{
2832		Name:       opDeleteResource,
2833		HTTPMethod: "DELETE",
2834		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}",
2835	}
2836
2837	if input == nil {
2838		input = &DeleteResourceInput{}
2839	}
2840
2841	output = &DeleteResourceOutput{}
2842	req = c.newRequest(op, input, output)
2843	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2844	return
2845}
2846
2847// DeleteResource API operation for Amazon API Gateway.
2848//
2849// Deletes a Resource resource.
2850//
2851// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2852// with awserr.Error's Code and Message methods to get detailed information about
2853// the error.
2854//
2855// See the AWS API reference guide for Amazon API Gateway's
2856// API operation DeleteResource for usage and error information.
2857//
2858// Returned Error Types:
2859//   * UnauthorizedException
2860//   The request is denied because the caller has insufficient permissions.
2861//
2862//   * NotFoundException
2863//   The requested resource is not found. Make sure that the request URI is correct.
2864//
2865//   * BadRequestException
2866//   The submitted request is not valid, for example, the input is incomplete
2867//   or incorrect. See the accompanying error message for details.
2868//
2869//   * ConflictException
2870//   The request configuration has conflicts. For details, see the accompanying
2871//   error message.
2872//
2873//   * TooManyRequestsException
2874//   The request has reached its throttling limit. Retry after the specified time
2875//   period.
2876//
2877func (c *APIGateway) DeleteResource(input *DeleteResourceInput) (*DeleteResourceOutput, error) {
2878	req, out := c.DeleteResourceRequest(input)
2879	return out, req.Send()
2880}
2881
2882// DeleteResourceWithContext is the same as DeleteResource with the addition of
2883// the ability to pass a context and additional request options.
2884//
2885// See DeleteResource for details on how to use this API operation.
2886//
2887// The context must be non-nil and will be used for request cancellation. If
2888// the context is nil a panic will occur. In the future the SDK may create
2889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2890// for more information on using Contexts.
2891func (c *APIGateway) DeleteResourceWithContext(ctx aws.Context, input *DeleteResourceInput, opts ...request.Option) (*DeleteResourceOutput, error) {
2892	req, out := c.DeleteResourceRequest(input)
2893	req.SetContext(ctx)
2894	req.ApplyOptions(opts...)
2895	return out, req.Send()
2896}
2897
2898const opDeleteRestApi = "DeleteRestApi"
2899
2900// DeleteRestApiRequest generates a "aws/request.Request" representing the
2901// client's request for the DeleteRestApi operation. The "output" return
2902// value will be populated with the request's response once the request completes
2903// successfully.
2904//
2905// Use "Send" method on the returned Request to send the API call to the service.
2906// the "output" return value is not valid until after Send returns without error.
2907//
2908// See DeleteRestApi for more information on using the DeleteRestApi
2909// API call, and error handling.
2910//
2911// This method is useful when you want to inject custom logic or configuration
2912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2913//
2914//
2915//    // Example sending a request using the DeleteRestApiRequest method.
2916//    req, resp := client.DeleteRestApiRequest(params)
2917//
2918//    err := req.Send()
2919//    if err == nil { // resp is now filled
2920//        fmt.Println(resp)
2921//    }
2922func (c *APIGateway) DeleteRestApiRequest(input *DeleteRestApiInput) (req *request.Request, output *DeleteRestApiOutput) {
2923	op := &request.Operation{
2924		Name:       opDeleteRestApi,
2925		HTTPMethod: "DELETE",
2926		HTTPPath:   "/restapis/{restapi_id}",
2927	}
2928
2929	if input == nil {
2930		input = &DeleteRestApiInput{}
2931	}
2932
2933	output = &DeleteRestApiOutput{}
2934	req = c.newRequest(op, input, output)
2935	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2936	return
2937}
2938
2939// DeleteRestApi API operation for Amazon API Gateway.
2940//
2941// Deletes the specified API.
2942//
2943// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2944// with awserr.Error's Code and Message methods to get detailed information about
2945// the error.
2946//
2947// See the AWS API reference guide for Amazon API Gateway's
2948// API operation DeleteRestApi for usage and error information.
2949//
2950// Returned Error Types:
2951//   * BadRequestException
2952//   The submitted request is not valid, for example, the input is incomplete
2953//   or incorrect. See the accompanying error message for details.
2954//
2955//   * ConflictException
2956//   The request configuration has conflicts. For details, see the accompanying
2957//   error message.
2958//
2959//   * NotFoundException
2960//   The requested resource is not found. Make sure that the request URI is correct.
2961//
2962//   * UnauthorizedException
2963//   The request is denied because the caller has insufficient permissions.
2964//
2965//   * TooManyRequestsException
2966//   The request has reached its throttling limit. Retry after the specified time
2967//   period.
2968//
2969func (c *APIGateway) DeleteRestApi(input *DeleteRestApiInput) (*DeleteRestApiOutput, error) {
2970	req, out := c.DeleteRestApiRequest(input)
2971	return out, req.Send()
2972}
2973
2974// DeleteRestApiWithContext is the same as DeleteRestApi with the addition of
2975// the ability to pass a context and additional request options.
2976//
2977// See DeleteRestApi for details on how to use this API operation.
2978//
2979// The context must be non-nil and will be used for request cancellation. If
2980// the context is nil a panic will occur. In the future the SDK may create
2981// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2982// for more information on using Contexts.
2983func (c *APIGateway) DeleteRestApiWithContext(ctx aws.Context, input *DeleteRestApiInput, opts ...request.Option) (*DeleteRestApiOutput, error) {
2984	req, out := c.DeleteRestApiRequest(input)
2985	req.SetContext(ctx)
2986	req.ApplyOptions(opts...)
2987	return out, req.Send()
2988}
2989
2990const opDeleteStage = "DeleteStage"
2991
2992// DeleteStageRequest generates a "aws/request.Request" representing the
2993// client's request for the DeleteStage operation. The "output" return
2994// value will be populated with the request's response once the request completes
2995// successfully.
2996//
2997// Use "Send" method on the returned Request to send the API call to the service.
2998// the "output" return value is not valid until after Send returns without error.
2999//
3000// See DeleteStage for more information on using the DeleteStage
3001// API call, and error handling.
3002//
3003// This method is useful when you want to inject custom logic or configuration
3004// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3005//
3006//
3007//    // Example sending a request using the DeleteStageRequest method.
3008//    req, resp := client.DeleteStageRequest(params)
3009//
3010//    err := req.Send()
3011//    if err == nil { // resp is now filled
3012//        fmt.Println(resp)
3013//    }
3014func (c *APIGateway) DeleteStageRequest(input *DeleteStageInput) (req *request.Request, output *DeleteStageOutput) {
3015	op := &request.Operation{
3016		Name:       opDeleteStage,
3017		HTTPMethod: "DELETE",
3018		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}",
3019	}
3020
3021	if input == nil {
3022		input = &DeleteStageInput{}
3023	}
3024
3025	output = &DeleteStageOutput{}
3026	req = c.newRequest(op, input, output)
3027	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3028	return
3029}
3030
3031// DeleteStage API operation for Amazon API Gateway.
3032//
3033// Deletes a Stage resource.
3034//
3035// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3036// with awserr.Error's Code and Message methods to get detailed information about
3037// the error.
3038//
3039// See the AWS API reference guide for Amazon API Gateway's
3040// API operation DeleteStage for usage and error information.
3041//
3042// Returned Error Types:
3043//   * BadRequestException
3044//   The submitted request is not valid, for example, the input is incomplete
3045//   or incorrect. See the accompanying error message for details.
3046//
3047//   * ConflictException
3048//   The request configuration has conflicts. For details, see the accompanying
3049//   error message.
3050//
3051//   * LimitExceededException
3052//   The request exceeded the rate limit. Retry after the specified time period.
3053//
3054//   * NotFoundException
3055//   The requested resource is not found. Make sure that the request URI is correct.
3056//
3057//   * UnauthorizedException
3058//   The request is denied because the caller has insufficient permissions.
3059//
3060//   * TooManyRequestsException
3061//   The request has reached its throttling limit. Retry after the specified time
3062//   period.
3063//
3064func (c *APIGateway) DeleteStage(input *DeleteStageInput) (*DeleteStageOutput, error) {
3065	req, out := c.DeleteStageRequest(input)
3066	return out, req.Send()
3067}
3068
3069// DeleteStageWithContext is the same as DeleteStage with the addition of
3070// the ability to pass a context and additional request options.
3071//
3072// See DeleteStage for details on how to use this API operation.
3073//
3074// The context must be non-nil and will be used for request cancellation. If
3075// the context is nil a panic will occur. In the future the SDK may create
3076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3077// for more information on using Contexts.
3078func (c *APIGateway) DeleteStageWithContext(ctx aws.Context, input *DeleteStageInput, opts ...request.Option) (*DeleteStageOutput, error) {
3079	req, out := c.DeleteStageRequest(input)
3080	req.SetContext(ctx)
3081	req.ApplyOptions(opts...)
3082	return out, req.Send()
3083}
3084
3085const opDeleteUsagePlan = "DeleteUsagePlan"
3086
3087// DeleteUsagePlanRequest generates a "aws/request.Request" representing the
3088// client's request for the DeleteUsagePlan operation. The "output" return
3089// value will be populated with the request's response once the request completes
3090// successfully.
3091//
3092// Use "Send" method on the returned Request to send the API call to the service.
3093// the "output" return value is not valid until after Send returns without error.
3094//
3095// See DeleteUsagePlan for more information on using the DeleteUsagePlan
3096// API call, and error handling.
3097//
3098// This method is useful when you want to inject custom logic or configuration
3099// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3100//
3101//
3102//    // Example sending a request using the DeleteUsagePlanRequest method.
3103//    req, resp := client.DeleteUsagePlanRequest(params)
3104//
3105//    err := req.Send()
3106//    if err == nil { // resp is now filled
3107//        fmt.Println(resp)
3108//    }
3109func (c *APIGateway) DeleteUsagePlanRequest(input *DeleteUsagePlanInput) (req *request.Request, output *DeleteUsagePlanOutput) {
3110	op := &request.Operation{
3111		Name:       opDeleteUsagePlan,
3112		HTTPMethod: "DELETE",
3113		HTTPPath:   "/usageplans/{usageplanId}",
3114	}
3115
3116	if input == nil {
3117		input = &DeleteUsagePlanInput{}
3118	}
3119
3120	output = &DeleteUsagePlanOutput{}
3121	req = c.newRequest(op, input, output)
3122	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3123	return
3124}
3125
3126// DeleteUsagePlan API operation for Amazon API Gateway.
3127//
3128// Deletes a usage plan of a given plan Id.
3129//
3130// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3131// with awserr.Error's Code and Message methods to get detailed information about
3132// the error.
3133//
3134// See the AWS API reference guide for Amazon API Gateway's
3135// API operation DeleteUsagePlan for usage and error information.
3136//
3137// Returned Error Types:
3138//   * BadRequestException
3139//   The submitted request is not valid, for example, the input is incomplete
3140//   or incorrect. See the accompanying error message for details.
3141//
3142//   * ConflictException
3143//   The request configuration has conflicts. For details, see the accompanying
3144//   error message.
3145//
3146//   * NotFoundException
3147//   The requested resource is not found. Make sure that the request URI is correct.
3148//
3149//   * UnauthorizedException
3150//   The request is denied because the caller has insufficient permissions.
3151//
3152//   * TooManyRequestsException
3153//   The request has reached its throttling limit. Retry after the specified time
3154//   period.
3155//
3156func (c *APIGateway) DeleteUsagePlan(input *DeleteUsagePlanInput) (*DeleteUsagePlanOutput, error) {
3157	req, out := c.DeleteUsagePlanRequest(input)
3158	return out, req.Send()
3159}
3160
3161// DeleteUsagePlanWithContext is the same as DeleteUsagePlan with the addition of
3162// the ability to pass a context and additional request options.
3163//
3164// See DeleteUsagePlan for details on how to use this API operation.
3165//
3166// The context must be non-nil and will be used for request cancellation. If
3167// the context is nil a panic will occur. In the future the SDK may create
3168// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3169// for more information on using Contexts.
3170func (c *APIGateway) DeleteUsagePlanWithContext(ctx aws.Context, input *DeleteUsagePlanInput, opts ...request.Option) (*DeleteUsagePlanOutput, error) {
3171	req, out := c.DeleteUsagePlanRequest(input)
3172	req.SetContext(ctx)
3173	req.ApplyOptions(opts...)
3174	return out, req.Send()
3175}
3176
3177const opDeleteUsagePlanKey = "DeleteUsagePlanKey"
3178
3179// DeleteUsagePlanKeyRequest generates a "aws/request.Request" representing the
3180// client's request for the DeleteUsagePlanKey operation. The "output" return
3181// value will be populated with the request's response once the request completes
3182// successfully.
3183//
3184// Use "Send" method on the returned Request to send the API call to the service.
3185// the "output" return value is not valid until after Send returns without error.
3186//
3187// See DeleteUsagePlanKey for more information on using the DeleteUsagePlanKey
3188// API call, and error handling.
3189//
3190// This method is useful when you want to inject custom logic or configuration
3191// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3192//
3193//
3194//    // Example sending a request using the DeleteUsagePlanKeyRequest method.
3195//    req, resp := client.DeleteUsagePlanKeyRequest(params)
3196//
3197//    err := req.Send()
3198//    if err == nil { // resp is now filled
3199//        fmt.Println(resp)
3200//    }
3201func (c *APIGateway) DeleteUsagePlanKeyRequest(input *DeleteUsagePlanKeyInput) (req *request.Request, output *DeleteUsagePlanKeyOutput) {
3202	op := &request.Operation{
3203		Name:       opDeleteUsagePlanKey,
3204		HTTPMethod: "DELETE",
3205		HTTPPath:   "/usageplans/{usageplanId}/keys/{keyId}",
3206	}
3207
3208	if input == nil {
3209		input = &DeleteUsagePlanKeyInput{}
3210	}
3211
3212	output = &DeleteUsagePlanKeyOutput{}
3213	req = c.newRequest(op, input, output)
3214	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3215	return
3216}
3217
3218// DeleteUsagePlanKey API operation for Amazon API Gateway.
3219//
3220// Deletes a usage plan key and remove the underlying API key from the associated
3221// usage plan.
3222//
3223// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3224// with awserr.Error's Code and Message methods to get detailed information about
3225// the error.
3226//
3227// See the AWS API reference guide for Amazon API Gateway's
3228// API operation DeleteUsagePlanKey for usage and error information.
3229//
3230// Returned Error Types:
3231//   * BadRequestException
3232//   The submitted request is not valid, for example, the input is incomplete
3233//   or incorrect. See the accompanying error message for details.
3234//
3235//   * ConflictException
3236//   The request configuration has conflicts. For details, see the accompanying
3237//   error message.
3238//
3239//   * NotFoundException
3240//   The requested resource is not found. Make sure that the request URI is correct.
3241//
3242//   * UnauthorizedException
3243//   The request is denied because the caller has insufficient permissions.
3244//
3245//   * TooManyRequestsException
3246//   The request has reached its throttling limit. Retry after the specified time
3247//   period.
3248//
3249func (c *APIGateway) DeleteUsagePlanKey(input *DeleteUsagePlanKeyInput) (*DeleteUsagePlanKeyOutput, error) {
3250	req, out := c.DeleteUsagePlanKeyRequest(input)
3251	return out, req.Send()
3252}
3253
3254// DeleteUsagePlanKeyWithContext is the same as DeleteUsagePlanKey with the addition of
3255// the ability to pass a context and additional request options.
3256//
3257// See DeleteUsagePlanKey for details on how to use this API operation.
3258//
3259// The context must be non-nil and will be used for request cancellation. If
3260// the context is nil a panic will occur. In the future the SDK may create
3261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3262// for more information on using Contexts.
3263func (c *APIGateway) DeleteUsagePlanKeyWithContext(ctx aws.Context, input *DeleteUsagePlanKeyInput, opts ...request.Option) (*DeleteUsagePlanKeyOutput, error) {
3264	req, out := c.DeleteUsagePlanKeyRequest(input)
3265	req.SetContext(ctx)
3266	req.ApplyOptions(opts...)
3267	return out, req.Send()
3268}
3269
3270const opDeleteVpcLink = "DeleteVpcLink"
3271
3272// DeleteVpcLinkRequest generates a "aws/request.Request" representing the
3273// client's request for the DeleteVpcLink operation. The "output" return
3274// value will be populated with the request's response once the request completes
3275// successfully.
3276//
3277// Use "Send" method on the returned Request to send the API call to the service.
3278// the "output" return value is not valid until after Send returns without error.
3279//
3280// See DeleteVpcLink for more information on using the DeleteVpcLink
3281// API call, and error handling.
3282//
3283// This method is useful when you want to inject custom logic or configuration
3284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3285//
3286//
3287//    // Example sending a request using the DeleteVpcLinkRequest method.
3288//    req, resp := client.DeleteVpcLinkRequest(params)
3289//
3290//    err := req.Send()
3291//    if err == nil { // resp is now filled
3292//        fmt.Println(resp)
3293//    }
3294func (c *APIGateway) DeleteVpcLinkRequest(input *DeleteVpcLinkInput) (req *request.Request, output *DeleteVpcLinkOutput) {
3295	op := &request.Operation{
3296		Name:       opDeleteVpcLink,
3297		HTTPMethod: "DELETE",
3298		HTTPPath:   "/vpclinks/{vpclink_id}",
3299	}
3300
3301	if input == nil {
3302		input = &DeleteVpcLinkInput{}
3303	}
3304
3305	output = &DeleteVpcLinkOutput{}
3306	req = c.newRequest(op, input, output)
3307	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3308	return
3309}
3310
3311// DeleteVpcLink API operation for Amazon API Gateway.
3312//
3313// Deletes an existing VpcLink of a specified identifier.
3314//
3315// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3316// with awserr.Error's Code and Message methods to get detailed information about
3317// the error.
3318//
3319// See the AWS API reference guide for Amazon API Gateway's
3320// API operation DeleteVpcLink for usage and error information.
3321//
3322// Returned Error Types:
3323//   * BadRequestException
3324//   The submitted request is not valid, for example, the input is incomplete
3325//   or incorrect. See the accompanying error message for details.
3326//
3327//   * ConflictException
3328//   The request configuration has conflicts. For details, see the accompanying
3329//   error message.
3330//
3331//   * NotFoundException
3332//   The requested resource is not found. Make sure that the request URI is correct.
3333//
3334//   * UnauthorizedException
3335//   The request is denied because the caller has insufficient permissions.
3336//
3337//   * TooManyRequestsException
3338//   The request has reached its throttling limit. Retry after the specified time
3339//   period.
3340//
3341func (c *APIGateway) DeleteVpcLink(input *DeleteVpcLinkInput) (*DeleteVpcLinkOutput, error) {
3342	req, out := c.DeleteVpcLinkRequest(input)
3343	return out, req.Send()
3344}
3345
3346// DeleteVpcLinkWithContext is the same as DeleteVpcLink with the addition of
3347// the ability to pass a context and additional request options.
3348//
3349// See DeleteVpcLink for details on how to use this API operation.
3350//
3351// The context must be non-nil and will be used for request cancellation. If
3352// the context is nil a panic will occur. In the future the SDK may create
3353// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3354// for more information on using Contexts.
3355func (c *APIGateway) DeleteVpcLinkWithContext(ctx aws.Context, input *DeleteVpcLinkInput, opts ...request.Option) (*DeleteVpcLinkOutput, error) {
3356	req, out := c.DeleteVpcLinkRequest(input)
3357	req.SetContext(ctx)
3358	req.ApplyOptions(opts...)
3359	return out, req.Send()
3360}
3361
3362const opFlushStageAuthorizersCache = "FlushStageAuthorizersCache"
3363
3364// FlushStageAuthorizersCacheRequest generates a "aws/request.Request" representing the
3365// client's request for the FlushStageAuthorizersCache operation. The "output" return
3366// value will be populated with the request's response once the request completes
3367// successfully.
3368//
3369// Use "Send" method on the returned Request to send the API call to the service.
3370// the "output" return value is not valid until after Send returns without error.
3371//
3372// See FlushStageAuthorizersCache for more information on using the FlushStageAuthorizersCache
3373// API call, and error handling.
3374//
3375// This method is useful when you want to inject custom logic or configuration
3376// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3377//
3378//
3379//    // Example sending a request using the FlushStageAuthorizersCacheRequest method.
3380//    req, resp := client.FlushStageAuthorizersCacheRequest(params)
3381//
3382//    err := req.Send()
3383//    if err == nil { // resp is now filled
3384//        fmt.Println(resp)
3385//    }
3386func (c *APIGateway) FlushStageAuthorizersCacheRequest(input *FlushStageAuthorizersCacheInput) (req *request.Request, output *FlushStageAuthorizersCacheOutput) {
3387	op := &request.Operation{
3388		Name:       opFlushStageAuthorizersCache,
3389		HTTPMethod: "DELETE",
3390		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/cache/authorizers",
3391	}
3392
3393	if input == nil {
3394		input = &FlushStageAuthorizersCacheInput{}
3395	}
3396
3397	output = &FlushStageAuthorizersCacheOutput{}
3398	req = c.newRequest(op, input, output)
3399	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3400	return
3401}
3402
3403// FlushStageAuthorizersCache API operation for Amazon API Gateway.
3404//
3405// Flushes all authorizer cache entries on a stage.
3406//
3407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3408// with awserr.Error's Code and Message methods to get detailed information about
3409// the error.
3410//
3411// See the AWS API reference guide for Amazon API Gateway's
3412// API operation FlushStageAuthorizersCache for usage and error information.
3413//
3414// Returned Error Types:
3415//   * BadRequestException
3416//   The submitted request is not valid, for example, the input is incomplete
3417//   or incorrect. See the accompanying error message for details.
3418//
3419//   * ConflictException
3420//   The request configuration has conflicts. For details, see the accompanying
3421//   error message.
3422//
3423//   * LimitExceededException
3424//   The request exceeded the rate limit. Retry after the specified time period.
3425//
3426//   * NotFoundException
3427//   The requested resource is not found. Make sure that the request URI is correct.
3428//
3429//   * UnauthorizedException
3430//   The request is denied because the caller has insufficient permissions.
3431//
3432//   * TooManyRequestsException
3433//   The request has reached its throttling limit. Retry after the specified time
3434//   period.
3435//
3436func (c *APIGateway) FlushStageAuthorizersCache(input *FlushStageAuthorizersCacheInput) (*FlushStageAuthorizersCacheOutput, error) {
3437	req, out := c.FlushStageAuthorizersCacheRequest(input)
3438	return out, req.Send()
3439}
3440
3441// FlushStageAuthorizersCacheWithContext is the same as FlushStageAuthorizersCache with the addition of
3442// the ability to pass a context and additional request options.
3443//
3444// See FlushStageAuthorizersCache for details on how to use this API operation.
3445//
3446// The context must be non-nil and will be used for request cancellation. If
3447// the context is nil a panic will occur. In the future the SDK may create
3448// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3449// for more information on using Contexts.
3450func (c *APIGateway) FlushStageAuthorizersCacheWithContext(ctx aws.Context, input *FlushStageAuthorizersCacheInput, opts ...request.Option) (*FlushStageAuthorizersCacheOutput, error) {
3451	req, out := c.FlushStageAuthorizersCacheRequest(input)
3452	req.SetContext(ctx)
3453	req.ApplyOptions(opts...)
3454	return out, req.Send()
3455}
3456
3457const opFlushStageCache = "FlushStageCache"
3458
3459// FlushStageCacheRequest generates a "aws/request.Request" representing the
3460// client's request for the FlushStageCache operation. The "output" return
3461// value will be populated with the request's response once the request completes
3462// successfully.
3463//
3464// Use "Send" method on the returned Request to send the API call to the service.
3465// the "output" return value is not valid until after Send returns without error.
3466//
3467// See FlushStageCache for more information on using the FlushStageCache
3468// API call, and error handling.
3469//
3470// This method is useful when you want to inject custom logic or configuration
3471// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3472//
3473//
3474//    // Example sending a request using the FlushStageCacheRequest method.
3475//    req, resp := client.FlushStageCacheRequest(params)
3476//
3477//    err := req.Send()
3478//    if err == nil { // resp is now filled
3479//        fmt.Println(resp)
3480//    }
3481func (c *APIGateway) FlushStageCacheRequest(input *FlushStageCacheInput) (req *request.Request, output *FlushStageCacheOutput) {
3482	op := &request.Operation{
3483		Name:       opFlushStageCache,
3484		HTTPMethod: "DELETE",
3485		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/cache/data",
3486	}
3487
3488	if input == nil {
3489		input = &FlushStageCacheInput{}
3490	}
3491
3492	output = &FlushStageCacheOutput{}
3493	req = c.newRequest(op, input, output)
3494	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3495	return
3496}
3497
3498// FlushStageCache API operation for Amazon API Gateway.
3499//
3500// Flushes a stage's cache.
3501//
3502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3503// with awserr.Error's Code and Message methods to get detailed information about
3504// the error.
3505//
3506// See the AWS API reference guide for Amazon API Gateway's
3507// API operation FlushStageCache for usage and error information.
3508//
3509// Returned Error Types:
3510//   * BadRequestException
3511//   The submitted request is not valid, for example, the input is incomplete
3512//   or incorrect. See the accompanying error message for details.
3513//
3514//   * ConflictException
3515//   The request configuration has conflicts. For details, see the accompanying
3516//   error message.
3517//
3518//   * LimitExceededException
3519//   The request exceeded the rate limit. Retry after the specified time period.
3520//
3521//   * NotFoundException
3522//   The requested resource is not found. Make sure that the request URI is correct.
3523//
3524//   * UnauthorizedException
3525//   The request is denied because the caller has insufficient permissions.
3526//
3527//   * TooManyRequestsException
3528//   The request has reached its throttling limit. Retry after the specified time
3529//   period.
3530//
3531func (c *APIGateway) FlushStageCache(input *FlushStageCacheInput) (*FlushStageCacheOutput, error) {
3532	req, out := c.FlushStageCacheRequest(input)
3533	return out, req.Send()
3534}
3535
3536// FlushStageCacheWithContext is the same as FlushStageCache with the addition of
3537// the ability to pass a context and additional request options.
3538//
3539// See FlushStageCache for details on how to use this API operation.
3540//
3541// The context must be non-nil and will be used for request cancellation. If
3542// the context is nil a panic will occur. In the future the SDK may create
3543// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3544// for more information on using Contexts.
3545func (c *APIGateway) FlushStageCacheWithContext(ctx aws.Context, input *FlushStageCacheInput, opts ...request.Option) (*FlushStageCacheOutput, error) {
3546	req, out := c.FlushStageCacheRequest(input)
3547	req.SetContext(ctx)
3548	req.ApplyOptions(opts...)
3549	return out, req.Send()
3550}
3551
3552const opGenerateClientCertificate = "GenerateClientCertificate"
3553
3554// GenerateClientCertificateRequest generates a "aws/request.Request" representing the
3555// client's request for the GenerateClientCertificate operation. The "output" return
3556// value will be populated with the request's response once the request completes
3557// successfully.
3558//
3559// Use "Send" method on the returned Request to send the API call to the service.
3560// the "output" return value is not valid until after Send returns without error.
3561//
3562// See GenerateClientCertificate for more information on using the GenerateClientCertificate
3563// API call, and error handling.
3564//
3565// This method is useful when you want to inject custom logic or configuration
3566// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3567//
3568//
3569//    // Example sending a request using the GenerateClientCertificateRequest method.
3570//    req, resp := client.GenerateClientCertificateRequest(params)
3571//
3572//    err := req.Send()
3573//    if err == nil { // resp is now filled
3574//        fmt.Println(resp)
3575//    }
3576func (c *APIGateway) GenerateClientCertificateRequest(input *GenerateClientCertificateInput) (req *request.Request, output *ClientCertificate) {
3577	op := &request.Operation{
3578		Name:       opGenerateClientCertificate,
3579		HTTPMethod: "POST",
3580		HTTPPath:   "/clientcertificates",
3581	}
3582
3583	if input == nil {
3584		input = &GenerateClientCertificateInput{}
3585	}
3586
3587	output = &ClientCertificate{}
3588	req = c.newRequest(op, input, output)
3589	return
3590}
3591
3592// GenerateClientCertificate API operation for Amazon API Gateway.
3593//
3594// Generates a ClientCertificate resource.
3595//
3596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3597// with awserr.Error's Code and Message methods to get detailed information about
3598// the error.
3599//
3600// See the AWS API reference guide for Amazon API Gateway's
3601// API operation GenerateClientCertificate for usage and error information.
3602//
3603// Returned Error Types:
3604//   * BadRequestException
3605//   The submitted request is not valid, for example, the input is incomplete
3606//   or incorrect. See the accompanying error message for details.
3607//
3608//   * ConflictException
3609//   The request configuration has conflicts. For details, see the accompanying
3610//   error message.
3611//
3612//   * LimitExceededException
3613//   The request exceeded the rate limit. Retry after the specified time period.
3614//
3615//   * UnauthorizedException
3616//   The request is denied because the caller has insufficient permissions.
3617//
3618//   * TooManyRequestsException
3619//   The request has reached its throttling limit. Retry after the specified time
3620//   period.
3621//
3622func (c *APIGateway) GenerateClientCertificate(input *GenerateClientCertificateInput) (*ClientCertificate, error) {
3623	req, out := c.GenerateClientCertificateRequest(input)
3624	return out, req.Send()
3625}
3626
3627// GenerateClientCertificateWithContext is the same as GenerateClientCertificate with the addition of
3628// the ability to pass a context and additional request options.
3629//
3630// See GenerateClientCertificate for details on how to use this API operation.
3631//
3632// The context must be non-nil and will be used for request cancellation. If
3633// the context is nil a panic will occur. In the future the SDK may create
3634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3635// for more information on using Contexts.
3636func (c *APIGateway) GenerateClientCertificateWithContext(ctx aws.Context, input *GenerateClientCertificateInput, opts ...request.Option) (*ClientCertificate, error) {
3637	req, out := c.GenerateClientCertificateRequest(input)
3638	req.SetContext(ctx)
3639	req.ApplyOptions(opts...)
3640	return out, req.Send()
3641}
3642
3643const opGetAccount = "GetAccount"
3644
3645// GetAccountRequest generates a "aws/request.Request" representing the
3646// client's request for the GetAccount operation. The "output" return
3647// value will be populated with the request's response once the request completes
3648// successfully.
3649//
3650// Use "Send" method on the returned Request to send the API call to the service.
3651// the "output" return value is not valid until after Send returns without error.
3652//
3653// See GetAccount for more information on using the GetAccount
3654// API call, and error handling.
3655//
3656// This method is useful when you want to inject custom logic or configuration
3657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3658//
3659//
3660//    // Example sending a request using the GetAccountRequest method.
3661//    req, resp := client.GetAccountRequest(params)
3662//
3663//    err := req.Send()
3664//    if err == nil { // resp is now filled
3665//        fmt.Println(resp)
3666//    }
3667func (c *APIGateway) GetAccountRequest(input *GetAccountInput) (req *request.Request, output *Account) {
3668	op := &request.Operation{
3669		Name:       opGetAccount,
3670		HTTPMethod: "GET",
3671		HTTPPath:   "/account",
3672	}
3673
3674	if input == nil {
3675		input = &GetAccountInput{}
3676	}
3677
3678	output = &Account{}
3679	req = c.newRequest(op, input, output)
3680	return
3681}
3682
3683// GetAccount API operation for Amazon API Gateway.
3684//
3685// Gets information about the current Account resource.
3686//
3687// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3688// with awserr.Error's Code and Message methods to get detailed information about
3689// the error.
3690//
3691// See the AWS API reference guide for Amazon API Gateway's
3692// API operation GetAccount for usage and error information.
3693//
3694// Returned Error Types:
3695//   * BadRequestException
3696//   The submitted request is not valid, for example, the input is incomplete
3697//   or incorrect. See the accompanying error message for details.
3698//
3699//   * NotFoundException
3700//   The requested resource is not found. Make sure that the request URI is correct.
3701//
3702//   * UnauthorizedException
3703//   The request is denied because the caller has insufficient permissions.
3704//
3705//   * TooManyRequestsException
3706//   The request has reached its throttling limit. Retry after the specified time
3707//   period.
3708//
3709func (c *APIGateway) GetAccount(input *GetAccountInput) (*Account, error) {
3710	req, out := c.GetAccountRequest(input)
3711	return out, req.Send()
3712}
3713
3714// GetAccountWithContext is the same as GetAccount with the addition of
3715// the ability to pass a context and additional request options.
3716//
3717// See GetAccount for details on how to use this API operation.
3718//
3719// The context must be non-nil and will be used for request cancellation. If
3720// the context is nil a panic will occur. In the future the SDK may create
3721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3722// for more information on using Contexts.
3723func (c *APIGateway) GetAccountWithContext(ctx aws.Context, input *GetAccountInput, opts ...request.Option) (*Account, error) {
3724	req, out := c.GetAccountRequest(input)
3725	req.SetContext(ctx)
3726	req.ApplyOptions(opts...)
3727	return out, req.Send()
3728}
3729
3730const opGetApiKey = "GetApiKey"
3731
3732// GetApiKeyRequest generates a "aws/request.Request" representing the
3733// client's request for the GetApiKey operation. The "output" return
3734// value will be populated with the request's response once the request completes
3735// successfully.
3736//
3737// Use "Send" method on the returned Request to send the API call to the service.
3738// the "output" return value is not valid until after Send returns without error.
3739//
3740// See GetApiKey for more information on using the GetApiKey
3741// API call, and error handling.
3742//
3743// This method is useful when you want to inject custom logic or configuration
3744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3745//
3746//
3747//    // Example sending a request using the GetApiKeyRequest method.
3748//    req, resp := client.GetApiKeyRequest(params)
3749//
3750//    err := req.Send()
3751//    if err == nil { // resp is now filled
3752//        fmt.Println(resp)
3753//    }
3754func (c *APIGateway) GetApiKeyRequest(input *GetApiKeyInput) (req *request.Request, output *ApiKey) {
3755	op := &request.Operation{
3756		Name:       opGetApiKey,
3757		HTTPMethod: "GET",
3758		HTTPPath:   "/apikeys/{api_Key}",
3759	}
3760
3761	if input == nil {
3762		input = &GetApiKeyInput{}
3763	}
3764
3765	output = &ApiKey{}
3766	req = c.newRequest(op, input, output)
3767	return
3768}
3769
3770// GetApiKey API operation for Amazon API Gateway.
3771//
3772// Gets information about the current ApiKey resource.
3773//
3774// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3775// with awserr.Error's Code and Message methods to get detailed information about
3776// the error.
3777//
3778// See the AWS API reference guide for Amazon API Gateway's
3779// API operation GetApiKey for usage and error information.
3780//
3781// Returned Error Types:
3782//   * BadRequestException
3783//   The submitted request is not valid, for example, the input is incomplete
3784//   or incorrect. See the accompanying error message for details.
3785//
3786//   * NotFoundException
3787//   The requested resource is not found. Make sure that the request URI is correct.
3788//
3789//   * UnauthorizedException
3790//   The request is denied because the caller has insufficient permissions.
3791//
3792//   * TooManyRequestsException
3793//   The request has reached its throttling limit. Retry after the specified time
3794//   period.
3795//
3796func (c *APIGateway) GetApiKey(input *GetApiKeyInput) (*ApiKey, error) {
3797	req, out := c.GetApiKeyRequest(input)
3798	return out, req.Send()
3799}
3800
3801// GetApiKeyWithContext is the same as GetApiKey with the addition of
3802// the ability to pass a context and additional request options.
3803//
3804// See GetApiKey for details on how to use this API operation.
3805//
3806// The context must be non-nil and will be used for request cancellation. If
3807// the context is nil a panic will occur. In the future the SDK may create
3808// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3809// for more information on using Contexts.
3810func (c *APIGateway) GetApiKeyWithContext(ctx aws.Context, input *GetApiKeyInput, opts ...request.Option) (*ApiKey, error) {
3811	req, out := c.GetApiKeyRequest(input)
3812	req.SetContext(ctx)
3813	req.ApplyOptions(opts...)
3814	return out, req.Send()
3815}
3816
3817const opGetApiKeys = "GetApiKeys"
3818
3819// GetApiKeysRequest generates a "aws/request.Request" representing the
3820// client's request for the GetApiKeys operation. The "output" return
3821// value will be populated with the request's response once the request completes
3822// successfully.
3823//
3824// Use "Send" method on the returned Request to send the API call to the service.
3825// the "output" return value is not valid until after Send returns without error.
3826//
3827// See GetApiKeys for more information on using the GetApiKeys
3828// API call, and error handling.
3829//
3830// This method is useful when you want to inject custom logic or configuration
3831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3832//
3833//
3834//    // Example sending a request using the GetApiKeysRequest method.
3835//    req, resp := client.GetApiKeysRequest(params)
3836//
3837//    err := req.Send()
3838//    if err == nil { // resp is now filled
3839//        fmt.Println(resp)
3840//    }
3841func (c *APIGateway) GetApiKeysRequest(input *GetApiKeysInput) (req *request.Request, output *GetApiKeysOutput) {
3842	op := &request.Operation{
3843		Name:       opGetApiKeys,
3844		HTTPMethod: "GET",
3845		HTTPPath:   "/apikeys",
3846		Paginator: &request.Paginator{
3847			InputTokens:     []string{"position"},
3848			OutputTokens:    []string{"position"},
3849			LimitToken:      "limit",
3850			TruncationToken: "",
3851		},
3852	}
3853
3854	if input == nil {
3855		input = &GetApiKeysInput{}
3856	}
3857
3858	output = &GetApiKeysOutput{}
3859	req = c.newRequest(op, input, output)
3860	return
3861}
3862
3863// GetApiKeys API operation for Amazon API Gateway.
3864//
3865// Gets information about the current ApiKeys resource.
3866//
3867// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3868// with awserr.Error's Code and Message methods to get detailed information about
3869// the error.
3870//
3871// See the AWS API reference guide for Amazon API Gateway's
3872// API operation GetApiKeys for usage and error information.
3873//
3874// Returned Error Types:
3875//   * BadRequestException
3876//   The submitted request is not valid, for example, the input is incomplete
3877//   or incorrect. See the accompanying error message for details.
3878//
3879//   * NotFoundException
3880//   The requested resource is not found. Make sure that the request URI is correct.
3881//
3882//   * UnauthorizedException
3883//   The request is denied because the caller has insufficient permissions.
3884//
3885//   * TooManyRequestsException
3886//   The request has reached its throttling limit. Retry after the specified time
3887//   period.
3888//
3889func (c *APIGateway) GetApiKeys(input *GetApiKeysInput) (*GetApiKeysOutput, error) {
3890	req, out := c.GetApiKeysRequest(input)
3891	return out, req.Send()
3892}
3893
3894// GetApiKeysWithContext is the same as GetApiKeys with the addition of
3895// the ability to pass a context and additional request options.
3896//
3897// See GetApiKeys for details on how to use this API operation.
3898//
3899// The context must be non-nil and will be used for request cancellation. If
3900// the context is nil a panic will occur. In the future the SDK may create
3901// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3902// for more information on using Contexts.
3903func (c *APIGateway) GetApiKeysWithContext(ctx aws.Context, input *GetApiKeysInput, opts ...request.Option) (*GetApiKeysOutput, error) {
3904	req, out := c.GetApiKeysRequest(input)
3905	req.SetContext(ctx)
3906	req.ApplyOptions(opts...)
3907	return out, req.Send()
3908}
3909
3910// GetApiKeysPages iterates over the pages of a GetApiKeys operation,
3911// calling the "fn" function with the response data for each page. To stop
3912// iterating, return false from the fn function.
3913//
3914// See GetApiKeys method for more information on how to use this operation.
3915//
3916// Note: This operation can generate multiple requests to a service.
3917//
3918//    // Example iterating over at most 3 pages of a GetApiKeys operation.
3919//    pageNum := 0
3920//    err := client.GetApiKeysPages(params,
3921//        func(page *apigateway.GetApiKeysOutput, lastPage bool) bool {
3922//            pageNum++
3923//            fmt.Println(page)
3924//            return pageNum <= 3
3925//        })
3926//
3927func (c *APIGateway) GetApiKeysPages(input *GetApiKeysInput, fn func(*GetApiKeysOutput, bool) bool) error {
3928	return c.GetApiKeysPagesWithContext(aws.BackgroundContext(), input, fn)
3929}
3930
3931// GetApiKeysPagesWithContext same as GetApiKeysPages except
3932// it takes a Context and allows setting request options on the pages.
3933//
3934// The context must be non-nil and will be used for request cancellation. If
3935// the context is nil a panic will occur. In the future the SDK may create
3936// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3937// for more information on using Contexts.
3938func (c *APIGateway) GetApiKeysPagesWithContext(ctx aws.Context, input *GetApiKeysInput, fn func(*GetApiKeysOutput, bool) bool, opts ...request.Option) error {
3939	p := request.Pagination{
3940		NewRequest: func() (*request.Request, error) {
3941			var inCpy *GetApiKeysInput
3942			if input != nil {
3943				tmp := *input
3944				inCpy = &tmp
3945			}
3946			req, _ := c.GetApiKeysRequest(inCpy)
3947			req.SetContext(ctx)
3948			req.ApplyOptions(opts...)
3949			return req, nil
3950		},
3951	}
3952
3953	for p.Next() {
3954		if !fn(p.Page().(*GetApiKeysOutput), !p.HasNextPage()) {
3955			break
3956		}
3957	}
3958
3959	return p.Err()
3960}
3961
3962const opGetAuthorizer = "GetAuthorizer"
3963
3964// GetAuthorizerRequest generates a "aws/request.Request" representing the
3965// client's request for the GetAuthorizer operation. The "output" return
3966// value will be populated with the request's response once the request completes
3967// successfully.
3968//
3969// Use "Send" method on the returned Request to send the API call to the service.
3970// the "output" return value is not valid until after Send returns without error.
3971//
3972// See GetAuthorizer for more information on using the GetAuthorizer
3973// API call, and error handling.
3974//
3975// This method is useful when you want to inject custom logic or configuration
3976// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3977//
3978//
3979//    // Example sending a request using the GetAuthorizerRequest method.
3980//    req, resp := client.GetAuthorizerRequest(params)
3981//
3982//    err := req.Send()
3983//    if err == nil { // resp is now filled
3984//        fmt.Println(resp)
3985//    }
3986func (c *APIGateway) GetAuthorizerRequest(input *GetAuthorizerInput) (req *request.Request, output *Authorizer) {
3987	op := &request.Operation{
3988		Name:       opGetAuthorizer,
3989		HTTPMethod: "GET",
3990		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
3991	}
3992
3993	if input == nil {
3994		input = &GetAuthorizerInput{}
3995	}
3996
3997	output = &Authorizer{}
3998	req = c.newRequest(op, input, output)
3999	return
4000}
4001
4002// GetAuthorizer API operation for Amazon API Gateway.
4003//
4004// Describe an existing Authorizer resource.
4005//
4006// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-authorizer.html)
4007//
4008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4009// with awserr.Error's Code and Message methods to get detailed information about
4010// the error.
4011//
4012// See the AWS API reference guide for Amazon API Gateway's
4013// API operation GetAuthorizer for usage and error information.
4014//
4015// Returned Error Types:
4016//   * BadRequestException
4017//   The submitted request is not valid, for example, the input is incomplete
4018//   or incorrect. See the accompanying error message for details.
4019//
4020//   * NotFoundException
4021//   The requested resource is not found. Make sure that the request URI is correct.
4022//
4023//   * UnauthorizedException
4024//   The request is denied because the caller has insufficient permissions.
4025//
4026//   * TooManyRequestsException
4027//   The request has reached its throttling limit. Retry after the specified time
4028//   period.
4029//
4030func (c *APIGateway) GetAuthorizer(input *GetAuthorizerInput) (*Authorizer, error) {
4031	req, out := c.GetAuthorizerRequest(input)
4032	return out, req.Send()
4033}
4034
4035// GetAuthorizerWithContext is the same as GetAuthorizer with the addition of
4036// the ability to pass a context and additional request options.
4037//
4038// See GetAuthorizer for details on how to use this API operation.
4039//
4040// The context must be non-nil and will be used for request cancellation. If
4041// the context is nil a panic will occur. In the future the SDK may create
4042// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4043// for more information on using Contexts.
4044func (c *APIGateway) GetAuthorizerWithContext(ctx aws.Context, input *GetAuthorizerInput, opts ...request.Option) (*Authorizer, error) {
4045	req, out := c.GetAuthorizerRequest(input)
4046	req.SetContext(ctx)
4047	req.ApplyOptions(opts...)
4048	return out, req.Send()
4049}
4050
4051const opGetAuthorizers = "GetAuthorizers"
4052
4053// GetAuthorizersRequest generates a "aws/request.Request" representing the
4054// client's request for the GetAuthorizers operation. The "output" return
4055// value will be populated with the request's response once the request completes
4056// successfully.
4057//
4058// Use "Send" method on the returned Request to send the API call to the service.
4059// the "output" return value is not valid until after Send returns without error.
4060//
4061// See GetAuthorizers for more information on using the GetAuthorizers
4062// API call, and error handling.
4063//
4064// This method is useful when you want to inject custom logic or configuration
4065// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4066//
4067//
4068//    // Example sending a request using the GetAuthorizersRequest method.
4069//    req, resp := client.GetAuthorizersRequest(params)
4070//
4071//    err := req.Send()
4072//    if err == nil { // resp is now filled
4073//        fmt.Println(resp)
4074//    }
4075func (c *APIGateway) GetAuthorizersRequest(input *GetAuthorizersInput) (req *request.Request, output *GetAuthorizersOutput) {
4076	op := &request.Operation{
4077		Name:       opGetAuthorizers,
4078		HTTPMethod: "GET",
4079		HTTPPath:   "/restapis/{restapi_id}/authorizers",
4080	}
4081
4082	if input == nil {
4083		input = &GetAuthorizersInput{}
4084	}
4085
4086	output = &GetAuthorizersOutput{}
4087	req = c.newRequest(op, input, output)
4088	return
4089}
4090
4091// GetAuthorizers API operation for Amazon API Gateway.
4092//
4093// Describe an existing Authorizers resource.
4094//
4095// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-authorizers.html)
4096//
4097// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4098// with awserr.Error's Code and Message methods to get detailed information about
4099// the error.
4100//
4101// See the AWS API reference guide for Amazon API Gateway's
4102// API operation GetAuthorizers for usage and error information.
4103//
4104// Returned Error Types:
4105//   * BadRequestException
4106//   The submitted request is not valid, for example, the input is incomplete
4107//   or incorrect. See the accompanying error message for details.
4108//
4109//   * NotFoundException
4110//   The requested resource is not found. Make sure that the request URI is correct.
4111//
4112//   * UnauthorizedException
4113//   The request is denied because the caller has insufficient permissions.
4114//
4115//   * TooManyRequestsException
4116//   The request has reached its throttling limit. Retry after the specified time
4117//   period.
4118//
4119func (c *APIGateway) GetAuthorizers(input *GetAuthorizersInput) (*GetAuthorizersOutput, error) {
4120	req, out := c.GetAuthorizersRequest(input)
4121	return out, req.Send()
4122}
4123
4124// GetAuthorizersWithContext is the same as GetAuthorizers with the addition of
4125// the ability to pass a context and additional request options.
4126//
4127// See GetAuthorizers for details on how to use this API operation.
4128//
4129// The context must be non-nil and will be used for request cancellation. If
4130// the context is nil a panic will occur. In the future the SDK may create
4131// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4132// for more information on using Contexts.
4133func (c *APIGateway) GetAuthorizersWithContext(ctx aws.Context, input *GetAuthorizersInput, opts ...request.Option) (*GetAuthorizersOutput, error) {
4134	req, out := c.GetAuthorizersRequest(input)
4135	req.SetContext(ctx)
4136	req.ApplyOptions(opts...)
4137	return out, req.Send()
4138}
4139
4140const opGetBasePathMapping = "GetBasePathMapping"
4141
4142// GetBasePathMappingRequest generates a "aws/request.Request" representing the
4143// client's request for the GetBasePathMapping operation. The "output" return
4144// value will be populated with the request's response once the request completes
4145// successfully.
4146//
4147// Use "Send" method on the returned Request to send the API call to the service.
4148// the "output" return value is not valid until after Send returns without error.
4149//
4150// See GetBasePathMapping for more information on using the GetBasePathMapping
4151// API call, and error handling.
4152//
4153// This method is useful when you want to inject custom logic or configuration
4154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4155//
4156//
4157//    // Example sending a request using the GetBasePathMappingRequest method.
4158//    req, resp := client.GetBasePathMappingRequest(params)
4159//
4160//    err := req.Send()
4161//    if err == nil { // resp is now filled
4162//        fmt.Println(resp)
4163//    }
4164func (c *APIGateway) GetBasePathMappingRequest(input *GetBasePathMappingInput) (req *request.Request, output *BasePathMapping) {
4165	op := &request.Operation{
4166		Name:       opGetBasePathMapping,
4167		HTTPMethod: "GET",
4168		HTTPPath:   "/domainnames/{domain_name}/basepathmappings/{base_path}",
4169	}
4170
4171	if input == nil {
4172		input = &GetBasePathMappingInput{}
4173	}
4174
4175	output = &BasePathMapping{}
4176	req = c.newRequest(op, input, output)
4177	return
4178}
4179
4180// GetBasePathMapping API operation for Amazon API Gateway.
4181//
4182// Describe a BasePathMapping resource.
4183//
4184// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4185// with awserr.Error's Code and Message methods to get detailed information about
4186// the error.
4187//
4188// See the AWS API reference guide for Amazon API Gateway's
4189// API operation GetBasePathMapping for usage and error information.
4190//
4191// Returned Error Types:
4192//   * BadRequestException
4193//   The submitted request is not valid, for example, the input is incomplete
4194//   or incorrect. See the accompanying error message for details.
4195//
4196//   * NotFoundException
4197//   The requested resource is not found. Make sure that the request URI is correct.
4198//
4199//   * UnauthorizedException
4200//   The request is denied because the caller has insufficient permissions.
4201//
4202//   * TooManyRequestsException
4203//   The request has reached its throttling limit. Retry after the specified time
4204//   period.
4205//
4206func (c *APIGateway) GetBasePathMapping(input *GetBasePathMappingInput) (*BasePathMapping, error) {
4207	req, out := c.GetBasePathMappingRequest(input)
4208	return out, req.Send()
4209}
4210
4211// GetBasePathMappingWithContext is the same as GetBasePathMapping with the addition of
4212// the ability to pass a context and additional request options.
4213//
4214// See GetBasePathMapping for details on how to use this API operation.
4215//
4216// The context must be non-nil and will be used for request cancellation. If
4217// the context is nil a panic will occur. In the future the SDK may create
4218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4219// for more information on using Contexts.
4220func (c *APIGateway) GetBasePathMappingWithContext(ctx aws.Context, input *GetBasePathMappingInput, opts ...request.Option) (*BasePathMapping, error) {
4221	req, out := c.GetBasePathMappingRequest(input)
4222	req.SetContext(ctx)
4223	req.ApplyOptions(opts...)
4224	return out, req.Send()
4225}
4226
4227const opGetBasePathMappings = "GetBasePathMappings"
4228
4229// GetBasePathMappingsRequest generates a "aws/request.Request" representing the
4230// client's request for the GetBasePathMappings operation. The "output" return
4231// value will be populated with the request's response once the request completes
4232// successfully.
4233//
4234// Use "Send" method on the returned Request to send the API call to the service.
4235// the "output" return value is not valid until after Send returns without error.
4236//
4237// See GetBasePathMappings for more information on using the GetBasePathMappings
4238// API call, and error handling.
4239//
4240// This method is useful when you want to inject custom logic or configuration
4241// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4242//
4243//
4244//    // Example sending a request using the GetBasePathMappingsRequest method.
4245//    req, resp := client.GetBasePathMappingsRequest(params)
4246//
4247//    err := req.Send()
4248//    if err == nil { // resp is now filled
4249//        fmt.Println(resp)
4250//    }
4251func (c *APIGateway) GetBasePathMappingsRequest(input *GetBasePathMappingsInput) (req *request.Request, output *GetBasePathMappingsOutput) {
4252	op := &request.Operation{
4253		Name:       opGetBasePathMappings,
4254		HTTPMethod: "GET",
4255		HTTPPath:   "/domainnames/{domain_name}/basepathmappings",
4256		Paginator: &request.Paginator{
4257			InputTokens:     []string{"position"},
4258			OutputTokens:    []string{"position"},
4259			LimitToken:      "limit",
4260			TruncationToken: "",
4261		},
4262	}
4263
4264	if input == nil {
4265		input = &GetBasePathMappingsInput{}
4266	}
4267
4268	output = &GetBasePathMappingsOutput{}
4269	req = c.newRequest(op, input, output)
4270	return
4271}
4272
4273// GetBasePathMappings API operation for Amazon API Gateway.
4274//
4275// Represents a collection of BasePathMapping resources.
4276//
4277// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4278// with awserr.Error's Code and Message methods to get detailed information about
4279// the error.
4280//
4281// See the AWS API reference guide for Amazon API Gateway's
4282// API operation GetBasePathMappings for usage and error information.
4283//
4284// Returned Error Types:
4285//   * BadRequestException
4286//   The submitted request is not valid, for example, the input is incomplete
4287//   or incorrect. See the accompanying error message for details.
4288//
4289//   * NotFoundException
4290//   The requested resource is not found. Make sure that the request URI is correct.
4291//
4292//   * UnauthorizedException
4293//   The request is denied because the caller has insufficient permissions.
4294//
4295//   * TooManyRequestsException
4296//   The request has reached its throttling limit. Retry after the specified time
4297//   period.
4298//
4299func (c *APIGateway) GetBasePathMappings(input *GetBasePathMappingsInput) (*GetBasePathMappingsOutput, error) {
4300	req, out := c.GetBasePathMappingsRequest(input)
4301	return out, req.Send()
4302}
4303
4304// GetBasePathMappingsWithContext is the same as GetBasePathMappings with the addition of
4305// the ability to pass a context and additional request options.
4306//
4307// See GetBasePathMappings for details on how to use this API operation.
4308//
4309// The context must be non-nil and will be used for request cancellation. If
4310// the context is nil a panic will occur. In the future the SDK may create
4311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4312// for more information on using Contexts.
4313func (c *APIGateway) GetBasePathMappingsWithContext(ctx aws.Context, input *GetBasePathMappingsInput, opts ...request.Option) (*GetBasePathMappingsOutput, error) {
4314	req, out := c.GetBasePathMappingsRequest(input)
4315	req.SetContext(ctx)
4316	req.ApplyOptions(opts...)
4317	return out, req.Send()
4318}
4319
4320// GetBasePathMappingsPages iterates over the pages of a GetBasePathMappings operation,
4321// calling the "fn" function with the response data for each page. To stop
4322// iterating, return false from the fn function.
4323//
4324// See GetBasePathMappings method for more information on how to use this operation.
4325//
4326// Note: This operation can generate multiple requests to a service.
4327//
4328//    // Example iterating over at most 3 pages of a GetBasePathMappings operation.
4329//    pageNum := 0
4330//    err := client.GetBasePathMappingsPages(params,
4331//        func(page *apigateway.GetBasePathMappingsOutput, lastPage bool) bool {
4332//            pageNum++
4333//            fmt.Println(page)
4334//            return pageNum <= 3
4335//        })
4336//
4337func (c *APIGateway) GetBasePathMappingsPages(input *GetBasePathMappingsInput, fn func(*GetBasePathMappingsOutput, bool) bool) error {
4338	return c.GetBasePathMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
4339}
4340
4341// GetBasePathMappingsPagesWithContext same as GetBasePathMappingsPages except
4342// it takes a Context and allows setting request options on the pages.
4343//
4344// The context must be non-nil and will be used for request cancellation. If
4345// the context is nil a panic will occur. In the future the SDK may create
4346// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4347// for more information on using Contexts.
4348func (c *APIGateway) GetBasePathMappingsPagesWithContext(ctx aws.Context, input *GetBasePathMappingsInput, fn func(*GetBasePathMappingsOutput, bool) bool, opts ...request.Option) error {
4349	p := request.Pagination{
4350		NewRequest: func() (*request.Request, error) {
4351			var inCpy *GetBasePathMappingsInput
4352			if input != nil {
4353				tmp := *input
4354				inCpy = &tmp
4355			}
4356			req, _ := c.GetBasePathMappingsRequest(inCpy)
4357			req.SetContext(ctx)
4358			req.ApplyOptions(opts...)
4359			return req, nil
4360		},
4361	}
4362
4363	for p.Next() {
4364		if !fn(p.Page().(*GetBasePathMappingsOutput), !p.HasNextPage()) {
4365			break
4366		}
4367	}
4368
4369	return p.Err()
4370}
4371
4372const opGetClientCertificate = "GetClientCertificate"
4373
4374// GetClientCertificateRequest generates a "aws/request.Request" representing the
4375// client's request for the GetClientCertificate operation. The "output" return
4376// value will be populated with the request's response once the request completes
4377// successfully.
4378//
4379// Use "Send" method on the returned Request to send the API call to the service.
4380// the "output" return value is not valid until after Send returns without error.
4381//
4382// See GetClientCertificate for more information on using the GetClientCertificate
4383// API call, and error handling.
4384//
4385// This method is useful when you want to inject custom logic or configuration
4386// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4387//
4388//
4389//    // Example sending a request using the GetClientCertificateRequest method.
4390//    req, resp := client.GetClientCertificateRequest(params)
4391//
4392//    err := req.Send()
4393//    if err == nil { // resp is now filled
4394//        fmt.Println(resp)
4395//    }
4396func (c *APIGateway) GetClientCertificateRequest(input *GetClientCertificateInput) (req *request.Request, output *ClientCertificate) {
4397	op := &request.Operation{
4398		Name:       opGetClientCertificate,
4399		HTTPMethod: "GET",
4400		HTTPPath:   "/clientcertificates/{clientcertificate_id}",
4401	}
4402
4403	if input == nil {
4404		input = &GetClientCertificateInput{}
4405	}
4406
4407	output = &ClientCertificate{}
4408	req = c.newRequest(op, input, output)
4409	return
4410}
4411
4412// GetClientCertificate API operation for Amazon API Gateway.
4413//
4414// Gets information about the current ClientCertificate resource.
4415//
4416// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4417// with awserr.Error's Code and Message methods to get detailed information about
4418// the error.
4419//
4420// See the AWS API reference guide for Amazon API Gateway's
4421// API operation GetClientCertificate for usage and error information.
4422//
4423// Returned Error Types:
4424//   * BadRequestException
4425//   The submitted request is not valid, for example, the input is incomplete
4426//   or incorrect. See the accompanying error message for details.
4427//
4428//   * NotFoundException
4429//   The requested resource is not found. Make sure that the request URI is correct.
4430//
4431//   * UnauthorizedException
4432//   The request is denied because the caller has insufficient permissions.
4433//
4434//   * TooManyRequestsException
4435//   The request has reached its throttling limit. Retry after the specified time
4436//   period.
4437//
4438func (c *APIGateway) GetClientCertificate(input *GetClientCertificateInput) (*ClientCertificate, error) {
4439	req, out := c.GetClientCertificateRequest(input)
4440	return out, req.Send()
4441}
4442
4443// GetClientCertificateWithContext is the same as GetClientCertificate with the addition of
4444// the ability to pass a context and additional request options.
4445//
4446// See GetClientCertificate for details on how to use this API operation.
4447//
4448// The context must be non-nil and will be used for request cancellation. If
4449// the context is nil a panic will occur. In the future the SDK may create
4450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4451// for more information on using Contexts.
4452func (c *APIGateway) GetClientCertificateWithContext(ctx aws.Context, input *GetClientCertificateInput, opts ...request.Option) (*ClientCertificate, error) {
4453	req, out := c.GetClientCertificateRequest(input)
4454	req.SetContext(ctx)
4455	req.ApplyOptions(opts...)
4456	return out, req.Send()
4457}
4458
4459const opGetClientCertificates = "GetClientCertificates"
4460
4461// GetClientCertificatesRequest generates a "aws/request.Request" representing the
4462// client's request for the GetClientCertificates operation. The "output" return
4463// value will be populated with the request's response once the request completes
4464// successfully.
4465//
4466// Use "Send" method on the returned Request to send the API call to the service.
4467// the "output" return value is not valid until after Send returns without error.
4468//
4469// See GetClientCertificates for more information on using the GetClientCertificates
4470// API call, and error handling.
4471//
4472// This method is useful when you want to inject custom logic or configuration
4473// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4474//
4475//
4476//    // Example sending a request using the GetClientCertificatesRequest method.
4477//    req, resp := client.GetClientCertificatesRequest(params)
4478//
4479//    err := req.Send()
4480//    if err == nil { // resp is now filled
4481//        fmt.Println(resp)
4482//    }
4483func (c *APIGateway) GetClientCertificatesRequest(input *GetClientCertificatesInput) (req *request.Request, output *GetClientCertificatesOutput) {
4484	op := &request.Operation{
4485		Name:       opGetClientCertificates,
4486		HTTPMethod: "GET",
4487		HTTPPath:   "/clientcertificates",
4488		Paginator: &request.Paginator{
4489			InputTokens:     []string{"position"},
4490			OutputTokens:    []string{"position"},
4491			LimitToken:      "limit",
4492			TruncationToken: "",
4493		},
4494	}
4495
4496	if input == nil {
4497		input = &GetClientCertificatesInput{}
4498	}
4499
4500	output = &GetClientCertificatesOutput{}
4501	req = c.newRequest(op, input, output)
4502	return
4503}
4504
4505// GetClientCertificates API operation for Amazon API Gateway.
4506//
4507// Gets a collection of ClientCertificate resources.
4508//
4509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4510// with awserr.Error's Code and Message methods to get detailed information about
4511// the error.
4512//
4513// See the AWS API reference guide for Amazon API Gateway's
4514// API operation GetClientCertificates for usage and error information.
4515//
4516// Returned Error Types:
4517//   * BadRequestException
4518//   The submitted request is not valid, for example, the input is incomplete
4519//   or incorrect. See the accompanying error message for details.
4520//
4521//   * NotFoundException
4522//   The requested resource is not found. Make sure that the request URI is correct.
4523//
4524//   * UnauthorizedException
4525//   The request is denied because the caller has insufficient permissions.
4526//
4527//   * TooManyRequestsException
4528//   The request has reached its throttling limit. Retry after the specified time
4529//   period.
4530//
4531func (c *APIGateway) GetClientCertificates(input *GetClientCertificatesInput) (*GetClientCertificatesOutput, error) {
4532	req, out := c.GetClientCertificatesRequest(input)
4533	return out, req.Send()
4534}
4535
4536// GetClientCertificatesWithContext is the same as GetClientCertificates with the addition of
4537// the ability to pass a context and additional request options.
4538//
4539// See GetClientCertificates for details on how to use this API operation.
4540//
4541// The context must be non-nil and will be used for request cancellation. If
4542// the context is nil a panic will occur. In the future the SDK may create
4543// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4544// for more information on using Contexts.
4545func (c *APIGateway) GetClientCertificatesWithContext(ctx aws.Context, input *GetClientCertificatesInput, opts ...request.Option) (*GetClientCertificatesOutput, error) {
4546	req, out := c.GetClientCertificatesRequest(input)
4547	req.SetContext(ctx)
4548	req.ApplyOptions(opts...)
4549	return out, req.Send()
4550}
4551
4552// GetClientCertificatesPages iterates over the pages of a GetClientCertificates operation,
4553// calling the "fn" function with the response data for each page. To stop
4554// iterating, return false from the fn function.
4555//
4556// See GetClientCertificates method for more information on how to use this operation.
4557//
4558// Note: This operation can generate multiple requests to a service.
4559//
4560//    // Example iterating over at most 3 pages of a GetClientCertificates operation.
4561//    pageNum := 0
4562//    err := client.GetClientCertificatesPages(params,
4563//        func(page *apigateway.GetClientCertificatesOutput, lastPage bool) bool {
4564//            pageNum++
4565//            fmt.Println(page)
4566//            return pageNum <= 3
4567//        })
4568//
4569func (c *APIGateway) GetClientCertificatesPages(input *GetClientCertificatesInput, fn func(*GetClientCertificatesOutput, bool) bool) error {
4570	return c.GetClientCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
4571}
4572
4573// GetClientCertificatesPagesWithContext same as GetClientCertificatesPages except
4574// it takes a Context and allows setting request options on the pages.
4575//
4576// The context must be non-nil and will be used for request cancellation. If
4577// the context is nil a panic will occur. In the future the SDK may create
4578// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4579// for more information on using Contexts.
4580func (c *APIGateway) GetClientCertificatesPagesWithContext(ctx aws.Context, input *GetClientCertificatesInput, fn func(*GetClientCertificatesOutput, bool) bool, opts ...request.Option) error {
4581	p := request.Pagination{
4582		NewRequest: func() (*request.Request, error) {
4583			var inCpy *GetClientCertificatesInput
4584			if input != nil {
4585				tmp := *input
4586				inCpy = &tmp
4587			}
4588			req, _ := c.GetClientCertificatesRequest(inCpy)
4589			req.SetContext(ctx)
4590			req.ApplyOptions(opts...)
4591			return req, nil
4592		},
4593	}
4594
4595	for p.Next() {
4596		if !fn(p.Page().(*GetClientCertificatesOutput), !p.HasNextPage()) {
4597			break
4598		}
4599	}
4600
4601	return p.Err()
4602}
4603
4604const opGetDeployment = "GetDeployment"
4605
4606// GetDeploymentRequest generates a "aws/request.Request" representing the
4607// client's request for the GetDeployment operation. The "output" return
4608// value will be populated with the request's response once the request completes
4609// successfully.
4610//
4611// Use "Send" method on the returned Request to send the API call to the service.
4612// the "output" return value is not valid until after Send returns without error.
4613//
4614// See GetDeployment for more information on using the GetDeployment
4615// API call, and error handling.
4616//
4617// This method is useful when you want to inject custom logic or configuration
4618// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4619//
4620//
4621//    // Example sending a request using the GetDeploymentRequest method.
4622//    req, resp := client.GetDeploymentRequest(params)
4623//
4624//    err := req.Send()
4625//    if err == nil { // resp is now filled
4626//        fmt.Println(resp)
4627//    }
4628func (c *APIGateway) GetDeploymentRequest(input *GetDeploymentInput) (req *request.Request, output *Deployment) {
4629	op := &request.Operation{
4630		Name:       opGetDeployment,
4631		HTTPMethod: "GET",
4632		HTTPPath:   "/restapis/{restapi_id}/deployments/{deployment_id}",
4633	}
4634
4635	if input == nil {
4636		input = &GetDeploymentInput{}
4637	}
4638
4639	output = &Deployment{}
4640	req = c.newRequest(op, input, output)
4641	return
4642}
4643
4644// GetDeployment API operation for Amazon API Gateway.
4645//
4646// Gets information about a Deployment resource.
4647//
4648// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4649// with awserr.Error's Code and Message methods to get detailed information about
4650// the error.
4651//
4652// See the AWS API reference guide for Amazon API Gateway's
4653// API operation GetDeployment for usage and error information.
4654//
4655// Returned Error Types:
4656//   * BadRequestException
4657//   The submitted request is not valid, for example, the input is incomplete
4658//   or incorrect. See the accompanying error message for details.
4659//
4660//   * NotFoundException
4661//   The requested resource is not found. Make sure that the request URI is correct.
4662//
4663//   * UnauthorizedException
4664//   The request is denied because the caller has insufficient permissions.
4665//
4666//   * TooManyRequestsException
4667//   The request has reached its throttling limit. Retry after the specified time
4668//   period.
4669//
4670//   * ServiceUnavailableException
4671//   The requested service is not available. For details see the accompanying
4672//   error message. Retry after the specified time period.
4673//
4674func (c *APIGateway) GetDeployment(input *GetDeploymentInput) (*Deployment, error) {
4675	req, out := c.GetDeploymentRequest(input)
4676	return out, req.Send()
4677}
4678
4679// GetDeploymentWithContext is the same as GetDeployment with the addition of
4680// the ability to pass a context and additional request options.
4681//
4682// See GetDeployment for details on how to use this API operation.
4683//
4684// The context must be non-nil and will be used for request cancellation. If
4685// the context is nil a panic will occur. In the future the SDK may create
4686// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4687// for more information on using Contexts.
4688func (c *APIGateway) GetDeploymentWithContext(ctx aws.Context, input *GetDeploymentInput, opts ...request.Option) (*Deployment, error) {
4689	req, out := c.GetDeploymentRequest(input)
4690	req.SetContext(ctx)
4691	req.ApplyOptions(opts...)
4692	return out, req.Send()
4693}
4694
4695const opGetDeployments = "GetDeployments"
4696
4697// GetDeploymentsRequest generates a "aws/request.Request" representing the
4698// client's request for the GetDeployments operation. The "output" return
4699// value will be populated with the request's response once the request completes
4700// successfully.
4701//
4702// Use "Send" method on the returned Request to send the API call to the service.
4703// the "output" return value is not valid until after Send returns without error.
4704//
4705// See GetDeployments for more information on using the GetDeployments
4706// API call, and error handling.
4707//
4708// This method is useful when you want to inject custom logic or configuration
4709// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4710//
4711//
4712//    // Example sending a request using the GetDeploymentsRequest method.
4713//    req, resp := client.GetDeploymentsRequest(params)
4714//
4715//    err := req.Send()
4716//    if err == nil { // resp is now filled
4717//        fmt.Println(resp)
4718//    }
4719func (c *APIGateway) GetDeploymentsRequest(input *GetDeploymentsInput) (req *request.Request, output *GetDeploymentsOutput) {
4720	op := &request.Operation{
4721		Name:       opGetDeployments,
4722		HTTPMethod: "GET",
4723		HTTPPath:   "/restapis/{restapi_id}/deployments",
4724		Paginator: &request.Paginator{
4725			InputTokens:     []string{"position"},
4726			OutputTokens:    []string{"position"},
4727			LimitToken:      "limit",
4728			TruncationToken: "",
4729		},
4730	}
4731
4732	if input == nil {
4733		input = &GetDeploymentsInput{}
4734	}
4735
4736	output = &GetDeploymentsOutput{}
4737	req = c.newRequest(op, input, output)
4738	return
4739}
4740
4741// GetDeployments API operation for Amazon API Gateway.
4742//
4743// Gets information about a Deployments collection.
4744//
4745// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4746// with awserr.Error's Code and Message methods to get detailed information about
4747// the error.
4748//
4749// See the AWS API reference guide for Amazon API Gateway's
4750// API operation GetDeployments for usage and error information.
4751//
4752// Returned Error Types:
4753//   * BadRequestException
4754//   The submitted request is not valid, for example, the input is incomplete
4755//   or incorrect. See the accompanying error message for details.
4756//
4757//   * NotFoundException
4758//   The requested resource is not found. Make sure that the request URI is correct.
4759//
4760//   * UnauthorizedException
4761//   The request is denied because the caller has insufficient permissions.
4762//
4763//   * TooManyRequestsException
4764//   The request has reached its throttling limit. Retry after the specified time
4765//   period.
4766//
4767//   * ServiceUnavailableException
4768//   The requested service is not available. For details see the accompanying
4769//   error message. Retry after the specified time period.
4770//
4771func (c *APIGateway) GetDeployments(input *GetDeploymentsInput) (*GetDeploymentsOutput, error) {
4772	req, out := c.GetDeploymentsRequest(input)
4773	return out, req.Send()
4774}
4775
4776// GetDeploymentsWithContext is the same as GetDeployments with the addition of
4777// the ability to pass a context and additional request options.
4778//
4779// See GetDeployments for details on how to use this API operation.
4780//
4781// The context must be non-nil and will be used for request cancellation. If
4782// the context is nil a panic will occur. In the future the SDK may create
4783// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4784// for more information on using Contexts.
4785func (c *APIGateway) GetDeploymentsWithContext(ctx aws.Context, input *GetDeploymentsInput, opts ...request.Option) (*GetDeploymentsOutput, error) {
4786	req, out := c.GetDeploymentsRequest(input)
4787	req.SetContext(ctx)
4788	req.ApplyOptions(opts...)
4789	return out, req.Send()
4790}
4791
4792// GetDeploymentsPages iterates over the pages of a GetDeployments operation,
4793// calling the "fn" function with the response data for each page. To stop
4794// iterating, return false from the fn function.
4795//
4796// See GetDeployments method for more information on how to use this operation.
4797//
4798// Note: This operation can generate multiple requests to a service.
4799//
4800//    // Example iterating over at most 3 pages of a GetDeployments operation.
4801//    pageNum := 0
4802//    err := client.GetDeploymentsPages(params,
4803//        func(page *apigateway.GetDeploymentsOutput, lastPage bool) bool {
4804//            pageNum++
4805//            fmt.Println(page)
4806//            return pageNum <= 3
4807//        })
4808//
4809func (c *APIGateway) GetDeploymentsPages(input *GetDeploymentsInput, fn func(*GetDeploymentsOutput, bool) bool) error {
4810	return c.GetDeploymentsPagesWithContext(aws.BackgroundContext(), input, fn)
4811}
4812
4813// GetDeploymentsPagesWithContext same as GetDeploymentsPages except
4814// it takes a Context and allows setting request options on the pages.
4815//
4816// The context must be non-nil and will be used for request cancellation. If
4817// the context is nil a panic will occur. In the future the SDK may create
4818// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4819// for more information on using Contexts.
4820func (c *APIGateway) GetDeploymentsPagesWithContext(ctx aws.Context, input *GetDeploymentsInput, fn func(*GetDeploymentsOutput, bool) bool, opts ...request.Option) error {
4821	p := request.Pagination{
4822		NewRequest: func() (*request.Request, error) {
4823			var inCpy *GetDeploymentsInput
4824			if input != nil {
4825				tmp := *input
4826				inCpy = &tmp
4827			}
4828			req, _ := c.GetDeploymentsRequest(inCpy)
4829			req.SetContext(ctx)
4830			req.ApplyOptions(opts...)
4831			return req, nil
4832		},
4833	}
4834
4835	for p.Next() {
4836		if !fn(p.Page().(*GetDeploymentsOutput), !p.HasNextPage()) {
4837			break
4838		}
4839	}
4840
4841	return p.Err()
4842}
4843
4844const opGetDocumentationPart = "GetDocumentationPart"
4845
4846// GetDocumentationPartRequest generates a "aws/request.Request" representing the
4847// client's request for the GetDocumentationPart operation. The "output" return
4848// value will be populated with the request's response once the request completes
4849// successfully.
4850//
4851// Use "Send" method on the returned Request to send the API call to the service.
4852// the "output" return value is not valid until after Send returns without error.
4853//
4854// See GetDocumentationPart for more information on using the GetDocumentationPart
4855// API call, and error handling.
4856//
4857// This method is useful when you want to inject custom logic or configuration
4858// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4859//
4860//
4861//    // Example sending a request using the GetDocumentationPartRequest method.
4862//    req, resp := client.GetDocumentationPartRequest(params)
4863//
4864//    err := req.Send()
4865//    if err == nil { // resp is now filled
4866//        fmt.Println(resp)
4867//    }
4868func (c *APIGateway) GetDocumentationPartRequest(input *GetDocumentationPartInput) (req *request.Request, output *DocumentationPart) {
4869	op := &request.Operation{
4870		Name:       opGetDocumentationPart,
4871		HTTPMethod: "GET",
4872		HTTPPath:   "/restapis/{restapi_id}/documentation/parts/{part_id}",
4873	}
4874
4875	if input == nil {
4876		input = &GetDocumentationPartInput{}
4877	}
4878
4879	output = &DocumentationPart{}
4880	req = c.newRequest(op, input, output)
4881	return
4882}
4883
4884// GetDocumentationPart API operation for Amazon API Gateway.
4885//
4886// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4887// with awserr.Error's Code and Message methods to get detailed information about
4888// the error.
4889//
4890// See the AWS API reference guide for Amazon API Gateway's
4891// API operation GetDocumentationPart for usage and error information.
4892//
4893// Returned Error Types:
4894//   * BadRequestException
4895//   The submitted request is not valid, for example, the input is incomplete
4896//   or incorrect. See the accompanying error message for details.
4897//
4898//   * NotFoundException
4899//   The requested resource is not found. Make sure that the request URI is correct.
4900//
4901//   * UnauthorizedException
4902//   The request is denied because the caller has insufficient permissions.
4903//
4904//   * TooManyRequestsException
4905//   The request has reached its throttling limit. Retry after the specified time
4906//   period.
4907//
4908func (c *APIGateway) GetDocumentationPart(input *GetDocumentationPartInput) (*DocumentationPart, error) {
4909	req, out := c.GetDocumentationPartRequest(input)
4910	return out, req.Send()
4911}
4912
4913// GetDocumentationPartWithContext is the same as GetDocumentationPart with the addition of
4914// the ability to pass a context and additional request options.
4915//
4916// See GetDocumentationPart for details on how to use this API operation.
4917//
4918// The context must be non-nil and will be used for request cancellation. If
4919// the context is nil a panic will occur. In the future the SDK may create
4920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4921// for more information on using Contexts.
4922func (c *APIGateway) GetDocumentationPartWithContext(ctx aws.Context, input *GetDocumentationPartInput, opts ...request.Option) (*DocumentationPart, error) {
4923	req, out := c.GetDocumentationPartRequest(input)
4924	req.SetContext(ctx)
4925	req.ApplyOptions(opts...)
4926	return out, req.Send()
4927}
4928
4929const opGetDocumentationParts = "GetDocumentationParts"
4930
4931// GetDocumentationPartsRequest generates a "aws/request.Request" representing the
4932// client's request for the GetDocumentationParts operation. The "output" return
4933// value will be populated with the request's response once the request completes
4934// successfully.
4935//
4936// Use "Send" method on the returned Request to send the API call to the service.
4937// the "output" return value is not valid until after Send returns without error.
4938//
4939// See GetDocumentationParts for more information on using the GetDocumentationParts
4940// API call, and error handling.
4941//
4942// This method is useful when you want to inject custom logic or configuration
4943// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4944//
4945//
4946//    // Example sending a request using the GetDocumentationPartsRequest method.
4947//    req, resp := client.GetDocumentationPartsRequest(params)
4948//
4949//    err := req.Send()
4950//    if err == nil { // resp is now filled
4951//        fmt.Println(resp)
4952//    }
4953func (c *APIGateway) GetDocumentationPartsRequest(input *GetDocumentationPartsInput) (req *request.Request, output *GetDocumentationPartsOutput) {
4954	op := &request.Operation{
4955		Name:       opGetDocumentationParts,
4956		HTTPMethod: "GET",
4957		HTTPPath:   "/restapis/{restapi_id}/documentation/parts",
4958	}
4959
4960	if input == nil {
4961		input = &GetDocumentationPartsInput{}
4962	}
4963
4964	output = &GetDocumentationPartsOutput{}
4965	req = c.newRequest(op, input, output)
4966	return
4967}
4968
4969// GetDocumentationParts API operation for Amazon API Gateway.
4970//
4971// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4972// with awserr.Error's Code and Message methods to get detailed information about
4973// the error.
4974//
4975// See the AWS API reference guide for Amazon API Gateway's
4976// API operation GetDocumentationParts for usage and error information.
4977//
4978// Returned Error Types:
4979//   * BadRequestException
4980//   The submitted request is not valid, for example, the input is incomplete
4981//   or incorrect. See the accompanying error message for details.
4982//
4983//   * NotFoundException
4984//   The requested resource is not found. Make sure that the request URI is correct.
4985//
4986//   * UnauthorizedException
4987//   The request is denied because the caller has insufficient permissions.
4988//
4989//   * TooManyRequestsException
4990//   The request has reached its throttling limit. Retry after the specified time
4991//   period.
4992//
4993func (c *APIGateway) GetDocumentationParts(input *GetDocumentationPartsInput) (*GetDocumentationPartsOutput, error) {
4994	req, out := c.GetDocumentationPartsRequest(input)
4995	return out, req.Send()
4996}
4997
4998// GetDocumentationPartsWithContext is the same as GetDocumentationParts with the addition of
4999// the ability to pass a context and additional request options.
5000//
5001// See GetDocumentationParts for details on how to use this API operation.
5002//
5003// The context must be non-nil and will be used for request cancellation. If
5004// the context is nil a panic will occur. In the future the SDK may create
5005// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5006// for more information on using Contexts.
5007func (c *APIGateway) GetDocumentationPartsWithContext(ctx aws.Context, input *GetDocumentationPartsInput, opts ...request.Option) (*GetDocumentationPartsOutput, error) {
5008	req, out := c.GetDocumentationPartsRequest(input)
5009	req.SetContext(ctx)
5010	req.ApplyOptions(opts...)
5011	return out, req.Send()
5012}
5013
5014const opGetDocumentationVersion = "GetDocumentationVersion"
5015
5016// GetDocumentationVersionRequest generates a "aws/request.Request" representing the
5017// client's request for the GetDocumentationVersion operation. The "output" return
5018// value will be populated with the request's response once the request completes
5019// successfully.
5020//
5021// Use "Send" method on the returned Request to send the API call to the service.
5022// the "output" return value is not valid until after Send returns without error.
5023//
5024// See GetDocumentationVersion for more information on using the GetDocumentationVersion
5025// API call, and error handling.
5026//
5027// This method is useful when you want to inject custom logic or configuration
5028// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5029//
5030//
5031//    // Example sending a request using the GetDocumentationVersionRequest method.
5032//    req, resp := client.GetDocumentationVersionRequest(params)
5033//
5034//    err := req.Send()
5035//    if err == nil { // resp is now filled
5036//        fmt.Println(resp)
5037//    }
5038func (c *APIGateway) GetDocumentationVersionRequest(input *GetDocumentationVersionInput) (req *request.Request, output *DocumentationVersion) {
5039	op := &request.Operation{
5040		Name:       opGetDocumentationVersion,
5041		HTTPMethod: "GET",
5042		HTTPPath:   "/restapis/{restapi_id}/documentation/versions/{doc_version}",
5043	}
5044
5045	if input == nil {
5046		input = &GetDocumentationVersionInput{}
5047	}
5048
5049	output = &DocumentationVersion{}
5050	req = c.newRequest(op, input, output)
5051	return
5052}
5053
5054// GetDocumentationVersion API operation for Amazon API Gateway.
5055//
5056// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5057// with awserr.Error's Code and Message methods to get detailed information about
5058// the error.
5059//
5060// See the AWS API reference guide for Amazon API Gateway's
5061// API operation GetDocumentationVersion for usage and error information.
5062//
5063// Returned Error Types:
5064//   * UnauthorizedException
5065//   The request is denied because the caller has insufficient permissions.
5066//
5067//   * NotFoundException
5068//   The requested resource is not found. Make sure that the request URI is correct.
5069//
5070//   * TooManyRequestsException
5071//   The request has reached its throttling limit. Retry after the specified time
5072//   period.
5073//
5074func (c *APIGateway) GetDocumentationVersion(input *GetDocumentationVersionInput) (*DocumentationVersion, error) {
5075	req, out := c.GetDocumentationVersionRequest(input)
5076	return out, req.Send()
5077}
5078
5079// GetDocumentationVersionWithContext is the same as GetDocumentationVersion with the addition of
5080// the ability to pass a context and additional request options.
5081//
5082// See GetDocumentationVersion for details on how to use this API operation.
5083//
5084// The context must be non-nil and will be used for request cancellation. If
5085// the context is nil a panic will occur. In the future the SDK may create
5086// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5087// for more information on using Contexts.
5088func (c *APIGateway) GetDocumentationVersionWithContext(ctx aws.Context, input *GetDocumentationVersionInput, opts ...request.Option) (*DocumentationVersion, error) {
5089	req, out := c.GetDocumentationVersionRequest(input)
5090	req.SetContext(ctx)
5091	req.ApplyOptions(opts...)
5092	return out, req.Send()
5093}
5094
5095const opGetDocumentationVersions = "GetDocumentationVersions"
5096
5097// GetDocumentationVersionsRequest generates a "aws/request.Request" representing the
5098// client's request for the GetDocumentationVersions operation. The "output" return
5099// value will be populated with the request's response once the request completes
5100// successfully.
5101//
5102// Use "Send" method on the returned Request to send the API call to the service.
5103// the "output" return value is not valid until after Send returns without error.
5104//
5105// See GetDocumentationVersions for more information on using the GetDocumentationVersions
5106// API call, and error handling.
5107//
5108// This method is useful when you want to inject custom logic or configuration
5109// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5110//
5111//
5112//    // Example sending a request using the GetDocumentationVersionsRequest method.
5113//    req, resp := client.GetDocumentationVersionsRequest(params)
5114//
5115//    err := req.Send()
5116//    if err == nil { // resp is now filled
5117//        fmt.Println(resp)
5118//    }
5119func (c *APIGateway) GetDocumentationVersionsRequest(input *GetDocumentationVersionsInput) (req *request.Request, output *GetDocumentationVersionsOutput) {
5120	op := &request.Operation{
5121		Name:       opGetDocumentationVersions,
5122		HTTPMethod: "GET",
5123		HTTPPath:   "/restapis/{restapi_id}/documentation/versions",
5124	}
5125
5126	if input == nil {
5127		input = &GetDocumentationVersionsInput{}
5128	}
5129
5130	output = &GetDocumentationVersionsOutput{}
5131	req = c.newRequest(op, input, output)
5132	return
5133}
5134
5135// GetDocumentationVersions API operation for Amazon API Gateway.
5136//
5137// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5138// with awserr.Error's Code and Message methods to get detailed information about
5139// the error.
5140//
5141// See the AWS API reference guide for Amazon API Gateway's
5142// API operation GetDocumentationVersions for usage and error information.
5143//
5144// Returned Error Types:
5145//   * BadRequestException
5146//   The submitted request is not valid, for example, the input is incomplete
5147//   or incorrect. See the accompanying error message for details.
5148//
5149//   * UnauthorizedException
5150//   The request is denied because the caller has insufficient permissions.
5151//
5152//   * NotFoundException
5153//   The requested resource is not found. Make sure that the request URI is correct.
5154//
5155//   * TooManyRequestsException
5156//   The request has reached its throttling limit. Retry after the specified time
5157//   period.
5158//
5159func (c *APIGateway) GetDocumentationVersions(input *GetDocumentationVersionsInput) (*GetDocumentationVersionsOutput, error) {
5160	req, out := c.GetDocumentationVersionsRequest(input)
5161	return out, req.Send()
5162}
5163
5164// GetDocumentationVersionsWithContext is the same as GetDocumentationVersions with the addition of
5165// the ability to pass a context and additional request options.
5166//
5167// See GetDocumentationVersions for details on how to use this API operation.
5168//
5169// The context must be non-nil and will be used for request cancellation. If
5170// the context is nil a panic will occur. In the future the SDK may create
5171// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5172// for more information on using Contexts.
5173func (c *APIGateway) GetDocumentationVersionsWithContext(ctx aws.Context, input *GetDocumentationVersionsInput, opts ...request.Option) (*GetDocumentationVersionsOutput, error) {
5174	req, out := c.GetDocumentationVersionsRequest(input)
5175	req.SetContext(ctx)
5176	req.ApplyOptions(opts...)
5177	return out, req.Send()
5178}
5179
5180const opGetDomainName = "GetDomainName"
5181
5182// GetDomainNameRequest generates a "aws/request.Request" representing the
5183// client's request for the GetDomainName operation. The "output" return
5184// value will be populated with the request's response once the request completes
5185// successfully.
5186//
5187// Use "Send" method on the returned Request to send the API call to the service.
5188// the "output" return value is not valid until after Send returns without error.
5189//
5190// See GetDomainName for more information on using the GetDomainName
5191// API call, and error handling.
5192//
5193// This method is useful when you want to inject custom logic or configuration
5194// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5195//
5196//
5197//    // Example sending a request using the GetDomainNameRequest method.
5198//    req, resp := client.GetDomainNameRequest(params)
5199//
5200//    err := req.Send()
5201//    if err == nil { // resp is now filled
5202//        fmt.Println(resp)
5203//    }
5204func (c *APIGateway) GetDomainNameRequest(input *GetDomainNameInput) (req *request.Request, output *DomainName) {
5205	op := &request.Operation{
5206		Name:       opGetDomainName,
5207		HTTPMethod: "GET",
5208		HTTPPath:   "/domainnames/{domain_name}",
5209	}
5210
5211	if input == nil {
5212		input = &GetDomainNameInput{}
5213	}
5214
5215	output = &DomainName{}
5216	req = c.newRequest(op, input, output)
5217	return
5218}
5219
5220// GetDomainName API operation for Amazon API Gateway.
5221//
5222// Represents a domain name that is contained in a simpler, more intuitive URL
5223// that can be called.
5224//
5225// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5226// with awserr.Error's Code and Message methods to get detailed information about
5227// the error.
5228//
5229// See the AWS API reference guide for Amazon API Gateway's
5230// API operation GetDomainName for usage and error information.
5231//
5232// Returned Error Types:
5233//   * BadRequestException
5234//   The submitted request is not valid, for example, the input is incomplete
5235//   or incorrect. See the accompanying error message for details.
5236//
5237//   * NotFoundException
5238//   The requested resource is not found. Make sure that the request URI is correct.
5239//
5240//   * UnauthorizedException
5241//   The request is denied because the caller has insufficient permissions.
5242//
5243//   * TooManyRequestsException
5244//   The request has reached its throttling limit. Retry after the specified time
5245//   period.
5246//
5247func (c *APIGateway) GetDomainName(input *GetDomainNameInput) (*DomainName, error) {
5248	req, out := c.GetDomainNameRequest(input)
5249	return out, req.Send()
5250}
5251
5252// GetDomainNameWithContext is the same as GetDomainName with the addition of
5253// the ability to pass a context and additional request options.
5254//
5255// See GetDomainName for details on how to use this API operation.
5256//
5257// The context must be non-nil and will be used for request cancellation. If
5258// the context is nil a panic will occur. In the future the SDK may create
5259// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5260// for more information on using Contexts.
5261func (c *APIGateway) GetDomainNameWithContext(ctx aws.Context, input *GetDomainNameInput, opts ...request.Option) (*DomainName, error) {
5262	req, out := c.GetDomainNameRequest(input)
5263	req.SetContext(ctx)
5264	req.ApplyOptions(opts...)
5265	return out, req.Send()
5266}
5267
5268const opGetDomainNames = "GetDomainNames"
5269
5270// GetDomainNamesRequest generates a "aws/request.Request" representing the
5271// client's request for the GetDomainNames operation. The "output" return
5272// value will be populated with the request's response once the request completes
5273// successfully.
5274//
5275// Use "Send" method on the returned Request to send the API call to the service.
5276// the "output" return value is not valid until after Send returns without error.
5277//
5278// See GetDomainNames for more information on using the GetDomainNames
5279// API call, and error handling.
5280//
5281// This method is useful when you want to inject custom logic or configuration
5282// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5283//
5284//
5285//    // Example sending a request using the GetDomainNamesRequest method.
5286//    req, resp := client.GetDomainNamesRequest(params)
5287//
5288//    err := req.Send()
5289//    if err == nil { // resp is now filled
5290//        fmt.Println(resp)
5291//    }
5292func (c *APIGateway) GetDomainNamesRequest(input *GetDomainNamesInput) (req *request.Request, output *GetDomainNamesOutput) {
5293	op := &request.Operation{
5294		Name:       opGetDomainNames,
5295		HTTPMethod: "GET",
5296		HTTPPath:   "/domainnames",
5297		Paginator: &request.Paginator{
5298			InputTokens:     []string{"position"},
5299			OutputTokens:    []string{"position"},
5300			LimitToken:      "limit",
5301			TruncationToken: "",
5302		},
5303	}
5304
5305	if input == nil {
5306		input = &GetDomainNamesInput{}
5307	}
5308
5309	output = &GetDomainNamesOutput{}
5310	req = c.newRequest(op, input, output)
5311	return
5312}
5313
5314// GetDomainNames API operation for Amazon API Gateway.
5315//
5316// Represents a collection of DomainName resources.
5317//
5318// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5319// with awserr.Error's Code and Message methods to get detailed information about
5320// the error.
5321//
5322// See the AWS API reference guide for Amazon API Gateway's
5323// API operation GetDomainNames for usage and error information.
5324//
5325// Returned Error Types:
5326//   * BadRequestException
5327//   The submitted request is not valid, for example, the input is incomplete
5328//   or incorrect. See the accompanying error message for details.
5329//
5330//   * NotFoundException
5331//   The requested resource is not found. Make sure that the request URI is correct.
5332//
5333//   * UnauthorizedException
5334//   The request is denied because the caller has insufficient permissions.
5335//
5336//   * TooManyRequestsException
5337//   The request has reached its throttling limit. Retry after the specified time
5338//   period.
5339//
5340func (c *APIGateway) GetDomainNames(input *GetDomainNamesInput) (*GetDomainNamesOutput, error) {
5341	req, out := c.GetDomainNamesRequest(input)
5342	return out, req.Send()
5343}
5344
5345// GetDomainNamesWithContext is the same as GetDomainNames with the addition of
5346// the ability to pass a context and additional request options.
5347//
5348// See GetDomainNames for details on how to use this API operation.
5349//
5350// The context must be non-nil and will be used for request cancellation. If
5351// the context is nil a panic will occur. In the future the SDK may create
5352// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5353// for more information on using Contexts.
5354func (c *APIGateway) GetDomainNamesWithContext(ctx aws.Context, input *GetDomainNamesInput, opts ...request.Option) (*GetDomainNamesOutput, error) {
5355	req, out := c.GetDomainNamesRequest(input)
5356	req.SetContext(ctx)
5357	req.ApplyOptions(opts...)
5358	return out, req.Send()
5359}
5360
5361// GetDomainNamesPages iterates over the pages of a GetDomainNames operation,
5362// calling the "fn" function with the response data for each page. To stop
5363// iterating, return false from the fn function.
5364//
5365// See GetDomainNames method for more information on how to use this operation.
5366//
5367// Note: This operation can generate multiple requests to a service.
5368//
5369//    // Example iterating over at most 3 pages of a GetDomainNames operation.
5370//    pageNum := 0
5371//    err := client.GetDomainNamesPages(params,
5372//        func(page *apigateway.GetDomainNamesOutput, lastPage bool) bool {
5373//            pageNum++
5374//            fmt.Println(page)
5375//            return pageNum <= 3
5376//        })
5377//
5378func (c *APIGateway) GetDomainNamesPages(input *GetDomainNamesInput, fn func(*GetDomainNamesOutput, bool) bool) error {
5379	return c.GetDomainNamesPagesWithContext(aws.BackgroundContext(), input, fn)
5380}
5381
5382// GetDomainNamesPagesWithContext same as GetDomainNamesPages except
5383// it takes a Context and allows setting request options on the pages.
5384//
5385// The context must be non-nil and will be used for request cancellation. If
5386// the context is nil a panic will occur. In the future the SDK may create
5387// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5388// for more information on using Contexts.
5389func (c *APIGateway) GetDomainNamesPagesWithContext(ctx aws.Context, input *GetDomainNamesInput, fn func(*GetDomainNamesOutput, bool) bool, opts ...request.Option) error {
5390	p := request.Pagination{
5391		NewRequest: func() (*request.Request, error) {
5392			var inCpy *GetDomainNamesInput
5393			if input != nil {
5394				tmp := *input
5395				inCpy = &tmp
5396			}
5397			req, _ := c.GetDomainNamesRequest(inCpy)
5398			req.SetContext(ctx)
5399			req.ApplyOptions(opts...)
5400			return req, nil
5401		},
5402	}
5403
5404	for p.Next() {
5405		if !fn(p.Page().(*GetDomainNamesOutput), !p.HasNextPage()) {
5406			break
5407		}
5408	}
5409
5410	return p.Err()
5411}
5412
5413const opGetExport = "GetExport"
5414
5415// GetExportRequest generates a "aws/request.Request" representing the
5416// client's request for the GetExport operation. The "output" return
5417// value will be populated with the request's response once the request completes
5418// successfully.
5419//
5420// Use "Send" method on the returned Request to send the API call to the service.
5421// the "output" return value is not valid until after Send returns without error.
5422//
5423// See GetExport for more information on using the GetExport
5424// API call, and error handling.
5425//
5426// This method is useful when you want to inject custom logic or configuration
5427// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5428//
5429//
5430//    // Example sending a request using the GetExportRequest method.
5431//    req, resp := client.GetExportRequest(params)
5432//
5433//    err := req.Send()
5434//    if err == nil { // resp is now filled
5435//        fmt.Println(resp)
5436//    }
5437func (c *APIGateway) GetExportRequest(input *GetExportInput) (req *request.Request, output *GetExportOutput) {
5438	op := &request.Operation{
5439		Name:       opGetExport,
5440		HTTPMethod: "GET",
5441		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/exports/{export_type}",
5442	}
5443
5444	if input == nil {
5445		input = &GetExportInput{}
5446	}
5447
5448	output = &GetExportOutput{}
5449	req = c.newRequest(op, input, output)
5450	return
5451}
5452
5453// GetExport API operation for Amazon API Gateway.
5454//
5455// Exports a deployed version of a RestApi in a specified format.
5456//
5457// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5458// with awserr.Error's Code and Message methods to get detailed information about
5459// the error.
5460//
5461// See the AWS API reference guide for Amazon API Gateway's
5462// API operation GetExport for usage and error information.
5463//
5464// Returned Error Types:
5465//   * BadRequestException
5466//   The submitted request is not valid, for example, the input is incomplete
5467//   or incorrect. See the accompanying error message for details.
5468//
5469//   * ConflictException
5470//   The request configuration has conflicts. For details, see the accompanying
5471//   error message.
5472//
5473//   * LimitExceededException
5474//   The request exceeded the rate limit. Retry after the specified time period.
5475//
5476//   * NotFoundException
5477//   The requested resource is not found. Make sure that the request URI is correct.
5478//
5479//   * UnauthorizedException
5480//   The request is denied because the caller has insufficient permissions.
5481//
5482//   * TooManyRequestsException
5483//   The request has reached its throttling limit. Retry after the specified time
5484//   period.
5485//
5486func (c *APIGateway) GetExport(input *GetExportInput) (*GetExportOutput, error) {
5487	req, out := c.GetExportRequest(input)
5488	return out, req.Send()
5489}
5490
5491// GetExportWithContext is the same as GetExport with the addition of
5492// the ability to pass a context and additional request options.
5493//
5494// See GetExport for details on how to use this API operation.
5495//
5496// The context must be non-nil and will be used for request cancellation. If
5497// the context is nil a panic will occur. In the future the SDK may create
5498// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5499// for more information on using Contexts.
5500func (c *APIGateway) GetExportWithContext(ctx aws.Context, input *GetExportInput, opts ...request.Option) (*GetExportOutput, error) {
5501	req, out := c.GetExportRequest(input)
5502	req.SetContext(ctx)
5503	req.ApplyOptions(opts...)
5504	return out, req.Send()
5505}
5506
5507const opGetGatewayResponse = "GetGatewayResponse"
5508
5509// GetGatewayResponseRequest generates a "aws/request.Request" representing the
5510// client's request for the GetGatewayResponse operation. The "output" return
5511// value will be populated with the request's response once the request completes
5512// successfully.
5513//
5514// Use "Send" method on the returned Request to send the API call to the service.
5515// the "output" return value is not valid until after Send returns without error.
5516//
5517// See GetGatewayResponse for more information on using the GetGatewayResponse
5518// API call, and error handling.
5519//
5520// This method is useful when you want to inject custom logic or configuration
5521// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5522//
5523//
5524//    // Example sending a request using the GetGatewayResponseRequest method.
5525//    req, resp := client.GetGatewayResponseRequest(params)
5526//
5527//    err := req.Send()
5528//    if err == nil { // resp is now filled
5529//        fmt.Println(resp)
5530//    }
5531func (c *APIGateway) GetGatewayResponseRequest(input *GetGatewayResponseInput) (req *request.Request, output *UpdateGatewayResponseOutput) {
5532	op := &request.Operation{
5533		Name:       opGetGatewayResponse,
5534		HTTPMethod: "GET",
5535		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
5536	}
5537
5538	if input == nil {
5539		input = &GetGatewayResponseInput{}
5540	}
5541
5542	output = &UpdateGatewayResponseOutput{}
5543	req = c.newRequest(op, input, output)
5544	return
5545}
5546
5547// GetGatewayResponse API operation for Amazon API Gateway.
5548//
5549// Gets a GatewayResponse of a specified response type on the given RestApi.
5550//
5551// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5552// with awserr.Error's Code and Message methods to get detailed information about
5553// the error.
5554//
5555// See the AWS API reference guide for Amazon API Gateway's
5556// API operation GetGatewayResponse for usage and error information.
5557//
5558// Returned Error Types:
5559//   * BadRequestException
5560//   The submitted request is not valid, for example, the input is incomplete
5561//   or incorrect. See the accompanying error message for details.
5562//
5563//   * NotFoundException
5564//   The requested resource is not found. Make sure that the request URI is correct.
5565//
5566//   * UnauthorizedException
5567//   The request is denied because the caller has insufficient permissions.
5568//
5569//   * TooManyRequestsException
5570//   The request has reached its throttling limit. Retry after the specified time
5571//   period.
5572//
5573func (c *APIGateway) GetGatewayResponse(input *GetGatewayResponseInput) (*UpdateGatewayResponseOutput, error) {
5574	req, out := c.GetGatewayResponseRequest(input)
5575	return out, req.Send()
5576}
5577
5578// GetGatewayResponseWithContext is the same as GetGatewayResponse with the addition of
5579// the ability to pass a context and additional request options.
5580//
5581// See GetGatewayResponse for details on how to use this API operation.
5582//
5583// The context must be non-nil and will be used for request cancellation. If
5584// the context is nil a panic will occur. In the future the SDK may create
5585// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5586// for more information on using Contexts.
5587func (c *APIGateway) GetGatewayResponseWithContext(ctx aws.Context, input *GetGatewayResponseInput, opts ...request.Option) (*UpdateGatewayResponseOutput, error) {
5588	req, out := c.GetGatewayResponseRequest(input)
5589	req.SetContext(ctx)
5590	req.ApplyOptions(opts...)
5591	return out, req.Send()
5592}
5593
5594const opGetGatewayResponses = "GetGatewayResponses"
5595
5596// GetGatewayResponsesRequest generates a "aws/request.Request" representing the
5597// client's request for the GetGatewayResponses operation. The "output" return
5598// value will be populated with the request's response once the request completes
5599// successfully.
5600//
5601// Use "Send" method on the returned Request to send the API call to the service.
5602// the "output" return value is not valid until after Send returns without error.
5603//
5604// See GetGatewayResponses for more information on using the GetGatewayResponses
5605// API call, and error handling.
5606//
5607// This method is useful when you want to inject custom logic or configuration
5608// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5609//
5610//
5611//    // Example sending a request using the GetGatewayResponsesRequest method.
5612//    req, resp := client.GetGatewayResponsesRequest(params)
5613//
5614//    err := req.Send()
5615//    if err == nil { // resp is now filled
5616//        fmt.Println(resp)
5617//    }
5618func (c *APIGateway) GetGatewayResponsesRequest(input *GetGatewayResponsesInput) (req *request.Request, output *GetGatewayResponsesOutput) {
5619	op := &request.Operation{
5620		Name:       opGetGatewayResponses,
5621		HTTPMethod: "GET",
5622		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses",
5623	}
5624
5625	if input == nil {
5626		input = &GetGatewayResponsesInput{}
5627	}
5628
5629	output = &GetGatewayResponsesOutput{}
5630	req = c.newRequest(op, input, output)
5631	return
5632}
5633
5634// GetGatewayResponses API operation for Amazon API Gateway.
5635//
5636// Gets the GatewayResponses collection on the given RestApi. If an API developer
5637// has not added any definitions for gateway responses, the result will be the
5638// API Gateway-generated default GatewayResponses collection for the supported
5639// response types.
5640//
5641// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5642// with awserr.Error's Code and Message methods to get detailed information about
5643// the error.
5644//
5645// See the AWS API reference guide for Amazon API Gateway's
5646// API operation GetGatewayResponses for usage and error information.
5647//
5648// Returned Error Types:
5649//   * BadRequestException
5650//   The submitted request is not valid, for example, the input is incomplete
5651//   or incorrect. See the accompanying error message for details.
5652//
5653//   * NotFoundException
5654//   The requested resource is not found. Make sure that the request URI is correct.
5655//
5656//   * UnauthorizedException
5657//   The request is denied because the caller has insufficient permissions.
5658//
5659//   * TooManyRequestsException
5660//   The request has reached its throttling limit. Retry after the specified time
5661//   period.
5662//
5663func (c *APIGateway) GetGatewayResponses(input *GetGatewayResponsesInput) (*GetGatewayResponsesOutput, error) {
5664	req, out := c.GetGatewayResponsesRequest(input)
5665	return out, req.Send()
5666}
5667
5668// GetGatewayResponsesWithContext is the same as GetGatewayResponses with the addition of
5669// the ability to pass a context and additional request options.
5670//
5671// See GetGatewayResponses for details on how to use this API operation.
5672//
5673// The context must be non-nil and will be used for request cancellation. If
5674// the context is nil a panic will occur. In the future the SDK may create
5675// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5676// for more information on using Contexts.
5677func (c *APIGateway) GetGatewayResponsesWithContext(ctx aws.Context, input *GetGatewayResponsesInput, opts ...request.Option) (*GetGatewayResponsesOutput, error) {
5678	req, out := c.GetGatewayResponsesRequest(input)
5679	req.SetContext(ctx)
5680	req.ApplyOptions(opts...)
5681	return out, req.Send()
5682}
5683
5684const opGetIntegration = "GetIntegration"
5685
5686// GetIntegrationRequest generates a "aws/request.Request" representing the
5687// client's request for the GetIntegration operation. The "output" return
5688// value will be populated with the request's response once the request completes
5689// successfully.
5690//
5691// Use "Send" method on the returned Request to send the API call to the service.
5692// the "output" return value is not valid until after Send returns without error.
5693//
5694// See GetIntegration for more information on using the GetIntegration
5695// API call, and error handling.
5696//
5697// This method is useful when you want to inject custom logic or configuration
5698// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5699//
5700//
5701//    // Example sending a request using the GetIntegrationRequest method.
5702//    req, resp := client.GetIntegrationRequest(params)
5703//
5704//    err := req.Send()
5705//    if err == nil { // resp is now filled
5706//        fmt.Println(resp)
5707//    }
5708func (c *APIGateway) GetIntegrationRequest(input *GetIntegrationInput) (req *request.Request, output *Integration) {
5709	op := &request.Operation{
5710		Name:       opGetIntegration,
5711		HTTPMethod: "GET",
5712		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
5713	}
5714
5715	if input == nil {
5716		input = &GetIntegrationInput{}
5717	}
5718
5719	output = &Integration{}
5720	req = c.newRequest(op, input, output)
5721	return
5722}
5723
5724// GetIntegration API operation for Amazon API Gateway.
5725//
5726// Get the integration settings.
5727//
5728// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5729// with awserr.Error's Code and Message methods to get detailed information about
5730// the error.
5731//
5732// See the AWS API reference guide for Amazon API Gateway's
5733// API operation GetIntegration for usage and error information.
5734//
5735// Returned Error Types:
5736//   * BadRequestException
5737//   The submitted request is not valid, for example, the input is incomplete
5738//   or incorrect. See the accompanying error message for details.
5739//
5740//   * NotFoundException
5741//   The requested resource is not found. Make sure that the request URI is correct.
5742//
5743//   * UnauthorizedException
5744//   The request is denied because the caller has insufficient permissions.
5745//
5746//   * TooManyRequestsException
5747//   The request has reached its throttling limit. Retry after the specified time
5748//   period.
5749//
5750func (c *APIGateway) GetIntegration(input *GetIntegrationInput) (*Integration, error) {
5751	req, out := c.GetIntegrationRequest(input)
5752	return out, req.Send()
5753}
5754
5755// GetIntegrationWithContext is the same as GetIntegration with the addition of
5756// the ability to pass a context and additional request options.
5757//
5758// See GetIntegration for details on how to use this API operation.
5759//
5760// The context must be non-nil and will be used for request cancellation. If
5761// the context is nil a panic will occur. In the future the SDK may create
5762// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5763// for more information on using Contexts.
5764func (c *APIGateway) GetIntegrationWithContext(ctx aws.Context, input *GetIntegrationInput, opts ...request.Option) (*Integration, error) {
5765	req, out := c.GetIntegrationRequest(input)
5766	req.SetContext(ctx)
5767	req.ApplyOptions(opts...)
5768	return out, req.Send()
5769}
5770
5771const opGetIntegrationResponse = "GetIntegrationResponse"
5772
5773// GetIntegrationResponseRequest generates a "aws/request.Request" representing the
5774// client's request for the GetIntegrationResponse operation. The "output" return
5775// value will be populated with the request's response once the request completes
5776// successfully.
5777//
5778// Use "Send" method on the returned Request to send the API call to the service.
5779// the "output" return value is not valid until after Send returns without error.
5780//
5781// See GetIntegrationResponse for more information on using the GetIntegrationResponse
5782// API call, and error handling.
5783//
5784// This method is useful when you want to inject custom logic or configuration
5785// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5786//
5787//
5788//    // Example sending a request using the GetIntegrationResponseRequest method.
5789//    req, resp := client.GetIntegrationResponseRequest(params)
5790//
5791//    err := req.Send()
5792//    if err == nil { // resp is now filled
5793//        fmt.Println(resp)
5794//    }
5795func (c *APIGateway) GetIntegrationResponseRequest(input *GetIntegrationResponseInput) (req *request.Request, output *IntegrationResponse) {
5796	op := &request.Operation{
5797		Name:       opGetIntegrationResponse,
5798		HTTPMethod: "GET",
5799		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
5800	}
5801
5802	if input == nil {
5803		input = &GetIntegrationResponseInput{}
5804	}
5805
5806	output = &IntegrationResponse{}
5807	req = c.newRequest(op, input, output)
5808	return
5809}
5810
5811// GetIntegrationResponse API operation for Amazon API Gateway.
5812//
5813// Represents a get integration response.
5814//
5815// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5816// with awserr.Error's Code and Message methods to get detailed information about
5817// the error.
5818//
5819// See the AWS API reference guide for Amazon API Gateway's
5820// API operation GetIntegrationResponse for usage and error information.
5821//
5822// Returned Error Types:
5823//   * BadRequestException
5824//   The submitted request is not valid, for example, the input is incomplete
5825//   or incorrect. See the accompanying error message for details.
5826//
5827//   * NotFoundException
5828//   The requested resource is not found. Make sure that the request URI is correct.
5829//
5830//   * UnauthorizedException
5831//   The request is denied because the caller has insufficient permissions.
5832//
5833//   * TooManyRequestsException
5834//   The request has reached its throttling limit. Retry after the specified time
5835//   period.
5836//
5837func (c *APIGateway) GetIntegrationResponse(input *GetIntegrationResponseInput) (*IntegrationResponse, error) {
5838	req, out := c.GetIntegrationResponseRequest(input)
5839	return out, req.Send()
5840}
5841
5842// GetIntegrationResponseWithContext is the same as GetIntegrationResponse with the addition of
5843// the ability to pass a context and additional request options.
5844//
5845// See GetIntegrationResponse for details on how to use this API operation.
5846//
5847// The context must be non-nil and will be used for request cancellation. If
5848// the context is nil a panic will occur. In the future the SDK may create
5849// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5850// for more information on using Contexts.
5851func (c *APIGateway) GetIntegrationResponseWithContext(ctx aws.Context, input *GetIntegrationResponseInput, opts ...request.Option) (*IntegrationResponse, error) {
5852	req, out := c.GetIntegrationResponseRequest(input)
5853	req.SetContext(ctx)
5854	req.ApplyOptions(opts...)
5855	return out, req.Send()
5856}
5857
5858const opGetMethod = "GetMethod"
5859
5860// GetMethodRequest generates a "aws/request.Request" representing the
5861// client's request for the GetMethod operation. The "output" return
5862// value will be populated with the request's response once the request completes
5863// successfully.
5864//
5865// Use "Send" method on the returned Request to send the API call to the service.
5866// the "output" return value is not valid until after Send returns without error.
5867//
5868// See GetMethod for more information on using the GetMethod
5869// API call, and error handling.
5870//
5871// This method is useful when you want to inject custom logic or configuration
5872// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5873//
5874//
5875//    // Example sending a request using the GetMethodRequest method.
5876//    req, resp := client.GetMethodRequest(params)
5877//
5878//    err := req.Send()
5879//    if err == nil { // resp is now filled
5880//        fmt.Println(resp)
5881//    }
5882func (c *APIGateway) GetMethodRequest(input *GetMethodInput) (req *request.Request, output *Method) {
5883	op := &request.Operation{
5884		Name:       opGetMethod,
5885		HTTPMethod: "GET",
5886		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
5887	}
5888
5889	if input == nil {
5890		input = &GetMethodInput{}
5891	}
5892
5893	output = &Method{}
5894	req = c.newRequest(op, input, output)
5895	return
5896}
5897
5898// GetMethod API operation for Amazon API Gateway.
5899//
5900// Describe an existing Method resource.
5901//
5902// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5903// with awserr.Error's Code and Message methods to get detailed information about
5904// the error.
5905//
5906// See the AWS API reference guide for Amazon API Gateway's
5907// API operation GetMethod for usage and error information.
5908//
5909// Returned Error Types:
5910//   * UnauthorizedException
5911//   The request is denied because the caller has insufficient permissions.
5912//
5913//   * NotFoundException
5914//   The requested resource is not found. Make sure that the request URI is correct.
5915//
5916//   * TooManyRequestsException
5917//   The request has reached its throttling limit. Retry after the specified time
5918//   period.
5919//
5920func (c *APIGateway) GetMethod(input *GetMethodInput) (*Method, error) {
5921	req, out := c.GetMethodRequest(input)
5922	return out, req.Send()
5923}
5924
5925// GetMethodWithContext is the same as GetMethod with the addition of
5926// the ability to pass a context and additional request options.
5927//
5928// See GetMethod for details on how to use this API operation.
5929//
5930// The context must be non-nil and will be used for request cancellation. If
5931// the context is nil a panic will occur. In the future the SDK may create
5932// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5933// for more information on using Contexts.
5934func (c *APIGateway) GetMethodWithContext(ctx aws.Context, input *GetMethodInput, opts ...request.Option) (*Method, error) {
5935	req, out := c.GetMethodRequest(input)
5936	req.SetContext(ctx)
5937	req.ApplyOptions(opts...)
5938	return out, req.Send()
5939}
5940
5941const opGetMethodResponse = "GetMethodResponse"
5942
5943// GetMethodResponseRequest generates a "aws/request.Request" representing the
5944// client's request for the GetMethodResponse operation. The "output" return
5945// value will be populated with the request's response once the request completes
5946// successfully.
5947//
5948// Use "Send" method on the returned Request to send the API call to the service.
5949// the "output" return value is not valid until after Send returns without error.
5950//
5951// See GetMethodResponse for more information on using the GetMethodResponse
5952// API call, and error handling.
5953//
5954// This method is useful when you want to inject custom logic or configuration
5955// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5956//
5957//
5958//    // Example sending a request using the GetMethodResponseRequest method.
5959//    req, resp := client.GetMethodResponseRequest(params)
5960//
5961//    err := req.Send()
5962//    if err == nil { // resp is now filled
5963//        fmt.Println(resp)
5964//    }
5965func (c *APIGateway) GetMethodResponseRequest(input *GetMethodResponseInput) (req *request.Request, output *MethodResponse) {
5966	op := &request.Operation{
5967		Name:       opGetMethodResponse,
5968		HTTPMethod: "GET",
5969		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
5970	}
5971
5972	if input == nil {
5973		input = &GetMethodResponseInput{}
5974	}
5975
5976	output = &MethodResponse{}
5977	req = c.newRequest(op, input, output)
5978	return
5979}
5980
5981// GetMethodResponse API operation for Amazon API Gateway.
5982//
5983// Describes a MethodResponse resource.
5984//
5985// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5986// with awserr.Error's Code and Message methods to get detailed information about
5987// the error.
5988//
5989// See the AWS API reference guide for Amazon API Gateway's
5990// API operation GetMethodResponse for usage and error information.
5991//
5992// Returned Error Types:
5993//   * UnauthorizedException
5994//   The request is denied because the caller has insufficient permissions.
5995//
5996//   * NotFoundException
5997//   The requested resource is not found. Make sure that the request URI is correct.
5998//
5999//   * TooManyRequestsException
6000//   The request has reached its throttling limit. Retry after the specified time
6001//   period.
6002//
6003func (c *APIGateway) GetMethodResponse(input *GetMethodResponseInput) (*MethodResponse, error) {
6004	req, out := c.GetMethodResponseRequest(input)
6005	return out, req.Send()
6006}
6007
6008// GetMethodResponseWithContext is the same as GetMethodResponse with the addition of
6009// the ability to pass a context and additional request options.
6010//
6011// See GetMethodResponse for details on how to use this API operation.
6012//
6013// The context must be non-nil and will be used for request cancellation. If
6014// the context is nil a panic will occur. In the future the SDK may create
6015// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6016// for more information on using Contexts.
6017func (c *APIGateway) GetMethodResponseWithContext(ctx aws.Context, input *GetMethodResponseInput, opts ...request.Option) (*MethodResponse, error) {
6018	req, out := c.GetMethodResponseRequest(input)
6019	req.SetContext(ctx)
6020	req.ApplyOptions(opts...)
6021	return out, req.Send()
6022}
6023
6024const opGetModel = "GetModel"
6025
6026// GetModelRequest generates a "aws/request.Request" representing the
6027// client's request for the GetModel operation. The "output" return
6028// value will be populated with the request's response once the request completes
6029// successfully.
6030//
6031// Use "Send" method on the returned Request to send the API call to the service.
6032// the "output" return value is not valid until after Send returns without error.
6033//
6034// See GetModel for more information on using the GetModel
6035// API call, and error handling.
6036//
6037// This method is useful when you want to inject custom logic or configuration
6038// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6039//
6040//
6041//    // Example sending a request using the GetModelRequest method.
6042//    req, resp := client.GetModelRequest(params)
6043//
6044//    err := req.Send()
6045//    if err == nil { // resp is now filled
6046//        fmt.Println(resp)
6047//    }
6048func (c *APIGateway) GetModelRequest(input *GetModelInput) (req *request.Request, output *Model) {
6049	op := &request.Operation{
6050		Name:       opGetModel,
6051		HTTPMethod: "GET",
6052		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}",
6053	}
6054
6055	if input == nil {
6056		input = &GetModelInput{}
6057	}
6058
6059	output = &Model{}
6060	req = c.newRequest(op, input, output)
6061	return
6062}
6063
6064// GetModel API operation for Amazon API Gateway.
6065//
6066// Describes an existing model defined for a RestApi resource.
6067//
6068// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6069// with awserr.Error's Code and Message methods to get detailed information about
6070// the error.
6071//
6072// See the AWS API reference guide for Amazon API Gateway's
6073// API operation GetModel for usage and error information.
6074//
6075// Returned Error Types:
6076//   * BadRequestException
6077//   The submitted request is not valid, for example, the input is incomplete
6078//   or incorrect. See the accompanying error message for details.
6079//
6080//   * NotFoundException
6081//   The requested resource is not found. Make sure that the request URI is correct.
6082//
6083//   * UnauthorizedException
6084//   The request is denied because the caller has insufficient permissions.
6085//
6086//   * TooManyRequestsException
6087//   The request has reached its throttling limit. Retry after the specified time
6088//   period.
6089//
6090func (c *APIGateway) GetModel(input *GetModelInput) (*Model, error) {
6091	req, out := c.GetModelRequest(input)
6092	return out, req.Send()
6093}
6094
6095// GetModelWithContext is the same as GetModel with the addition of
6096// the ability to pass a context and additional request options.
6097//
6098// See GetModel for details on how to use this API operation.
6099//
6100// The context must be non-nil and will be used for request cancellation. If
6101// the context is nil a panic will occur. In the future the SDK may create
6102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6103// for more information on using Contexts.
6104func (c *APIGateway) GetModelWithContext(ctx aws.Context, input *GetModelInput, opts ...request.Option) (*Model, error) {
6105	req, out := c.GetModelRequest(input)
6106	req.SetContext(ctx)
6107	req.ApplyOptions(opts...)
6108	return out, req.Send()
6109}
6110
6111const opGetModelTemplate = "GetModelTemplate"
6112
6113// GetModelTemplateRequest generates a "aws/request.Request" representing the
6114// client's request for the GetModelTemplate operation. The "output" return
6115// value will be populated with the request's response once the request completes
6116// successfully.
6117//
6118// Use "Send" method on the returned Request to send the API call to the service.
6119// the "output" return value is not valid until after Send returns without error.
6120//
6121// See GetModelTemplate for more information on using the GetModelTemplate
6122// API call, and error handling.
6123//
6124// This method is useful when you want to inject custom logic or configuration
6125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6126//
6127//
6128//    // Example sending a request using the GetModelTemplateRequest method.
6129//    req, resp := client.GetModelTemplateRequest(params)
6130//
6131//    err := req.Send()
6132//    if err == nil { // resp is now filled
6133//        fmt.Println(resp)
6134//    }
6135func (c *APIGateway) GetModelTemplateRequest(input *GetModelTemplateInput) (req *request.Request, output *GetModelTemplateOutput) {
6136	op := &request.Operation{
6137		Name:       opGetModelTemplate,
6138		HTTPMethod: "GET",
6139		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}/default_template",
6140	}
6141
6142	if input == nil {
6143		input = &GetModelTemplateInput{}
6144	}
6145
6146	output = &GetModelTemplateOutput{}
6147	req = c.newRequest(op, input, output)
6148	return
6149}
6150
6151// GetModelTemplate API operation for Amazon API Gateway.
6152//
6153// Generates a sample mapping template that can be used to transform a payload
6154// into the structure of a model.
6155//
6156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6157// with awserr.Error's Code and Message methods to get detailed information about
6158// the error.
6159//
6160// See the AWS API reference guide for Amazon API Gateway's
6161// API operation GetModelTemplate for usage and error information.
6162//
6163// Returned Error Types:
6164//   * UnauthorizedException
6165//   The request is denied because the caller has insufficient permissions.
6166//
6167//   * NotFoundException
6168//   The requested resource is not found. Make sure that the request URI is correct.
6169//
6170//   * BadRequestException
6171//   The submitted request is not valid, for example, the input is incomplete
6172//   or incorrect. See the accompanying error message for details.
6173//
6174//   * TooManyRequestsException
6175//   The request has reached its throttling limit. Retry after the specified time
6176//   period.
6177//
6178func (c *APIGateway) GetModelTemplate(input *GetModelTemplateInput) (*GetModelTemplateOutput, error) {
6179	req, out := c.GetModelTemplateRequest(input)
6180	return out, req.Send()
6181}
6182
6183// GetModelTemplateWithContext is the same as GetModelTemplate with the addition of
6184// the ability to pass a context and additional request options.
6185//
6186// See GetModelTemplate for details on how to use this API operation.
6187//
6188// The context must be non-nil and will be used for request cancellation. If
6189// the context is nil a panic will occur. In the future the SDK may create
6190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6191// for more information on using Contexts.
6192func (c *APIGateway) GetModelTemplateWithContext(ctx aws.Context, input *GetModelTemplateInput, opts ...request.Option) (*GetModelTemplateOutput, error) {
6193	req, out := c.GetModelTemplateRequest(input)
6194	req.SetContext(ctx)
6195	req.ApplyOptions(opts...)
6196	return out, req.Send()
6197}
6198
6199const opGetModels = "GetModels"
6200
6201// GetModelsRequest generates a "aws/request.Request" representing the
6202// client's request for the GetModels operation. The "output" return
6203// value will be populated with the request's response once the request completes
6204// successfully.
6205//
6206// Use "Send" method on the returned Request to send the API call to the service.
6207// the "output" return value is not valid until after Send returns without error.
6208//
6209// See GetModels for more information on using the GetModels
6210// API call, and error handling.
6211//
6212// This method is useful when you want to inject custom logic or configuration
6213// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6214//
6215//
6216//    // Example sending a request using the GetModelsRequest method.
6217//    req, resp := client.GetModelsRequest(params)
6218//
6219//    err := req.Send()
6220//    if err == nil { // resp is now filled
6221//        fmt.Println(resp)
6222//    }
6223func (c *APIGateway) GetModelsRequest(input *GetModelsInput) (req *request.Request, output *GetModelsOutput) {
6224	op := &request.Operation{
6225		Name:       opGetModels,
6226		HTTPMethod: "GET",
6227		HTTPPath:   "/restapis/{restapi_id}/models",
6228		Paginator: &request.Paginator{
6229			InputTokens:     []string{"position"},
6230			OutputTokens:    []string{"position"},
6231			LimitToken:      "limit",
6232			TruncationToken: "",
6233		},
6234	}
6235
6236	if input == nil {
6237		input = &GetModelsInput{}
6238	}
6239
6240	output = &GetModelsOutput{}
6241	req = c.newRequest(op, input, output)
6242	return
6243}
6244
6245// GetModels API operation for Amazon API Gateway.
6246//
6247// Describes existing Models defined for a RestApi resource.
6248//
6249// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6250// with awserr.Error's Code and Message methods to get detailed information about
6251// the error.
6252//
6253// See the AWS API reference guide for Amazon API Gateway's
6254// API operation GetModels for usage and error information.
6255//
6256// Returned Error Types:
6257//   * BadRequestException
6258//   The submitted request is not valid, for example, the input is incomplete
6259//   or incorrect. See the accompanying error message for details.
6260//
6261//   * UnauthorizedException
6262//   The request is denied because the caller has insufficient permissions.
6263//
6264//   * NotFoundException
6265//   The requested resource is not found. Make sure that the request URI is correct.
6266//
6267//   * TooManyRequestsException
6268//   The request has reached its throttling limit. Retry after the specified time
6269//   period.
6270//
6271func (c *APIGateway) GetModels(input *GetModelsInput) (*GetModelsOutput, error) {
6272	req, out := c.GetModelsRequest(input)
6273	return out, req.Send()
6274}
6275
6276// GetModelsWithContext is the same as GetModels with the addition of
6277// the ability to pass a context and additional request options.
6278//
6279// See GetModels for details on how to use this API operation.
6280//
6281// The context must be non-nil and will be used for request cancellation. If
6282// the context is nil a panic will occur. In the future the SDK may create
6283// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6284// for more information on using Contexts.
6285func (c *APIGateway) GetModelsWithContext(ctx aws.Context, input *GetModelsInput, opts ...request.Option) (*GetModelsOutput, error) {
6286	req, out := c.GetModelsRequest(input)
6287	req.SetContext(ctx)
6288	req.ApplyOptions(opts...)
6289	return out, req.Send()
6290}
6291
6292// GetModelsPages iterates over the pages of a GetModels operation,
6293// calling the "fn" function with the response data for each page. To stop
6294// iterating, return false from the fn function.
6295//
6296// See GetModels method for more information on how to use this operation.
6297//
6298// Note: This operation can generate multiple requests to a service.
6299//
6300//    // Example iterating over at most 3 pages of a GetModels operation.
6301//    pageNum := 0
6302//    err := client.GetModelsPages(params,
6303//        func(page *apigateway.GetModelsOutput, lastPage bool) bool {
6304//            pageNum++
6305//            fmt.Println(page)
6306//            return pageNum <= 3
6307//        })
6308//
6309func (c *APIGateway) GetModelsPages(input *GetModelsInput, fn func(*GetModelsOutput, bool) bool) error {
6310	return c.GetModelsPagesWithContext(aws.BackgroundContext(), input, fn)
6311}
6312
6313// GetModelsPagesWithContext same as GetModelsPages except
6314// it takes a Context and allows setting request options on the pages.
6315//
6316// The context must be non-nil and will be used for request cancellation. If
6317// the context is nil a panic will occur. In the future the SDK may create
6318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6319// for more information on using Contexts.
6320func (c *APIGateway) GetModelsPagesWithContext(ctx aws.Context, input *GetModelsInput, fn func(*GetModelsOutput, bool) bool, opts ...request.Option) error {
6321	p := request.Pagination{
6322		NewRequest: func() (*request.Request, error) {
6323			var inCpy *GetModelsInput
6324			if input != nil {
6325				tmp := *input
6326				inCpy = &tmp
6327			}
6328			req, _ := c.GetModelsRequest(inCpy)
6329			req.SetContext(ctx)
6330			req.ApplyOptions(opts...)
6331			return req, nil
6332		},
6333	}
6334
6335	for p.Next() {
6336		if !fn(p.Page().(*GetModelsOutput), !p.HasNextPage()) {
6337			break
6338		}
6339	}
6340
6341	return p.Err()
6342}
6343
6344const opGetRequestValidator = "GetRequestValidator"
6345
6346// GetRequestValidatorRequest generates a "aws/request.Request" representing the
6347// client's request for the GetRequestValidator operation. The "output" return
6348// value will be populated with the request's response once the request completes
6349// successfully.
6350//
6351// Use "Send" method on the returned Request to send the API call to the service.
6352// the "output" return value is not valid until after Send returns without error.
6353//
6354// See GetRequestValidator for more information on using the GetRequestValidator
6355// API call, and error handling.
6356//
6357// This method is useful when you want to inject custom logic or configuration
6358// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6359//
6360//
6361//    // Example sending a request using the GetRequestValidatorRequest method.
6362//    req, resp := client.GetRequestValidatorRequest(params)
6363//
6364//    err := req.Send()
6365//    if err == nil { // resp is now filled
6366//        fmt.Println(resp)
6367//    }
6368func (c *APIGateway) GetRequestValidatorRequest(input *GetRequestValidatorInput) (req *request.Request, output *UpdateRequestValidatorOutput) {
6369	op := &request.Operation{
6370		Name:       opGetRequestValidator,
6371		HTTPMethod: "GET",
6372		HTTPPath:   "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}",
6373	}
6374
6375	if input == nil {
6376		input = &GetRequestValidatorInput{}
6377	}
6378
6379	output = &UpdateRequestValidatorOutput{}
6380	req = c.newRequest(op, input, output)
6381	return
6382}
6383
6384// GetRequestValidator API operation for Amazon API Gateway.
6385//
6386// Gets a RequestValidator of a given RestApi.
6387//
6388// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6389// with awserr.Error's Code and Message methods to get detailed information about
6390// the error.
6391//
6392// See the AWS API reference guide for Amazon API Gateway's
6393// API operation GetRequestValidator for usage and error information.
6394//
6395// Returned Error Types:
6396//   * BadRequestException
6397//   The submitted request is not valid, for example, the input is incomplete
6398//   or incorrect. See the accompanying error message for details.
6399//
6400//   * NotFoundException
6401//   The requested resource is not found. Make sure that the request URI is correct.
6402//
6403//   * UnauthorizedException
6404//   The request is denied because the caller has insufficient permissions.
6405//
6406//   * TooManyRequestsException
6407//   The request has reached its throttling limit. Retry after the specified time
6408//   period.
6409//
6410func (c *APIGateway) GetRequestValidator(input *GetRequestValidatorInput) (*UpdateRequestValidatorOutput, error) {
6411	req, out := c.GetRequestValidatorRequest(input)
6412	return out, req.Send()
6413}
6414
6415// GetRequestValidatorWithContext is the same as GetRequestValidator with the addition of
6416// the ability to pass a context and additional request options.
6417//
6418// See GetRequestValidator for details on how to use this API operation.
6419//
6420// The context must be non-nil and will be used for request cancellation. If
6421// the context is nil a panic will occur. In the future the SDK may create
6422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6423// for more information on using Contexts.
6424func (c *APIGateway) GetRequestValidatorWithContext(ctx aws.Context, input *GetRequestValidatorInput, opts ...request.Option) (*UpdateRequestValidatorOutput, error) {
6425	req, out := c.GetRequestValidatorRequest(input)
6426	req.SetContext(ctx)
6427	req.ApplyOptions(opts...)
6428	return out, req.Send()
6429}
6430
6431const opGetRequestValidators = "GetRequestValidators"
6432
6433// GetRequestValidatorsRequest generates a "aws/request.Request" representing the
6434// client's request for the GetRequestValidators operation. The "output" return
6435// value will be populated with the request's response once the request completes
6436// successfully.
6437//
6438// Use "Send" method on the returned Request to send the API call to the service.
6439// the "output" return value is not valid until after Send returns without error.
6440//
6441// See GetRequestValidators for more information on using the GetRequestValidators
6442// API call, and error handling.
6443//
6444// This method is useful when you want to inject custom logic or configuration
6445// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6446//
6447//
6448//    // Example sending a request using the GetRequestValidatorsRequest method.
6449//    req, resp := client.GetRequestValidatorsRequest(params)
6450//
6451//    err := req.Send()
6452//    if err == nil { // resp is now filled
6453//        fmt.Println(resp)
6454//    }
6455func (c *APIGateway) GetRequestValidatorsRequest(input *GetRequestValidatorsInput) (req *request.Request, output *GetRequestValidatorsOutput) {
6456	op := &request.Operation{
6457		Name:       opGetRequestValidators,
6458		HTTPMethod: "GET",
6459		HTTPPath:   "/restapis/{restapi_id}/requestvalidators",
6460	}
6461
6462	if input == nil {
6463		input = &GetRequestValidatorsInput{}
6464	}
6465
6466	output = &GetRequestValidatorsOutput{}
6467	req = c.newRequest(op, input, output)
6468	return
6469}
6470
6471// GetRequestValidators API operation for Amazon API Gateway.
6472//
6473// Gets the RequestValidators collection of a given RestApi.
6474//
6475// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6476// with awserr.Error's Code and Message methods to get detailed information about
6477// the error.
6478//
6479// See the AWS API reference guide for Amazon API Gateway's
6480// API operation GetRequestValidators for usage and error information.
6481//
6482// Returned Error Types:
6483//   * BadRequestException
6484//   The submitted request is not valid, for example, the input is incomplete
6485//   or incorrect. See the accompanying error message for details.
6486//
6487//   * NotFoundException
6488//   The requested resource is not found. Make sure that the request URI is correct.
6489//
6490//   * UnauthorizedException
6491//   The request is denied because the caller has insufficient permissions.
6492//
6493//   * TooManyRequestsException
6494//   The request has reached its throttling limit. Retry after the specified time
6495//   period.
6496//
6497func (c *APIGateway) GetRequestValidators(input *GetRequestValidatorsInput) (*GetRequestValidatorsOutput, error) {
6498	req, out := c.GetRequestValidatorsRequest(input)
6499	return out, req.Send()
6500}
6501
6502// GetRequestValidatorsWithContext is the same as GetRequestValidators with the addition of
6503// the ability to pass a context and additional request options.
6504//
6505// See GetRequestValidators for details on how to use this API operation.
6506//
6507// The context must be non-nil and will be used for request cancellation. If
6508// the context is nil a panic will occur. In the future the SDK may create
6509// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6510// for more information on using Contexts.
6511func (c *APIGateway) GetRequestValidatorsWithContext(ctx aws.Context, input *GetRequestValidatorsInput, opts ...request.Option) (*GetRequestValidatorsOutput, error) {
6512	req, out := c.GetRequestValidatorsRequest(input)
6513	req.SetContext(ctx)
6514	req.ApplyOptions(opts...)
6515	return out, req.Send()
6516}
6517
6518const opGetResource = "GetResource"
6519
6520// GetResourceRequest generates a "aws/request.Request" representing the
6521// client's request for the GetResource operation. The "output" return
6522// value will be populated with the request's response once the request completes
6523// successfully.
6524//
6525// Use "Send" method on the returned Request to send the API call to the service.
6526// the "output" return value is not valid until after Send returns without error.
6527//
6528// See GetResource for more information on using the GetResource
6529// API call, and error handling.
6530//
6531// This method is useful when you want to inject custom logic or configuration
6532// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6533//
6534//
6535//    // Example sending a request using the GetResourceRequest method.
6536//    req, resp := client.GetResourceRequest(params)
6537//
6538//    err := req.Send()
6539//    if err == nil { // resp is now filled
6540//        fmt.Println(resp)
6541//    }
6542func (c *APIGateway) GetResourceRequest(input *GetResourceInput) (req *request.Request, output *Resource) {
6543	op := &request.Operation{
6544		Name:       opGetResource,
6545		HTTPMethod: "GET",
6546		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}",
6547	}
6548
6549	if input == nil {
6550		input = &GetResourceInput{}
6551	}
6552
6553	output = &Resource{}
6554	req = c.newRequest(op, input, output)
6555	return
6556}
6557
6558// GetResource API operation for Amazon API Gateway.
6559//
6560// Lists information about a resource.
6561//
6562// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6563// with awserr.Error's Code and Message methods to get detailed information about
6564// the error.
6565//
6566// See the AWS API reference guide for Amazon API Gateway's
6567// API operation GetResource for usage and error information.
6568//
6569// Returned Error Types:
6570//   * UnauthorizedException
6571//   The request is denied because the caller has insufficient permissions.
6572//
6573//   * NotFoundException
6574//   The requested resource is not found. Make sure that the request URI is correct.
6575//
6576//   * TooManyRequestsException
6577//   The request has reached its throttling limit. Retry after the specified time
6578//   period.
6579//
6580func (c *APIGateway) GetResource(input *GetResourceInput) (*Resource, error) {
6581	req, out := c.GetResourceRequest(input)
6582	return out, req.Send()
6583}
6584
6585// GetResourceWithContext is the same as GetResource with the addition of
6586// the ability to pass a context and additional request options.
6587//
6588// See GetResource for details on how to use this API operation.
6589//
6590// The context must be non-nil and will be used for request cancellation. If
6591// the context is nil a panic will occur. In the future the SDK may create
6592// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6593// for more information on using Contexts.
6594func (c *APIGateway) GetResourceWithContext(ctx aws.Context, input *GetResourceInput, opts ...request.Option) (*Resource, error) {
6595	req, out := c.GetResourceRequest(input)
6596	req.SetContext(ctx)
6597	req.ApplyOptions(opts...)
6598	return out, req.Send()
6599}
6600
6601const opGetResources = "GetResources"
6602
6603// GetResourcesRequest generates a "aws/request.Request" representing the
6604// client's request for the GetResources operation. The "output" return
6605// value will be populated with the request's response once the request completes
6606// successfully.
6607//
6608// Use "Send" method on the returned Request to send the API call to the service.
6609// the "output" return value is not valid until after Send returns without error.
6610//
6611// See GetResources for more information on using the GetResources
6612// API call, and error handling.
6613//
6614// This method is useful when you want to inject custom logic or configuration
6615// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6616//
6617//
6618//    // Example sending a request using the GetResourcesRequest method.
6619//    req, resp := client.GetResourcesRequest(params)
6620//
6621//    err := req.Send()
6622//    if err == nil { // resp is now filled
6623//        fmt.Println(resp)
6624//    }
6625func (c *APIGateway) GetResourcesRequest(input *GetResourcesInput) (req *request.Request, output *GetResourcesOutput) {
6626	op := &request.Operation{
6627		Name:       opGetResources,
6628		HTTPMethod: "GET",
6629		HTTPPath:   "/restapis/{restapi_id}/resources",
6630		Paginator: &request.Paginator{
6631			InputTokens:     []string{"position"},
6632			OutputTokens:    []string{"position"},
6633			LimitToken:      "limit",
6634			TruncationToken: "",
6635		},
6636	}
6637
6638	if input == nil {
6639		input = &GetResourcesInput{}
6640	}
6641
6642	output = &GetResourcesOutput{}
6643	req = c.newRequest(op, input, output)
6644	return
6645}
6646
6647// GetResources API operation for Amazon API Gateway.
6648//
6649// Lists information about a collection of Resource resources.
6650//
6651// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6652// with awserr.Error's Code and Message methods to get detailed information about
6653// the error.
6654//
6655// See the AWS API reference guide for Amazon API Gateway's
6656// API operation GetResources for usage and error information.
6657//
6658// Returned Error Types:
6659//   * BadRequestException
6660//   The submitted request is not valid, for example, the input is incomplete
6661//   or incorrect. See the accompanying error message for details.
6662//
6663//   * UnauthorizedException
6664//   The request is denied because the caller has insufficient permissions.
6665//
6666//   * NotFoundException
6667//   The requested resource is not found. Make sure that the request URI is correct.
6668//
6669//   * TooManyRequestsException
6670//   The request has reached its throttling limit. Retry after the specified time
6671//   period.
6672//
6673func (c *APIGateway) GetResources(input *GetResourcesInput) (*GetResourcesOutput, error) {
6674	req, out := c.GetResourcesRequest(input)
6675	return out, req.Send()
6676}
6677
6678// GetResourcesWithContext is the same as GetResources with the addition of
6679// the ability to pass a context and additional request options.
6680//
6681// See GetResources for details on how to use this API operation.
6682//
6683// The context must be non-nil and will be used for request cancellation. If
6684// the context is nil a panic will occur. In the future the SDK may create
6685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6686// for more information on using Contexts.
6687func (c *APIGateway) GetResourcesWithContext(ctx aws.Context, input *GetResourcesInput, opts ...request.Option) (*GetResourcesOutput, error) {
6688	req, out := c.GetResourcesRequest(input)
6689	req.SetContext(ctx)
6690	req.ApplyOptions(opts...)
6691	return out, req.Send()
6692}
6693
6694// GetResourcesPages iterates over the pages of a GetResources operation,
6695// calling the "fn" function with the response data for each page. To stop
6696// iterating, return false from the fn function.
6697//
6698// See GetResources method for more information on how to use this operation.
6699//
6700// Note: This operation can generate multiple requests to a service.
6701//
6702//    // Example iterating over at most 3 pages of a GetResources operation.
6703//    pageNum := 0
6704//    err := client.GetResourcesPages(params,
6705//        func(page *apigateway.GetResourcesOutput, lastPage bool) bool {
6706//            pageNum++
6707//            fmt.Println(page)
6708//            return pageNum <= 3
6709//        })
6710//
6711func (c *APIGateway) GetResourcesPages(input *GetResourcesInput, fn func(*GetResourcesOutput, bool) bool) error {
6712	return c.GetResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
6713}
6714
6715// GetResourcesPagesWithContext same as GetResourcesPages except
6716// it takes a Context and allows setting request options on the pages.
6717//
6718// The context must be non-nil and will be used for request cancellation. If
6719// the context is nil a panic will occur. In the future the SDK may create
6720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6721// for more information on using Contexts.
6722func (c *APIGateway) GetResourcesPagesWithContext(ctx aws.Context, input *GetResourcesInput, fn func(*GetResourcesOutput, bool) bool, opts ...request.Option) error {
6723	p := request.Pagination{
6724		NewRequest: func() (*request.Request, error) {
6725			var inCpy *GetResourcesInput
6726			if input != nil {
6727				tmp := *input
6728				inCpy = &tmp
6729			}
6730			req, _ := c.GetResourcesRequest(inCpy)
6731			req.SetContext(ctx)
6732			req.ApplyOptions(opts...)
6733			return req, nil
6734		},
6735	}
6736
6737	for p.Next() {
6738		if !fn(p.Page().(*GetResourcesOutput), !p.HasNextPage()) {
6739			break
6740		}
6741	}
6742
6743	return p.Err()
6744}
6745
6746const opGetRestApi = "GetRestApi"
6747
6748// GetRestApiRequest generates a "aws/request.Request" representing the
6749// client's request for the GetRestApi operation. The "output" return
6750// value will be populated with the request's response once the request completes
6751// successfully.
6752//
6753// Use "Send" method on the returned Request to send the API call to the service.
6754// the "output" return value is not valid until after Send returns without error.
6755//
6756// See GetRestApi for more information on using the GetRestApi
6757// API call, and error handling.
6758//
6759// This method is useful when you want to inject custom logic or configuration
6760// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6761//
6762//
6763//    // Example sending a request using the GetRestApiRequest method.
6764//    req, resp := client.GetRestApiRequest(params)
6765//
6766//    err := req.Send()
6767//    if err == nil { // resp is now filled
6768//        fmt.Println(resp)
6769//    }
6770func (c *APIGateway) GetRestApiRequest(input *GetRestApiInput) (req *request.Request, output *RestApi) {
6771	op := &request.Operation{
6772		Name:       opGetRestApi,
6773		HTTPMethod: "GET",
6774		HTTPPath:   "/restapis/{restapi_id}",
6775	}
6776
6777	if input == nil {
6778		input = &GetRestApiInput{}
6779	}
6780
6781	output = &RestApi{}
6782	req = c.newRequest(op, input, output)
6783	return
6784}
6785
6786// GetRestApi API operation for Amazon API Gateway.
6787//
6788// Lists the RestApi resource in the collection.
6789//
6790// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6791// with awserr.Error's Code and Message methods to get detailed information about
6792// the error.
6793//
6794// See the AWS API reference guide for Amazon API Gateway's
6795// API operation GetRestApi for usage and error information.
6796//
6797// Returned Error Types:
6798//   * BadRequestException
6799//   The submitted request is not valid, for example, the input is incomplete
6800//   or incorrect. See the accompanying error message for details.
6801//
6802//   * NotFoundException
6803//   The requested resource is not found. Make sure that the request URI is correct.
6804//
6805//   * UnauthorizedException
6806//   The request is denied because the caller has insufficient permissions.
6807//
6808//   * TooManyRequestsException
6809//   The request has reached its throttling limit. Retry after the specified time
6810//   period.
6811//
6812func (c *APIGateway) GetRestApi(input *GetRestApiInput) (*RestApi, error) {
6813	req, out := c.GetRestApiRequest(input)
6814	return out, req.Send()
6815}
6816
6817// GetRestApiWithContext is the same as GetRestApi with the addition of
6818// the ability to pass a context and additional request options.
6819//
6820// See GetRestApi for details on how to use this API operation.
6821//
6822// The context must be non-nil and will be used for request cancellation. If
6823// the context is nil a panic will occur. In the future the SDK may create
6824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6825// for more information on using Contexts.
6826func (c *APIGateway) GetRestApiWithContext(ctx aws.Context, input *GetRestApiInput, opts ...request.Option) (*RestApi, error) {
6827	req, out := c.GetRestApiRequest(input)
6828	req.SetContext(ctx)
6829	req.ApplyOptions(opts...)
6830	return out, req.Send()
6831}
6832
6833const opGetRestApis = "GetRestApis"
6834
6835// GetRestApisRequest generates a "aws/request.Request" representing the
6836// client's request for the GetRestApis operation. The "output" return
6837// value will be populated with the request's response once the request completes
6838// successfully.
6839//
6840// Use "Send" method on the returned Request to send the API call to the service.
6841// the "output" return value is not valid until after Send returns without error.
6842//
6843// See GetRestApis for more information on using the GetRestApis
6844// API call, and error handling.
6845//
6846// This method is useful when you want to inject custom logic or configuration
6847// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6848//
6849//
6850//    // Example sending a request using the GetRestApisRequest method.
6851//    req, resp := client.GetRestApisRequest(params)
6852//
6853//    err := req.Send()
6854//    if err == nil { // resp is now filled
6855//        fmt.Println(resp)
6856//    }
6857func (c *APIGateway) GetRestApisRequest(input *GetRestApisInput) (req *request.Request, output *GetRestApisOutput) {
6858	op := &request.Operation{
6859		Name:       opGetRestApis,
6860		HTTPMethod: "GET",
6861		HTTPPath:   "/restapis",
6862		Paginator: &request.Paginator{
6863			InputTokens:     []string{"position"},
6864			OutputTokens:    []string{"position"},
6865			LimitToken:      "limit",
6866			TruncationToken: "",
6867		},
6868	}
6869
6870	if input == nil {
6871		input = &GetRestApisInput{}
6872	}
6873
6874	output = &GetRestApisOutput{}
6875	req = c.newRequest(op, input, output)
6876	return
6877}
6878
6879// GetRestApis API operation for Amazon API Gateway.
6880//
6881// Lists the RestApis resources for your collection.
6882//
6883// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6884// with awserr.Error's Code and Message methods to get detailed information about
6885// the error.
6886//
6887// See the AWS API reference guide for Amazon API Gateway's
6888// API operation GetRestApis for usage and error information.
6889//
6890// Returned Error Types:
6891//   * BadRequestException
6892//   The submitted request is not valid, for example, the input is incomplete
6893//   or incorrect. See the accompanying error message for details.
6894//
6895//   * NotFoundException
6896//   The requested resource is not found. Make sure that the request URI is correct.
6897//
6898//   * UnauthorizedException
6899//   The request is denied because the caller has insufficient permissions.
6900//
6901//   * TooManyRequestsException
6902//   The request has reached its throttling limit. Retry after the specified time
6903//   period.
6904//
6905func (c *APIGateway) GetRestApis(input *GetRestApisInput) (*GetRestApisOutput, error) {
6906	req, out := c.GetRestApisRequest(input)
6907	return out, req.Send()
6908}
6909
6910// GetRestApisWithContext is the same as GetRestApis with the addition of
6911// the ability to pass a context and additional request options.
6912//
6913// See GetRestApis for details on how to use this API operation.
6914//
6915// The context must be non-nil and will be used for request cancellation. If
6916// the context is nil a panic will occur. In the future the SDK may create
6917// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6918// for more information on using Contexts.
6919func (c *APIGateway) GetRestApisWithContext(ctx aws.Context, input *GetRestApisInput, opts ...request.Option) (*GetRestApisOutput, error) {
6920	req, out := c.GetRestApisRequest(input)
6921	req.SetContext(ctx)
6922	req.ApplyOptions(opts...)
6923	return out, req.Send()
6924}
6925
6926// GetRestApisPages iterates over the pages of a GetRestApis operation,
6927// calling the "fn" function with the response data for each page. To stop
6928// iterating, return false from the fn function.
6929//
6930// See GetRestApis method for more information on how to use this operation.
6931//
6932// Note: This operation can generate multiple requests to a service.
6933//
6934//    // Example iterating over at most 3 pages of a GetRestApis operation.
6935//    pageNum := 0
6936//    err := client.GetRestApisPages(params,
6937//        func(page *apigateway.GetRestApisOutput, lastPage bool) bool {
6938//            pageNum++
6939//            fmt.Println(page)
6940//            return pageNum <= 3
6941//        })
6942//
6943func (c *APIGateway) GetRestApisPages(input *GetRestApisInput, fn func(*GetRestApisOutput, bool) bool) error {
6944	return c.GetRestApisPagesWithContext(aws.BackgroundContext(), input, fn)
6945}
6946
6947// GetRestApisPagesWithContext same as GetRestApisPages except
6948// it takes a Context and allows setting request options on the pages.
6949//
6950// The context must be non-nil and will be used for request cancellation. If
6951// the context is nil a panic will occur. In the future the SDK may create
6952// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6953// for more information on using Contexts.
6954func (c *APIGateway) GetRestApisPagesWithContext(ctx aws.Context, input *GetRestApisInput, fn func(*GetRestApisOutput, bool) bool, opts ...request.Option) error {
6955	p := request.Pagination{
6956		NewRequest: func() (*request.Request, error) {
6957			var inCpy *GetRestApisInput
6958			if input != nil {
6959				tmp := *input
6960				inCpy = &tmp
6961			}
6962			req, _ := c.GetRestApisRequest(inCpy)
6963			req.SetContext(ctx)
6964			req.ApplyOptions(opts...)
6965			return req, nil
6966		},
6967	}
6968
6969	for p.Next() {
6970		if !fn(p.Page().(*GetRestApisOutput), !p.HasNextPage()) {
6971			break
6972		}
6973	}
6974
6975	return p.Err()
6976}
6977
6978const opGetSdk = "GetSdk"
6979
6980// GetSdkRequest generates a "aws/request.Request" representing the
6981// client's request for the GetSdk operation. The "output" return
6982// value will be populated with the request's response once the request completes
6983// successfully.
6984//
6985// Use "Send" method on the returned Request to send the API call to the service.
6986// the "output" return value is not valid until after Send returns without error.
6987//
6988// See GetSdk for more information on using the GetSdk
6989// API call, and error handling.
6990//
6991// This method is useful when you want to inject custom logic or configuration
6992// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6993//
6994//
6995//    // Example sending a request using the GetSdkRequest method.
6996//    req, resp := client.GetSdkRequest(params)
6997//
6998//    err := req.Send()
6999//    if err == nil { // resp is now filled
7000//        fmt.Println(resp)
7001//    }
7002func (c *APIGateway) GetSdkRequest(input *GetSdkInput) (req *request.Request, output *GetSdkOutput) {
7003	op := &request.Operation{
7004		Name:       opGetSdk,
7005		HTTPMethod: "GET",
7006		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/sdks/{sdk_type}",
7007	}
7008
7009	if input == nil {
7010		input = &GetSdkInput{}
7011	}
7012
7013	output = &GetSdkOutput{}
7014	req = c.newRequest(op, input, output)
7015	return
7016}
7017
7018// GetSdk API operation for Amazon API Gateway.
7019//
7020// Generates a client SDK for a RestApi and Stage.
7021//
7022// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7023// with awserr.Error's Code and Message methods to get detailed information about
7024// the error.
7025//
7026// See the AWS API reference guide for Amazon API Gateway's
7027// API operation GetSdk for usage and error information.
7028//
7029// Returned Error Types:
7030//   * BadRequestException
7031//   The submitted request is not valid, for example, the input is incomplete
7032//   or incorrect. See the accompanying error message for details.
7033//
7034//   * ConflictException
7035//   The request configuration has conflicts. For details, see the accompanying
7036//   error message.
7037//
7038//   * LimitExceededException
7039//   The request exceeded the rate limit. Retry after the specified time period.
7040//
7041//   * NotFoundException
7042//   The requested resource is not found. Make sure that the request URI is correct.
7043//
7044//   * UnauthorizedException
7045//   The request is denied because the caller has insufficient permissions.
7046//
7047//   * TooManyRequestsException
7048//   The request has reached its throttling limit. Retry after the specified time
7049//   period.
7050//
7051func (c *APIGateway) GetSdk(input *GetSdkInput) (*GetSdkOutput, error) {
7052	req, out := c.GetSdkRequest(input)
7053	return out, req.Send()
7054}
7055
7056// GetSdkWithContext is the same as GetSdk with the addition of
7057// the ability to pass a context and additional request options.
7058//
7059// See GetSdk for details on how to use this API operation.
7060//
7061// The context must be non-nil and will be used for request cancellation. If
7062// the context is nil a panic will occur. In the future the SDK may create
7063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7064// for more information on using Contexts.
7065func (c *APIGateway) GetSdkWithContext(ctx aws.Context, input *GetSdkInput, opts ...request.Option) (*GetSdkOutput, error) {
7066	req, out := c.GetSdkRequest(input)
7067	req.SetContext(ctx)
7068	req.ApplyOptions(opts...)
7069	return out, req.Send()
7070}
7071
7072const opGetSdkType = "GetSdkType"
7073
7074// GetSdkTypeRequest generates a "aws/request.Request" representing the
7075// client's request for the GetSdkType operation. The "output" return
7076// value will be populated with the request's response once the request completes
7077// successfully.
7078//
7079// Use "Send" method on the returned Request to send the API call to the service.
7080// the "output" return value is not valid until after Send returns without error.
7081//
7082// See GetSdkType for more information on using the GetSdkType
7083// API call, and error handling.
7084//
7085// This method is useful when you want to inject custom logic or configuration
7086// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7087//
7088//
7089//    // Example sending a request using the GetSdkTypeRequest method.
7090//    req, resp := client.GetSdkTypeRequest(params)
7091//
7092//    err := req.Send()
7093//    if err == nil { // resp is now filled
7094//        fmt.Println(resp)
7095//    }
7096func (c *APIGateway) GetSdkTypeRequest(input *GetSdkTypeInput) (req *request.Request, output *SdkType) {
7097	op := &request.Operation{
7098		Name:       opGetSdkType,
7099		HTTPMethod: "GET",
7100		HTTPPath:   "/sdktypes/{sdktype_id}",
7101	}
7102
7103	if input == nil {
7104		input = &GetSdkTypeInput{}
7105	}
7106
7107	output = &SdkType{}
7108	req = c.newRequest(op, input, output)
7109	return
7110}
7111
7112// GetSdkType API operation for Amazon API Gateway.
7113//
7114// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7115// with awserr.Error's Code and Message methods to get detailed information about
7116// the error.
7117//
7118// See the AWS API reference guide for Amazon API Gateway's
7119// API operation GetSdkType for usage and error information.
7120//
7121// Returned Error Types:
7122//   * BadRequestException
7123//   The submitted request is not valid, for example, the input is incomplete
7124//   or incorrect. See the accompanying error message for details.
7125//
7126//   * NotFoundException
7127//   The requested resource is not found. Make sure that the request URI is correct.
7128//
7129//   * UnauthorizedException
7130//   The request is denied because the caller has insufficient permissions.
7131//
7132//   * TooManyRequestsException
7133//   The request has reached its throttling limit. Retry after the specified time
7134//   period.
7135//
7136func (c *APIGateway) GetSdkType(input *GetSdkTypeInput) (*SdkType, error) {
7137	req, out := c.GetSdkTypeRequest(input)
7138	return out, req.Send()
7139}
7140
7141// GetSdkTypeWithContext is the same as GetSdkType with the addition of
7142// the ability to pass a context and additional request options.
7143//
7144// See GetSdkType for details on how to use this API operation.
7145//
7146// The context must be non-nil and will be used for request cancellation. If
7147// the context is nil a panic will occur. In the future the SDK may create
7148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7149// for more information on using Contexts.
7150func (c *APIGateway) GetSdkTypeWithContext(ctx aws.Context, input *GetSdkTypeInput, opts ...request.Option) (*SdkType, error) {
7151	req, out := c.GetSdkTypeRequest(input)
7152	req.SetContext(ctx)
7153	req.ApplyOptions(opts...)
7154	return out, req.Send()
7155}
7156
7157const opGetSdkTypes = "GetSdkTypes"
7158
7159// GetSdkTypesRequest generates a "aws/request.Request" representing the
7160// client's request for the GetSdkTypes operation. The "output" return
7161// value will be populated with the request's response once the request completes
7162// successfully.
7163//
7164// Use "Send" method on the returned Request to send the API call to the service.
7165// the "output" return value is not valid until after Send returns without error.
7166//
7167// See GetSdkTypes for more information on using the GetSdkTypes
7168// API call, and error handling.
7169//
7170// This method is useful when you want to inject custom logic or configuration
7171// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7172//
7173//
7174//    // Example sending a request using the GetSdkTypesRequest method.
7175//    req, resp := client.GetSdkTypesRequest(params)
7176//
7177//    err := req.Send()
7178//    if err == nil { // resp is now filled
7179//        fmt.Println(resp)
7180//    }
7181func (c *APIGateway) GetSdkTypesRequest(input *GetSdkTypesInput) (req *request.Request, output *GetSdkTypesOutput) {
7182	op := &request.Operation{
7183		Name:       opGetSdkTypes,
7184		HTTPMethod: "GET",
7185		HTTPPath:   "/sdktypes",
7186	}
7187
7188	if input == nil {
7189		input = &GetSdkTypesInput{}
7190	}
7191
7192	output = &GetSdkTypesOutput{}
7193	req = c.newRequest(op, input, output)
7194	return
7195}
7196
7197// GetSdkTypes API operation for Amazon API Gateway.
7198//
7199// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7200// with awserr.Error's Code and Message methods to get detailed information about
7201// the error.
7202//
7203// See the AWS API reference guide for Amazon API Gateway's
7204// API operation GetSdkTypes for usage and error information.
7205//
7206// Returned Error Types:
7207//   * BadRequestException
7208//   The submitted request is not valid, for example, the input is incomplete
7209//   or incorrect. See the accompanying error message for details.
7210//
7211//   * NotFoundException
7212//   The requested resource is not found. Make sure that the request URI is correct.
7213//
7214//   * UnauthorizedException
7215//   The request is denied because the caller has insufficient permissions.
7216//
7217//   * TooManyRequestsException
7218//   The request has reached its throttling limit. Retry after the specified time
7219//   period.
7220//
7221func (c *APIGateway) GetSdkTypes(input *GetSdkTypesInput) (*GetSdkTypesOutput, error) {
7222	req, out := c.GetSdkTypesRequest(input)
7223	return out, req.Send()
7224}
7225
7226// GetSdkTypesWithContext is the same as GetSdkTypes with the addition of
7227// the ability to pass a context and additional request options.
7228//
7229// See GetSdkTypes for details on how to use this API operation.
7230//
7231// The context must be non-nil and will be used for request cancellation. If
7232// the context is nil a panic will occur. In the future the SDK may create
7233// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7234// for more information on using Contexts.
7235func (c *APIGateway) GetSdkTypesWithContext(ctx aws.Context, input *GetSdkTypesInput, opts ...request.Option) (*GetSdkTypesOutput, error) {
7236	req, out := c.GetSdkTypesRequest(input)
7237	req.SetContext(ctx)
7238	req.ApplyOptions(opts...)
7239	return out, req.Send()
7240}
7241
7242const opGetStage = "GetStage"
7243
7244// GetStageRequest generates a "aws/request.Request" representing the
7245// client's request for the GetStage operation. The "output" return
7246// value will be populated with the request's response once the request completes
7247// successfully.
7248//
7249// Use "Send" method on the returned Request to send the API call to the service.
7250// the "output" return value is not valid until after Send returns without error.
7251//
7252// See GetStage for more information on using the GetStage
7253// API call, and error handling.
7254//
7255// This method is useful when you want to inject custom logic or configuration
7256// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7257//
7258//
7259//    // Example sending a request using the GetStageRequest method.
7260//    req, resp := client.GetStageRequest(params)
7261//
7262//    err := req.Send()
7263//    if err == nil { // resp is now filled
7264//        fmt.Println(resp)
7265//    }
7266func (c *APIGateway) GetStageRequest(input *GetStageInput) (req *request.Request, output *Stage) {
7267	op := &request.Operation{
7268		Name:       opGetStage,
7269		HTTPMethod: "GET",
7270		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}",
7271	}
7272
7273	if input == nil {
7274		input = &GetStageInput{}
7275	}
7276
7277	output = &Stage{}
7278	req = c.newRequest(op, input, output)
7279	return
7280}
7281
7282// GetStage API operation for Amazon API Gateway.
7283//
7284// Gets information about a Stage resource.
7285//
7286// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7287// with awserr.Error's Code and Message methods to get detailed information about
7288// the error.
7289//
7290// See the AWS API reference guide for Amazon API Gateway's
7291// API operation GetStage for usage and error information.
7292//
7293// Returned Error Types:
7294//   * BadRequestException
7295//   The submitted request is not valid, for example, the input is incomplete
7296//   or incorrect. See the accompanying error message for details.
7297//
7298//   * ConflictException
7299//   The request configuration has conflicts. For details, see the accompanying
7300//   error message.
7301//
7302//   * LimitExceededException
7303//   The request exceeded the rate limit. Retry after the specified time period.
7304//
7305//   * NotFoundException
7306//   The requested resource is not found. Make sure that the request URI is correct.
7307//
7308//   * UnauthorizedException
7309//   The request is denied because the caller has insufficient permissions.
7310//
7311//   * TooManyRequestsException
7312//   The request has reached its throttling limit. Retry after the specified time
7313//   period.
7314//
7315func (c *APIGateway) GetStage(input *GetStageInput) (*Stage, error) {
7316	req, out := c.GetStageRequest(input)
7317	return out, req.Send()
7318}
7319
7320// GetStageWithContext is the same as GetStage with the addition of
7321// the ability to pass a context and additional request options.
7322//
7323// See GetStage for details on how to use this API operation.
7324//
7325// The context must be non-nil and will be used for request cancellation. If
7326// the context is nil a panic will occur. In the future the SDK may create
7327// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7328// for more information on using Contexts.
7329func (c *APIGateway) GetStageWithContext(ctx aws.Context, input *GetStageInput, opts ...request.Option) (*Stage, error) {
7330	req, out := c.GetStageRequest(input)
7331	req.SetContext(ctx)
7332	req.ApplyOptions(opts...)
7333	return out, req.Send()
7334}
7335
7336const opGetStages = "GetStages"
7337
7338// GetStagesRequest generates a "aws/request.Request" representing the
7339// client's request for the GetStages operation. The "output" return
7340// value will be populated with the request's response once the request completes
7341// successfully.
7342//
7343// Use "Send" method on the returned Request to send the API call to the service.
7344// the "output" return value is not valid until after Send returns without error.
7345//
7346// See GetStages for more information on using the GetStages
7347// API call, and error handling.
7348//
7349// This method is useful when you want to inject custom logic or configuration
7350// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7351//
7352//
7353//    // Example sending a request using the GetStagesRequest method.
7354//    req, resp := client.GetStagesRequest(params)
7355//
7356//    err := req.Send()
7357//    if err == nil { // resp is now filled
7358//        fmt.Println(resp)
7359//    }
7360func (c *APIGateway) GetStagesRequest(input *GetStagesInput) (req *request.Request, output *GetStagesOutput) {
7361	op := &request.Operation{
7362		Name:       opGetStages,
7363		HTTPMethod: "GET",
7364		HTTPPath:   "/restapis/{restapi_id}/stages",
7365	}
7366
7367	if input == nil {
7368		input = &GetStagesInput{}
7369	}
7370
7371	output = &GetStagesOutput{}
7372	req = c.newRequest(op, input, output)
7373	return
7374}
7375
7376// GetStages API operation for Amazon API Gateway.
7377//
7378// Gets information about one or more Stage resources.
7379//
7380// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7381// with awserr.Error's Code and Message methods to get detailed information about
7382// the error.
7383//
7384// See the AWS API reference guide for Amazon API Gateway's
7385// API operation GetStages for usage and error information.
7386//
7387// Returned Error Types:
7388//   * BadRequestException
7389//   The submitted request is not valid, for example, the input is incomplete
7390//   or incorrect. See the accompanying error message for details.
7391//
7392//   * ConflictException
7393//   The request configuration has conflicts. For details, see the accompanying
7394//   error message.
7395//
7396//   * LimitExceededException
7397//   The request exceeded the rate limit. Retry after the specified time period.
7398//
7399//   * NotFoundException
7400//   The requested resource is not found. Make sure that the request URI is correct.
7401//
7402//   * UnauthorizedException
7403//   The request is denied because the caller has insufficient permissions.
7404//
7405//   * TooManyRequestsException
7406//   The request has reached its throttling limit. Retry after the specified time
7407//   period.
7408//
7409func (c *APIGateway) GetStages(input *GetStagesInput) (*GetStagesOutput, error) {
7410	req, out := c.GetStagesRequest(input)
7411	return out, req.Send()
7412}
7413
7414// GetStagesWithContext is the same as GetStages with the addition of
7415// the ability to pass a context and additional request options.
7416//
7417// See GetStages for details on how to use this API operation.
7418//
7419// The context must be non-nil and will be used for request cancellation. If
7420// the context is nil a panic will occur. In the future the SDK may create
7421// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7422// for more information on using Contexts.
7423func (c *APIGateway) GetStagesWithContext(ctx aws.Context, input *GetStagesInput, opts ...request.Option) (*GetStagesOutput, error) {
7424	req, out := c.GetStagesRequest(input)
7425	req.SetContext(ctx)
7426	req.ApplyOptions(opts...)
7427	return out, req.Send()
7428}
7429
7430const opGetTags = "GetTags"
7431
7432// GetTagsRequest generates a "aws/request.Request" representing the
7433// client's request for the GetTags operation. The "output" return
7434// value will be populated with the request's response once the request completes
7435// successfully.
7436//
7437// Use "Send" method on the returned Request to send the API call to the service.
7438// the "output" return value is not valid until after Send returns without error.
7439//
7440// See GetTags for more information on using the GetTags
7441// API call, and error handling.
7442//
7443// This method is useful when you want to inject custom logic or configuration
7444// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7445//
7446//
7447//    // Example sending a request using the GetTagsRequest method.
7448//    req, resp := client.GetTagsRequest(params)
7449//
7450//    err := req.Send()
7451//    if err == nil { // resp is now filled
7452//        fmt.Println(resp)
7453//    }
7454func (c *APIGateway) GetTagsRequest(input *GetTagsInput) (req *request.Request, output *GetTagsOutput) {
7455	op := &request.Operation{
7456		Name:       opGetTags,
7457		HTTPMethod: "GET",
7458		HTTPPath:   "/tags/{resource_arn}",
7459	}
7460
7461	if input == nil {
7462		input = &GetTagsInput{}
7463	}
7464
7465	output = &GetTagsOutput{}
7466	req = c.newRequest(op, input, output)
7467	return
7468}
7469
7470// GetTags API operation for Amazon API Gateway.
7471//
7472// Gets the Tags collection for a given resource.
7473//
7474// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7475// with awserr.Error's Code and Message methods to get detailed information about
7476// the error.
7477//
7478// See the AWS API reference guide for Amazon API Gateway's
7479// API operation GetTags for usage and error information.
7480//
7481// Returned Error Types:
7482//   * BadRequestException
7483//   The submitted request is not valid, for example, the input is incomplete
7484//   or incorrect. See the accompanying error message for details.
7485//
7486//   * NotFoundException
7487//   The requested resource is not found. Make sure that the request URI is correct.
7488//
7489//   * UnauthorizedException
7490//   The request is denied because the caller has insufficient permissions.
7491//
7492//   * TooManyRequestsException
7493//   The request has reached its throttling limit. Retry after the specified time
7494//   period.
7495//
7496func (c *APIGateway) GetTags(input *GetTagsInput) (*GetTagsOutput, error) {
7497	req, out := c.GetTagsRequest(input)
7498	return out, req.Send()
7499}
7500
7501// GetTagsWithContext is the same as GetTags with the addition of
7502// the ability to pass a context and additional request options.
7503//
7504// See GetTags for details on how to use this API operation.
7505//
7506// The context must be non-nil and will be used for request cancellation. If
7507// the context is nil a panic will occur. In the future the SDK may create
7508// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7509// for more information on using Contexts.
7510func (c *APIGateway) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, opts ...request.Option) (*GetTagsOutput, error) {
7511	req, out := c.GetTagsRequest(input)
7512	req.SetContext(ctx)
7513	req.ApplyOptions(opts...)
7514	return out, req.Send()
7515}
7516
7517const opGetUsage = "GetUsage"
7518
7519// GetUsageRequest generates a "aws/request.Request" representing the
7520// client's request for the GetUsage operation. The "output" return
7521// value will be populated with the request's response once the request completes
7522// successfully.
7523//
7524// Use "Send" method on the returned Request to send the API call to the service.
7525// the "output" return value is not valid until after Send returns without error.
7526//
7527// See GetUsage for more information on using the GetUsage
7528// API call, and error handling.
7529//
7530// This method is useful when you want to inject custom logic or configuration
7531// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7532//
7533//
7534//    // Example sending a request using the GetUsageRequest method.
7535//    req, resp := client.GetUsageRequest(params)
7536//
7537//    err := req.Send()
7538//    if err == nil { // resp is now filled
7539//        fmt.Println(resp)
7540//    }
7541func (c *APIGateway) GetUsageRequest(input *GetUsageInput) (req *request.Request, output *Usage) {
7542	op := &request.Operation{
7543		Name:       opGetUsage,
7544		HTTPMethod: "GET",
7545		HTTPPath:   "/usageplans/{usageplanId}/usage",
7546		Paginator: &request.Paginator{
7547			InputTokens:     []string{"position"},
7548			OutputTokens:    []string{"position"},
7549			LimitToken:      "limit",
7550			TruncationToken: "",
7551		},
7552	}
7553
7554	if input == nil {
7555		input = &GetUsageInput{}
7556	}
7557
7558	output = &Usage{}
7559	req = c.newRequest(op, input, output)
7560	return
7561}
7562
7563// GetUsage API operation for Amazon API Gateway.
7564//
7565// Gets the usage data of a usage plan in a specified time interval.
7566//
7567// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7568// with awserr.Error's Code and Message methods to get detailed information about
7569// the error.
7570//
7571// See the AWS API reference guide for Amazon API Gateway's
7572// API operation GetUsage for usage and error information.
7573//
7574// Returned Error Types:
7575//   * BadRequestException
7576//   The submitted request is not valid, for example, the input is incomplete
7577//   or incorrect. See the accompanying error message for details.
7578//
7579//   * UnauthorizedException
7580//   The request is denied because the caller has insufficient permissions.
7581//
7582//   * NotFoundException
7583//   The requested resource is not found. Make sure that the request URI is correct.
7584//
7585//   * TooManyRequestsException
7586//   The request has reached its throttling limit. Retry after the specified time
7587//   period.
7588//
7589func (c *APIGateway) GetUsage(input *GetUsageInput) (*Usage, error) {
7590	req, out := c.GetUsageRequest(input)
7591	return out, req.Send()
7592}
7593
7594// GetUsageWithContext is the same as GetUsage with the addition of
7595// the ability to pass a context and additional request options.
7596//
7597// See GetUsage for details on how to use this API operation.
7598//
7599// The context must be non-nil and will be used for request cancellation. If
7600// the context is nil a panic will occur. In the future the SDK may create
7601// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7602// for more information on using Contexts.
7603func (c *APIGateway) GetUsageWithContext(ctx aws.Context, input *GetUsageInput, opts ...request.Option) (*Usage, error) {
7604	req, out := c.GetUsageRequest(input)
7605	req.SetContext(ctx)
7606	req.ApplyOptions(opts...)
7607	return out, req.Send()
7608}
7609
7610// GetUsagePages iterates over the pages of a GetUsage operation,
7611// calling the "fn" function with the response data for each page. To stop
7612// iterating, return false from the fn function.
7613//
7614// See GetUsage method for more information on how to use this operation.
7615//
7616// Note: This operation can generate multiple requests to a service.
7617//
7618//    // Example iterating over at most 3 pages of a GetUsage operation.
7619//    pageNum := 0
7620//    err := client.GetUsagePages(params,
7621//        func(page *apigateway.Usage, lastPage bool) bool {
7622//            pageNum++
7623//            fmt.Println(page)
7624//            return pageNum <= 3
7625//        })
7626//
7627func (c *APIGateway) GetUsagePages(input *GetUsageInput, fn func(*Usage, bool) bool) error {
7628	return c.GetUsagePagesWithContext(aws.BackgroundContext(), input, fn)
7629}
7630
7631// GetUsagePagesWithContext same as GetUsagePages except
7632// it takes a Context and allows setting request options on the pages.
7633//
7634// The context must be non-nil and will be used for request cancellation. If
7635// the context is nil a panic will occur. In the future the SDK may create
7636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7637// for more information on using Contexts.
7638func (c *APIGateway) GetUsagePagesWithContext(ctx aws.Context, input *GetUsageInput, fn func(*Usage, bool) bool, opts ...request.Option) error {
7639	p := request.Pagination{
7640		NewRequest: func() (*request.Request, error) {
7641			var inCpy *GetUsageInput
7642			if input != nil {
7643				tmp := *input
7644				inCpy = &tmp
7645			}
7646			req, _ := c.GetUsageRequest(inCpy)
7647			req.SetContext(ctx)
7648			req.ApplyOptions(opts...)
7649			return req, nil
7650		},
7651	}
7652
7653	for p.Next() {
7654		if !fn(p.Page().(*Usage), !p.HasNextPage()) {
7655			break
7656		}
7657	}
7658
7659	return p.Err()
7660}
7661
7662const opGetUsagePlan = "GetUsagePlan"
7663
7664// GetUsagePlanRequest generates a "aws/request.Request" representing the
7665// client's request for the GetUsagePlan operation. The "output" return
7666// value will be populated with the request's response once the request completes
7667// successfully.
7668//
7669// Use "Send" method on the returned Request to send the API call to the service.
7670// the "output" return value is not valid until after Send returns without error.
7671//
7672// See GetUsagePlan for more information on using the GetUsagePlan
7673// API call, and error handling.
7674//
7675// This method is useful when you want to inject custom logic or configuration
7676// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7677//
7678//
7679//    // Example sending a request using the GetUsagePlanRequest method.
7680//    req, resp := client.GetUsagePlanRequest(params)
7681//
7682//    err := req.Send()
7683//    if err == nil { // resp is now filled
7684//        fmt.Println(resp)
7685//    }
7686func (c *APIGateway) GetUsagePlanRequest(input *GetUsagePlanInput) (req *request.Request, output *UsagePlan) {
7687	op := &request.Operation{
7688		Name:       opGetUsagePlan,
7689		HTTPMethod: "GET",
7690		HTTPPath:   "/usageplans/{usageplanId}",
7691	}
7692
7693	if input == nil {
7694		input = &GetUsagePlanInput{}
7695	}
7696
7697	output = &UsagePlan{}
7698	req = c.newRequest(op, input, output)
7699	return
7700}
7701
7702// GetUsagePlan API operation for Amazon API Gateway.
7703//
7704// Gets a usage plan of a given plan identifier.
7705//
7706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7707// with awserr.Error's Code and Message methods to get detailed information about
7708// the error.
7709//
7710// See the AWS API reference guide for Amazon API Gateway's
7711// API operation GetUsagePlan for usage and error information.
7712//
7713// Returned Error Types:
7714//   * BadRequestException
7715//   The submitted request is not valid, for example, the input is incomplete
7716//   or incorrect. See the accompanying error message for details.
7717//
7718//   * NotFoundException
7719//   The requested resource is not found. Make sure that the request URI is correct.
7720//
7721//   * UnauthorizedException
7722//   The request is denied because the caller has insufficient permissions.
7723//
7724//   * TooManyRequestsException
7725//   The request has reached its throttling limit. Retry after the specified time
7726//   period.
7727//
7728func (c *APIGateway) GetUsagePlan(input *GetUsagePlanInput) (*UsagePlan, error) {
7729	req, out := c.GetUsagePlanRequest(input)
7730	return out, req.Send()
7731}
7732
7733// GetUsagePlanWithContext is the same as GetUsagePlan with the addition of
7734// the ability to pass a context and additional request options.
7735//
7736// See GetUsagePlan for details on how to use this API operation.
7737//
7738// The context must be non-nil and will be used for request cancellation. If
7739// the context is nil a panic will occur. In the future the SDK may create
7740// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7741// for more information on using Contexts.
7742func (c *APIGateway) GetUsagePlanWithContext(ctx aws.Context, input *GetUsagePlanInput, opts ...request.Option) (*UsagePlan, error) {
7743	req, out := c.GetUsagePlanRequest(input)
7744	req.SetContext(ctx)
7745	req.ApplyOptions(opts...)
7746	return out, req.Send()
7747}
7748
7749const opGetUsagePlanKey = "GetUsagePlanKey"
7750
7751// GetUsagePlanKeyRequest generates a "aws/request.Request" representing the
7752// client's request for the GetUsagePlanKey operation. The "output" return
7753// value will be populated with the request's response once the request completes
7754// successfully.
7755//
7756// Use "Send" method on the returned Request to send the API call to the service.
7757// the "output" return value is not valid until after Send returns without error.
7758//
7759// See GetUsagePlanKey for more information on using the GetUsagePlanKey
7760// API call, and error handling.
7761//
7762// This method is useful when you want to inject custom logic or configuration
7763// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7764//
7765//
7766//    // Example sending a request using the GetUsagePlanKeyRequest method.
7767//    req, resp := client.GetUsagePlanKeyRequest(params)
7768//
7769//    err := req.Send()
7770//    if err == nil { // resp is now filled
7771//        fmt.Println(resp)
7772//    }
7773func (c *APIGateway) GetUsagePlanKeyRequest(input *GetUsagePlanKeyInput) (req *request.Request, output *UsagePlanKey) {
7774	op := &request.Operation{
7775		Name:       opGetUsagePlanKey,
7776		HTTPMethod: "GET",
7777		HTTPPath:   "/usageplans/{usageplanId}/keys/{keyId}",
7778	}
7779
7780	if input == nil {
7781		input = &GetUsagePlanKeyInput{}
7782	}
7783
7784	output = &UsagePlanKey{}
7785	req = c.newRequest(op, input, output)
7786	return
7787}
7788
7789// GetUsagePlanKey API operation for Amazon API Gateway.
7790//
7791// Gets a usage plan key of a given key identifier.
7792//
7793// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7794// with awserr.Error's Code and Message methods to get detailed information about
7795// the error.
7796//
7797// See the AWS API reference guide for Amazon API Gateway's
7798// API operation GetUsagePlanKey for usage and error information.
7799//
7800// Returned Error Types:
7801//   * BadRequestException
7802//   The submitted request is not valid, for example, the input is incomplete
7803//   or incorrect. See the accompanying error message for details.
7804//
7805//   * NotFoundException
7806//   The requested resource is not found. Make sure that the request URI is correct.
7807//
7808//   * UnauthorizedException
7809//   The request is denied because the caller has insufficient permissions.
7810//
7811//   * TooManyRequestsException
7812//   The request has reached its throttling limit. Retry after the specified time
7813//   period.
7814//
7815func (c *APIGateway) GetUsagePlanKey(input *GetUsagePlanKeyInput) (*UsagePlanKey, error) {
7816	req, out := c.GetUsagePlanKeyRequest(input)
7817	return out, req.Send()
7818}
7819
7820// GetUsagePlanKeyWithContext is the same as GetUsagePlanKey with the addition of
7821// the ability to pass a context and additional request options.
7822//
7823// See GetUsagePlanKey for details on how to use this API operation.
7824//
7825// The context must be non-nil and will be used for request cancellation. If
7826// the context is nil a panic will occur. In the future the SDK may create
7827// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7828// for more information on using Contexts.
7829func (c *APIGateway) GetUsagePlanKeyWithContext(ctx aws.Context, input *GetUsagePlanKeyInput, opts ...request.Option) (*UsagePlanKey, error) {
7830	req, out := c.GetUsagePlanKeyRequest(input)
7831	req.SetContext(ctx)
7832	req.ApplyOptions(opts...)
7833	return out, req.Send()
7834}
7835
7836const opGetUsagePlanKeys = "GetUsagePlanKeys"
7837
7838// GetUsagePlanKeysRequest generates a "aws/request.Request" representing the
7839// client's request for the GetUsagePlanKeys operation. The "output" return
7840// value will be populated with the request's response once the request completes
7841// successfully.
7842//
7843// Use "Send" method on the returned Request to send the API call to the service.
7844// the "output" return value is not valid until after Send returns without error.
7845//
7846// See GetUsagePlanKeys for more information on using the GetUsagePlanKeys
7847// API call, and error handling.
7848//
7849// This method is useful when you want to inject custom logic or configuration
7850// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7851//
7852//
7853//    // Example sending a request using the GetUsagePlanKeysRequest method.
7854//    req, resp := client.GetUsagePlanKeysRequest(params)
7855//
7856//    err := req.Send()
7857//    if err == nil { // resp is now filled
7858//        fmt.Println(resp)
7859//    }
7860func (c *APIGateway) GetUsagePlanKeysRequest(input *GetUsagePlanKeysInput) (req *request.Request, output *GetUsagePlanKeysOutput) {
7861	op := &request.Operation{
7862		Name:       opGetUsagePlanKeys,
7863		HTTPMethod: "GET",
7864		HTTPPath:   "/usageplans/{usageplanId}/keys",
7865		Paginator: &request.Paginator{
7866			InputTokens:     []string{"position"},
7867			OutputTokens:    []string{"position"},
7868			LimitToken:      "limit",
7869			TruncationToken: "",
7870		},
7871	}
7872
7873	if input == nil {
7874		input = &GetUsagePlanKeysInput{}
7875	}
7876
7877	output = &GetUsagePlanKeysOutput{}
7878	req = c.newRequest(op, input, output)
7879	return
7880}
7881
7882// GetUsagePlanKeys API operation for Amazon API Gateway.
7883//
7884// Gets all the usage plan keys representing the API keys added to a specified
7885// usage plan.
7886//
7887// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7888// with awserr.Error's Code and Message methods to get detailed information about
7889// the error.
7890//
7891// See the AWS API reference guide for Amazon API Gateway's
7892// API operation GetUsagePlanKeys for usage and error information.
7893//
7894// Returned Error Types:
7895//   * BadRequestException
7896//   The submitted request is not valid, for example, the input is incomplete
7897//   or incorrect. See the accompanying error message for details.
7898//
7899//   * NotFoundException
7900//   The requested resource is not found. Make sure that the request URI is correct.
7901//
7902//   * UnauthorizedException
7903//   The request is denied because the caller has insufficient permissions.
7904//
7905//   * TooManyRequestsException
7906//   The request has reached its throttling limit. Retry after the specified time
7907//   period.
7908//
7909func (c *APIGateway) GetUsagePlanKeys(input *GetUsagePlanKeysInput) (*GetUsagePlanKeysOutput, error) {
7910	req, out := c.GetUsagePlanKeysRequest(input)
7911	return out, req.Send()
7912}
7913
7914// GetUsagePlanKeysWithContext is the same as GetUsagePlanKeys with the addition of
7915// the ability to pass a context and additional request options.
7916//
7917// See GetUsagePlanKeys for details on how to use this API operation.
7918//
7919// The context must be non-nil and will be used for request cancellation. If
7920// the context is nil a panic will occur. In the future the SDK may create
7921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7922// for more information on using Contexts.
7923func (c *APIGateway) GetUsagePlanKeysWithContext(ctx aws.Context, input *GetUsagePlanKeysInput, opts ...request.Option) (*GetUsagePlanKeysOutput, error) {
7924	req, out := c.GetUsagePlanKeysRequest(input)
7925	req.SetContext(ctx)
7926	req.ApplyOptions(opts...)
7927	return out, req.Send()
7928}
7929
7930// GetUsagePlanKeysPages iterates over the pages of a GetUsagePlanKeys operation,
7931// calling the "fn" function with the response data for each page. To stop
7932// iterating, return false from the fn function.
7933//
7934// See GetUsagePlanKeys method for more information on how to use this operation.
7935//
7936// Note: This operation can generate multiple requests to a service.
7937//
7938//    // Example iterating over at most 3 pages of a GetUsagePlanKeys operation.
7939//    pageNum := 0
7940//    err := client.GetUsagePlanKeysPages(params,
7941//        func(page *apigateway.GetUsagePlanKeysOutput, lastPage bool) bool {
7942//            pageNum++
7943//            fmt.Println(page)
7944//            return pageNum <= 3
7945//        })
7946//
7947func (c *APIGateway) GetUsagePlanKeysPages(input *GetUsagePlanKeysInput, fn func(*GetUsagePlanKeysOutput, bool) bool) error {
7948	return c.GetUsagePlanKeysPagesWithContext(aws.BackgroundContext(), input, fn)
7949}
7950
7951// GetUsagePlanKeysPagesWithContext same as GetUsagePlanKeysPages except
7952// it takes a Context and allows setting request options on the pages.
7953//
7954// The context must be non-nil and will be used for request cancellation. If
7955// the context is nil a panic will occur. In the future the SDK may create
7956// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7957// for more information on using Contexts.
7958func (c *APIGateway) GetUsagePlanKeysPagesWithContext(ctx aws.Context, input *GetUsagePlanKeysInput, fn func(*GetUsagePlanKeysOutput, bool) bool, opts ...request.Option) error {
7959	p := request.Pagination{
7960		NewRequest: func() (*request.Request, error) {
7961			var inCpy *GetUsagePlanKeysInput
7962			if input != nil {
7963				tmp := *input
7964				inCpy = &tmp
7965			}
7966			req, _ := c.GetUsagePlanKeysRequest(inCpy)
7967			req.SetContext(ctx)
7968			req.ApplyOptions(opts...)
7969			return req, nil
7970		},
7971	}
7972
7973	for p.Next() {
7974		if !fn(p.Page().(*GetUsagePlanKeysOutput), !p.HasNextPage()) {
7975			break
7976		}
7977	}
7978
7979	return p.Err()
7980}
7981
7982const opGetUsagePlans = "GetUsagePlans"
7983
7984// GetUsagePlansRequest generates a "aws/request.Request" representing the
7985// client's request for the GetUsagePlans operation. The "output" return
7986// value will be populated with the request's response once the request completes
7987// successfully.
7988//
7989// Use "Send" method on the returned Request to send the API call to the service.
7990// the "output" return value is not valid until after Send returns without error.
7991//
7992// See GetUsagePlans for more information on using the GetUsagePlans
7993// API call, and error handling.
7994//
7995// This method is useful when you want to inject custom logic or configuration
7996// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7997//
7998//
7999//    // Example sending a request using the GetUsagePlansRequest method.
8000//    req, resp := client.GetUsagePlansRequest(params)
8001//
8002//    err := req.Send()
8003//    if err == nil { // resp is now filled
8004//        fmt.Println(resp)
8005//    }
8006func (c *APIGateway) GetUsagePlansRequest(input *GetUsagePlansInput) (req *request.Request, output *GetUsagePlansOutput) {
8007	op := &request.Operation{
8008		Name:       opGetUsagePlans,
8009		HTTPMethod: "GET",
8010		HTTPPath:   "/usageplans",
8011		Paginator: &request.Paginator{
8012			InputTokens:     []string{"position"},
8013			OutputTokens:    []string{"position"},
8014			LimitToken:      "limit",
8015			TruncationToken: "",
8016		},
8017	}
8018
8019	if input == nil {
8020		input = &GetUsagePlansInput{}
8021	}
8022
8023	output = &GetUsagePlansOutput{}
8024	req = c.newRequest(op, input, output)
8025	return
8026}
8027
8028// GetUsagePlans API operation for Amazon API Gateway.
8029//
8030// Gets all the usage plans of the caller's account.
8031//
8032// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8033// with awserr.Error's Code and Message methods to get detailed information about
8034// the error.
8035//
8036// See the AWS API reference guide for Amazon API Gateway's
8037// API operation GetUsagePlans for usage and error information.
8038//
8039// Returned Error Types:
8040//   * BadRequestException
8041//   The submitted request is not valid, for example, the input is incomplete
8042//   or incorrect. See the accompanying error message for details.
8043//
8044//   * NotFoundException
8045//   The requested resource is not found. Make sure that the request URI is correct.
8046//
8047//   * UnauthorizedException
8048//   The request is denied because the caller has insufficient permissions.
8049//
8050//   * TooManyRequestsException
8051//   The request has reached its throttling limit. Retry after the specified time
8052//   period.
8053//
8054func (c *APIGateway) GetUsagePlans(input *GetUsagePlansInput) (*GetUsagePlansOutput, error) {
8055	req, out := c.GetUsagePlansRequest(input)
8056	return out, req.Send()
8057}
8058
8059// GetUsagePlansWithContext is the same as GetUsagePlans with the addition of
8060// the ability to pass a context and additional request options.
8061//
8062// See GetUsagePlans for details on how to use this API operation.
8063//
8064// The context must be non-nil and will be used for request cancellation. If
8065// the context is nil a panic will occur. In the future the SDK may create
8066// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8067// for more information on using Contexts.
8068func (c *APIGateway) GetUsagePlansWithContext(ctx aws.Context, input *GetUsagePlansInput, opts ...request.Option) (*GetUsagePlansOutput, error) {
8069	req, out := c.GetUsagePlansRequest(input)
8070	req.SetContext(ctx)
8071	req.ApplyOptions(opts...)
8072	return out, req.Send()
8073}
8074
8075// GetUsagePlansPages iterates over the pages of a GetUsagePlans operation,
8076// calling the "fn" function with the response data for each page. To stop
8077// iterating, return false from the fn function.
8078//
8079// See GetUsagePlans method for more information on how to use this operation.
8080//
8081// Note: This operation can generate multiple requests to a service.
8082//
8083//    // Example iterating over at most 3 pages of a GetUsagePlans operation.
8084//    pageNum := 0
8085//    err := client.GetUsagePlansPages(params,
8086//        func(page *apigateway.GetUsagePlansOutput, lastPage bool) bool {
8087//            pageNum++
8088//            fmt.Println(page)
8089//            return pageNum <= 3
8090//        })
8091//
8092func (c *APIGateway) GetUsagePlansPages(input *GetUsagePlansInput, fn func(*GetUsagePlansOutput, bool) bool) error {
8093	return c.GetUsagePlansPagesWithContext(aws.BackgroundContext(), input, fn)
8094}
8095
8096// GetUsagePlansPagesWithContext same as GetUsagePlansPages except
8097// it takes a Context and allows setting request options on the pages.
8098//
8099// The context must be non-nil and will be used for request cancellation. If
8100// the context is nil a panic will occur. In the future the SDK may create
8101// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8102// for more information on using Contexts.
8103func (c *APIGateway) GetUsagePlansPagesWithContext(ctx aws.Context, input *GetUsagePlansInput, fn func(*GetUsagePlansOutput, bool) bool, opts ...request.Option) error {
8104	p := request.Pagination{
8105		NewRequest: func() (*request.Request, error) {
8106			var inCpy *GetUsagePlansInput
8107			if input != nil {
8108				tmp := *input
8109				inCpy = &tmp
8110			}
8111			req, _ := c.GetUsagePlansRequest(inCpy)
8112			req.SetContext(ctx)
8113			req.ApplyOptions(opts...)
8114			return req, nil
8115		},
8116	}
8117
8118	for p.Next() {
8119		if !fn(p.Page().(*GetUsagePlansOutput), !p.HasNextPage()) {
8120			break
8121		}
8122	}
8123
8124	return p.Err()
8125}
8126
8127const opGetVpcLink = "GetVpcLink"
8128
8129// GetVpcLinkRequest generates a "aws/request.Request" representing the
8130// client's request for the GetVpcLink operation. The "output" return
8131// value will be populated with the request's response once the request completes
8132// successfully.
8133//
8134// Use "Send" method on the returned Request to send the API call to the service.
8135// the "output" return value is not valid until after Send returns without error.
8136//
8137// See GetVpcLink for more information on using the GetVpcLink
8138// API call, and error handling.
8139//
8140// This method is useful when you want to inject custom logic or configuration
8141// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8142//
8143//
8144//    // Example sending a request using the GetVpcLinkRequest method.
8145//    req, resp := client.GetVpcLinkRequest(params)
8146//
8147//    err := req.Send()
8148//    if err == nil { // resp is now filled
8149//        fmt.Println(resp)
8150//    }
8151func (c *APIGateway) GetVpcLinkRequest(input *GetVpcLinkInput) (req *request.Request, output *UpdateVpcLinkOutput) {
8152	op := &request.Operation{
8153		Name:       opGetVpcLink,
8154		HTTPMethod: "GET",
8155		HTTPPath:   "/vpclinks/{vpclink_id}",
8156	}
8157
8158	if input == nil {
8159		input = &GetVpcLinkInput{}
8160	}
8161
8162	output = &UpdateVpcLinkOutput{}
8163	req = c.newRequest(op, input, output)
8164	return
8165}
8166
8167// GetVpcLink API operation for Amazon API Gateway.
8168//
8169// Gets a specified VPC link under the caller's account in a region.
8170//
8171// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8172// with awserr.Error's Code and Message methods to get detailed information about
8173// the error.
8174//
8175// See the AWS API reference guide for Amazon API Gateway's
8176// API operation GetVpcLink for usage and error information.
8177//
8178// Returned Error Types:
8179//   * BadRequestException
8180//   The submitted request is not valid, for example, the input is incomplete
8181//   or incorrect. See the accompanying error message for details.
8182//
8183//   * NotFoundException
8184//   The requested resource is not found. Make sure that the request URI is correct.
8185//
8186//   * UnauthorizedException
8187//   The request is denied because the caller has insufficient permissions.
8188//
8189//   * TooManyRequestsException
8190//   The request has reached its throttling limit. Retry after the specified time
8191//   period.
8192//
8193func (c *APIGateway) GetVpcLink(input *GetVpcLinkInput) (*UpdateVpcLinkOutput, error) {
8194	req, out := c.GetVpcLinkRequest(input)
8195	return out, req.Send()
8196}
8197
8198// GetVpcLinkWithContext is the same as GetVpcLink with the addition of
8199// the ability to pass a context and additional request options.
8200//
8201// See GetVpcLink for details on how to use this API operation.
8202//
8203// The context must be non-nil and will be used for request cancellation. If
8204// the context is nil a panic will occur. In the future the SDK may create
8205// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8206// for more information on using Contexts.
8207func (c *APIGateway) GetVpcLinkWithContext(ctx aws.Context, input *GetVpcLinkInput, opts ...request.Option) (*UpdateVpcLinkOutput, error) {
8208	req, out := c.GetVpcLinkRequest(input)
8209	req.SetContext(ctx)
8210	req.ApplyOptions(opts...)
8211	return out, req.Send()
8212}
8213
8214const opGetVpcLinks = "GetVpcLinks"
8215
8216// GetVpcLinksRequest generates a "aws/request.Request" representing the
8217// client's request for the GetVpcLinks operation. The "output" return
8218// value will be populated with the request's response once the request completes
8219// successfully.
8220//
8221// Use "Send" method on the returned Request to send the API call to the service.
8222// the "output" return value is not valid until after Send returns without error.
8223//
8224// See GetVpcLinks for more information on using the GetVpcLinks
8225// API call, and error handling.
8226//
8227// This method is useful when you want to inject custom logic or configuration
8228// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8229//
8230//
8231//    // Example sending a request using the GetVpcLinksRequest method.
8232//    req, resp := client.GetVpcLinksRequest(params)
8233//
8234//    err := req.Send()
8235//    if err == nil { // resp is now filled
8236//        fmt.Println(resp)
8237//    }
8238func (c *APIGateway) GetVpcLinksRequest(input *GetVpcLinksInput) (req *request.Request, output *GetVpcLinksOutput) {
8239	op := &request.Operation{
8240		Name:       opGetVpcLinks,
8241		HTTPMethod: "GET",
8242		HTTPPath:   "/vpclinks",
8243		Paginator: &request.Paginator{
8244			InputTokens:     []string{"position"},
8245			OutputTokens:    []string{"position"},
8246			LimitToken:      "limit",
8247			TruncationToken: "",
8248		},
8249	}
8250
8251	if input == nil {
8252		input = &GetVpcLinksInput{}
8253	}
8254
8255	output = &GetVpcLinksOutput{}
8256	req = c.newRequest(op, input, output)
8257	return
8258}
8259
8260// GetVpcLinks API operation for Amazon API Gateway.
8261//
8262// Gets the VpcLinks collection under the caller's account in a selected region.
8263//
8264// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8265// with awserr.Error's Code and Message methods to get detailed information about
8266// the error.
8267//
8268// See the AWS API reference guide for Amazon API Gateway's
8269// API operation GetVpcLinks for usage and error information.
8270//
8271// Returned Error Types:
8272//   * BadRequestException
8273//   The submitted request is not valid, for example, the input is incomplete
8274//   or incorrect. See the accompanying error message for details.
8275//
8276//   * NotFoundException
8277//   The requested resource is not found. Make sure that the request URI is correct.
8278//
8279//   * UnauthorizedException
8280//   The request is denied because the caller has insufficient permissions.
8281//
8282//   * TooManyRequestsException
8283//   The request has reached its throttling limit. Retry after the specified time
8284//   period.
8285//
8286func (c *APIGateway) GetVpcLinks(input *GetVpcLinksInput) (*GetVpcLinksOutput, error) {
8287	req, out := c.GetVpcLinksRequest(input)
8288	return out, req.Send()
8289}
8290
8291// GetVpcLinksWithContext is the same as GetVpcLinks with the addition of
8292// the ability to pass a context and additional request options.
8293//
8294// See GetVpcLinks for details on how to use this API operation.
8295//
8296// The context must be non-nil and will be used for request cancellation. If
8297// the context is nil a panic will occur. In the future the SDK may create
8298// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8299// for more information on using Contexts.
8300func (c *APIGateway) GetVpcLinksWithContext(ctx aws.Context, input *GetVpcLinksInput, opts ...request.Option) (*GetVpcLinksOutput, error) {
8301	req, out := c.GetVpcLinksRequest(input)
8302	req.SetContext(ctx)
8303	req.ApplyOptions(opts...)
8304	return out, req.Send()
8305}
8306
8307// GetVpcLinksPages iterates over the pages of a GetVpcLinks operation,
8308// calling the "fn" function with the response data for each page. To stop
8309// iterating, return false from the fn function.
8310//
8311// See GetVpcLinks method for more information on how to use this operation.
8312//
8313// Note: This operation can generate multiple requests to a service.
8314//
8315//    // Example iterating over at most 3 pages of a GetVpcLinks operation.
8316//    pageNum := 0
8317//    err := client.GetVpcLinksPages(params,
8318//        func(page *apigateway.GetVpcLinksOutput, lastPage bool) bool {
8319//            pageNum++
8320//            fmt.Println(page)
8321//            return pageNum <= 3
8322//        })
8323//
8324func (c *APIGateway) GetVpcLinksPages(input *GetVpcLinksInput, fn func(*GetVpcLinksOutput, bool) bool) error {
8325	return c.GetVpcLinksPagesWithContext(aws.BackgroundContext(), input, fn)
8326}
8327
8328// GetVpcLinksPagesWithContext same as GetVpcLinksPages except
8329// it takes a Context and allows setting request options on the pages.
8330//
8331// The context must be non-nil and will be used for request cancellation. If
8332// the context is nil a panic will occur. In the future the SDK may create
8333// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8334// for more information on using Contexts.
8335func (c *APIGateway) GetVpcLinksPagesWithContext(ctx aws.Context, input *GetVpcLinksInput, fn func(*GetVpcLinksOutput, bool) bool, opts ...request.Option) error {
8336	p := request.Pagination{
8337		NewRequest: func() (*request.Request, error) {
8338			var inCpy *GetVpcLinksInput
8339			if input != nil {
8340				tmp := *input
8341				inCpy = &tmp
8342			}
8343			req, _ := c.GetVpcLinksRequest(inCpy)
8344			req.SetContext(ctx)
8345			req.ApplyOptions(opts...)
8346			return req, nil
8347		},
8348	}
8349
8350	for p.Next() {
8351		if !fn(p.Page().(*GetVpcLinksOutput), !p.HasNextPage()) {
8352			break
8353		}
8354	}
8355
8356	return p.Err()
8357}
8358
8359const opImportApiKeys = "ImportApiKeys"
8360
8361// ImportApiKeysRequest generates a "aws/request.Request" representing the
8362// client's request for the ImportApiKeys operation. The "output" return
8363// value will be populated with the request's response once the request completes
8364// successfully.
8365//
8366// Use "Send" method on the returned Request to send the API call to the service.
8367// the "output" return value is not valid until after Send returns without error.
8368//
8369// See ImportApiKeys for more information on using the ImportApiKeys
8370// API call, and error handling.
8371//
8372// This method is useful when you want to inject custom logic or configuration
8373// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8374//
8375//
8376//    // Example sending a request using the ImportApiKeysRequest method.
8377//    req, resp := client.ImportApiKeysRequest(params)
8378//
8379//    err := req.Send()
8380//    if err == nil { // resp is now filled
8381//        fmt.Println(resp)
8382//    }
8383func (c *APIGateway) ImportApiKeysRequest(input *ImportApiKeysInput) (req *request.Request, output *ImportApiKeysOutput) {
8384	op := &request.Operation{
8385		Name:       opImportApiKeys,
8386		HTTPMethod: "POST",
8387		HTTPPath:   "/apikeys?mode=import",
8388	}
8389
8390	if input == nil {
8391		input = &ImportApiKeysInput{}
8392	}
8393
8394	output = &ImportApiKeysOutput{}
8395	req = c.newRequest(op, input, output)
8396	return
8397}
8398
8399// ImportApiKeys API operation for Amazon API Gateway.
8400//
8401// Import API keys from an external source, such as a CSV-formatted file.
8402//
8403// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8404// with awserr.Error's Code and Message methods to get detailed information about
8405// the error.
8406//
8407// See the AWS API reference guide for Amazon API Gateway's
8408// API operation ImportApiKeys for usage and error information.
8409//
8410// Returned Error Types:
8411//   * BadRequestException
8412//   The submitted request is not valid, for example, the input is incomplete
8413//   or incorrect. See the accompanying error message for details.
8414//
8415//   * ConflictException
8416//   The request configuration has conflicts. For details, see the accompanying
8417//   error message.
8418//
8419//   * LimitExceededException
8420//   The request exceeded the rate limit. Retry after the specified time period.
8421//
8422//   * NotFoundException
8423//   The requested resource is not found. Make sure that the request URI is correct.
8424//
8425//   * UnauthorizedException
8426//   The request is denied because the caller has insufficient permissions.
8427//
8428//   * TooManyRequestsException
8429//   The request has reached its throttling limit. Retry after the specified time
8430//   period.
8431//
8432func (c *APIGateway) ImportApiKeys(input *ImportApiKeysInput) (*ImportApiKeysOutput, error) {
8433	req, out := c.ImportApiKeysRequest(input)
8434	return out, req.Send()
8435}
8436
8437// ImportApiKeysWithContext is the same as ImportApiKeys with the addition of
8438// the ability to pass a context and additional request options.
8439//
8440// See ImportApiKeys for details on how to use this API operation.
8441//
8442// The context must be non-nil and will be used for request cancellation. If
8443// the context is nil a panic will occur. In the future the SDK may create
8444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8445// for more information on using Contexts.
8446func (c *APIGateway) ImportApiKeysWithContext(ctx aws.Context, input *ImportApiKeysInput, opts ...request.Option) (*ImportApiKeysOutput, error) {
8447	req, out := c.ImportApiKeysRequest(input)
8448	req.SetContext(ctx)
8449	req.ApplyOptions(opts...)
8450	return out, req.Send()
8451}
8452
8453const opImportDocumentationParts = "ImportDocumentationParts"
8454
8455// ImportDocumentationPartsRequest generates a "aws/request.Request" representing the
8456// client's request for the ImportDocumentationParts operation. The "output" return
8457// value will be populated with the request's response once the request completes
8458// successfully.
8459//
8460// Use "Send" method on the returned Request to send the API call to the service.
8461// the "output" return value is not valid until after Send returns without error.
8462//
8463// See ImportDocumentationParts for more information on using the ImportDocumentationParts
8464// API call, and error handling.
8465//
8466// This method is useful when you want to inject custom logic or configuration
8467// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8468//
8469//
8470//    // Example sending a request using the ImportDocumentationPartsRequest method.
8471//    req, resp := client.ImportDocumentationPartsRequest(params)
8472//
8473//    err := req.Send()
8474//    if err == nil { // resp is now filled
8475//        fmt.Println(resp)
8476//    }
8477func (c *APIGateway) ImportDocumentationPartsRequest(input *ImportDocumentationPartsInput) (req *request.Request, output *ImportDocumentationPartsOutput) {
8478	op := &request.Operation{
8479		Name:       opImportDocumentationParts,
8480		HTTPMethod: "PUT",
8481		HTTPPath:   "/restapis/{restapi_id}/documentation/parts",
8482	}
8483
8484	if input == nil {
8485		input = &ImportDocumentationPartsInput{}
8486	}
8487
8488	output = &ImportDocumentationPartsOutput{}
8489	req = c.newRequest(op, input, output)
8490	return
8491}
8492
8493// ImportDocumentationParts API operation for Amazon API Gateway.
8494//
8495// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8496// with awserr.Error's Code and Message methods to get detailed information about
8497// the error.
8498//
8499// See the AWS API reference guide for Amazon API Gateway's
8500// API operation ImportDocumentationParts for usage and error information.
8501//
8502// Returned Error Types:
8503//   * BadRequestException
8504//   The submitted request is not valid, for example, the input is incomplete
8505//   or incorrect. See the accompanying error message for details.
8506//
8507//   * ConflictException
8508//   The request configuration has conflicts. For details, see the accompanying
8509//   error message.
8510//
8511//   * LimitExceededException
8512//   The request exceeded the rate limit. Retry after the specified time period.
8513//
8514//   * NotFoundException
8515//   The requested resource is not found. Make sure that the request URI is correct.
8516//
8517//   * UnauthorizedException
8518//   The request is denied because the caller has insufficient permissions.
8519//
8520//   * TooManyRequestsException
8521//   The request has reached its throttling limit. Retry after the specified time
8522//   period.
8523//
8524func (c *APIGateway) ImportDocumentationParts(input *ImportDocumentationPartsInput) (*ImportDocumentationPartsOutput, error) {
8525	req, out := c.ImportDocumentationPartsRequest(input)
8526	return out, req.Send()
8527}
8528
8529// ImportDocumentationPartsWithContext is the same as ImportDocumentationParts with the addition of
8530// the ability to pass a context and additional request options.
8531//
8532// See ImportDocumentationParts for details on how to use this API operation.
8533//
8534// The context must be non-nil and will be used for request cancellation. If
8535// the context is nil a panic will occur. In the future the SDK may create
8536// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8537// for more information on using Contexts.
8538func (c *APIGateway) ImportDocumentationPartsWithContext(ctx aws.Context, input *ImportDocumentationPartsInput, opts ...request.Option) (*ImportDocumentationPartsOutput, error) {
8539	req, out := c.ImportDocumentationPartsRequest(input)
8540	req.SetContext(ctx)
8541	req.ApplyOptions(opts...)
8542	return out, req.Send()
8543}
8544
8545const opImportRestApi = "ImportRestApi"
8546
8547// ImportRestApiRequest generates a "aws/request.Request" representing the
8548// client's request for the ImportRestApi operation. The "output" return
8549// value will be populated with the request's response once the request completes
8550// successfully.
8551//
8552// Use "Send" method on the returned Request to send the API call to the service.
8553// the "output" return value is not valid until after Send returns without error.
8554//
8555// See ImportRestApi for more information on using the ImportRestApi
8556// API call, and error handling.
8557//
8558// This method is useful when you want to inject custom logic or configuration
8559// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8560//
8561//
8562//    // Example sending a request using the ImportRestApiRequest method.
8563//    req, resp := client.ImportRestApiRequest(params)
8564//
8565//    err := req.Send()
8566//    if err == nil { // resp is now filled
8567//        fmt.Println(resp)
8568//    }
8569func (c *APIGateway) ImportRestApiRequest(input *ImportRestApiInput) (req *request.Request, output *RestApi) {
8570	op := &request.Operation{
8571		Name:       opImportRestApi,
8572		HTTPMethod: "POST",
8573		HTTPPath:   "/restapis?mode=import",
8574	}
8575
8576	if input == nil {
8577		input = &ImportRestApiInput{}
8578	}
8579
8580	output = &RestApi{}
8581	req = c.newRequest(op, input, output)
8582	return
8583}
8584
8585// ImportRestApi API operation for Amazon API Gateway.
8586//
8587// A feature of the API Gateway control service for creating a new API from
8588// an external API definition file.
8589//
8590// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8591// with awserr.Error's Code and Message methods to get detailed information about
8592// the error.
8593//
8594// See the AWS API reference guide for Amazon API Gateway's
8595// API operation ImportRestApi for usage and error information.
8596//
8597// Returned Error Types:
8598//   * BadRequestException
8599//   The submitted request is not valid, for example, the input is incomplete
8600//   or incorrect. See the accompanying error message for details.
8601//
8602//   * ConflictException
8603//   The request configuration has conflicts. For details, see the accompanying
8604//   error message.
8605//
8606//   * LimitExceededException
8607//   The request exceeded the rate limit. Retry after the specified time period.
8608//
8609//   * NotFoundException
8610//   The requested resource is not found. Make sure that the request URI is correct.
8611//
8612//   * UnauthorizedException
8613//   The request is denied because the caller has insufficient permissions.
8614//
8615//   * TooManyRequestsException
8616//   The request has reached its throttling limit. Retry after the specified time
8617//   period.
8618//
8619func (c *APIGateway) ImportRestApi(input *ImportRestApiInput) (*RestApi, error) {
8620	req, out := c.ImportRestApiRequest(input)
8621	return out, req.Send()
8622}
8623
8624// ImportRestApiWithContext is the same as ImportRestApi with the addition of
8625// the ability to pass a context and additional request options.
8626//
8627// See ImportRestApi for details on how to use this API operation.
8628//
8629// The context must be non-nil and will be used for request cancellation. If
8630// the context is nil a panic will occur. In the future the SDK may create
8631// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8632// for more information on using Contexts.
8633func (c *APIGateway) ImportRestApiWithContext(ctx aws.Context, input *ImportRestApiInput, opts ...request.Option) (*RestApi, error) {
8634	req, out := c.ImportRestApiRequest(input)
8635	req.SetContext(ctx)
8636	req.ApplyOptions(opts...)
8637	return out, req.Send()
8638}
8639
8640const opPutGatewayResponse = "PutGatewayResponse"
8641
8642// PutGatewayResponseRequest generates a "aws/request.Request" representing the
8643// client's request for the PutGatewayResponse operation. The "output" return
8644// value will be populated with the request's response once the request completes
8645// successfully.
8646//
8647// Use "Send" method on the returned Request to send the API call to the service.
8648// the "output" return value is not valid until after Send returns without error.
8649//
8650// See PutGatewayResponse for more information on using the PutGatewayResponse
8651// API call, and error handling.
8652//
8653// This method is useful when you want to inject custom logic or configuration
8654// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8655//
8656//
8657//    // Example sending a request using the PutGatewayResponseRequest method.
8658//    req, resp := client.PutGatewayResponseRequest(params)
8659//
8660//    err := req.Send()
8661//    if err == nil { // resp is now filled
8662//        fmt.Println(resp)
8663//    }
8664func (c *APIGateway) PutGatewayResponseRequest(input *PutGatewayResponseInput) (req *request.Request, output *UpdateGatewayResponseOutput) {
8665	op := &request.Operation{
8666		Name:       opPutGatewayResponse,
8667		HTTPMethod: "PUT",
8668		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
8669	}
8670
8671	if input == nil {
8672		input = &PutGatewayResponseInput{}
8673	}
8674
8675	output = &UpdateGatewayResponseOutput{}
8676	req = c.newRequest(op, input, output)
8677	return
8678}
8679
8680// PutGatewayResponse API operation for Amazon API Gateway.
8681//
8682// Creates a customization of a GatewayResponse of a specified response type
8683// and status code on the given RestApi.
8684//
8685// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8686// with awserr.Error's Code and Message methods to get detailed information about
8687// the error.
8688//
8689// See the AWS API reference guide for Amazon API Gateway's
8690// API operation PutGatewayResponse for usage and error information.
8691//
8692// Returned Error Types:
8693//   * BadRequestException
8694//   The submitted request is not valid, for example, the input is incomplete
8695//   or incorrect. See the accompanying error message for details.
8696//
8697//   * ConflictException
8698//   The request configuration has conflicts. For details, see the accompanying
8699//   error message.
8700//
8701//   * LimitExceededException
8702//   The request exceeded the rate limit. Retry after the specified time period.
8703//
8704//   * NotFoundException
8705//   The requested resource is not found. Make sure that the request URI is correct.
8706//
8707//   * UnauthorizedException
8708//   The request is denied because the caller has insufficient permissions.
8709//
8710//   * TooManyRequestsException
8711//   The request has reached its throttling limit. Retry after the specified time
8712//   period.
8713//
8714func (c *APIGateway) PutGatewayResponse(input *PutGatewayResponseInput) (*UpdateGatewayResponseOutput, error) {
8715	req, out := c.PutGatewayResponseRequest(input)
8716	return out, req.Send()
8717}
8718
8719// PutGatewayResponseWithContext is the same as PutGatewayResponse with the addition of
8720// the ability to pass a context and additional request options.
8721//
8722// See PutGatewayResponse for details on how to use this API operation.
8723//
8724// The context must be non-nil and will be used for request cancellation. If
8725// the context is nil a panic will occur. In the future the SDK may create
8726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8727// for more information on using Contexts.
8728func (c *APIGateway) PutGatewayResponseWithContext(ctx aws.Context, input *PutGatewayResponseInput, opts ...request.Option) (*UpdateGatewayResponseOutput, error) {
8729	req, out := c.PutGatewayResponseRequest(input)
8730	req.SetContext(ctx)
8731	req.ApplyOptions(opts...)
8732	return out, req.Send()
8733}
8734
8735const opPutIntegration = "PutIntegration"
8736
8737// PutIntegrationRequest generates a "aws/request.Request" representing the
8738// client's request for the PutIntegration operation. The "output" return
8739// value will be populated with the request's response once the request completes
8740// successfully.
8741//
8742// Use "Send" method on the returned Request to send the API call to the service.
8743// the "output" return value is not valid until after Send returns without error.
8744//
8745// See PutIntegration for more information on using the PutIntegration
8746// API call, and error handling.
8747//
8748// This method is useful when you want to inject custom logic or configuration
8749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8750//
8751//
8752//    // Example sending a request using the PutIntegrationRequest method.
8753//    req, resp := client.PutIntegrationRequest(params)
8754//
8755//    err := req.Send()
8756//    if err == nil { // resp is now filled
8757//        fmt.Println(resp)
8758//    }
8759func (c *APIGateway) PutIntegrationRequest(input *PutIntegrationInput) (req *request.Request, output *Integration) {
8760	op := &request.Operation{
8761		Name:       opPutIntegration,
8762		HTTPMethod: "PUT",
8763		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
8764	}
8765
8766	if input == nil {
8767		input = &PutIntegrationInput{}
8768	}
8769
8770	output = &Integration{}
8771	req = c.newRequest(op, input, output)
8772	return
8773}
8774
8775// PutIntegration API operation for Amazon API Gateway.
8776//
8777// Sets up a method's integration.
8778//
8779// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8780// with awserr.Error's Code and Message methods to get detailed information about
8781// the error.
8782//
8783// See the AWS API reference guide for Amazon API Gateway's
8784// API operation PutIntegration for usage and error information.
8785//
8786// Returned Error Types:
8787//   * BadRequestException
8788//   The submitted request is not valid, for example, the input is incomplete
8789//   or incorrect. See the accompanying error message for details.
8790//
8791//   * ConflictException
8792//   The request configuration has conflicts. For details, see the accompanying
8793//   error message.
8794//
8795//   * LimitExceededException
8796//   The request exceeded the rate limit. Retry after the specified time period.
8797//
8798//   * NotFoundException
8799//   The requested resource is not found. Make sure that the request URI is correct.
8800//
8801//   * UnauthorizedException
8802//   The request is denied because the caller has insufficient permissions.
8803//
8804//   * TooManyRequestsException
8805//   The request has reached its throttling limit. Retry after the specified time
8806//   period.
8807//
8808func (c *APIGateway) PutIntegration(input *PutIntegrationInput) (*Integration, error) {
8809	req, out := c.PutIntegrationRequest(input)
8810	return out, req.Send()
8811}
8812
8813// PutIntegrationWithContext is the same as PutIntegration with the addition of
8814// the ability to pass a context and additional request options.
8815//
8816// See PutIntegration for details on how to use this API operation.
8817//
8818// The context must be non-nil and will be used for request cancellation. If
8819// the context is nil a panic will occur. In the future the SDK may create
8820// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8821// for more information on using Contexts.
8822func (c *APIGateway) PutIntegrationWithContext(ctx aws.Context, input *PutIntegrationInput, opts ...request.Option) (*Integration, error) {
8823	req, out := c.PutIntegrationRequest(input)
8824	req.SetContext(ctx)
8825	req.ApplyOptions(opts...)
8826	return out, req.Send()
8827}
8828
8829const opPutIntegrationResponse = "PutIntegrationResponse"
8830
8831// PutIntegrationResponseRequest generates a "aws/request.Request" representing the
8832// client's request for the PutIntegrationResponse operation. The "output" return
8833// value will be populated with the request's response once the request completes
8834// successfully.
8835//
8836// Use "Send" method on the returned Request to send the API call to the service.
8837// the "output" return value is not valid until after Send returns without error.
8838//
8839// See PutIntegrationResponse for more information on using the PutIntegrationResponse
8840// API call, and error handling.
8841//
8842// This method is useful when you want to inject custom logic or configuration
8843// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8844//
8845//
8846//    // Example sending a request using the PutIntegrationResponseRequest method.
8847//    req, resp := client.PutIntegrationResponseRequest(params)
8848//
8849//    err := req.Send()
8850//    if err == nil { // resp is now filled
8851//        fmt.Println(resp)
8852//    }
8853func (c *APIGateway) PutIntegrationResponseRequest(input *PutIntegrationResponseInput) (req *request.Request, output *IntegrationResponse) {
8854	op := &request.Operation{
8855		Name:       opPutIntegrationResponse,
8856		HTTPMethod: "PUT",
8857		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
8858	}
8859
8860	if input == nil {
8861		input = &PutIntegrationResponseInput{}
8862	}
8863
8864	output = &IntegrationResponse{}
8865	req = c.newRequest(op, input, output)
8866	return
8867}
8868
8869// PutIntegrationResponse API operation for Amazon API Gateway.
8870//
8871// Represents a put integration.
8872//
8873// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8874// with awserr.Error's Code and Message methods to get detailed information about
8875// the error.
8876//
8877// See the AWS API reference guide for Amazon API Gateway's
8878// API operation PutIntegrationResponse for usage and error information.
8879//
8880// Returned Error Types:
8881//   * BadRequestException
8882//   The submitted request is not valid, for example, the input is incomplete
8883//   or incorrect. See the accompanying error message for details.
8884//
8885//   * ConflictException
8886//   The request configuration has conflicts. For details, see the accompanying
8887//   error message.
8888//
8889//   * LimitExceededException
8890//   The request exceeded the rate limit. Retry after the specified time period.
8891//
8892//   * NotFoundException
8893//   The requested resource is not found. Make sure that the request URI is correct.
8894//
8895//   * UnauthorizedException
8896//   The request is denied because the caller has insufficient permissions.
8897//
8898//   * TooManyRequestsException
8899//   The request has reached its throttling limit. Retry after the specified time
8900//   period.
8901//
8902func (c *APIGateway) PutIntegrationResponse(input *PutIntegrationResponseInput) (*IntegrationResponse, error) {
8903	req, out := c.PutIntegrationResponseRequest(input)
8904	return out, req.Send()
8905}
8906
8907// PutIntegrationResponseWithContext is the same as PutIntegrationResponse with the addition of
8908// the ability to pass a context and additional request options.
8909//
8910// See PutIntegrationResponse for details on how to use this API operation.
8911//
8912// The context must be non-nil and will be used for request cancellation. If
8913// the context is nil a panic will occur. In the future the SDK may create
8914// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8915// for more information on using Contexts.
8916func (c *APIGateway) PutIntegrationResponseWithContext(ctx aws.Context, input *PutIntegrationResponseInput, opts ...request.Option) (*IntegrationResponse, error) {
8917	req, out := c.PutIntegrationResponseRequest(input)
8918	req.SetContext(ctx)
8919	req.ApplyOptions(opts...)
8920	return out, req.Send()
8921}
8922
8923const opPutMethod = "PutMethod"
8924
8925// PutMethodRequest generates a "aws/request.Request" representing the
8926// client's request for the PutMethod operation. The "output" return
8927// value will be populated with the request's response once the request completes
8928// successfully.
8929//
8930// Use "Send" method on the returned Request to send the API call to the service.
8931// the "output" return value is not valid until after Send returns without error.
8932//
8933// See PutMethod for more information on using the PutMethod
8934// API call, and error handling.
8935//
8936// This method is useful when you want to inject custom logic or configuration
8937// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8938//
8939//
8940//    // Example sending a request using the PutMethodRequest method.
8941//    req, resp := client.PutMethodRequest(params)
8942//
8943//    err := req.Send()
8944//    if err == nil { // resp is now filled
8945//        fmt.Println(resp)
8946//    }
8947func (c *APIGateway) PutMethodRequest(input *PutMethodInput) (req *request.Request, output *Method) {
8948	op := &request.Operation{
8949		Name:       opPutMethod,
8950		HTTPMethod: "PUT",
8951		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
8952	}
8953
8954	if input == nil {
8955		input = &PutMethodInput{}
8956	}
8957
8958	output = &Method{}
8959	req = c.newRequest(op, input, output)
8960	return
8961}
8962
8963// PutMethod API operation for Amazon API Gateway.
8964//
8965// Add a method to an existing Resource resource.
8966//
8967// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8968// with awserr.Error's Code and Message methods to get detailed information about
8969// the error.
8970//
8971// See the AWS API reference guide for Amazon API Gateway's
8972// API operation PutMethod for usage and error information.
8973//
8974// Returned Error Types:
8975//   * BadRequestException
8976//   The submitted request is not valid, for example, the input is incomplete
8977//   or incorrect. See the accompanying error message for details.
8978//
8979//   * UnauthorizedException
8980//   The request is denied because the caller has insufficient permissions.
8981//
8982//   * NotFoundException
8983//   The requested resource is not found. Make sure that the request URI is correct.
8984//
8985//   * ConflictException
8986//   The request configuration has conflicts. For details, see the accompanying
8987//   error message.
8988//
8989//   * LimitExceededException
8990//   The request exceeded the rate limit. Retry after the specified time period.
8991//
8992//   * TooManyRequestsException
8993//   The request has reached its throttling limit. Retry after the specified time
8994//   period.
8995//
8996func (c *APIGateway) PutMethod(input *PutMethodInput) (*Method, error) {
8997	req, out := c.PutMethodRequest(input)
8998	return out, req.Send()
8999}
9000
9001// PutMethodWithContext is the same as PutMethod with the addition of
9002// the ability to pass a context and additional request options.
9003//
9004// See PutMethod for details on how to use this API operation.
9005//
9006// The context must be non-nil and will be used for request cancellation. If
9007// the context is nil a panic will occur. In the future the SDK may create
9008// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9009// for more information on using Contexts.
9010func (c *APIGateway) PutMethodWithContext(ctx aws.Context, input *PutMethodInput, opts ...request.Option) (*Method, error) {
9011	req, out := c.PutMethodRequest(input)
9012	req.SetContext(ctx)
9013	req.ApplyOptions(opts...)
9014	return out, req.Send()
9015}
9016
9017const opPutMethodResponse = "PutMethodResponse"
9018
9019// PutMethodResponseRequest generates a "aws/request.Request" representing the
9020// client's request for the PutMethodResponse operation. The "output" return
9021// value will be populated with the request's response once the request completes
9022// successfully.
9023//
9024// Use "Send" method on the returned Request to send the API call to the service.
9025// the "output" return value is not valid until after Send returns without error.
9026//
9027// See PutMethodResponse for more information on using the PutMethodResponse
9028// API call, and error handling.
9029//
9030// This method is useful when you want to inject custom logic or configuration
9031// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9032//
9033//
9034//    // Example sending a request using the PutMethodResponseRequest method.
9035//    req, resp := client.PutMethodResponseRequest(params)
9036//
9037//    err := req.Send()
9038//    if err == nil { // resp is now filled
9039//        fmt.Println(resp)
9040//    }
9041func (c *APIGateway) PutMethodResponseRequest(input *PutMethodResponseInput) (req *request.Request, output *MethodResponse) {
9042	op := &request.Operation{
9043		Name:       opPutMethodResponse,
9044		HTTPMethod: "PUT",
9045		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
9046	}
9047
9048	if input == nil {
9049		input = &PutMethodResponseInput{}
9050	}
9051
9052	output = &MethodResponse{}
9053	req = c.newRequest(op, input, output)
9054	return
9055}
9056
9057// PutMethodResponse API operation for Amazon API Gateway.
9058//
9059// Adds a MethodResponse to an existing Method resource.
9060//
9061// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9062// with awserr.Error's Code and Message methods to get detailed information about
9063// the error.
9064//
9065// See the AWS API reference guide for Amazon API Gateway's
9066// API operation PutMethodResponse for usage and error information.
9067//
9068// Returned Error Types:
9069//   * UnauthorizedException
9070//   The request is denied because the caller has insufficient permissions.
9071//
9072//   * NotFoundException
9073//   The requested resource is not found. Make sure that the request URI is correct.
9074//
9075//   * ConflictException
9076//   The request configuration has conflicts. For details, see the accompanying
9077//   error message.
9078//
9079//   * LimitExceededException
9080//   The request exceeded the rate limit. Retry after the specified time period.
9081//
9082//   * BadRequestException
9083//   The submitted request is not valid, for example, the input is incomplete
9084//   or incorrect. See the accompanying error message for details.
9085//
9086//   * TooManyRequestsException
9087//   The request has reached its throttling limit. Retry after the specified time
9088//   period.
9089//
9090func (c *APIGateway) PutMethodResponse(input *PutMethodResponseInput) (*MethodResponse, error) {
9091	req, out := c.PutMethodResponseRequest(input)
9092	return out, req.Send()
9093}
9094
9095// PutMethodResponseWithContext is the same as PutMethodResponse with the addition of
9096// the ability to pass a context and additional request options.
9097//
9098// See PutMethodResponse for details on how to use this API operation.
9099//
9100// The context must be non-nil and will be used for request cancellation. If
9101// the context is nil a panic will occur. In the future the SDK may create
9102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9103// for more information on using Contexts.
9104func (c *APIGateway) PutMethodResponseWithContext(ctx aws.Context, input *PutMethodResponseInput, opts ...request.Option) (*MethodResponse, error) {
9105	req, out := c.PutMethodResponseRequest(input)
9106	req.SetContext(ctx)
9107	req.ApplyOptions(opts...)
9108	return out, req.Send()
9109}
9110
9111const opPutRestApi = "PutRestApi"
9112
9113// PutRestApiRequest generates a "aws/request.Request" representing the
9114// client's request for the PutRestApi operation. The "output" return
9115// value will be populated with the request's response once the request completes
9116// successfully.
9117//
9118// Use "Send" method on the returned Request to send the API call to the service.
9119// the "output" return value is not valid until after Send returns without error.
9120//
9121// See PutRestApi for more information on using the PutRestApi
9122// API call, and error handling.
9123//
9124// This method is useful when you want to inject custom logic or configuration
9125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9126//
9127//
9128//    // Example sending a request using the PutRestApiRequest method.
9129//    req, resp := client.PutRestApiRequest(params)
9130//
9131//    err := req.Send()
9132//    if err == nil { // resp is now filled
9133//        fmt.Println(resp)
9134//    }
9135func (c *APIGateway) PutRestApiRequest(input *PutRestApiInput) (req *request.Request, output *RestApi) {
9136	op := &request.Operation{
9137		Name:       opPutRestApi,
9138		HTTPMethod: "PUT",
9139		HTTPPath:   "/restapis/{restapi_id}",
9140	}
9141
9142	if input == nil {
9143		input = &PutRestApiInput{}
9144	}
9145
9146	output = &RestApi{}
9147	req = c.newRequest(op, input, output)
9148	return
9149}
9150
9151// PutRestApi API operation for Amazon API Gateway.
9152//
9153// A feature of the API Gateway control service for updating an existing API
9154// with an input of external API definitions. The update can take the form of
9155// merging the supplied definition into the existing API or overwriting the
9156// existing API.
9157//
9158// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9159// with awserr.Error's Code and Message methods to get detailed information about
9160// the error.
9161//
9162// See the AWS API reference guide for Amazon API Gateway's
9163// API operation PutRestApi for usage and error information.
9164//
9165// Returned Error Types:
9166//   * BadRequestException
9167//   The submitted request is not valid, for example, the input is incomplete
9168//   or incorrect. See the accompanying error message for details.
9169//
9170//   * ConflictException
9171//   The request configuration has conflicts. For details, see the accompanying
9172//   error message.
9173//
9174//   * LimitExceededException
9175//   The request exceeded the rate limit. Retry after the specified time period.
9176//
9177//   * NotFoundException
9178//   The requested resource is not found. Make sure that the request URI is correct.
9179//
9180//   * UnauthorizedException
9181//   The request is denied because the caller has insufficient permissions.
9182//
9183//   * TooManyRequestsException
9184//   The request has reached its throttling limit. Retry after the specified time
9185//   period.
9186//
9187func (c *APIGateway) PutRestApi(input *PutRestApiInput) (*RestApi, error) {
9188	req, out := c.PutRestApiRequest(input)
9189	return out, req.Send()
9190}
9191
9192// PutRestApiWithContext is the same as PutRestApi with the addition of
9193// the ability to pass a context and additional request options.
9194//
9195// See PutRestApi for details on how to use this API operation.
9196//
9197// The context must be non-nil and will be used for request cancellation. If
9198// the context is nil a panic will occur. In the future the SDK may create
9199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9200// for more information on using Contexts.
9201func (c *APIGateway) PutRestApiWithContext(ctx aws.Context, input *PutRestApiInput, opts ...request.Option) (*RestApi, error) {
9202	req, out := c.PutRestApiRequest(input)
9203	req.SetContext(ctx)
9204	req.ApplyOptions(opts...)
9205	return out, req.Send()
9206}
9207
9208const opTagResource = "TagResource"
9209
9210// TagResourceRequest generates a "aws/request.Request" representing the
9211// client's request for the TagResource operation. The "output" return
9212// value will be populated with the request's response once the request completes
9213// successfully.
9214//
9215// Use "Send" method on the returned Request to send the API call to the service.
9216// the "output" return value is not valid until after Send returns without error.
9217//
9218// See TagResource for more information on using the TagResource
9219// API call, and error handling.
9220//
9221// This method is useful when you want to inject custom logic or configuration
9222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9223//
9224//
9225//    // Example sending a request using the TagResourceRequest method.
9226//    req, resp := client.TagResourceRequest(params)
9227//
9228//    err := req.Send()
9229//    if err == nil { // resp is now filled
9230//        fmt.Println(resp)
9231//    }
9232func (c *APIGateway) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
9233	op := &request.Operation{
9234		Name:       opTagResource,
9235		HTTPMethod: "PUT",
9236		HTTPPath:   "/tags/{resource_arn}",
9237	}
9238
9239	if input == nil {
9240		input = &TagResourceInput{}
9241	}
9242
9243	output = &TagResourceOutput{}
9244	req = c.newRequest(op, input, output)
9245	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9246	return
9247}
9248
9249// TagResource API operation for Amazon API Gateway.
9250//
9251// Adds or updates a tag on a given resource.
9252//
9253// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9254// with awserr.Error's Code and Message methods to get detailed information about
9255// the error.
9256//
9257// See the AWS API reference guide for Amazon API Gateway's
9258// API operation TagResource for usage and error information.
9259//
9260// Returned Error Types:
9261//   * BadRequestException
9262//   The submitted request is not valid, for example, the input is incomplete
9263//   or incorrect. See the accompanying error message for details.
9264//
9265//   * ConflictException
9266//   The request configuration has conflicts. For details, see the accompanying
9267//   error message.
9268//
9269//   * LimitExceededException
9270//   The request exceeded the rate limit. Retry after the specified time period.
9271//
9272//   * NotFoundException
9273//   The requested resource is not found. Make sure that the request URI is correct.
9274//
9275//   * UnauthorizedException
9276//   The request is denied because the caller has insufficient permissions.
9277//
9278//   * TooManyRequestsException
9279//   The request has reached its throttling limit. Retry after the specified time
9280//   period.
9281//
9282func (c *APIGateway) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
9283	req, out := c.TagResourceRequest(input)
9284	return out, req.Send()
9285}
9286
9287// TagResourceWithContext is the same as TagResource with the addition of
9288// the ability to pass a context and additional request options.
9289//
9290// See TagResource for details on how to use this API operation.
9291//
9292// The context must be non-nil and will be used for request cancellation. If
9293// the context is nil a panic will occur. In the future the SDK may create
9294// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9295// for more information on using Contexts.
9296func (c *APIGateway) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
9297	req, out := c.TagResourceRequest(input)
9298	req.SetContext(ctx)
9299	req.ApplyOptions(opts...)
9300	return out, req.Send()
9301}
9302
9303const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
9304
9305// TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
9306// client's request for the TestInvokeAuthorizer operation. The "output" return
9307// value will be populated with the request's response once the request completes
9308// successfully.
9309//
9310// Use "Send" method on the returned Request to send the API call to the service.
9311// the "output" return value is not valid until after Send returns without error.
9312//
9313// See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
9314// API call, and error handling.
9315//
9316// This method is useful when you want to inject custom logic or configuration
9317// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9318//
9319//
9320//    // Example sending a request using the TestInvokeAuthorizerRequest method.
9321//    req, resp := client.TestInvokeAuthorizerRequest(params)
9322//
9323//    err := req.Send()
9324//    if err == nil { // resp is now filled
9325//        fmt.Println(resp)
9326//    }
9327func (c *APIGateway) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
9328	op := &request.Operation{
9329		Name:       opTestInvokeAuthorizer,
9330		HTTPMethod: "POST",
9331		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
9332	}
9333
9334	if input == nil {
9335		input = &TestInvokeAuthorizerInput{}
9336	}
9337
9338	output = &TestInvokeAuthorizerOutput{}
9339	req = c.newRequest(op, input, output)
9340	return
9341}
9342
9343// TestInvokeAuthorizer API operation for Amazon API Gateway.
9344//
9345// Simulate the execution of an Authorizer in your RestApi with headers, parameters,
9346// and an incoming request body.
9347//
9348// Use Lambda Function as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)
9349// Use Cognito User Pool as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)
9350//
9351// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9352// with awserr.Error's Code and Message methods to get detailed information about
9353// the error.
9354//
9355// See the AWS API reference guide for Amazon API Gateway's
9356// API operation TestInvokeAuthorizer for usage and error information.
9357//
9358// Returned Error Types:
9359//   * BadRequestException
9360//   The submitted request is not valid, for example, the input is incomplete
9361//   or incorrect. See the accompanying error message for details.
9362//
9363//   * UnauthorizedException
9364//   The request is denied because the caller has insufficient permissions.
9365//
9366//   * NotFoundException
9367//   The requested resource is not found. Make sure that the request URI is correct.
9368//
9369//   * TooManyRequestsException
9370//   The request has reached its throttling limit. Retry after the specified time
9371//   period.
9372//
9373func (c *APIGateway) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
9374	req, out := c.TestInvokeAuthorizerRequest(input)
9375	return out, req.Send()
9376}
9377
9378// TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
9379// the ability to pass a context and additional request options.
9380//
9381// See TestInvokeAuthorizer for details on how to use this API operation.
9382//
9383// The context must be non-nil and will be used for request cancellation. If
9384// the context is nil a panic will occur. In the future the SDK may create
9385// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9386// for more information on using Contexts.
9387func (c *APIGateway) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
9388	req, out := c.TestInvokeAuthorizerRequest(input)
9389	req.SetContext(ctx)
9390	req.ApplyOptions(opts...)
9391	return out, req.Send()
9392}
9393
9394const opTestInvokeMethod = "TestInvokeMethod"
9395
9396// TestInvokeMethodRequest generates a "aws/request.Request" representing the
9397// client's request for the TestInvokeMethod operation. The "output" return
9398// value will be populated with the request's response once the request completes
9399// successfully.
9400//
9401// Use "Send" method on the returned Request to send the API call to the service.
9402// the "output" return value is not valid until after Send returns without error.
9403//
9404// See TestInvokeMethod for more information on using the TestInvokeMethod
9405// API call, and error handling.
9406//
9407// This method is useful when you want to inject custom logic or configuration
9408// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9409//
9410//
9411//    // Example sending a request using the TestInvokeMethodRequest method.
9412//    req, resp := client.TestInvokeMethodRequest(params)
9413//
9414//    err := req.Send()
9415//    if err == nil { // resp is now filled
9416//        fmt.Println(resp)
9417//    }
9418func (c *APIGateway) TestInvokeMethodRequest(input *TestInvokeMethodInput) (req *request.Request, output *TestInvokeMethodOutput) {
9419	op := &request.Operation{
9420		Name:       opTestInvokeMethod,
9421		HTTPMethod: "POST",
9422		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
9423	}
9424
9425	if input == nil {
9426		input = &TestInvokeMethodInput{}
9427	}
9428
9429	output = &TestInvokeMethodOutput{}
9430	req = c.newRequest(op, input, output)
9431	return
9432}
9433
9434// TestInvokeMethod API operation for Amazon API Gateway.
9435//
9436// Simulate the execution of a Method in your RestApi with headers, parameters,
9437// and an incoming request body.
9438//
9439// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9440// with awserr.Error's Code and Message methods to get detailed information about
9441// the error.
9442//
9443// See the AWS API reference guide for Amazon API Gateway's
9444// API operation TestInvokeMethod for usage and error information.
9445//
9446// Returned Error Types:
9447//   * BadRequestException
9448//   The submitted request is not valid, for example, the input is incomplete
9449//   or incorrect. See the accompanying error message for details.
9450//
9451//   * UnauthorizedException
9452//   The request is denied because the caller has insufficient permissions.
9453//
9454//   * NotFoundException
9455//   The requested resource is not found. Make sure that the request URI is correct.
9456//
9457//   * TooManyRequestsException
9458//   The request has reached its throttling limit. Retry after the specified time
9459//   period.
9460//
9461func (c *APIGateway) TestInvokeMethod(input *TestInvokeMethodInput) (*TestInvokeMethodOutput, error) {
9462	req, out := c.TestInvokeMethodRequest(input)
9463	return out, req.Send()
9464}
9465
9466// TestInvokeMethodWithContext is the same as TestInvokeMethod with the addition of
9467// the ability to pass a context and additional request options.
9468//
9469// See TestInvokeMethod for details on how to use this API operation.
9470//
9471// The context must be non-nil and will be used for request cancellation. If
9472// the context is nil a panic will occur. In the future the SDK may create
9473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9474// for more information on using Contexts.
9475func (c *APIGateway) TestInvokeMethodWithContext(ctx aws.Context, input *TestInvokeMethodInput, opts ...request.Option) (*TestInvokeMethodOutput, error) {
9476	req, out := c.TestInvokeMethodRequest(input)
9477	req.SetContext(ctx)
9478	req.ApplyOptions(opts...)
9479	return out, req.Send()
9480}
9481
9482const opUntagResource = "UntagResource"
9483
9484// UntagResourceRequest generates a "aws/request.Request" representing the
9485// client's request for the UntagResource operation. The "output" return
9486// value will be populated with the request's response once the request completes
9487// successfully.
9488//
9489// Use "Send" method on the returned Request to send the API call to the service.
9490// the "output" return value is not valid until after Send returns without error.
9491//
9492// See UntagResource for more information on using the UntagResource
9493// API call, and error handling.
9494//
9495// This method is useful when you want to inject custom logic or configuration
9496// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9497//
9498//
9499//    // Example sending a request using the UntagResourceRequest method.
9500//    req, resp := client.UntagResourceRequest(params)
9501//
9502//    err := req.Send()
9503//    if err == nil { // resp is now filled
9504//        fmt.Println(resp)
9505//    }
9506func (c *APIGateway) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
9507	op := &request.Operation{
9508		Name:       opUntagResource,
9509		HTTPMethod: "DELETE",
9510		HTTPPath:   "/tags/{resource_arn}",
9511	}
9512
9513	if input == nil {
9514		input = &UntagResourceInput{}
9515	}
9516
9517	output = &UntagResourceOutput{}
9518	req = c.newRequest(op, input, output)
9519	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9520	return
9521}
9522
9523// UntagResource API operation for Amazon API Gateway.
9524//
9525// Removes a tag from a given resource.
9526//
9527// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9528// with awserr.Error's Code and Message methods to get detailed information about
9529// the error.
9530//
9531// See the AWS API reference guide for Amazon API Gateway's
9532// API operation UntagResource for usage and error information.
9533//
9534// Returned Error Types:
9535//   * BadRequestException
9536//   The submitted request is not valid, for example, the input is incomplete
9537//   or incorrect. See the accompanying error message for details.
9538//
9539//   * ConflictException
9540//   The request configuration has conflicts. For details, see the accompanying
9541//   error message.
9542//
9543//   * LimitExceededException
9544//   The request exceeded the rate limit. Retry after the specified time period.
9545//
9546//   * NotFoundException
9547//   The requested resource is not found. Make sure that the request URI is correct.
9548//
9549//   * UnauthorizedException
9550//   The request is denied because the caller has insufficient permissions.
9551//
9552//   * TooManyRequestsException
9553//   The request has reached its throttling limit. Retry after the specified time
9554//   period.
9555//
9556func (c *APIGateway) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
9557	req, out := c.UntagResourceRequest(input)
9558	return out, req.Send()
9559}
9560
9561// UntagResourceWithContext is the same as UntagResource with the addition of
9562// the ability to pass a context and additional request options.
9563//
9564// See UntagResource for details on how to use this API operation.
9565//
9566// The context must be non-nil and will be used for request cancellation. If
9567// the context is nil a panic will occur. In the future the SDK may create
9568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9569// for more information on using Contexts.
9570func (c *APIGateway) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
9571	req, out := c.UntagResourceRequest(input)
9572	req.SetContext(ctx)
9573	req.ApplyOptions(opts...)
9574	return out, req.Send()
9575}
9576
9577const opUpdateAccount = "UpdateAccount"
9578
9579// UpdateAccountRequest generates a "aws/request.Request" representing the
9580// client's request for the UpdateAccount operation. The "output" return
9581// value will be populated with the request's response once the request completes
9582// successfully.
9583//
9584// Use "Send" method on the returned Request to send the API call to the service.
9585// the "output" return value is not valid until after Send returns without error.
9586//
9587// See UpdateAccount for more information on using the UpdateAccount
9588// API call, and error handling.
9589//
9590// This method is useful when you want to inject custom logic or configuration
9591// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9592//
9593//
9594//    // Example sending a request using the UpdateAccountRequest method.
9595//    req, resp := client.UpdateAccountRequest(params)
9596//
9597//    err := req.Send()
9598//    if err == nil { // resp is now filled
9599//        fmt.Println(resp)
9600//    }
9601func (c *APIGateway) UpdateAccountRequest(input *UpdateAccountInput) (req *request.Request, output *Account) {
9602	op := &request.Operation{
9603		Name:       opUpdateAccount,
9604		HTTPMethod: "PATCH",
9605		HTTPPath:   "/account",
9606	}
9607
9608	if input == nil {
9609		input = &UpdateAccountInput{}
9610	}
9611
9612	output = &Account{}
9613	req = c.newRequest(op, input, output)
9614	return
9615}
9616
9617// UpdateAccount API operation for Amazon API Gateway.
9618//
9619// Changes information about the current Account resource.
9620//
9621// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9622// with awserr.Error's Code and Message methods to get detailed information about
9623// the error.
9624//
9625// See the AWS API reference guide for Amazon API Gateway's
9626// API operation UpdateAccount for usage and error information.
9627//
9628// Returned Error Types:
9629//   * BadRequestException
9630//   The submitted request is not valid, for example, the input is incomplete
9631//   or incorrect. See the accompanying error message for details.
9632//
9633//   * ConflictException
9634//   The request configuration has conflicts. For details, see the accompanying
9635//   error message.
9636//
9637//   * LimitExceededException
9638//   The request exceeded the rate limit. Retry after the specified time period.
9639//
9640//   * NotFoundException
9641//   The requested resource is not found. Make sure that the request URI is correct.
9642//
9643//   * UnauthorizedException
9644//   The request is denied because the caller has insufficient permissions.
9645//
9646//   * TooManyRequestsException
9647//   The request has reached its throttling limit. Retry after the specified time
9648//   period.
9649//
9650func (c *APIGateway) UpdateAccount(input *UpdateAccountInput) (*Account, error) {
9651	req, out := c.UpdateAccountRequest(input)
9652	return out, req.Send()
9653}
9654
9655// UpdateAccountWithContext is the same as UpdateAccount with the addition of
9656// the ability to pass a context and additional request options.
9657//
9658// See UpdateAccount for details on how to use this API operation.
9659//
9660// The context must be non-nil and will be used for request cancellation. If
9661// the context is nil a panic will occur. In the future the SDK may create
9662// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9663// for more information on using Contexts.
9664func (c *APIGateway) UpdateAccountWithContext(ctx aws.Context, input *UpdateAccountInput, opts ...request.Option) (*Account, error) {
9665	req, out := c.UpdateAccountRequest(input)
9666	req.SetContext(ctx)
9667	req.ApplyOptions(opts...)
9668	return out, req.Send()
9669}
9670
9671const opUpdateApiKey = "UpdateApiKey"
9672
9673// UpdateApiKeyRequest generates a "aws/request.Request" representing the
9674// client's request for the UpdateApiKey operation. The "output" return
9675// value will be populated with the request's response once the request completes
9676// successfully.
9677//
9678// Use "Send" method on the returned Request to send the API call to the service.
9679// the "output" return value is not valid until after Send returns without error.
9680//
9681// See UpdateApiKey for more information on using the UpdateApiKey
9682// API call, and error handling.
9683//
9684// This method is useful when you want to inject custom logic or configuration
9685// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9686//
9687//
9688//    // Example sending a request using the UpdateApiKeyRequest method.
9689//    req, resp := client.UpdateApiKeyRequest(params)
9690//
9691//    err := req.Send()
9692//    if err == nil { // resp is now filled
9693//        fmt.Println(resp)
9694//    }
9695func (c *APIGateway) UpdateApiKeyRequest(input *UpdateApiKeyInput) (req *request.Request, output *ApiKey) {
9696	op := &request.Operation{
9697		Name:       opUpdateApiKey,
9698		HTTPMethod: "PATCH",
9699		HTTPPath:   "/apikeys/{api_Key}",
9700	}
9701
9702	if input == nil {
9703		input = &UpdateApiKeyInput{}
9704	}
9705
9706	output = &ApiKey{}
9707	req = c.newRequest(op, input, output)
9708	return
9709}
9710
9711// UpdateApiKey API operation for Amazon API Gateway.
9712//
9713// Changes information about an ApiKey resource.
9714//
9715// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9716// with awserr.Error's Code and Message methods to get detailed information about
9717// the error.
9718//
9719// See the AWS API reference guide for Amazon API Gateway's
9720// API operation UpdateApiKey for usage and error information.
9721//
9722// Returned Error Types:
9723//   * BadRequestException
9724//   The submitted request is not valid, for example, the input is incomplete
9725//   or incorrect. See the accompanying error message for details.
9726//
9727//   * ConflictException
9728//   The request configuration has conflicts. For details, see the accompanying
9729//   error message.
9730//
9731//   * LimitExceededException
9732//   The request exceeded the rate limit. Retry after the specified time period.
9733//
9734//   * NotFoundException
9735//   The requested resource is not found. Make sure that the request URI is correct.
9736//
9737//   * UnauthorizedException
9738//   The request is denied because the caller has insufficient permissions.
9739//
9740//   * TooManyRequestsException
9741//   The request has reached its throttling limit. Retry after the specified time
9742//   period.
9743//
9744func (c *APIGateway) UpdateApiKey(input *UpdateApiKeyInput) (*ApiKey, error) {
9745	req, out := c.UpdateApiKeyRequest(input)
9746	return out, req.Send()
9747}
9748
9749// UpdateApiKeyWithContext is the same as UpdateApiKey with the addition of
9750// the ability to pass a context and additional request options.
9751//
9752// See UpdateApiKey for details on how to use this API operation.
9753//
9754// The context must be non-nil and will be used for request cancellation. If
9755// the context is nil a panic will occur. In the future the SDK may create
9756// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9757// for more information on using Contexts.
9758func (c *APIGateway) UpdateApiKeyWithContext(ctx aws.Context, input *UpdateApiKeyInput, opts ...request.Option) (*ApiKey, error) {
9759	req, out := c.UpdateApiKeyRequest(input)
9760	req.SetContext(ctx)
9761	req.ApplyOptions(opts...)
9762	return out, req.Send()
9763}
9764
9765const opUpdateAuthorizer = "UpdateAuthorizer"
9766
9767// UpdateAuthorizerRequest generates a "aws/request.Request" representing the
9768// client's request for the UpdateAuthorizer operation. The "output" return
9769// value will be populated with the request's response once the request completes
9770// successfully.
9771//
9772// Use "Send" method on the returned Request to send the API call to the service.
9773// the "output" return value is not valid until after Send returns without error.
9774//
9775// See UpdateAuthorizer for more information on using the UpdateAuthorizer
9776// API call, and error handling.
9777//
9778// This method is useful when you want to inject custom logic or configuration
9779// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9780//
9781//
9782//    // Example sending a request using the UpdateAuthorizerRequest method.
9783//    req, resp := client.UpdateAuthorizerRequest(params)
9784//
9785//    err := req.Send()
9786//    if err == nil { // resp is now filled
9787//        fmt.Println(resp)
9788//    }
9789func (c *APIGateway) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *Authorizer) {
9790	op := &request.Operation{
9791		Name:       opUpdateAuthorizer,
9792		HTTPMethod: "PATCH",
9793		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
9794	}
9795
9796	if input == nil {
9797		input = &UpdateAuthorizerInput{}
9798	}
9799
9800	output = &Authorizer{}
9801	req = c.newRequest(op, input, output)
9802	return
9803}
9804
9805// UpdateAuthorizer API operation for Amazon API Gateway.
9806//
9807// Updates an existing Authorizer resource.
9808//
9809// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-authorizer.html)
9810//
9811// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9812// with awserr.Error's Code and Message methods to get detailed information about
9813// the error.
9814//
9815// See the AWS API reference guide for Amazon API Gateway's
9816// API operation UpdateAuthorizer for usage and error information.
9817//
9818// Returned Error Types:
9819//   * BadRequestException
9820//   The submitted request is not valid, for example, the input is incomplete
9821//   or incorrect. See the accompanying error message for details.
9822//
9823//   * ConflictException
9824//   The request configuration has conflicts. For details, see the accompanying
9825//   error message.
9826//
9827//   * LimitExceededException
9828//   The request exceeded the rate limit. Retry after the specified time period.
9829//
9830//   * NotFoundException
9831//   The requested resource is not found. Make sure that the request URI is correct.
9832//
9833//   * UnauthorizedException
9834//   The request is denied because the caller has insufficient permissions.
9835//
9836//   * TooManyRequestsException
9837//   The request has reached its throttling limit. Retry after the specified time
9838//   period.
9839//
9840func (c *APIGateway) UpdateAuthorizer(input *UpdateAuthorizerInput) (*Authorizer, error) {
9841	req, out := c.UpdateAuthorizerRequest(input)
9842	return out, req.Send()
9843}
9844
9845// UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
9846// the ability to pass a context and additional request options.
9847//
9848// See UpdateAuthorizer for details on how to use this API operation.
9849//
9850// The context must be non-nil and will be used for request cancellation. If
9851// the context is nil a panic will occur. In the future the SDK may create
9852// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9853// for more information on using Contexts.
9854func (c *APIGateway) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*Authorizer, error) {
9855	req, out := c.UpdateAuthorizerRequest(input)
9856	req.SetContext(ctx)
9857	req.ApplyOptions(opts...)
9858	return out, req.Send()
9859}
9860
9861const opUpdateBasePathMapping = "UpdateBasePathMapping"
9862
9863// UpdateBasePathMappingRequest generates a "aws/request.Request" representing the
9864// client's request for the UpdateBasePathMapping operation. The "output" return
9865// value will be populated with the request's response once the request completes
9866// successfully.
9867//
9868// Use "Send" method on the returned Request to send the API call to the service.
9869// the "output" return value is not valid until after Send returns without error.
9870//
9871// See UpdateBasePathMapping for more information on using the UpdateBasePathMapping
9872// API call, and error handling.
9873//
9874// This method is useful when you want to inject custom logic or configuration
9875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9876//
9877//
9878//    // Example sending a request using the UpdateBasePathMappingRequest method.
9879//    req, resp := client.UpdateBasePathMappingRequest(params)
9880//
9881//    err := req.Send()
9882//    if err == nil { // resp is now filled
9883//        fmt.Println(resp)
9884//    }
9885func (c *APIGateway) UpdateBasePathMappingRequest(input *UpdateBasePathMappingInput) (req *request.Request, output *BasePathMapping) {
9886	op := &request.Operation{
9887		Name:       opUpdateBasePathMapping,
9888		HTTPMethod: "PATCH",
9889		HTTPPath:   "/domainnames/{domain_name}/basepathmappings/{base_path}",
9890	}
9891
9892	if input == nil {
9893		input = &UpdateBasePathMappingInput{}
9894	}
9895
9896	output = &BasePathMapping{}
9897	req = c.newRequest(op, input, output)
9898	return
9899}
9900
9901// UpdateBasePathMapping API operation for Amazon API Gateway.
9902//
9903// Changes information about the BasePathMapping resource.
9904//
9905// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9906// with awserr.Error's Code and Message methods to get detailed information about
9907// the error.
9908//
9909// See the AWS API reference guide for Amazon API Gateway's
9910// API operation UpdateBasePathMapping for usage and error information.
9911//
9912// Returned Error Types:
9913//   * BadRequestException
9914//   The submitted request is not valid, for example, the input is incomplete
9915//   or incorrect. See the accompanying error message for details.
9916//
9917//   * ConflictException
9918//   The request configuration has conflicts. For details, see the accompanying
9919//   error message.
9920//
9921//   * LimitExceededException
9922//   The request exceeded the rate limit. Retry after the specified time period.
9923//
9924//   * NotFoundException
9925//   The requested resource is not found. Make sure that the request URI is correct.
9926//
9927//   * UnauthorizedException
9928//   The request is denied because the caller has insufficient permissions.
9929//
9930//   * TooManyRequestsException
9931//   The request has reached its throttling limit. Retry after the specified time
9932//   period.
9933//
9934func (c *APIGateway) UpdateBasePathMapping(input *UpdateBasePathMappingInput) (*BasePathMapping, error) {
9935	req, out := c.UpdateBasePathMappingRequest(input)
9936	return out, req.Send()
9937}
9938
9939// UpdateBasePathMappingWithContext is the same as UpdateBasePathMapping with the addition of
9940// the ability to pass a context and additional request options.
9941//
9942// See UpdateBasePathMapping for details on how to use this API operation.
9943//
9944// The context must be non-nil and will be used for request cancellation. If
9945// the context is nil a panic will occur. In the future the SDK may create
9946// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9947// for more information on using Contexts.
9948func (c *APIGateway) UpdateBasePathMappingWithContext(ctx aws.Context, input *UpdateBasePathMappingInput, opts ...request.Option) (*BasePathMapping, error) {
9949	req, out := c.UpdateBasePathMappingRequest(input)
9950	req.SetContext(ctx)
9951	req.ApplyOptions(opts...)
9952	return out, req.Send()
9953}
9954
9955const opUpdateClientCertificate = "UpdateClientCertificate"
9956
9957// UpdateClientCertificateRequest generates a "aws/request.Request" representing the
9958// client's request for the UpdateClientCertificate operation. The "output" return
9959// value will be populated with the request's response once the request completes
9960// successfully.
9961//
9962// Use "Send" method on the returned Request to send the API call to the service.
9963// the "output" return value is not valid until after Send returns without error.
9964//
9965// See UpdateClientCertificate for more information on using the UpdateClientCertificate
9966// API call, and error handling.
9967//
9968// This method is useful when you want to inject custom logic or configuration
9969// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9970//
9971//
9972//    // Example sending a request using the UpdateClientCertificateRequest method.
9973//    req, resp := client.UpdateClientCertificateRequest(params)
9974//
9975//    err := req.Send()
9976//    if err == nil { // resp is now filled
9977//        fmt.Println(resp)
9978//    }
9979func (c *APIGateway) UpdateClientCertificateRequest(input *UpdateClientCertificateInput) (req *request.Request, output *ClientCertificate) {
9980	op := &request.Operation{
9981		Name:       opUpdateClientCertificate,
9982		HTTPMethod: "PATCH",
9983		HTTPPath:   "/clientcertificates/{clientcertificate_id}",
9984	}
9985
9986	if input == nil {
9987		input = &UpdateClientCertificateInput{}
9988	}
9989
9990	output = &ClientCertificate{}
9991	req = c.newRequest(op, input, output)
9992	return
9993}
9994
9995// UpdateClientCertificate API operation for Amazon API Gateway.
9996//
9997// Changes information about an ClientCertificate resource.
9998//
9999// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10000// with awserr.Error's Code and Message methods to get detailed information about
10001// the error.
10002//
10003// See the AWS API reference guide for Amazon API Gateway's
10004// API operation UpdateClientCertificate for usage and error information.
10005//
10006// Returned Error Types:
10007//   * BadRequestException
10008//   The submitted request is not valid, for example, the input is incomplete
10009//   or incorrect. See the accompanying error message for details.
10010//
10011//   * ConflictException
10012//   The request configuration has conflicts. For details, see the accompanying
10013//   error message.
10014//
10015//   * LimitExceededException
10016//   The request exceeded the rate limit. Retry after the specified time period.
10017//
10018//   * NotFoundException
10019//   The requested resource is not found. Make sure that the request URI is correct.
10020//
10021//   * UnauthorizedException
10022//   The request is denied because the caller has insufficient permissions.
10023//
10024//   * TooManyRequestsException
10025//   The request has reached its throttling limit. Retry after the specified time
10026//   period.
10027//
10028func (c *APIGateway) UpdateClientCertificate(input *UpdateClientCertificateInput) (*ClientCertificate, error) {
10029	req, out := c.UpdateClientCertificateRequest(input)
10030	return out, req.Send()
10031}
10032
10033// UpdateClientCertificateWithContext is the same as UpdateClientCertificate with the addition of
10034// the ability to pass a context and additional request options.
10035//
10036// See UpdateClientCertificate for details on how to use this API operation.
10037//
10038// The context must be non-nil and will be used for request cancellation. If
10039// the context is nil a panic will occur. In the future the SDK may create
10040// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10041// for more information on using Contexts.
10042func (c *APIGateway) UpdateClientCertificateWithContext(ctx aws.Context, input *UpdateClientCertificateInput, opts ...request.Option) (*ClientCertificate, error) {
10043	req, out := c.UpdateClientCertificateRequest(input)
10044	req.SetContext(ctx)
10045	req.ApplyOptions(opts...)
10046	return out, req.Send()
10047}
10048
10049const opUpdateDeployment = "UpdateDeployment"
10050
10051// UpdateDeploymentRequest generates a "aws/request.Request" representing the
10052// client's request for the UpdateDeployment operation. The "output" return
10053// value will be populated with the request's response once the request completes
10054// successfully.
10055//
10056// Use "Send" method on the returned Request to send the API call to the service.
10057// the "output" return value is not valid until after Send returns without error.
10058//
10059// See UpdateDeployment for more information on using the UpdateDeployment
10060// API call, and error handling.
10061//
10062// This method is useful when you want to inject custom logic or configuration
10063// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10064//
10065//
10066//    // Example sending a request using the UpdateDeploymentRequest method.
10067//    req, resp := client.UpdateDeploymentRequest(params)
10068//
10069//    err := req.Send()
10070//    if err == nil { // resp is now filled
10071//        fmt.Println(resp)
10072//    }
10073func (c *APIGateway) UpdateDeploymentRequest(input *UpdateDeploymentInput) (req *request.Request, output *Deployment) {
10074	op := &request.Operation{
10075		Name:       opUpdateDeployment,
10076		HTTPMethod: "PATCH",
10077		HTTPPath:   "/restapis/{restapi_id}/deployments/{deployment_id}",
10078	}
10079
10080	if input == nil {
10081		input = &UpdateDeploymentInput{}
10082	}
10083
10084	output = &Deployment{}
10085	req = c.newRequest(op, input, output)
10086	return
10087}
10088
10089// UpdateDeployment API operation for Amazon API Gateway.
10090//
10091// Changes information about a Deployment resource.
10092//
10093// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10094// with awserr.Error's Code and Message methods to get detailed information about
10095// the error.
10096//
10097// See the AWS API reference guide for Amazon API Gateway's
10098// API operation UpdateDeployment for usage and error information.
10099//
10100// Returned Error Types:
10101//   * BadRequestException
10102//   The submitted request is not valid, for example, the input is incomplete
10103//   or incorrect. See the accompanying error message for details.
10104//
10105//   * ConflictException
10106//   The request configuration has conflicts. For details, see the accompanying
10107//   error message.
10108//
10109//   * LimitExceededException
10110//   The request exceeded the rate limit. Retry after the specified time period.
10111//
10112//   * NotFoundException
10113//   The requested resource is not found. Make sure that the request URI is correct.
10114//
10115//   * UnauthorizedException
10116//   The request is denied because the caller has insufficient permissions.
10117//
10118//   * TooManyRequestsException
10119//   The request has reached its throttling limit. Retry after the specified time
10120//   period.
10121//
10122//   * ServiceUnavailableException
10123//   The requested service is not available. For details see the accompanying
10124//   error message. Retry after the specified time period.
10125//
10126func (c *APIGateway) UpdateDeployment(input *UpdateDeploymentInput) (*Deployment, error) {
10127	req, out := c.UpdateDeploymentRequest(input)
10128	return out, req.Send()
10129}
10130
10131// UpdateDeploymentWithContext is the same as UpdateDeployment with the addition of
10132// the ability to pass a context and additional request options.
10133//
10134// See UpdateDeployment for details on how to use this API operation.
10135//
10136// The context must be non-nil and will be used for request cancellation. If
10137// the context is nil a panic will occur. In the future the SDK may create
10138// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10139// for more information on using Contexts.
10140func (c *APIGateway) UpdateDeploymentWithContext(ctx aws.Context, input *UpdateDeploymentInput, opts ...request.Option) (*Deployment, error) {
10141	req, out := c.UpdateDeploymentRequest(input)
10142	req.SetContext(ctx)
10143	req.ApplyOptions(opts...)
10144	return out, req.Send()
10145}
10146
10147const opUpdateDocumentationPart = "UpdateDocumentationPart"
10148
10149// UpdateDocumentationPartRequest generates a "aws/request.Request" representing the
10150// client's request for the UpdateDocumentationPart operation. The "output" return
10151// value will be populated with the request's response once the request completes
10152// successfully.
10153//
10154// Use "Send" method on the returned Request to send the API call to the service.
10155// the "output" return value is not valid until after Send returns without error.
10156//
10157// See UpdateDocumentationPart for more information on using the UpdateDocumentationPart
10158// API call, and error handling.
10159//
10160// This method is useful when you want to inject custom logic or configuration
10161// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10162//
10163//
10164//    // Example sending a request using the UpdateDocumentationPartRequest method.
10165//    req, resp := client.UpdateDocumentationPartRequest(params)
10166//
10167//    err := req.Send()
10168//    if err == nil { // resp is now filled
10169//        fmt.Println(resp)
10170//    }
10171func (c *APIGateway) UpdateDocumentationPartRequest(input *UpdateDocumentationPartInput) (req *request.Request, output *DocumentationPart) {
10172	op := &request.Operation{
10173		Name:       opUpdateDocumentationPart,
10174		HTTPMethod: "PATCH",
10175		HTTPPath:   "/restapis/{restapi_id}/documentation/parts/{part_id}",
10176	}
10177
10178	if input == nil {
10179		input = &UpdateDocumentationPartInput{}
10180	}
10181
10182	output = &DocumentationPart{}
10183	req = c.newRequest(op, input, output)
10184	return
10185}
10186
10187// UpdateDocumentationPart API operation for Amazon API Gateway.
10188//
10189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10190// with awserr.Error's Code and Message methods to get detailed information about
10191// the error.
10192//
10193// See the AWS API reference guide for Amazon API Gateway's
10194// API operation UpdateDocumentationPart for usage and error information.
10195//
10196// Returned Error Types:
10197//   * BadRequestException
10198//   The submitted request is not valid, for example, the input is incomplete
10199//   or incorrect. See the accompanying error message for details.
10200//
10201//   * ConflictException
10202//   The request configuration has conflicts. For details, see the accompanying
10203//   error message.
10204//
10205//   * LimitExceededException
10206//   The request exceeded the rate limit. Retry after the specified time period.
10207//
10208//   * NotFoundException
10209//   The requested resource is not found. Make sure that the request URI is correct.
10210//
10211//   * UnauthorizedException
10212//   The request is denied because the caller has insufficient permissions.
10213//
10214//   * TooManyRequestsException
10215//   The request has reached its throttling limit. Retry after the specified time
10216//   period.
10217//
10218func (c *APIGateway) UpdateDocumentationPart(input *UpdateDocumentationPartInput) (*DocumentationPart, error) {
10219	req, out := c.UpdateDocumentationPartRequest(input)
10220	return out, req.Send()
10221}
10222
10223// UpdateDocumentationPartWithContext is the same as UpdateDocumentationPart with the addition of
10224// the ability to pass a context and additional request options.
10225//
10226// See UpdateDocumentationPart for details on how to use this API operation.
10227//
10228// The context must be non-nil and will be used for request cancellation. If
10229// the context is nil a panic will occur. In the future the SDK may create
10230// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10231// for more information on using Contexts.
10232func (c *APIGateway) UpdateDocumentationPartWithContext(ctx aws.Context, input *UpdateDocumentationPartInput, opts ...request.Option) (*DocumentationPart, error) {
10233	req, out := c.UpdateDocumentationPartRequest(input)
10234	req.SetContext(ctx)
10235	req.ApplyOptions(opts...)
10236	return out, req.Send()
10237}
10238
10239const opUpdateDocumentationVersion = "UpdateDocumentationVersion"
10240
10241// UpdateDocumentationVersionRequest generates a "aws/request.Request" representing the
10242// client's request for the UpdateDocumentationVersion operation. The "output" return
10243// value will be populated with the request's response once the request completes
10244// successfully.
10245//
10246// Use "Send" method on the returned Request to send the API call to the service.
10247// the "output" return value is not valid until after Send returns without error.
10248//
10249// See UpdateDocumentationVersion for more information on using the UpdateDocumentationVersion
10250// API call, and error handling.
10251//
10252// This method is useful when you want to inject custom logic or configuration
10253// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10254//
10255//
10256//    // Example sending a request using the UpdateDocumentationVersionRequest method.
10257//    req, resp := client.UpdateDocumentationVersionRequest(params)
10258//
10259//    err := req.Send()
10260//    if err == nil { // resp is now filled
10261//        fmt.Println(resp)
10262//    }
10263func (c *APIGateway) UpdateDocumentationVersionRequest(input *UpdateDocumentationVersionInput) (req *request.Request, output *DocumentationVersion) {
10264	op := &request.Operation{
10265		Name:       opUpdateDocumentationVersion,
10266		HTTPMethod: "PATCH",
10267		HTTPPath:   "/restapis/{restapi_id}/documentation/versions/{doc_version}",
10268	}
10269
10270	if input == nil {
10271		input = &UpdateDocumentationVersionInput{}
10272	}
10273
10274	output = &DocumentationVersion{}
10275	req = c.newRequest(op, input, output)
10276	return
10277}
10278
10279// UpdateDocumentationVersion API operation for Amazon API Gateway.
10280//
10281// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10282// with awserr.Error's Code and Message methods to get detailed information about
10283// the error.
10284//
10285// See the AWS API reference guide for Amazon API Gateway's
10286// API operation UpdateDocumentationVersion for usage and error information.
10287//
10288// Returned Error Types:
10289//   * BadRequestException
10290//   The submitted request is not valid, for example, the input is incomplete
10291//   or incorrect. See the accompanying error message for details.
10292//
10293//   * ConflictException
10294//   The request configuration has conflicts. For details, see the accompanying
10295//   error message.
10296//
10297//   * LimitExceededException
10298//   The request exceeded the rate limit. Retry after the specified time period.
10299//
10300//   * NotFoundException
10301//   The requested resource is not found. Make sure that the request URI is correct.
10302//
10303//   * UnauthorizedException
10304//   The request is denied because the caller has insufficient permissions.
10305//
10306//   * TooManyRequestsException
10307//   The request has reached its throttling limit. Retry after the specified time
10308//   period.
10309//
10310func (c *APIGateway) UpdateDocumentationVersion(input *UpdateDocumentationVersionInput) (*DocumentationVersion, error) {
10311	req, out := c.UpdateDocumentationVersionRequest(input)
10312	return out, req.Send()
10313}
10314
10315// UpdateDocumentationVersionWithContext is the same as UpdateDocumentationVersion with the addition of
10316// the ability to pass a context and additional request options.
10317//
10318// See UpdateDocumentationVersion for details on how to use this API operation.
10319//
10320// The context must be non-nil and will be used for request cancellation. If
10321// the context is nil a panic will occur. In the future the SDK may create
10322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10323// for more information on using Contexts.
10324func (c *APIGateway) UpdateDocumentationVersionWithContext(ctx aws.Context, input *UpdateDocumentationVersionInput, opts ...request.Option) (*DocumentationVersion, error) {
10325	req, out := c.UpdateDocumentationVersionRequest(input)
10326	req.SetContext(ctx)
10327	req.ApplyOptions(opts...)
10328	return out, req.Send()
10329}
10330
10331const opUpdateDomainName = "UpdateDomainName"
10332
10333// UpdateDomainNameRequest generates a "aws/request.Request" representing the
10334// client's request for the UpdateDomainName operation. The "output" return
10335// value will be populated with the request's response once the request completes
10336// successfully.
10337//
10338// Use "Send" method on the returned Request to send the API call to the service.
10339// the "output" return value is not valid until after Send returns without error.
10340//
10341// See UpdateDomainName for more information on using the UpdateDomainName
10342// API call, and error handling.
10343//
10344// This method is useful when you want to inject custom logic or configuration
10345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10346//
10347//
10348//    // Example sending a request using the UpdateDomainNameRequest method.
10349//    req, resp := client.UpdateDomainNameRequest(params)
10350//
10351//    err := req.Send()
10352//    if err == nil { // resp is now filled
10353//        fmt.Println(resp)
10354//    }
10355func (c *APIGateway) UpdateDomainNameRequest(input *UpdateDomainNameInput) (req *request.Request, output *DomainName) {
10356	op := &request.Operation{
10357		Name:       opUpdateDomainName,
10358		HTTPMethod: "PATCH",
10359		HTTPPath:   "/domainnames/{domain_name}",
10360	}
10361
10362	if input == nil {
10363		input = &UpdateDomainNameInput{}
10364	}
10365
10366	output = &DomainName{}
10367	req = c.newRequest(op, input, output)
10368	return
10369}
10370
10371// UpdateDomainName API operation for Amazon API Gateway.
10372//
10373// Changes information about the DomainName resource.
10374//
10375// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10376// with awserr.Error's Code and Message methods to get detailed information about
10377// the error.
10378//
10379// See the AWS API reference guide for Amazon API Gateway's
10380// API operation UpdateDomainName for usage and error information.
10381//
10382// Returned Error Types:
10383//   * BadRequestException
10384//   The submitted request is not valid, for example, the input is incomplete
10385//   or incorrect. See the accompanying error message for details.
10386//
10387//   * ConflictException
10388//   The request configuration has conflicts. For details, see the accompanying
10389//   error message.
10390//
10391//   * LimitExceededException
10392//   The request exceeded the rate limit. Retry after the specified time period.
10393//
10394//   * NotFoundException
10395//   The requested resource is not found. Make sure that the request URI is correct.
10396//
10397//   * UnauthorizedException
10398//   The request is denied because the caller has insufficient permissions.
10399//
10400//   * TooManyRequestsException
10401//   The request has reached its throttling limit. Retry after the specified time
10402//   period.
10403//
10404func (c *APIGateway) UpdateDomainName(input *UpdateDomainNameInput) (*DomainName, error) {
10405	req, out := c.UpdateDomainNameRequest(input)
10406	return out, req.Send()
10407}
10408
10409// UpdateDomainNameWithContext is the same as UpdateDomainName with the addition of
10410// the ability to pass a context and additional request options.
10411//
10412// See UpdateDomainName for details on how to use this API operation.
10413//
10414// The context must be non-nil and will be used for request cancellation. If
10415// the context is nil a panic will occur. In the future the SDK may create
10416// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10417// for more information on using Contexts.
10418func (c *APIGateway) UpdateDomainNameWithContext(ctx aws.Context, input *UpdateDomainNameInput, opts ...request.Option) (*DomainName, error) {
10419	req, out := c.UpdateDomainNameRequest(input)
10420	req.SetContext(ctx)
10421	req.ApplyOptions(opts...)
10422	return out, req.Send()
10423}
10424
10425const opUpdateGatewayResponse = "UpdateGatewayResponse"
10426
10427// UpdateGatewayResponseRequest generates a "aws/request.Request" representing the
10428// client's request for the UpdateGatewayResponse operation. The "output" return
10429// value will be populated with the request's response once the request completes
10430// successfully.
10431//
10432// Use "Send" method on the returned Request to send the API call to the service.
10433// the "output" return value is not valid until after Send returns without error.
10434//
10435// See UpdateGatewayResponse for more information on using the UpdateGatewayResponse
10436// API call, and error handling.
10437//
10438// This method is useful when you want to inject custom logic or configuration
10439// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10440//
10441//
10442//    // Example sending a request using the UpdateGatewayResponseRequest method.
10443//    req, resp := client.UpdateGatewayResponseRequest(params)
10444//
10445//    err := req.Send()
10446//    if err == nil { // resp is now filled
10447//        fmt.Println(resp)
10448//    }
10449func (c *APIGateway) UpdateGatewayResponseRequest(input *UpdateGatewayResponseInput) (req *request.Request, output *UpdateGatewayResponseOutput) {
10450	op := &request.Operation{
10451		Name:       opUpdateGatewayResponse,
10452		HTTPMethod: "PATCH",
10453		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
10454	}
10455
10456	if input == nil {
10457		input = &UpdateGatewayResponseInput{}
10458	}
10459
10460	output = &UpdateGatewayResponseOutput{}
10461	req = c.newRequest(op, input, output)
10462	return
10463}
10464
10465// UpdateGatewayResponse API operation for Amazon API Gateway.
10466//
10467// Updates a GatewayResponse of a specified response type on the given RestApi.
10468//
10469// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10470// with awserr.Error's Code and Message methods to get detailed information about
10471// the error.
10472//
10473// See the AWS API reference guide for Amazon API Gateway's
10474// API operation UpdateGatewayResponse for usage and error information.
10475//
10476// Returned Error Types:
10477//   * BadRequestException
10478//   The submitted request is not valid, for example, the input is incomplete
10479//   or incorrect. See the accompanying error message for details.
10480//
10481//   * ConflictException
10482//   The request configuration has conflicts. For details, see the accompanying
10483//   error message.
10484//
10485//   * LimitExceededException
10486//   The request exceeded the rate limit. Retry after the specified time period.
10487//
10488//   * NotFoundException
10489//   The requested resource is not found. Make sure that the request URI is correct.
10490//
10491//   * UnauthorizedException
10492//   The request is denied because the caller has insufficient permissions.
10493//
10494//   * TooManyRequestsException
10495//   The request has reached its throttling limit. Retry after the specified time
10496//   period.
10497//
10498func (c *APIGateway) UpdateGatewayResponse(input *UpdateGatewayResponseInput) (*UpdateGatewayResponseOutput, error) {
10499	req, out := c.UpdateGatewayResponseRequest(input)
10500	return out, req.Send()
10501}
10502
10503// UpdateGatewayResponseWithContext is the same as UpdateGatewayResponse with the addition of
10504// the ability to pass a context and additional request options.
10505//
10506// See UpdateGatewayResponse for details on how to use this API operation.
10507//
10508// The context must be non-nil and will be used for request cancellation. If
10509// the context is nil a panic will occur. In the future the SDK may create
10510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10511// for more information on using Contexts.
10512func (c *APIGateway) UpdateGatewayResponseWithContext(ctx aws.Context, input *UpdateGatewayResponseInput, opts ...request.Option) (*UpdateGatewayResponseOutput, error) {
10513	req, out := c.UpdateGatewayResponseRequest(input)
10514	req.SetContext(ctx)
10515	req.ApplyOptions(opts...)
10516	return out, req.Send()
10517}
10518
10519const opUpdateIntegration = "UpdateIntegration"
10520
10521// UpdateIntegrationRequest generates a "aws/request.Request" representing the
10522// client's request for the UpdateIntegration operation. The "output" return
10523// value will be populated with the request's response once the request completes
10524// successfully.
10525//
10526// Use "Send" method on the returned Request to send the API call to the service.
10527// the "output" return value is not valid until after Send returns without error.
10528//
10529// See UpdateIntegration for more information on using the UpdateIntegration
10530// API call, and error handling.
10531//
10532// This method is useful when you want to inject custom logic or configuration
10533// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10534//
10535//
10536//    // Example sending a request using the UpdateIntegrationRequest method.
10537//    req, resp := client.UpdateIntegrationRequest(params)
10538//
10539//    err := req.Send()
10540//    if err == nil { // resp is now filled
10541//        fmt.Println(resp)
10542//    }
10543func (c *APIGateway) UpdateIntegrationRequest(input *UpdateIntegrationInput) (req *request.Request, output *Integration) {
10544	op := &request.Operation{
10545		Name:       opUpdateIntegration,
10546		HTTPMethod: "PATCH",
10547		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
10548	}
10549
10550	if input == nil {
10551		input = &UpdateIntegrationInput{}
10552	}
10553
10554	output = &Integration{}
10555	req = c.newRequest(op, input, output)
10556	return
10557}
10558
10559// UpdateIntegration API operation for Amazon API Gateway.
10560//
10561// Represents an update integration.
10562//
10563// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10564// with awserr.Error's Code and Message methods to get detailed information about
10565// the error.
10566//
10567// See the AWS API reference guide for Amazon API Gateway's
10568// API operation UpdateIntegration for usage and error information.
10569//
10570// Returned Error Types:
10571//   * BadRequestException
10572//   The submitted request is not valid, for example, the input is incomplete
10573//   or incorrect. See the accompanying error message for details.
10574//
10575//   * ConflictException
10576//   The request configuration has conflicts. For details, see the accompanying
10577//   error message.
10578//
10579//   * LimitExceededException
10580//   The request exceeded the rate limit. Retry after the specified time period.
10581//
10582//   * NotFoundException
10583//   The requested resource is not found. Make sure that the request URI is correct.
10584//
10585//   * UnauthorizedException
10586//   The request is denied because the caller has insufficient permissions.
10587//
10588//   * TooManyRequestsException
10589//   The request has reached its throttling limit. Retry after the specified time
10590//   period.
10591//
10592func (c *APIGateway) UpdateIntegration(input *UpdateIntegrationInput) (*Integration, error) {
10593	req, out := c.UpdateIntegrationRequest(input)
10594	return out, req.Send()
10595}
10596
10597// UpdateIntegrationWithContext is the same as UpdateIntegration with the addition of
10598// the ability to pass a context and additional request options.
10599//
10600// See UpdateIntegration for details on how to use this API operation.
10601//
10602// The context must be non-nil and will be used for request cancellation. If
10603// the context is nil a panic will occur. In the future the SDK may create
10604// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10605// for more information on using Contexts.
10606func (c *APIGateway) UpdateIntegrationWithContext(ctx aws.Context, input *UpdateIntegrationInput, opts ...request.Option) (*Integration, error) {
10607	req, out := c.UpdateIntegrationRequest(input)
10608	req.SetContext(ctx)
10609	req.ApplyOptions(opts...)
10610	return out, req.Send()
10611}
10612
10613const opUpdateIntegrationResponse = "UpdateIntegrationResponse"
10614
10615// UpdateIntegrationResponseRequest generates a "aws/request.Request" representing the
10616// client's request for the UpdateIntegrationResponse operation. The "output" return
10617// value will be populated with the request's response once the request completes
10618// successfully.
10619//
10620// Use "Send" method on the returned Request to send the API call to the service.
10621// the "output" return value is not valid until after Send returns without error.
10622//
10623// See UpdateIntegrationResponse for more information on using the UpdateIntegrationResponse
10624// API call, and error handling.
10625//
10626// This method is useful when you want to inject custom logic or configuration
10627// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10628//
10629//
10630//    // Example sending a request using the UpdateIntegrationResponseRequest method.
10631//    req, resp := client.UpdateIntegrationResponseRequest(params)
10632//
10633//    err := req.Send()
10634//    if err == nil { // resp is now filled
10635//        fmt.Println(resp)
10636//    }
10637func (c *APIGateway) UpdateIntegrationResponseRequest(input *UpdateIntegrationResponseInput) (req *request.Request, output *IntegrationResponse) {
10638	op := &request.Operation{
10639		Name:       opUpdateIntegrationResponse,
10640		HTTPMethod: "PATCH",
10641		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
10642	}
10643
10644	if input == nil {
10645		input = &UpdateIntegrationResponseInput{}
10646	}
10647
10648	output = &IntegrationResponse{}
10649	req = c.newRequest(op, input, output)
10650	return
10651}
10652
10653// UpdateIntegrationResponse API operation for Amazon API Gateway.
10654//
10655// Represents an update integration response.
10656//
10657// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10658// with awserr.Error's Code and Message methods to get detailed information about
10659// the error.
10660//
10661// See the AWS API reference guide for Amazon API Gateway's
10662// API operation UpdateIntegrationResponse for usage and error information.
10663//
10664// Returned Error Types:
10665//   * BadRequestException
10666//   The submitted request is not valid, for example, the input is incomplete
10667//   or incorrect. See the accompanying error message for details.
10668//
10669//   * ConflictException
10670//   The request configuration has conflicts. For details, see the accompanying
10671//   error message.
10672//
10673//   * LimitExceededException
10674//   The request exceeded the rate limit. Retry after the specified time period.
10675//
10676//   * NotFoundException
10677//   The requested resource is not found. Make sure that the request URI is correct.
10678//
10679//   * UnauthorizedException
10680//   The request is denied because the caller has insufficient permissions.
10681//
10682//   * TooManyRequestsException
10683//   The request has reached its throttling limit. Retry after the specified time
10684//   period.
10685//
10686func (c *APIGateway) UpdateIntegrationResponse(input *UpdateIntegrationResponseInput) (*IntegrationResponse, error) {
10687	req, out := c.UpdateIntegrationResponseRequest(input)
10688	return out, req.Send()
10689}
10690
10691// UpdateIntegrationResponseWithContext is the same as UpdateIntegrationResponse with the addition of
10692// the ability to pass a context and additional request options.
10693//
10694// See UpdateIntegrationResponse for details on how to use this API operation.
10695//
10696// The context must be non-nil and will be used for request cancellation. If
10697// the context is nil a panic will occur. In the future the SDK may create
10698// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10699// for more information on using Contexts.
10700func (c *APIGateway) UpdateIntegrationResponseWithContext(ctx aws.Context, input *UpdateIntegrationResponseInput, opts ...request.Option) (*IntegrationResponse, error) {
10701	req, out := c.UpdateIntegrationResponseRequest(input)
10702	req.SetContext(ctx)
10703	req.ApplyOptions(opts...)
10704	return out, req.Send()
10705}
10706
10707const opUpdateMethod = "UpdateMethod"
10708
10709// UpdateMethodRequest generates a "aws/request.Request" representing the
10710// client's request for the UpdateMethod operation. The "output" return
10711// value will be populated with the request's response once the request completes
10712// successfully.
10713//
10714// Use "Send" method on the returned Request to send the API call to the service.
10715// the "output" return value is not valid until after Send returns without error.
10716//
10717// See UpdateMethod for more information on using the UpdateMethod
10718// API call, and error handling.
10719//
10720// This method is useful when you want to inject custom logic or configuration
10721// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10722//
10723//
10724//    // Example sending a request using the UpdateMethodRequest method.
10725//    req, resp := client.UpdateMethodRequest(params)
10726//
10727//    err := req.Send()
10728//    if err == nil { // resp is now filled
10729//        fmt.Println(resp)
10730//    }
10731func (c *APIGateway) UpdateMethodRequest(input *UpdateMethodInput) (req *request.Request, output *Method) {
10732	op := &request.Operation{
10733		Name:       opUpdateMethod,
10734		HTTPMethod: "PATCH",
10735		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
10736	}
10737
10738	if input == nil {
10739		input = &UpdateMethodInput{}
10740	}
10741
10742	output = &Method{}
10743	req = c.newRequest(op, input, output)
10744	return
10745}
10746
10747// UpdateMethod API operation for Amazon API Gateway.
10748//
10749// Updates an existing Method resource.
10750//
10751// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10752// with awserr.Error's Code and Message methods to get detailed information about
10753// the error.
10754//
10755// See the AWS API reference guide for Amazon API Gateway's
10756// API operation UpdateMethod for usage and error information.
10757//
10758// Returned Error Types:
10759//   * UnauthorizedException
10760//   The request is denied because the caller has insufficient permissions.
10761//
10762//   * NotFoundException
10763//   The requested resource is not found. Make sure that the request URI is correct.
10764//
10765//   * BadRequestException
10766//   The submitted request is not valid, for example, the input is incomplete
10767//   or incorrect. See the accompanying error message for details.
10768//
10769//   * ConflictException
10770//   The request configuration has conflicts. For details, see the accompanying
10771//   error message.
10772//
10773//   * TooManyRequestsException
10774//   The request has reached its throttling limit. Retry after the specified time
10775//   period.
10776//
10777func (c *APIGateway) UpdateMethod(input *UpdateMethodInput) (*Method, error) {
10778	req, out := c.UpdateMethodRequest(input)
10779	return out, req.Send()
10780}
10781
10782// UpdateMethodWithContext is the same as UpdateMethod with the addition of
10783// the ability to pass a context and additional request options.
10784//
10785// See UpdateMethod for details on how to use this API operation.
10786//
10787// The context must be non-nil and will be used for request cancellation. If
10788// the context is nil a panic will occur. In the future the SDK may create
10789// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10790// for more information on using Contexts.
10791func (c *APIGateway) UpdateMethodWithContext(ctx aws.Context, input *UpdateMethodInput, opts ...request.Option) (*Method, error) {
10792	req, out := c.UpdateMethodRequest(input)
10793	req.SetContext(ctx)
10794	req.ApplyOptions(opts...)
10795	return out, req.Send()
10796}
10797
10798const opUpdateMethodResponse = "UpdateMethodResponse"
10799
10800// UpdateMethodResponseRequest generates a "aws/request.Request" representing the
10801// client's request for the UpdateMethodResponse operation. The "output" return
10802// value will be populated with the request's response once the request completes
10803// successfully.
10804//
10805// Use "Send" method on the returned Request to send the API call to the service.
10806// the "output" return value is not valid until after Send returns without error.
10807//
10808// See UpdateMethodResponse for more information on using the UpdateMethodResponse
10809// API call, and error handling.
10810//
10811// This method is useful when you want to inject custom logic or configuration
10812// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10813//
10814//
10815//    // Example sending a request using the UpdateMethodResponseRequest method.
10816//    req, resp := client.UpdateMethodResponseRequest(params)
10817//
10818//    err := req.Send()
10819//    if err == nil { // resp is now filled
10820//        fmt.Println(resp)
10821//    }
10822func (c *APIGateway) UpdateMethodResponseRequest(input *UpdateMethodResponseInput) (req *request.Request, output *MethodResponse) {
10823	op := &request.Operation{
10824		Name:       opUpdateMethodResponse,
10825		HTTPMethod: "PATCH",
10826		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
10827	}
10828
10829	if input == nil {
10830		input = &UpdateMethodResponseInput{}
10831	}
10832
10833	output = &MethodResponse{}
10834	req = c.newRequest(op, input, output)
10835	return
10836}
10837
10838// UpdateMethodResponse API operation for Amazon API Gateway.
10839//
10840// Updates an existing MethodResponse resource.
10841//
10842// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10843// with awserr.Error's Code and Message methods to get detailed information about
10844// the error.
10845//
10846// See the AWS API reference guide for Amazon API Gateway's
10847// API operation UpdateMethodResponse for usage and error information.
10848//
10849// Returned Error Types:
10850//   * UnauthorizedException
10851//   The request is denied because the caller has insufficient permissions.
10852//
10853//   * NotFoundException
10854//   The requested resource is not found. Make sure that the request URI is correct.
10855//
10856//   * ConflictException
10857//   The request configuration has conflicts. For details, see the accompanying
10858//   error message.
10859//
10860//   * LimitExceededException
10861//   The request exceeded the rate limit. Retry after the specified time period.
10862//
10863//   * BadRequestException
10864//   The submitted request is not valid, for example, the input is incomplete
10865//   or incorrect. See the accompanying error message for details.
10866//
10867//   * TooManyRequestsException
10868//   The request has reached its throttling limit. Retry after the specified time
10869//   period.
10870//
10871func (c *APIGateway) UpdateMethodResponse(input *UpdateMethodResponseInput) (*MethodResponse, error) {
10872	req, out := c.UpdateMethodResponseRequest(input)
10873	return out, req.Send()
10874}
10875
10876// UpdateMethodResponseWithContext is the same as UpdateMethodResponse with the addition of
10877// the ability to pass a context and additional request options.
10878//
10879// See UpdateMethodResponse for details on how to use this API operation.
10880//
10881// The context must be non-nil and will be used for request cancellation. If
10882// the context is nil a panic will occur. In the future the SDK may create
10883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10884// for more information on using Contexts.
10885func (c *APIGateway) UpdateMethodResponseWithContext(ctx aws.Context, input *UpdateMethodResponseInput, opts ...request.Option) (*MethodResponse, error) {
10886	req, out := c.UpdateMethodResponseRequest(input)
10887	req.SetContext(ctx)
10888	req.ApplyOptions(opts...)
10889	return out, req.Send()
10890}
10891
10892const opUpdateModel = "UpdateModel"
10893
10894// UpdateModelRequest generates a "aws/request.Request" representing the
10895// client's request for the UpdateModel operation. The "output" return
10896// value will be populated with the request's response once the request completes
10897// successfully.
10898//
10899// Use "Send" method on the returned Request to send the API call to the service.
10900// the "output" return value is not valid until after Send returns without error.
10901//
10902// See UpdateModel for more information on using the UpdateModel
10903// API call, and error handling.
10904//
10905// This method is useful when you want to inject custom logic or configuration
10906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10907//
10908//
10909//    // Example sending a request using the UpdateModelRequest method.
10910//    req, resp := client.UpdateModelRequest(params)
10911//
10912//    err := req.Send()
10913//    if err == nil { // resp is now filled
10914//        fmt.Println(resp)
10915//    }
10916func (c *APIGateway) UpdateModelRequest(input *UpdateModelInput) (req *request.Request, output *Model) {
10917	op := &request.Operation{
10918		Name:       opUpdateModel,
10919		HTTPMethod: "PATCH",
10920		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}",
10921	}
10922
10923	if input == nil {
10924		input = &UpdateModelInput{}
10925	}
10926
10927	output = &Model{}
10928	req = c.newRequest(op, input, output)
10929	return
10930}
10931
10932// UpdateModel API operation for Amazon API Gateway.
10933//
10934// Changes information about a model.
10935//
10936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10937// with awserr.Error's Code and Message methods to get detailed information about
10938// the error.
10939//
10940// See the AWS API reference guide for Amazon API Gateway's
10941// API operation UpdateModel for usage and error information.
10942//
10943// Returned Error Types:
10944//   * BadRequestException
10945//   The submitted request is not valid, for example, the input is incomplete
10946//   or incorrect. See the accompanying error message for details.
10947//
10948//   * ConflictException
10949//   The request configuration has conflicts. For details, see the accompanying
10950//   error message.
10951//
10952//   * LimitExceededException
10953//   The request exceeded the rate limit. Retry after the specified time period.
10954//
10955//   * NotFoundException
10956//   The requested resource is not found. Make sure that the request URI is correct.
10957//
10958//   * UnauthorizedException
10959//   The request is denied because the caller has insufficient permissions.
10960//
10961//   * TooManyRequestsException
10962//   The request has reached its throttling limit. Retry after the specified time
10963//   period.
10964//
10965func (c *APIGateway) UpdateModel(input *UpdateModelInput) (*Model, error) {
10966	req, out := c.UpdateModelRequest(input)
10967	return out, req.Send()
10968}
10969
10970// UpdateModelWithContext is the same as UpdateModel with the addition of
10971// the ability to pass a context and additional request options.
10972//
10973// See UpdateModel for details on how to use this API operation.
10974//
10975// The context must be non-nil and will be used for request cancellation. If
10976// the context is nil a panic will occur. In the future the SDK may create
10977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10978// for more information on using Contexts.
10979func (c *APIGateway) UpdateModelWithContext(ctx aws.Context, input *UpdateModelInput, opts ...request.Option) (*Model, error) {
10980	req, out := c.UpdateModelRequest(input)
10981	req.SetContext(ctx)
10982	req.ApplyOptions(opts...)
10983	return out, req.Send()
10984}
10985
10986const opUpdateRequestValidator = "UpdateRequestValidator"
10987
10988// UpdateRequestValidatorRequest generates a "aws/request.Request" representing the
10989// client's request for the UpdateRequestValidator operation. The "output" return
10990// value will be populated with the request's response once the request completes
10991// successfully.
10992//
10993// Use "Send" method on the returned Request to send the API call to the service.
10994// the "output" return value is not valid until after Send returns without error.
10995//
10996// See UpdateRequestValidator for more information on using the UpdateRequestValidator
10997// API call, and error handling.
10998//
10999// This method is useful when you want to inject custom logic or configuration
11000// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11001//
11002//
11003//    // Example sending a request using the UpdateRequestValidatorRequest method.
11004//    req, resp := client.UpdateRequestValidatorRequest(params)
11005//
11006//    err := req.Send()
11007//    if err == nil { // resp is now filled
11008//        fmt.Println(resp)
11009//    }
11010func (c *APIGateway) UpdateRequestValidatorRequest(input *UpdateRequestValidatorInput) (req *request.Request, output *UpdateRequestValidatorOutput) {
11011	op := &request.Operation{
11012		Name:       opUpdateRequestValidator,
11013		HTTPMethod: "PATCH",
11014		HTTPPath:   "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}",
11015	}
11016
11017	if input == nil {
11018		input = &UpdateRequestValidatorInput{}
11019	}
11020
11021	output = &UpdateRequestValidatorOutput{}
11022	req = c.newRequest(op, input, output)
11023	return
11024}
11025
11026// UpdateRequestValidator API operation for Amazon API Gateway.
11027//
11028// Updates a RequestValidator of a given RestApi.
11029//
11030// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11031// with awserr.Error's Code and Message methods to get detailed information about
11032// the error.
11033//
11034// See the AWS API reference guide for Amazon API Gateway's
11035// API operation UpdateRequestValidator for usage and error information.
11036//
11037// Returned Error Types:
11038//   * BadRequestException
11039//   The submitted request is not valid, for example, the input is incomplete
11040//   or incorrect. See the accompanying error message for details.
11041//
11042//   * ConflictException
11043//   The request configuration has conflicts. For details, see the accompanying
11044//   error message.
11045//
11046//   * LimitExceededException
11047//   The request exceeded the rate limit. Retry after the specified time period.
11048//
11049//   * NotFoundException
11050//   The requested resource is not found. Make sure that the request URI is correct.
11051//
11052//   * UnauthorizedException
11053//   The request is denied because the caller has insufficient permissions.
11054//
11055//   * TooManyRequestsException
11056//   The request has reached its throttling limit. Retry after the specified time
11057//   period.
11058//
11059func (c *APIGateway) UpdateRequestValidator(input *UpdateRequestValidatorInput) (*UpdateRequestValidatorOutput, error) {
11060	req, out := c.UpdateRequestValidatorRequest(input)
11061	return out, req.Send()
11062}
11063
11064// UpdateRequestValidatorWithContext is the same as UpdateRequestValidator with the addition of
11065// the ability to pass a context and additional request options.
11066//
11067// See UpdateRequestValidator for details on how to use this API operation.
11068//
11069// The context must be non-nil and will be used for request cancellation. If
11070// the context is nil a panic will occur. In the future the SDK may create
11071// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11072// for more information on using Contexts.
11073func (c *APIGateway) UpdateRequestValidatorWithContext(ctx aws.Context, input *UpdateRequestValidatorInput, opts ...request.Option) (*UpdateRequestValidatorOutput, error) {
11074	req, out := c.UpdateRequestValidatorRequest(input)
11075	req.SetContext(ctx)
11076	req.ApplyOptions(opts...)
11077	return out, req.Send()
11078}
11079
11080const opUpdateResource = "UpdateResource"
11081
11082// UpdateResourceRequest generates a "aws/request.Request" representing the
11083// client's request for the UpdateResource operation. The "output" return
11084// value will be populated with the request's response once the request completes
11085// successfully.
11086//
11087// Use "Send" method on the returned Request to send the API call to the service.
11088// the "output" return value is not valid until after Send returns without error.
11089//
11090// See UpdateResource for more information on using the UpdateResource
11091// API call, and error handling.
11092//
11093// This method is useful when you want to inject custom logic or configuration
11094// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11095//
11096//
11097//    // Example sending a request using the UpdateResourceRequest method.
11098//    req, resp := client.UpdateResourceRequest(params)
11099//
11100//    err := req.Send()
11101//    if err == nil { // resp is now filled
11102//        fmt.Println(resp)
11103//    }
11104func (c *APIGateway) UpdateResourceRequest(input *UpdateResourceInput) (req *request.Request, output *Resource) {
11105	op := &request.Operation{
11106		Name:       opUpdateResource,
11107		HTTPMethod: "PATCH",
11108		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}",
11109	}
11110
11111	if input == nil {
11112		input = &UpdateResourceInput{}
11113	}
11114
11115	output = &Resource{}
11116	req = c.newRequest(op, input, output)
11117	return
11118}
11119
11120// UpdateResource API operation for Amazon API Gateway.
11121//
11122// Changes information about a Resource resource.
11123//
11124// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11125// with awserr.Error's Code and Message methods to get detailed information about
11126// the error.
11127//
11128// See the AWS API reference guide for Amazon API Gateway's
11129// API operation UpdateResource for usage and error information.
11130//
11131// Returned Error Types:
11132//   * UnauthorizedException
11133//   The request is denied because the caller has insufficient permissions.
11134//
11135//   * NotFoundException
11136//   The requested resource is not found. Make sure that the request URI is correct.
11137//
11138//   * ConflictException
11139//   The request configuration has conflicts. For details, see the accompanying
11140//   error message.
11141//
11142//   * BadRequestException
11143//   The submitted request is not valid, for example, the input is incomplete
11144//   or incorrect. See the accompanying error message for details.
11145//
11146//   * TooManyRequestsException
11147//   The request has reached its throttling limit. Retry after the specified time
11148//   period.
11149//
11150func (c *APIGateway) UpdateResource(input *UpdateResourceInput) (*Resource, error) {
11151	req, out := c.UpdateResourceRequest(input)
11152	return out, req.Send()
11153}
11154
11155// UpdateResourceWithContext is the same as UpdateResource with the addition of
11156// the ability to pass a context and additional request options.
11157//
11158// See UpdateResource for details on how to use this API operation.
11159//
11160// The context must be non-nil and will be used for request cancellation. If
11161// the context is nil a panic will occur. In the future the SDK may create
11162// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11163// for more information on using Contexts.
11164func (c *APIGateway) UpdateResourceWithContext(ctx aws.Context, input *UpdateResourceInput, opts ...request.Option) (*Resource, error) {
11165	req, out := c.UpdateResourceRequest(input)
11166	req.SetContext(ctx)
11167	req.ApplyOptions(opts...)
11168	return out, req.Send()
11169}
11170
11171const opUpdateRestApi = "UpdateRestApi"
11172
11173// UpdateRestApiRequest generates a "aws/request.Request" representing the
11174// client's request for the UpdateRestApi operation. The "output" return
11175// value will be populated with the request's response once the request completes
11176// successfully.
11177//
11178// Use "Send" method on the returned Request to send the API call to the service.
11179// the "output" return value is not valid until after Send returns without error.
11180//
11181// See UpdateRestApi for more information on using the UpdateRestApi
11182// API call, and error handling.
11183//
11184// This method is useful when you want to inject custom logic or configuration
11185// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11186//
11187//
11188//    // Example sending a request using the UpdateRestApiRequest method.
11189//    req, resp := client.UpdateRestApiRequest(params)
11190//
11191//    err := req.Send()
11192//    if err == nil { // resp is now filled
11193//        fmt.Println(resp)
11194//    }
11195func (c *APIGateway) UpdateRestApiRequest(input *UpdateRestApiInput) (req *request.Request, output *RestApi) {
11196	op := &request.Operation{
11197		Name:       opUpdateRestApi,
11198		HTTPMethod: "PATCH",
11199		HTTPPath:   "/restapis/{restapi_id}",
11200	}
11201
11202	if input == nil {
11203		input = &UpdateRestApiInput{}
11204	}
11205
11206	output = &RestApi{}
11207	req = c.newRequest(op, input, output)
11208	return
11209}
11210
11211// UpdateRestApi API operation for Amazon API Gateway.
11212//
11213// Changes information about the specified API.
11214//
11215// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11216// with awserr.Error's Code and Message methods to get detailed information about
11217// the error.
11218//
11219// See the AWS API reference guide for Amazon API Gateway's
11220// API operation UpdateRestApi for usage and error information.
11221//
11222// Returned Error Types:
11223//   * BadRequestException
11224//   The submitted request is not valid, for example, the input is incomplete
11225//   or incorrect. See the accompanying error message for details.
11226//
11227//   * ConflictException
11228//   The request configuration has conflicts. For details, see the accompanying
11229//   error message.
11230//
11231//   * LimitExceededException
11232//   The request exceeded the rate limit. Retry after the specified time period.
11233//
11234//   * NotFoundException
11235//   The requested resource is not found. Make sure that the request URI is correct.
11236//
11237//   * UnauthorizedException
11238//   The request is denied because the caller has insufficient permissions.
11239//
11240//   * TooManyRequestsException
11241//   The request has reached its throttling limit. Retry after the specified time
11242//   period.
11243//
11244func (c *APIGateway) UpdateRestApi(input *UpdateRestApiInput) (*RestApi, error) {
11245	req, out := c.UpdateRestApiRequest(input)
11246	return out, req.Send()
11247}
11248
11249// UpdateRestApiWithContext is the same as UpdateRestApi with the addition of
11250// the ability to pass a context and additional request options.
11251//
11252// See UpdateRestApi for details on how to use this API operation.
11253//
11254// The context must be non-nil and will be used for request cancellation. If
11255// the context is nil a panic will occur. In the future the SDK may create
11256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11257// for more information on using Contexts.
11258func (c *APIGateway) UpdateRestApiWithContext(ctx aws.Context, input *UpdateRestApiInput, opts ...request.Option) (*RestApi, error) {
11259	req, out := c.UpdateRestApiRequest(input)
11260	req.SetContext(ctx)
11261	req.ApplyOptions(opts...)
11262	return out, req.Send()
11263}
11264
11265const opUpdateStage = "UpdateStage"
11266
11267// UpdateStageRequest generates a "aws/request.Request" representing the
11268// client's request for the UpdateStage operation. The "output" return
11269// value will be populated with the request's response once the request completes
11270// successfully.
11271//
11272// Use "Send" method on the returned Request to send the API call to the service.
11273// the "output" return value is not valid until after Send returns without error.
11274//
11275// See UpdateStage for more information on using the UpdateStage
11276// API call, and error handling.
11277//
11278// This method is useful when you want to inject custom logic or configuration
11279// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11280//
11281//
11282//    // Example sending a request using the UpdateStageRequest method.
11283//    req, resp := client.UpdateStageRequest(params)
11284//
11285//    err := req.Send()
11286//    if err == nil { // resp is now filled
11287//        fmt.Println(resp)
11288//    }
11289func (c *APIGateway) UpdateStageRequest(input *UpdateStageInput) (req *request.Request, output *Stage) {
11290	op := &request.Operation{
11291		Name:       opUpdateStage,
11292		HTTPMethod: "PATCH",
11293		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}",
11294	}
11295
11296	if input == nil {
11297		input = &UpdateStageInput{}
11298	}
11299
11300	output = &Stage{}
11301	req = c.newRequest(op, input, output)
11302	return
11303}
11304
11305// UpdateStage API operation for Amazon API Gateway.
11306//
11307// Changes information about a Stage resource.
11308//
11309// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11310// with awserr.Error's Code and Message methods to get detailed information about
11311// the error.
11312//
11313// See the AWS API reference guide for Amazon API Gateway's
11314// API operation UpdateStage for usage and error information.
11315//
11316// Returned Error Types:
11317//   * BadRequestException
11318//   The submitted request is not valid, for example, the input is incomplete
11319//   or incorrect. See the accompanying error message for details.
11320//
11321//   * ConflictException
11322//   The request configuration has conflicts. For details, see the accompanying
11323//   error message.
11324//
11325//   * LimitExceededException
11326//   The request exceeded the rate limit. Retry after the specified time period.
11327//
11328//   * NotFoundException
11329//   The requested resource is not found. Make sure that the request URI is correct.
11330//
11331//   * UnauthorizedException
11332//   The request is denied because the caller has insufficient permissions.
11333//
11334//   * TooManyRequestsException
11335//   The request has reached its throttling limit. Retry after the specified time
11336//   period.
11337//
11338func (c *APIGateway) UpdateStage(input *UpdateStageInput) (*Stage, error) {
11339	req, out := c.UpdateStageRequest(input)
11340	return out, req.Send()
11341}
11342
11343// UpdateStageWithContext is the same as UpdateStage with the addition of
11344// the ability to pass a context and additional request options.
11345//
11346// See UpdateStage for details on how to use this API operation.
11347//
11348// The context must be non-nil and will be used for request cancellation. If
11349// the context is nil a panic will occur. In the future the SDK may create
11350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11351// for more information on using Contexts.
11352func (c *APIGateway) UpdateStageWithContext(ctx aws.Context, input *UpdateStageInput, opts ...request.Option) (*Stage, error) {
11353	req, out := c.UpdateStageRequest(input)
11354	req.SetContext(ctx)
11355	req.ApplyOptions(opts...)
11356	return out, req.Send()
11357}
11358
11359const opUpdateUsage = "UpdateUsage"
11360
11361// UpdateUsageRequest generates a "aws/request.Request" representing the
11362// client's request for the UpdateUsage operation. The "output" return
11363// value will be populated with the request's response once the request completes
11364// successfully.
11365//
11366// Use "Send" method on the returned Request to send the API call to the service.
11367// the "output" return value is not valid until after Send returns without error.
11368//
11369// See UpdateUsage for more information on using the UpdateUsage
11370// API call, and error handling.
11371//
11372// This method is useful when you want to inject custom logic or configuration
11373// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11374//
11375//
11376//    // Example sending a request using the UpdateUsageRequest method.
11377//    req, resp := client.UpdateUsageRequest(params)
11378//
11379//    err := req.Send()
11380//    if err == nil { // resp is now filled
11381//        fmt.Println(resp)
11382//    }
11383func (c *APIGateway) UpdateUsageRequest(input *UpdateUsageInput) (req *request.Request, output *Usage) {
11384	op := &request.Operation{
11385		Name:       opUpdateUsage,
11386		HTTPMethod: "PATCH",
11387		HTTPPath:   "/usageplans/{usageplanId}/keys/{keyId}/usage",
11388	}
11389
11390	if input == nil {
11391		input = &UpdateUsageInput{}
11392	}
11393
11394	output = &Usage{}
11395	req = c.newRequest(op, input, output)
11396	return
11397}
11398
11399// UpdateUsage API operation for Amazon API Gateway.
11400//
11401// Grants a temporary extension to the remaining quota of a usage plan associated
11402// with a specified API key.
11403//
11404// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11405// with awserr.Error's Code and Message methods to get detailed information about
11406// the error.
11407//
11408// See the AWS API reference guide for Amazon API Gateway's
11409// API operation UpdateUsage for usage and error information.
11410//
11411// Returned Error Types:
11412//   * BadRequestException
11413//   The submitted request is not valid, for example, the input is incomplete
11414//   or incorrect. See the accompanying error message for details.
11415//
11416//   * ConflictException
11417//   The request configuration has conflicts. For details, see the accompanying
11418//   error message.
11419//
11420//   * LimitExceededException
11421//   The request exceeded the rate limit. Retry after the specified time period.
11422//
11423//   * NotFoundException
11424//   The requested resource is not found. Make sure that the request URI is correct.
11425//
11426//   * UnauthorizedException
11427//   The request is denied because the caller has insufficient permissions.
11428//
11429//   * TooManyRequestsException
11430//   The request has reached its throttling limit. Retry after the specified time
11431//   period.
11432//
11433func (c *APIGateway) UpdateUsage(input *UpdateUsageInput) (*Usage, error) {
11434	req, out := c.UpdateUsageRequest(input)
11435	return out, req.Send()
11436}
11437
11438// UpdateUsageWithContext is the same as UpdateUsage with the addition of
11439// the ability to pass a context and additional request options.
11440//
11441// See UpdateUsage for details on how to use this API operation.
11442//
11443// The context must be non-nil and will be used for request cancellation. If
11444// the context is nil a panic will occur. In the future the SDK may create
11445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11446// for more information on using Contexts.
11447func (c *APIGateway) UpdateUsageWithContext(ctx aws.Context, input *UpdateUsageInput, opts ...request.Option) (*Usage, error) {
11448	req, out := c.UpdateUsageRequest(input)
11449	req.SetContext(ctx)
11450	req.ApplyOptions(opts...)
11451	return out, req.Send()
11452}
11453
11454const opUpdateUsagePlan = "UpdateUsagePlan"
11455
11456// UpdateUsagePlanRequest generates a "aws/request.Request" representing the
11457// client's request for the UpdateUsagePlan operation. The "output" return
11458// value will be populated with the request's response once the request completes
11459// successfully.
11460//
11461// Use "Send" method on the returned Request to send the API call to the service.
11462// the "output" return value is not valid until after Send returns without error.
11463//
11464// See UpdateUsagePlan for more information on using the UpdateUsagePlan
11465// API call, and error handling.
11466//
11467// This method is useful when you want to inject custom logic or configuration
11468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11469//
11470//
11471//    // Example sending a request using the UpdateUsagePlanRequest method.
11472//    req, resp := client.UpdateUsagePlanRequest(params)
11473//
11474//    err := req.Send()
11475//    if err == nil { // resp is now filled
11476//        fmt.Println(resp)
11477//    }
11478func (c *APIGateway) UpdateUsagePlanRequest(input *UpdateUsagePlanInput) (req *request.Request, output *UsagePlan) {
11479	op := &request.Operation{
11480		Name:       opUpdateUsagePlan,
11481		HTTPMethod: "PATCH",
11482		HTTPPath:   "/usageplans/{usageplanId}",
11483	}
11484
11485	if input == nil {
11486		input = &UpdateUsagePlanInput{}
11487	}
11488
11489	output = &UsagePlan{}
11490	req = c.newRequest(op, input, output)
11491	return
11492}
11493
11494// UpdateUsagePlan API operation for Amazon API Gateway.
11495//
11496// Updates a usage plan of a given plan Id.
11497//
11498// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11499// with awserr.Error's Code and Message methods to get detailed information about
11500// the error.
11501//
11502// See the AWS API reference guide for Amazon API Gateway's
11503// API operation UpdateUsagePlan for usage and error information.
11504//
11505// Returned Error Types:
11506//   * BadRequestException
11507//   The submitted request is not valid, for example, the input is incomplete
11508//   or incorrect. See the accompanying error message for details.
11509//
11510//   * ConflictException
11511//   The request configuration has conflicts. For details, see the accompanying
11512//   error message.
11513//
11514//   * LimitExceededException
11515//   The request exceeded the rate limit. Retry after the specified time period.
11516//
11517//   * NotFoundException
11518//   The requested resource is not found. Make sure that the request URI is correct.
11519//
11520//   * UnauthorizedException
11521//   The request is denied because the caller has insufficient permissions.
11522//
11523//   * TooManyRequestsException
11524//   The request has reached its throttling limit. Retry after the specified time
11525//   period.
11526//
11527func (c *APIGateway) UpdateUsagePlan(input *UpdateUsagePlanInput) (*UsagePlan, error) {
11528	req, out := c.UpdateUsagePlanRequest(input)
11529	return out, req.Send()
11530}
11531
11532// UpdateUsagePlanWithContext is the same as UpdateUsagePlan with the addition of
11533// the ability to pass a context and additional request options.
11534//
11535// See UpdateUsagePlan for details on how to use this API operation.
11536//
11537// The context must be non-nil and will be used for request cancellation. If
11538// the context is nil a panic will occur. In the future the SDK may create
11539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11540// for more information on using Contexts.
11541func (c *APIGateway) UpdateUsagePlanWithContext(ctx aws.Context, input *UpdateUsagePlanInput, opts ...request.Option) (*UsagePlan, error) {
11542	req, out := c.UpdateUsagePlanRequest(input)
11543	req.SetContext(ctx)
11544	req.ApplyOptions(opts...)
11545	return out, req.Send()
11546}
11547
11548const opUpdateVpcLink = "UpdateVpcLink"
11549
11550// UpdateVpcLinkRequest generates a "aws/request.Request" representing the
11551// client's request for the UpdateVpcLink operation. The "output" return
11552// value will be populated with the request's response once the request completes
11553// successfully.
11554//
11555// Use "Send" method on the returned Request to send the API call to the service.
11556// the "output" return value is not valid until after Send returns without error.
11557//
11558// See UpdateVpcLink for more information on using the UpdateVpcLink
11559// API call, and error handling.
11560//
11561// This method is useful when you want to inject custom logic or configuration
11562// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11563//
11564//
11565//    // Example sending a request using the UpdateVpcLinkRequest method.
11566//    req, resp := client.UpdateVpcLinkRequest(params)
11567//
11568//    err := req.Send()
11569//    if err == nil { // resp is now filled
11570//        fmt.Println(resp)
11571//    }
11572func (c *APIGateway) UpdateVpcLinkRequest(input *UpdateVpcLinkInput) (req *request.Request, output *UpdateVpcLinkOutput) {
11573	op := &request.Operation{
11574		Name:       opUpdateVpcLink,
11575		HTTPMethod: "PATCH",
11576		HTTPPath:   "/vpclinks/{vpclink_id}",
11577	}
11578
11579	if input == nil {
11580		input = &UpdateVpcLinkInput{}
11581	}
11582
11583	output = &UpdateVpcLinkOutput{}
11584	req = c.newRequest(op, input, output)
11585	return
11586}
11587
11588// UpdateVpcLink API operation for Amazon API Gateway.
11589//
11590// Updates an existing VpcLink of a specified identifier.
11591//
11592// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11593// with awserr.Error's Code and Message methods to get detailed information about
11594// the error.
11595//
11596// See the AWS API reference guide for Amazon API Gateway's
11597// API operation UpdateVpcLink for usage and error information.
11598//
11599// Returned Error Types:
11600//   * BadRequestException
11601//   The submitted request is not valid, for example, the input is incomplete
11602//   or incorrect. See the accompanying error message for details.
11603//
11604//   * ConflictException
11605//   The request configuration has conflicts. For details, see the accompanying
11606//   error message.
11607//
11608//   * LimitExceededException
11609//   The request exceeded the rate limit. Retry after the specified time period.
11610//
11611//   * NotFoundException
11612//   The requested resource is not found. Make sure that the request URI is correct.
11613//
11614//   * UnauthorizedException
11615//   The request is denied because the caller has insufficient permissions.
11616//
11617//   * TooManyRequestsException
11618//   The request has reached its throttling limit. Retry after the specified time
11619//   period.
11620//
11621func (c *APIGateway) UpdateVpcLink(input *UpdateVpcLinkInput) (*UpdateVpcLinkOutput, error) {
11622	req, out := c.UpdateVpcLinkRequest(input)
11623	return out, req.Send()
11624}
11625
11626// UpdateVpcLinkWithContext is the same as UpdateVpcLink with the addition of
11627// the ability to pass a context and additional request options.
11628//
11629// See UpdateVpcLink for details on how to use this API operation.
11630//
11631// The context must be non-nil and will be used for request cancellation. If
11632// the context is nil a panic will occur. In the future the SDK may create
11633// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11634// for more information on using Contexts.
11635func (c *APIGateway) UpdateVpcLinkWithContext(ctx aws.Context, input *UpdateVpcLinkInput, opts ...request.Option) (*UpdateVpcLinkOutput, error) {
11636	req, out := c.UpdateVpcLinkRequest(input)
11637	req.SetContext(ctx)
11638	req.ApplyOptions(opts...)
11639	return out, req.Send()
11640}
11641
11642// Access log settings, including the access log format and access log destination
11643// ARN.
11644type AccessLogSettings struct {
11645	_ struct{} `type:"structure"`
11646
11647	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis
11648	// Data Firehose delivery stream to receive access logs. If you specify a Kinesis
11649	// Data Firehose delivery stream, the stream name must begin with amazon-apigateway-.
11650	DestinationArn *string `locationName:"destinationArn" type:"string"`
11651
11652	// A single line format of the access logs of data, as specified by selected
11653	// $context variables (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference).
11654	// The format must include at least $context.requestId.
11655	Format *string `locationName:"format" type:"string"`
11656}
11657
11658// String returns the string representation
11659func (s AccessLogSettings) String() string {
11660	return awsutil.Prettify(s)
11661}
11662
11663// GoString returns the string representation
11664func (s AccessLogSettings) GoString() string {
11665	return s.String()
11666}
11667
11668// SetDestinationArn sets the DestinationArn field's value.
11669func (s *AccessLogSettings) SetDestinationArn(v string) *AccessLogSettings {
11670	s.DestinationArn = &v
11671	return s
11672}
11673
11674// SetFormat sets the Format field's value.
11675func (s *AccessLogSettings) SetFormat(v string) *AccessLogSettings {
11676	s.Format = &v
11677	return s
11678}
11679
11680// Represents an AWS account that is associated with API Gateway.
11681//
11682// To view the account info, call GET on this resource.
11683//
11684// Error Codes
11685//
11686// The following exception may be thrown when the request fails.
11687//
11688//    * UnauthorizedException
11689//
11690//    * NotFoundException
11691//
11692//    * TooManyRequestsException
11693//
11694// For detailed error code information, including the corresponding HTTP Status
11695// Codes, see API Gateway Error Codes (https://docs.aws.amazon.com/apigateway/api-reference/handling-errors/#api-error-codes)
11696//
11697// Example: Get the information about an account.
11698//
11699// Request
11700//  GET /account HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
11701//  X-Amz-Date: 20160531T184618Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/us-east-1/apigateway/aws4_request,
11702//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
11703// Response
11704//
11705// The successful response returns a 200 OK status code and a payload similar
11706// to the following:
11707//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/account-apigateway-{rel}.html",
11708//  "name": "account", "templated": true }, "self": { "href": "/account" },
11709//  "account:update": { "href": "/account" } }, "cloudwatchRoleArn": "arn:aws:iam::123456789012:role/apigAwsProxyRole",
11710//  "throttleSettings": { "rateLimit": 500, "burstLimit": 1000 } }
11711// In addition to making the REST API call directly, you can use the AWS CLI
11712// and an AWS SDK to access this resource.
11713//
11714// API Gateway Limits (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-limits.html)
11715// Developer Guide (https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html),
11716// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-account.html)
11717type Account struct {
11718	_ struct{} `type:"structure"`
11719
11720	// The version of the API keys used for the account.
11721	ApiKeyVersion *string `locationName:"apiKeyVersion" type:"string"`
11722
11723	// The ARN of an Amazon CloudWatch role for the current Account.
11724	CloudwatchRoleArn *string `locationName:"cloudwatchRoleArn" type:"string"`
11725
11726	// A list of features supported for the account. When usage plans are enabled,
11727	// the features list will include an entry of "UsagePlans".
11728	Features []*string `locationName:"features" type:"list"`
11729
11730	// Specifies the API request limits configured for the current Account.
11731	ThrottleSettings *ThrottleSettings `locationName:"throttleSettings" type:"structure"`
11732}
11733
11734// String returns the string representation
11735func (s Account) String() string {
11736	return awsutil.Prettify(s)
11737}
11738
11739// GoString returns the string representation
11740func (s Account) GoString() string {
11741	return s.String()
11742}
11743
11744// SetApiKeyVersion sets the ApiKeyVersion field's value.
11745func (s *Account) SetApiKeyVersion(v string) *Account {
11746	s.ApiKeyVersion = &v
11747	return s
11748}
11749
11750// SetCloudwatchRoleArn sets the CloudwatchRoleArn field's value.
11751func (s *Account) SetCloudwatchRoleArn(v string) *Account {
11752	s.CloudwatchRoleArn = &v
11753	return s
11754}
11755
11756// SetFeatures sets the Features field's value.
11757func (s *Account) SetFeatures(v []*string) *Account {
11758	s.Features = v
11759	return s
11760}
11761
11762// SetThrottleSettings sets the ThrottleSettings field's value.
11763func (s *Account) SetThrottleSettings(v *ThrottleSettings) *Account {
11764	s.ThrottleSettings = v
11765	return s
11766}
11767
11768// A resource that can be distributed to callers for executing Method resources
11769// that require an API key. API keys can be mapped to any Stage on any RestApi,
11770// which indicates that the callers with the API key can make requests to that
11771// stage.
11772//
11773// Use API Keys (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html)
11774type ApiKey struct {
11775	_ struct{} `type:"structure"`
11776
11777	// The timestamp when the API Key was created.
11778	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
11779
11780	// An AWS Marketplace customer identifier , when integrating with the AWS SaaS
11781	// Marketplace.
11782	CustomerId *string `locationName:"customerId" type:"string"`
11783
11784	// The description of the API Key.
11785	Description *string `locationName:"description" type:"string"`
11786
11787	// Specifies whether the API Key can be used by callers.
11788	Enabled *bool `locationName:"enabled" type:"boolean"`
11789
11790	// The identifier of the API Key.
11791	Id *string `locationName:"id" type:"string"`
11792
11793	// The timestamp when the API Key was last updated.
11794	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
11795
11796	// The name of the API Key.
11797	Name *string `locationName:"name" type:"string"`
11798
11799	// A list of Stage resources that are associated with the ApiKey resource.
11800	StageKeys []*string `locationName:"stageKeys" type:"list"`
11801
11802	// The collection of tags. Each tag element is associated with a given resource.
11803	Tags map[string]*string `locationName:"tags" type:"map"`
11804
11805	// The value of the API Key.
11806	Value *string `locationName:"value" type:"string"`
11807}
11808
11809// String returns the string representation
11810func (s ApiKey) String() string {
11811	return awsutil.Prettify(s)
11812}
11813
11814// GoString returns the string representation
11815func (s ApiKey) GoString() string {
11816	return s.String()
11817}
11818
11819// SetCreatedDate sets the CreatedDate field's value.
11820func (s *ApiKey) SetCreatedDate(v time.Time) *ApiKey {
11821	s.CreatedDate = &v
11822	return s
11823}
11824
11825// SetCustomerId sets the CustomerId field's value.
11826func (s *ApiKey) SetCustomerId(v string) *ApiKey {
11827	s.CustomerId = &v
11828	return s
11829}
11830
11831// SetDescription sets the Description field's value.
11832func (s *ApiKey) SetDescription(v string) *ApiKey {
11833	s.Description = &v
11834	return s
11835}
11836
11837// SetEnabled sets the Enabled field's value.
11838func (s *ApiKey) SetEnabled(v bool) *ApiKey {
11839	s.Enabled = &v
11840	return s
11841}
11842
11843// SetId sets the Id field's value.
11844func (s *ApiKey) SetId(v string) *ApiKey {
11845	s.Id = &v
11846	return s
11847}
11848
11849// SetLastUpdatedDate sets the LastUpdatedDate field's value.
11850func (s *ApiKey) SetLastUpdatedDate(v time.Time) *ApiKey {
11851	s.LastUpdatedDate = &v
11852	return s
11853}
11854
11855// SetName sets the Name field's value.
11856func (s *ApiKey) SetName(v string) *ApiKey {
11857	s.Name = &v
11858	return s
11859}
11860
11861// SetStageKeys sets the StageKeys field's value.
11862func (s *ApiKey) SetStageKeys(v []*string) *ApiKey {
11863	s.StageKeys = v
11864	return s
11865}
11866
11867// SetTags sets the Tags field's value.
11868func (s *ApiKey) SetTags(v map[string]*string) *ApiKey {
11869	s.Tags = v
11870	return s
11871}
11872
11873// SetValue sets the Value field's value.
11874func (s *ApiKey) SetValue(v string) *ApiKey {
11875	s.Value = &v
11876	return s
11877}
11878
11879// API stage name of the associated API stage in a usage plan.
11880type ApiStage struct {
11881	_ struct{} `type:"structure"`
11882
11883	// API Id of the associated API stage in a usage plan.
11884	ApiId *string `locationName:"apiId" type:"string"`
11885
11886	// API stage name of the associated API stage in a usage plan.
11887	Stage *string `locationName:"stage" type:"string"`
11888
11889	// Map containing method level throttling information for API stage in a usage
11890	// plan.
11891	Throttle map[string]*ThrottleSettings `locationName:"throttle" type:"map"`
11892}
11893
11894// String returns the string representation
11895func (s ApiStage) String() string {
11896	return awsutil.Prettify(s)
11897}
11898
11899// GoString returns the string representation
11900func (s ApiStage) GoString() string {
11901	return s.String()
11902}
11903
11904// SetApiId sets the ApiId field's value.
11905func (s *ApiStage) SetApiId(v string) *ApiStage {
11906	s.ApiId = &v
11907	return s
11908}
11909
11910// SetStage sets the Stage field's value.
11911func (s *ApiStage) SetStage(v string) *ApiStage {
11912	s.Stage = &v
11913	return s
11914}
11915
11916// SetThrottle sets the Throttle field's value.
11917func (s *ApiStage) SetThrottle(v map[string]*ThrottleSettings) *ApiStage {
11918	s.Throttle = v
11919	return s
11920}
11921
11922// Represents an authorization layer for methods. If enabled on a method, API
11923// Gateway will activate the authorizer when a client calls the method.
11924//
11925// Use Lambda Function as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)
11926// Use Cognito User Pool as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)
11927type Authorizer struct {
11928	_ struct{} `type:"structure"`
11929
11930	// Optional customer-defined field, used in OpenAPI imports and exports without
11931	// functional impact.
11932	AuthType *string `locationName:"authType" type:"string"`
11933
11934	// Specifies the required credentials as an IAM role for API Gateway to invoke
11935	// the authorizer. To specify an IAM role for API Gateway to assume, use the
11936	// role's Amazon Resource Name (ARN). To use resource-based permissions on the
11937	// Lambda function, specify null.
11938	AuthorizerCredentials *string `locationName:"authorizerCredentials" type:"string"`
11939
11940	// The TTL in seconds of cached authorizer results. If it equals 0, authorization
11941	// caching is disabled. If it is greater than 0, API Gateway will cache authorizer
11942	// responses. If this field is not set, the default value is 300. The maximum
11943	// value is 3600, or 1 hour.
11944	AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"`
11945
11946	// Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or
11947	// REQUEST authorizers, this must be a well-formed Lambda function URI, for
11948	// example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations.
11949	// In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api},
11950	// where {region} is the same as the region hosting the Lambda function, path
11951	// indicates that the remaining substring in the URI should be treated as the
11952	// path to the resource, including the initial /. For Lambda functions, this
11953	// is usually of the form /2015-03-31/functions/[FunctionARN]/invocations.
11954	AuthorizerUri *string `locationName:"authorizerUri" type:"string"`
11955
11956	// The identifier for the authorizer resource.
11957	Id *string `locationName:"id" type:"string"`
11958
11959	// The identity source for which authorization is requested.
11960	//    * For a TOKEN or COGNITO_USER_POOLS authorizer, this is required and specifies
11961	//    the request header mapping expression for the custom header holding the
11962	//    authorization token submitted by the client. For example, if the token
11963	//    header name is Auth, the header mapping expression is method.request.header.Auth.
11964	//
11965	//    * For the REQUEST authorizer, this is required when authorization caching
11966	//    is enabled. The value is a comma-separated string of one or more mapping
11967	//    expressions of the specified request parameters. For example, if an Auth
11968	//    header, a Name query string parameter are defined as identity sources,
11969	//    this value is method.request.header.Auth, method.request.querystring.Name.
11970	//    These parameters will be used to derive the authorization caching key
11971	//    and to perform runtime validation of the REQUEST authorizer by verifying
11972	//    all of the identity-related request parameters are present, not null and
11973	//    non-empty. Only when this is true does the authorizer invoke the authorizer
11974	//    Lambda function, otherwise, it returns a 401 Unauthorized response without
11975	//    calling the Lambda function. The valid value is a string of comma-separated
11976	//    mapping expressions of the specified request parameters. When the authorization
11977	//    caching is not enabled, this property is optional.
11978	IdentitySource *string `locationName:"identitySource" type:"string"`
11979
11980	// A validation expression for the incoming identity token. For TOKEN authorizers,
11981	// this value is a regular expression. For COGNITO_USER_POOLS authorizers, API
11982	// Gateway will match the aud field of the incoming token from the client against
11983	// the specified regular expression. It will invoke the authorizer's Lambda
11984	// function when there is a match. Otherwise, it will return a 401 Unauthorized
11985	// response without calling the Lambda function. The validation expression does
11986	// not apply to the REQUEST authorizer.
11987	IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"`
11988
11989	// [Required] The name of the authorizer.
11990	Name *string `locationName:"name" type:"string"`
11991
11992	// A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer.
11993	// Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}.
11994	// For a TOKEN or REQUEST authorizer, this is not defined.
11995	ProviderARNs []*string `locationName:"providerARNs" type:"list"`
11996
11997	// The authorizer type. Valid values are TOKEN for a Lambda function using a
11998	// single authorization token submitted in a custom header, REQUEST for a Lambda
11999	// function using incoming request parameters, and COGNITO_USER_POOLS for using
12000	// an Amazon Cognito user pool.
12001	Type *string `locationName:"type" type:"string" enum:"AuthorizerType"`
12002}
12003
12004// String returns the string representation
12005func (s Authorizer) String() string {
12006	return awsutil.Prettify(s)
12007}
12008
12009// GoString returns the string representation
12010func (s Authorizer) GoString() string {
12011	return s.String()
12012}
12013
12014// SetAuthType sets the AuthType field's value.
12015func (s *Authorizer) SetAuthType(v string) *Authorizer {
12016	s.AuthType = &v
12017	return s
12018}
12019
12020// SetAuthorizerCredentials sets the AuthorizerCredentials field's value.
12021func (s *Authorizer) SetAuthorizerCredentials(v string) *Authorizer {
12022	s.AuthorizerCredentials = &v
12023	return s
12024}
12025
12026// SetAuthorizerResultTtlInSeconds sets the AuthorizerResultTtlInSeconds field's value.
12027func (s *Authorizer) SetAuthorizerResultTtlInSeconds(v int64) *Authorizer {
12028	s.AuthorizerResultTtlInSeconds = &v
12029	return s
12030}
12031
12032// SetAuthorizerUri sets the AuthorizerUri field's value.
12033func (s *Authorizer) SetAuthorizerUri(v string) *Authorizer {
12034	s.AuthorizerUri = &v
12035	return s
12036}
12037
12038// SetId sets the Id field's value.
12039func (s *Authorizer) SetId(v string) *Authorizer {
12040	s.Id = &v
12041	return s
12042}
12043
12044// SetIdentitySource sets the IdentitySource field's value.
12045func (s *Authorizer) SetIdentitySource(v string) *Authorizer {
12046	s.IdentitySource = &v
12047	return s
12048}
12049
12050// SetIdentityValidationExpression sets the IdentityValidationExpression field's value.
12051func (s *Authorizer) SetIdentityValidationExpression(v string) *Authorizer {
12052	s.IdentityValidationExpression = &v
12053	return s
12054}
12055
12056// SetName sets the Name field's value.
12057func (s *Authorizer) SetName(v string) *Authorizer {
12058	s.Name = &v
12059	return s
12060}
12061
12062// SetProviderARNs sets the ProviderARNs field's value.
12063func (s *Authorizer) SetProviderARNs(v []*string) *Authorizer {
12064	s.ProviderARNs = v
12065	return s
12066}
12067
12068// SetType sets the Type field's value.
12069func (s *Authorizer) SetType(v string) *Authorizer {
12070	s.Type = &v
12071	return s
12072}
12073
12074// The submitted request is not valid, for example, the input is incomplete
12075// or incorrect. See the accompanying error message for details.
12076type BadRequestException struct {
12077	_            struct{}                  `type:"structure"`
12078	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12079
12080	Message_ *string `locationName:"message" type:"string"`
12081}
12082
12083// String returns the string representation
12084func (s BadRequestException) String() string {
12085	return awsutil.Prettify(s)
12086}
12087
12088// GoString returns the string representation
12089func (s BadRequestException) GoString() string {
12090	return s.String()
12091}
12092
12093func newErrorBadRequestException(v protocol.ResponseMetadata) error {
12094	return &BadRequestException{
12095		RespMetadata: v,
12096	}
12097}
12098
12099// Code returns the exception type name.
12100func (s *BadRequestException) Code() string {
12101	return "BadRequestException"
12102}
12103
12104// Message returns the exception's message.
12105func (s *BadRequestException) Message() string {
12106	if s.Message_ != nil {
12107		return *s.Message_
12108	}
12109	return ""
12110}
12111
12112// OrigErr always returns nil, satisfies awserr.Error interface.
12113func (s *BadRequestException) OrigErr() error {
12114	return nil
12115}
12116
12117func (s *BadRequestException) Error() string {
12118	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12119}
12120
12121// Status code returns the HTTP status code for the request's response error.
12122func (s *BadRequestException) StatusCode() int {
12123	return s.RespMetadata.StatusCode
12124}
12125
12126// RequestID returns the service's response RequestID for request.
12127func (s *BadRequestException) RequestID() string {
12128	return s.RespMetadata.RequestID
12129}
12130
12131// Represents the base path that callers of the API must provide as part of
12132// the URL after the domain name.
12133//
12134// A custom domain name plus a BasePathMapping specification identifies a deployed
12135// RestApi in a given stage of the owner Account.
12136//
12137// Use Custom Domain Names (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
12138type BasePathMapping struct {
12139	_ struct{} `type:"structure"`
12140
12141	// The base path name that callers of the API must provide as part of the URL
12142	// after the domain name.
12143	BasePath *string `locationName:"basePath" type:"string"`
12144
12145	// The string identifier of the associated RestApi.
12146	RestApiId *string `locationName:"restApiId" type:"string"`
12147
12148	// The name of the associated stage.
12149	Stage *string `locationName:"stage" type:"string"`
12150}
12151
12152// String returns the string representation
12153func (s BasePathMapping) String() string {
12154	return awsutil.Prettify(s)
12155}
12156
12157// GoString returns the string representation
12158func (s BasePathMapping) GoString() string {
12159	return s.String()
12160}
12161
12162// SetBasePath sets the BasePath field's value.
12163func (s *BasePathMapping) SetBasePath(v string) *BasePathMapping {
12164	s.BasePath = &v
12165	return s
12166}
12167
12168// SetRestApiId sets the RestApiId field's value.
12169func (s *BasePathMapping) SetRestApiId(v string) *BasePathMapping {
12170	s.RestApiId = &v
12171	return s
12172}
12173
12174// SetStage sets the Stage field's value.
12175func (s *BasePathMapping) SetStage(v string) *BasePathMapping {
12176	s.Stage = &v
12177	return s
12178}
12179
12180// Configuration settings of a canary deployment.
12181type CanarySettings struct {
12182	_ struct{} `type:"structure"`
12183
12184	// The ID of the canary deployment.
12185	DeploymentId *string `locationName:"deploymentId" type:"string"`
12186
12187	// The percent (0-100) of traffic diverted to a canary deployment.
12188	PercentTraffic *float64 `locationName:"percentTraffic" type:"double"`
12189
12190	// Stage variables overridden for a canary release deployment, including new
12191	// stage variables introduced in the canary. These stage variables are represented
12192	// as a string-to-string map between stage variable names and their values.
12193	StageVariableOverrides map[string]*string `locationName:"stageVariableOverrides" type:"map"`
12194
12195	// A Boolean flag to indicate whether the canary deployment uses the stage cache
12196	// or not.
12197	UseStageCache *bool `locationName:"useStageCache" type:"boolean"`
12198}
12199
12200// String returns the string representation
12201func (s CanarySettings) String() string {
12202	return awsutil.Prettify(s)
12203}
12204
12205// GoString returns the string representation
12206func (s CanarySettings) GoString() string {
12207	return s.String()
12208}
12209
12210// SetDeploymentId sets the DeploymentId field's value.
12211func (s *CanarySettings) SetDeploymentId(v string) *CanarySettings {
12212	s.DeploymentId = &v
12213	return s
12214}
12215
12216// SetPercentTraffic sets the PercentTraffic field's value.
12217func (s *CanarySettings) SetPercentTraffic(v float64) *CanarySettings {
12218	s.PercentTraffic = &v
12219	return s
12220}
12221
12222// SetStageVariableOverrides sets the StageVariableOverrides field's value.
12223func (s *CanarySettings) SetStageVariableOverrides(v map[string]*string) *CanarySettings {
12224	s.StageVariableOverrides = v
12225	return s
12226}
12227
12228// SetUseStageCache sets the UseStageCache field's value.
12229func (s *CanarySettings) SetUseStageCache(v bool) *CanarySettings {
12230	s.UseStageCache = &v
12231	return s
12232}
12233
12234// Represents a client certificate used to configure client-side SSL authentication
12235// while sending requests to the integration endpoint.
12236//
12237// Client certificates are used to authenticate an API by the backend server.
12238// To authenticate an API client (or user), use IAM roles and policies, a custom
12239// Authorizer or an Amazon Cognito user pool.
12240//
12241// Use Client-Side Certificate (https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html)
12242type ClientCertificate struct {
12243	_ struct{} `type:"structure"`
12244
12245	// The identifier of the client certificate.
12246	ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
12247
12248	// The timestamp when the client certificate was created.
12249	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
12250
12251	// The description of the client certificate.
12252	Description *string `locationName:"description" type:"string"`
12253
12254	// The timestamp when the client certificate will expire.
12255	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
12256
12257	// The PEM-encoded public key of the client certificate, which can be used to
12258	// configure certificate authentication in the integration endpoint .
12259	PemEncodedCertificate *string `locationName:"pemEncodedCertificate" type:"string"`
12260
12261	// The collection of tags. Each tag element is associated with a given resource.
12262	Tags map[string]*string `locationName:"tags" type:"map"`
12263}
12264
12265// String returns the string representation
12266func (s ClientCertificate) String() string {
12267	return awsutil.Prettify(s)
12268}
12269
12270// GoString returns the string representation
12271func (s ClientCertificate) GoString() string {
12272	return s.String()
12273}
12274
12275// SetClientCertificateId sets the ClientCertificateId field's value.
12276func (s *ClientCertificate) SetClientCertificateId(v string) *ClientCertificate {
12277	s.ClientCertificateId = &v
12278	return s
12279}
12280
12281// SetCreatedDate sets the CreatedDate field's value.
12282func (s *ClientCertificate) SetCreatedDate(v time.Time) *ClientCertificate {
12283	s.CreatedDate = &v
12284	return s
12285}
12286
12287// SetDescription sets the Description field's value.
12288func (s *ClientCertificate) SetDescription(v string) *ClientCertificate {
12289	s.Description = &v
12290	return s
12291}
12292
12293// SetExpirationDate sets the ExpirationDate field's value.
12294func (s *ClientCertificate) SetExpirationDate(v time.Time) *ClientCertificate {
12295	s.ExpirationDate = &v
12296	return s
12297}
12298
12299// SetPemEncodedCertificate sets the PemEncodedCertificate field's value.
12300func (s *ClientCertificate) SetPemEncodedCertificate(v string) *ClientCertificate {
12301	s.PemEncodedCertificate = &v
12302	return s
12303}
12304
12305// SetTags sets the Tags field's value.
12306func (s *ClientCertificate) SetTags(v map[string]*string) *ClientCertificate {
12307	s.Tags = v
12308	return s
12309}
12310
12311// The request configuration has conflicts. For details, see the accompanying
12312// error message.
12313type ConflictException struct {
12314	_            struct{}                  `type:"structure"`
12315	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12316
12317	Message_ *string `locationName:"message" type:"string"`
12318}
12319
12320// String returns the string representation
12321func (s ConflictException) String() string {
12322	return awsutil.Prettify(s)
12323}
12324
12325// GoString returns the string representation
12326func (s ConflictException) GoString() string {
12327	return s.String()
12328}
12329
12330func newErrorConflictException(v protocol.ResponseMetadata) error {
12331	return &ConflictException{
12332		RespMetadata: v,
12333	}
12334}
12335
12336// Code returns the exception type name.
12337func (s *ConflictException) Code() string {
12338	return "ConflictException"
12339}
12340
12341// Message returns the exception's message.
12342func (s *ConflictException) Message() string {
12343	if s.Message_ != nil {
12344		return *s.Message_
12345	}
12346	return ""
12347}
12348
12349// OrigErr always returns nil, satisfies awserr.Error interface.
12350func (s *ConflictException) OrigErr() error {
12351	return nil
12352}
12353
12354func (s *ConflictException) Error() string {
12355	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12356}
12357
12358// Status code returns the HTTP status code for the request's response error.
12359func (s *ConflictException) StatusCode() int {
12360	return s.RespMetadata.StatusCode
12361}
12362
12363// RequestID returns the service's response RequestID for request.
12364func (s *ConflictException) RequestID() string {
12365	return s.RespMetadata.RequestID
12366}
12367
12368// Request to create an ApiKey resource.
12369type CreateApiKeyInput struct {
12370	_ struct{} `type:"structure"`
12371
12372	// An AWS Marketplace customer identifier , when integrating with the AWS SaaS
12373	// Marketplace.
12374	CustomerId *string `locationName:"customerId" type:"string"`
12375
12376	// The description of the ApiKey.
12377	Description *string `locationName:"description" type:"string"`
12378
12379	// Specifies whether the ApiKey can be used by callers.
12380	Enabled *bool `locationName:"enabled" type:"boolean"`
12381
12382	// Specifies whether (true) or not (false) the key identifier is distinct from
12383	// the created API key value. This parameter is deprecated and should not be
12384	// used.
12385	GenerateDistinctId *bool `locationName:"generateDistinctId" type:"boolean"`
12386
12387	// The name of the ApiKey.
12388	Name *string `locationName:"name" type:"string"`
12389
12390	// DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.
12391	StageKeys []*StageKey `locationName:"stageKeys" type:"list"`
12392
12393	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
12394	// The tag key can be up to 128 characters and must not start with aws:. The
12395	// tag value can be up to 256 characters.
12396	Tags map[string]*string `locationName:"tags" type:"map"`
12397
12398	// Specifies a value of the API key.
12399	Value *string `locationName:"value" type:"string"`
12400}
12401
12402// String returns the string representation
12403func (s CreateApiKeyInput) String() string {
12404	return awsutil.Prettify(s)
12405}
12406
12407// GoString returns the string representation
12408func (s CreateApiKeyInput) GoString() string {
12409	return s.String()
12410}
12411
12412// SetCustomerId sets the CustomerId field's value.
12413func (s *CreateApiKeyInput) SetCustomerId(v string) *CreateApiKeyInput {
12414	s.CustomerId = &v
12415	return s
12416}
12417
12418// SetDescription sets the Description field's value.
12419func (s *CreateApiKeyInput) SetDescription(v string) *CreateApiKeyInput {
12420	s.Description = &v
12421	return s
12422}
12423
12424// SetEnabled sets the Enabled field's value.
12425func (s *CreateApiKeyInput) SetEnabled(v bool) *CreateApiKeyInput {
12426	s.Enabled = &v
12427	return s
12428}
12429
12430// SetGenerateDistinctId sets the GenerateDistinctId field's value.
12431func (s *CreateApiKeyInput) SetGenerateDistinctId(v bool) *CreateApiKeyInput {
12432	s.GenerateDistinctId = &v
12433	return s
12434}
12435
12436// SetName sets the Name field's value.
12437func (s *CreateApiKeyInput) SetName(v string) *CreateApiKeyInput {
12438	s.Name = &v
12439	return s
12440}
12441
12442// SetStageKeys sets the StageKeys field's value.
12443func (s *CreateApiKeyInput) SetStageKeys(v []*StageKey) *CreateApiKeyInput {
12444	s.StageKeys = v
12445	return s
12446}
12447
12448// SetTags sets the Tags field's value.
12449func (s *CreateApiKeyInput) SetTags(v map[string]*string) *CreateApiKeyInput {
12450	s.Tags = v
12451	return s
12452}
12453
12454// SetValue sets the Value field's value.
12455func (s *CreateApiKeyInput) SetValue(v string) *CreateApiKeyInput {
12456	s.Value = &v
12457	return s
12458}
12459
12460// Request to add a new Authorizer to an existing RestApi resource.
12461type CreateAuthorizerInput struct {
12462	_ struct{} `type:"structure"`
12463
12464	// Optional customer-defined field, used in OpenAPI imports and exports without
12465	// functional impact.
12466	AuthType *string `locationName:"authType" type:"string"`
12467
12468	// Specifies the required credentials as an IAM role for API Gateway to invoke
12469	// the authorizer. To specify an IAM role for API Gateway to assume, use the
12470	// role's Amazon Resource Name (ARN). To use resource-based permissions on the
12471	// Lambda function, specify null.
12472	AuthorizerCredentials *string `locationName:"authorizerCredentials" type:"string"`
12473
12474	// The TTL in seconds of cached authorizer results. If it equals 0, authorization
12475	// caching is disabled. If it is greater than 0, API Gateway will cache authorizer
12476	// responses. If this field is not set, the default value is 300. The maximum
12477	// value is 3600, or 1 hour.
12478	AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"`
12479
12480	// Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or
12481	// REQUEST authorizers, this must be a well-formed Lambda function URI, for
12482	// example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations.
12483	// In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api},
12484	// where {region} is the same as the region hosting the Lambda function, path
12485	// indicates that the remaining substring in the URI should be treated as the
12486	// path to the resource, including the initial /. For Lambda functions, this
12487	// is usually of the form /2015-03-31/functions/[FunctionARN]/invocations.
12488	AuthorizerUri *string `locationName:"authorizerUri" type:"string"`
12489
12490	// The identity source for which authorization is requested.
12491	//    * For a TOKEN or COGNITO_USER_POOLS authorizer, this is required and specifies
12492	//    the request header mapping expression for the custom header holding the
12493	//    authorization token submitted by the client. For example, if the token
12494	//    header name is Auth, the header mapping expression is method.request.header.Auth.
12495	//
12496	//    * For the REQUEST authorizer, this is required when authorization caching
12497	//    is enabled. The value is a comma-separated string of one or more mapping
12498	//    expressions of the specified request parameters. For example, if an Auth
12499	//    header, a Name query string parameter are defined as identity sources,
12500	//    this value is method.request.header.Auth, method.request.querystring.Name.
12501	//    These parameters will be used to derive the authorization caching key
12502	//    and to perform runtime validation of the REQUEST authorizer by verifying
12503	//    all of the identity-related request parameters are present, not null and
12504	//    non-empty. Only when this is true does the authorizer invoke the authorizer
12505	//    Lambda function, otherwise, it returns a 401 Unauthorized response without
12506	//    calling the Lambda function. The valid value is a string of comma-separated
12507	//    mapping expressions of the specified request parameters. When the authorization
12508	//    caching is not enabled, this property is optional.
12509	IdentitySource *string `locationName:"identitySource" type:"string"`
12510
12511	// A validation expression for the incoming identity token. For TOKEN authorizers,
12512	// this value is a regular expression. For COGNITO_USER_POOLS authorizers, API
12513	// Gateway will match the aud field of the incoming token from the client against
12514	// the specified regular expression. It will invoke the authorizer's Lambda
12515	// function when there is a match. Otherwise, it will return a 401 Unauthorized
12516	// response without calling the Lambda function. The validation expression does
12517	// not apply to the REQUEST authorizer.
12518	IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"`
12519
12520	// [Required] The name of the authorizer.
12521	//
12522	// Name is a required field
12523	Name *string `locationName:"name" type:"string" required:"true"`
12524
12525	// A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer.
12526	// Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}.
12527	// For a TOKEN or REQUEST authorizer, this is not defined.
12528	ProviderARNs []*string `locationName:"providerARNs" type:"list"`
12529
12530	// [Required] The string identifier of the associated RestApi.
12531	//
12532	// RestApiId is a required field
12533	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12534
12535	// [Required] The authorizer type. Valid values are TOKEN for a Lambda function
12536	// using a single authorization token submitted in a custom header, REQUEST
12537	// for a Lambda function using incoming request parameters, and COGNITO_USER_POOLS
12538	// for using an Amazon Cognito user pool.
12539	//
12540	// Type is a required field
12541	Type *string `locationName:"type" type:"string" required:"true" enum:"AuthorizerType"`
12542}
12543
12544// String returns the string representation
12545func (s CreateAuthorizerInput) String() string {
12546	return awsutil.Prettify(s)
12547}
12548
12549// GoString returns the string representation
12550func (s CreateAuthorizerInput) GoString() string {
12551	return s.String()
12552}
12553
12554// Validate inspects the fields of the type to determine if they are valid.
12555func (s *CreateAuthorizerInput) Validate() error {
12556	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
12557	if s.Name == nil {
12558		invalidParams.Add(request.NewErrParamRequired("Name"))
12559	}
12560	if s.RestApiId == nil {
12561		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12562	}
12563	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12564		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12565	}
12566	if s.Type == nil {
12567		invalidParams.Add(request.NewErrParamRequired("Type"))
12568	}
12569
12570	if invalidParams.Len() > 0 {
12571		return invalidParams
12572	}
12573	return nil
12574}
12575
12576// SetAuthType sets the AuthType field's value.
12577func (s *CreateAuthorizerInput) SetAuthType(v string) *CreateAuthorizerInput {
12578	s.AuthType = &v
12579	return s
12580}
12581
12582// SetAuthorizerCredentials sets the AuthorizerCredentials field's value.
12583func (s *CreateAuthorizerInput) SetAuthorizerCredentials(v string) *CreateAuthorizerInput {
12584	s.AuthorizerCredentials = &v
12585	return s
12586}
12587
12588// SetAuthorizerResultTtlInSeconds sets the AuthorizerResultTtlInSeconds field's value.
12589func (s *CreateAuthorizerInput) SetAuthorizerResultTtlInSeconds(v int64) *CreateAuthorizerInput {
12590	s.AuthorizerResultTtlInSeconds = &v
12591	return s
12592}
12593
12594// SetAuthorizerUri sets the AuthorizerUri field's value.
12595func (s *CreateAuthorizerInput) SetAuthorizerUri(v string) *CreateAuthorizerInput {
12596	s.AuthorizerUri = &v
12597	return s
12598}
12599
12600// SetIdentitySource sets the IdentitySource field's value.
12601func (s *CreateAuthorizerInput) SetIdentitySource(v string) *CreateAuthorizerInput {
12602	s.IdentitySource = &v
12603	return s
12604}
12605
12606// SetIdentityValidationExpression sets the IdentityValidationExpression field's value.
12607func (s *CreateAuthorizerInput) SetIdentityValidationExpression(v string) *CreateAuthorizerInput {
12608	s.IdentityValidationExpression = &v
12609	return s
12610}
12611
12612// SetName sets the Name field's value.
12613func (s *CreateAuthorizerInput) SetName(v string) *CreateAuthorizerInput {
12614	s.Name = &v
12615	return s
12616}
12617
12618// SetProviderARNs sets the ProviderARNs field's value.
12619func (s *CreateAuthorizerInput) SetProviderARNs(v []*string) *CreateAuthorizerInput {
12620	s.ProviderARNs = v
12621	return s
12622}
12623
12624// SetRestApiId sets the RestApiId field's value.
12625func (s *CreateAuthorizerInput) SetRestApiId(v string) *CreateAuthorizerInput {
12626	s.RestApiId = &v
12627	return s
12628}
12629
12630// SetType sets the Type field's value.
12631func (s *CreateAuthorizerInput) SetType(v string) *CreateAuthorizerInput {
12632	s.Type = &v
12633	return s
12634}
12635
12636// Requests API Gateway to create a new BasePathMapping resource.
12637type CreateBasePathMappingInput struct {
12638	_ struct{} `type:"structure"`
12639
12640	// The base path name that callers of the API must provide as part of the URL
12641	// after the domain name. This value must be unique for all of the mappings
12642	// across a single API. Specify '(none)' if you do not want callers to specify
12643	// a base path name after the domain name.
12644	BasePath *string `locationName:"basePath" type:"string"`
12645
12646	// [Required] The domain name of the BasePathMapping resource to create.
12647	//
12648	// DomainName is a required field
12649	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
12650
12651	// [Required] The string identifier of the associated RestApi.
12652	//
12653	// RestApiId is a required field
12654	RestApiId *string `locationName:"restApiId" type:"string" required:"true"`
12655
12656	// The name of the API's stage that you want to use for this mapping. Specify
12657	// '(none)' if you want callers to explicitly specify the stage name after any
12658	// base path name.
12659	Stage *string `locationName:"stage" type:"string"`
12660}
12661
12662// String returns the string representation
12663func (s CreateBasePathMappingInput) String() string {
12664	return awsutil.Prettify(s)
12665}
12666
12667// GoString returns the string representation
12668func (s CreateBasePathMappingInput) GoString() string {
12669	return s.String()
12670}
12671
12672// Validate inspects the fields of the type to determine if they are valid.
12673func (s *CreateBasePathMappingInput) Validate() error {
12674	invalidParams := request.ErrInvalidParams{Context: "CreateBasePathMappingInput"}
12675	if s.DomainName == nil {
12676		invalidParams.Add(request.NewErrParamRequired("DomainName"))
12677	}
12678	if s.DomainName != nil && len(*s.DomainName) < 1 {
12679		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
12680	}
12681	if s.RestApiId == nil {
12682		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12683	}
12684
12685	if invalidParams.Len() > 0 {
12686		return invalidParams
12687	}
12688	return nil
12689}
12690
12691// SetBasePath sets the BasePath field's value.
12692func (s *CreateBasePathMappingInput) SetBasePath(v string) *CreateBasePathMappingInput {
12693	s.BasePath = &v
12694	return s
12695}
12696
12697// SetDomainName sets the DomainName field's value.
12698func (s *CreateBasePathMappingInput) SetDomainName(v string) *CreateBasePathMappingInput {
12699	s.DomainName = &v
12700	return s
12701}
12702
12703// SetRestApiId sets the RestApiId field's value.
12704func (s *CreateBasePathMappingInput) SetRestApiId(v string) *CreateBasePathMappingInput {
12705	s.RestApiId = &v
12706	return s
12707}
12708
12709// SetStage sets the Stage field's value.
12710func (s *CreateBasePathMappingInput) SetStage(v string) *CreateBasePathMappingInput {
12711	s.Stage = &v
12712	return s
12713}
12714
12715// Requests API Gateway to create a Deployment resource.
12716type CreateDeploymentInput struct {
12717	_ struct{} `type:"structure"`
12718
12719	// Enables a cache cluster for the Stage resource specified in the input.
12720	CacheClusterEnabled *bool `locationName:"cacheClusterEnabled" type:"boolean"`
12721
12722	// Specifies the cache cluster size for the Stage resource specified in the
12723	// input, if a cache cluster is enabled.
12724	CacheClusterSize *string `locationName:"cacheClusterSize" type:"string" enum:"CacheClusterSize"`
12725
12726	// The input configuration for the canary deployment when the deployment is
12727	// a canary release deployment.
12728	CanarySettings *DeploymentCanarySettings `locationName:"canarySettings" type:"structure"`
12729
12730	// The description for the Deployment resource to create.
12731	Description *string `locationName:"description" type:"string"`
12732
12733	// [Required] The string identifier of the associated RestApi.
12734	//
12735	// RestApiId is a required field
12736	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12737
12738	// The description of the Stage resource for the Deployment resource to create.
12739	StageDescription *string `locationName:"stageDescription" type:"string"`
12740
12741	// The name of the Stage resource for the Deployment resource to create.
12742	StageName *string `locationName:"stageName" type:"string"`
12743
12744	// Specifies whether active tracing with X-ray is enabled for the Stage.
12745	TracingEnabled *bool `locationName:"tracingEnabled" type:"boolean"`
12746
12747	// A map that defines the stage variables for the Stage resource that is associated
12748	// with the new deployment. Variable names can have alphanumeric and underscore
12749	// characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.
12750	Variables map[string]*string `locationName:"variables" type:"map"`
12751}
12752
12753// String returns the string representation
12754func (s CreateDeploymentInput) String() string {
12755	return awsutil.Prettify(s)
12756}
12757
12758// GoString returns the string representation
12759func (s CreateDeploymentInput) GoString() string {
12760	return s.String()
12761}
12762
12763// Validate inspects the fields of the type to determine if they are valid.
12764func (s *CreateDeploymentInput) Validate() error {
12765	invalidParams := request.ErrInvalidParams{Context: "CreateDeploymentInput"}
12766	if s.RestApiId == nil {
12767		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12768	}
12769	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12770		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12771	}
12772
12773	if invalidParams.Len() > 0 {
12774		return invalidParams
12775	}
12776	return nil
12777}
12778
12779// SetCacheClusterEnabled sets the CacheClusterEnabled field's value.
12780func (s *CreateDeploymentInput) SetCacheClusterEnabled(v bool) *CreateDeploymentInput {
12781	s.CacheClusterEnabled = &v
12782	return s
12783}
12784
12785// SetCacheClusterSize sets the CacheClusterSize field's value.
12786func (s *CreateDeploymentInput) SetCacheClusterSize(v string) *CreateDeploymentInput {
12787	s.CacheClusterSize = &v
12788	return s
12789}
12790
12791// SetCanarySettings sets the CanarySettings field's value.
12792func (s *CreateDeploymentInput) SetCanarySettings(v *DeploymentCanarySettings) *CreateDeploymentInput {
12793	s.CanarySettings = v
12794	return s
12795}
12796
12797// SetDescription sets the Description field's value.
12798func (s *CreateDeploymentInput) SetDescription(v string) *CreateDeploymentInput {
12799	s.Description = &v
12800	return s
12801}
12802
12803// SetRestApiId sets the RestApiId field's value.
12804func (s *CreateDeploymentInput) SetRestApiId(v string) *CreateDeploymentInput {
12805	s.RestApiId = &v
12806	return s
12807}
12808
12809// SetStageDescription sets the StageDescription field's value.
12810func (s *CreateDeploymentInput) SetStageDescription(v string) *CreateDeploymentInput {
12811	s.StageDescription = &v
12812	return s
12813}
12814
12815// SetStageName sets the StageName field's value.
12816func (s *CreateDeploymentInput) SetStageName(v string) *CreateDeploymentInput {
12817	s.StageName = &v
12818	return s
12819}
12820
12821// SetTracingEnabled sets the TracingEnabled field's value.
12822func (s *CreateDeploymentInput) SetTracingEnabled(v bool) *CreateDeploymentInput {
12823	s.TracingEnabled = &v
12824	return s
12825}
12826
12827// SetVariables sets the Variables field's value.
12828func (s *CreateDeploymentInput) SetVariables(v map[string]*string) *CreateDeploymentInput {
12829	s.Variables = v
12830	return s
12831}
12832
12833// Creates a new documentation part of a given API.
12834type CreateDocumentationPartInput struct {
12835	_ struct{} `type:"structure"`
12836
12837	// [Required] The location of the targeted API entity of the to-be-created documentation
12838	// part.
12839	//
12840	// Location is a required field
12841	Location *DocumentationPartLocation `locationName:"location" type:"structure" required:"true"`
12842
12843	// [Required] The new documentation content map of the targeted API entity.
12844	// Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value
12845	// pairs can be exported and, hence, published.
12846	//
12847	// Properties is a required field
12848	Properties *string `locationName:"properties" type:"string" required:"true"`
12849
12850	// [Required] The string identifier of the associated RestApi.
12851	//
12852	// RestApiId is a required field
12853	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12854}
12855
12856// String returns the string representation
12857func (s CreateDocumentationPartInput) String() string {
12858	return awsutil.Prettify(s)
12859}
12860
12861// GoString returns the string representation
12862func (s CreateDocumentationPartInput) GoString() string {
12863	return s.String()
12864}
12865
12866// Validate inspects the fields of the type to determine if they are valid.
12867func (s *CreateDocumentationPartInput) Validate() error {
12868	invalidParams := request.ErrInvalidParams{Context: "CreateDocumentationPartInput"}
12869	if s.Location == nil {
12870		invalidParams.Add(request.NewErrParamRequired("Location"))
12871	}
12872	if s.Properties == nil {
12873		invalidParams.Add(request.NewErrParamRequired("Properties"))
12874	}
12875	if s.RestApiId == nil {
12876		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12877	}
12878	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12879		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12880	}
12881	if s.Location != nil {
12882		if err := s.Location.Validate(); err != nil {
12883			invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
12884		}
12885	}
12886
12887	if invalidParams.Len() > 0 {
12888		return invalidParams
12889	}
12890	return nil
12891}
12892
12893// SetLocation sets the Location field's value.
12894func (s *CreateDocumentationPartInput) SetLocation(v *DocumentationPartLocation) *CreateDocumentationPartInput {
12895	s.Location = v
12896	return s
12897}
12898
12899// SetProperties sets the Properties field's value.
12900func (s *CreateDocumentationPartInput) SetProperties(v string) *CreateDocumentationPartInput {
12901	s.Properties = &v
12902	return s
12903}
12904
12905// SetRestApiId sets the RestApiId field's value.
12906func (s *CreateDocumentationPartInput) SetRestApiId(v string) *CreateDocumentationPartInput {
12907	s.RestApiId = &v
12908	return s
12909}
12910
12911// Creates a new documentation version of a given API.
12912type CreateDocumentationVersionInput struct {
12913	_ struct{} `type:"structure"`
12914
12915	// A description about the new documentation snapshot.
12916	Description *string `locationName:"description" type:"string"`
12917
12918	// [Required] The version identifier of the new snapshot.
12919	//
12920	// DocumentationVersion is a required field
12921	DocumentationVersion *string `locationName:"documentationVersion" type:"string" required:"true"`
12922
12923	// [Required] The string identifier of the associated RestApi.
12924	//
12925	// RestApiId is a required field
12926	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12927
12928	// The stage name to be associated with the new documentation snapshot.
12929	StageName *string `locationName:"stageName" type:"string"`
12930}
12931
12932// String returns the string representation
12933func (s CreateDocumentationVersionInput) String() string {
12934	return awsutil.Prettify(s)
12935}
12936
12937// GoString returns the string representation
12938func (s CreateDocumentationVersionInput) GoString() string {
12939	return s.String()
12940}
12941
12942// Validate inspects the fields of the type to determine if they are valid.
12943func (s *CreateDocumentationVersionInput) Validate() error {
12944	invalidParams := request.ErrInvalidParams{Context: "CreateDocumentationVersionInput"}
12945	if s.DocumentationVersion == nil {
12946		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
12947	}
12948	if s.RestApiId == nil {
12949		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12950	}
12951	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12952		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12953	}
12954
12955	if invalidParams.Len() > 0 {
12956		return invalidParams
12957	}
12958	return nil
12959}
12960
12961// SetDescription sets the Description field's value.
12962func (s *CreateDocumentationVersionInput) SetDescription(v string) *CreateDocumentationVersionInput {
12963	s.Description = &v
12964	return s
12965}
12966
12967// SetDocumentationVersion sets the DocumentationVersion field's value.
12968func (s *CreateDocumentationVersionInput) SetDocumentationVersion(v string) *CreateDocumentationVersionInput {
12969	s.DocumentationVersion = &v
12970	return s
12971}
12972
12973// SetRestApiId sets the RestApiId field's value.
12974func (s *CreateDocumentationVersionInput) SetRestApiId(v string) *CreateDocumentationVersionInput {
12975	s.RestApiId = &v
12976	return s
12977}
12978
12979// SetStageName sets the StageName field's value.
12980func (s *CreateDocumentationVersionInput) SetStageName(v string) *CreateDocumentationVersionInput {
12981	s.StageName = &v
12982	return s
12983}
12984
12985// A request to create a new domain name.
12986type CreateDomainNameInput struct {
12987	_ struct{} `type:"structure"`
12988
12989	// The reference to an AWS-managed certificate that will be used by edge-optimized
12990	// endpoint for this domain name. AWS Certificate Manager is the only supported
12991	// source.
12992	CertificateArn *string `locationName:"certificateArn" type:"string"`
12993
12994	// [Deprecated] The body of the server certificate that will be used by edge-optimized
12995	// endpoint for this domain name provided by your certificate authority.
12996	CertificateBody *string `locationName:"certificateBody" type:"string"`
12997
12998	// [Deprecated] The intermediate certificates and optionally the root certificate,
12999	// one after the other without any blank lines, used by an edge-optimized endpoint
13000	// for this domain name. If you include the root certificate, your certificate
13001	// chain must start with intermediate certificates and end with the root certificate.
13002	// Use the intermediate certificates that were provided by your certificate
13003	// authority. Do not include any intermediaries that are not in the chain of
13004	// trust path.
13005	CertificateChain *string `locationName:"certificateChain" type:"string"`
13006
13007	// The user-friendly name of the certificate that will be used by edge-optimized
13008	// endpoint for this domain name.
13009	CertificateName *string `locationName:"certificateName" type:"string"`
13010
13011	// [Deprecated] Your edge-optimized endpoint's domain name certificate's private
13012	// key.
13013	CertificatePrivateKey *string `locationName:"certificatePrivateKey" type:"string"`
13014
13015	// [Required] The name of the DomainName resource.
13016	//
13017	// DomainName is a required field
13018	DomainName *string `locationName:"domainName" type:"string" required:"true"`
13019
13020	// The endpoint configuration of this DomainName showing the endpoint types
13021	// of the domain name.
13022	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
13023
13024	// If specified, API Gateway performs two-way authentication between the client
13025	// and the server. Clients must present a trusted certificate to access your
13026	// custom domain name.
13027	MutualTlsAuthentication *MutualTlsAuthenticationInput `locationName:"mutualTlsAuthentication" type:"structure"`
13028
13029	// The ARN of the public certificate issued by ACM to validate ownership of
13030	// your custom domain. Only required when configuring mutual TLS and using an
13031	// ACM imported or private CA certificate ARN as the regionalCertificateArn.
13032	OwnershipVerificationCertificateArn *string `locationName:"ownershipVerificationCertificateArn" type:"string"`
13033
13034	// The reference to an AWS-managed certificate that will be used by regional
13035	// endpoint for this domain name. AWS Certificate Manager is the only supported
13036	// source.
13037	RegionalCertificateArn *string `locationName:"regionalCertificateArn" type:"string"`
13038
13039	// The user-friendly name of the certificate that will be used by regional endpoint
13040	// for this domain name.
13041	RegionalCertificateName *string `locationName:"regionalCertificateName" type:"string"`
13042
13043	// The Transport Layer Security (TLS) version + cipher suite for this DomainName.
13044	// The valid values are TLS_1_0 and TLS_1_2.
13045	SecurityPolicy *string `locationName:"securityPolicy" type:"string" enum:"SecurityPolicy"`
13046
13047	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13048	// The tag key can be up to 128 characters and must not start with aws:. The
13049	// tag value can be up to 256 characters.
13050	Tags map[string]*string `locationName:"tags" type:"map"`
13051}
13052
13053// String returns the string representation
13054func (s CreateDomainNameInput) String() string {
13055	return awsutil.Prettify(s)
13056}
13057
13058// GoString returns the string representation
13059func (s CreateDomainNameInput) GoString() string {
13060	return s.String()
13061}
13062
13063// Validate inspects the fields of the type to determine if they are valid.
13064func (s *CreateDomainNameInput) Validate() error {
13065	invalidParams := request.ErrInvalidParams{Context: "CreateDomainNameInput"}
13066	if s.DomainName == nil {
13067		invalidParams.Add(request.NewErrParamRequired("DomainName"))
13068	}
13069
13070	if invalidParams.Len() > 0 {
13071		return invalidParams
13072	}
13073	return nil
13074}
13075
13076// SetCertificateArn sets the CertificateArn field's value.
13077func (s *CreateDomainNameInput) SetCertificateArn(v string) *CreateDomainNameInput {
13078	s.CertificateArn = &v
13079	return s
13080}
13081
13082// SetCertificateBody sets the CertificateBody field's value.
13083func (s *CreateDomainNameInput) SetCertificateBody(v string) *CreateDomainNameInput {
13084	s.CertificateBody = &v
13085	return s
13086}
13087
13088// SetCertificateChain sets the CertificateChain field's value.
13089func (s *CreateDomainNameInput) SetCertificateChain(v string) *CreateDomainNameInput {
13090	s.CertificateChain = &v
13091	return s
13092}
13093
13094// SetCertificateName sets the CertificateName field's value.
13095func (s *CreateDomainNameInput) SetCertificateName(v string) *CreateDomainNameInput {
13096	s.CertificateName = &v
13097	return s
13098}
13099
13100// SetCertificatePrivateKey sets the CertificatePrivateKey field's value.
13101func (s *CreateDomainNameInput) SetCertificatePrivateKey(v string) *CreateDomainNameInput {
13102	s.CertificatePrivateKey = &v
13103	return s
13104}
13105
13106// SetDomainName sets the DomainName field's value.
13107func (s *CreateDomainNameInput) SetDomainName(v string) *CreateDomainNameInput {
13108	s.DomainName = &v
13109	return s
13110}
13111
13112// SetEndpointConfiguration sets the EndpointConfiguration field's value.
13113func (s *CreateDomainNameInput) SetEndpointConfiguration(v *EndpointConfiguration) *CreateDomainNameInput {
13114	s.EndpointConfiguration = v
13115	return s
13116}
13117
13118// SetMutualTlsAuthentication sets the MutualTlsAuthentication field's value.
13119func (s *CreateDomainNameInput) SetMutualTlsAuthentication(v *MutualTlsAuthenticationInput) *CreateDomainNameInput {
13120	s.MutualTlsAuthentication = v
13121	return s
13122}
13123
13124// SetOwnershipVerificationCertificateArn sets the OwnershipVerificationCertificateArn field's value.
13125func (s *CreateDomainNameInput) SetOwnershipVerificationCertificateArn(v string) *CreateDomainNameInput {
13126	s.OwnershipVerificationCertificateArn = &v
13127	return s
13128}
13129
13130// SetRegionalCertificateArn sets the RegionalCertificateArn field's value.
13131func (s *CreateDomainNameInput) SetRegionalCertificateArn(v string) *CreateDomainNameInput {
13132	s.RegionalCertificateArn = &v
13133	return s
13134}
13135
13136// SetRegionalCertificateName sets the RegionalCertificateName field's value.
13137func (s *CreateDomainNameInput) SetRegionalCertificateName(v string) *CreateDomainNameInput {
13138	s.RegionalCertificateName = &v
13139	return s
13140}
13141
13142// SetSecurityPolicy sets the SecurityPolicy field's value.
13143func (s *CreateDomainNameInput) SetSecurityPolicy(v string) *CreateDomainNameInput {
13144	s.SecurityPolicy = &v
13145	return s
13146}
13147
13148// SetTags sets the Tags field's value.
13149func (s *CreateDomainNameInput) SetTags(v map[string]*string) *CreateDomainNameInput {
13150	s.Tags = v
13151	return s
13152}
13153
13154// Request to add a new Model to an existing RestApi resource.
13155type CreateModelInput struct {
13156	_ struct{} `type:"structure"`
13157
13158	// [Required] The content-type for the model.
13159	//
13160	// ContentType is a required field
13161	ContentType *string `locationName:"contentType" type:"string" required:"true"`
13162
13163	// The description of the model.
13164	Description *string `locationName:"description" type:"string"`
13165
13166	// [Required] The name of the model. Must be alphanumeric.
13167	//
13168	// Name is a required field
13169	Name *string `locationName:"name" type:"string" required:"true"`
13170
13171	// [Required] The RestApi identifier under which the Model will be created.
13172	//
13173	// RestApiId is a required field
13174	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13175
13176	// The schema for the model. For application/json models, this should be JSON
13177	// schema draft 4 (https://tools.ietf.org/html/draft-zyp-json-schema-04) model.
13178	Schema *string `locationName:"schema" type:"string"`
13179}
13180
13181// String returns the string representation
13182func (s CreateModelInput) String() string {
13183	return awsutil.Prettify(s)
13184}
13185
13186// GoString returns the string representation
13187func (s CreateModelInput) GoString() string {
13188	return s.String()
13189}
13190
13191// Validate inspects the fields of the type to determine if they are valid.
13192func (s *CreateModelInput) Validate() error {
13193	invalidParams := request.ErrInvalidParams{Context: "CreateModelInput"}
13194	if s.ContentType == nil {
13195		invalidParams.Add(request.NewErrParamRequired("ContentType"))
13196	}
13197	if s.Name == nil {
13198		invalidParams.Add(request.NewErrParamRequired("Name"))
13199	}
13200	if s.RestApiId == nil {
13201		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13202	}
13203	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13204		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13205	}
13206
13207	if invalidParams.Len() > 0 {
13208		return invalidParams
13209	}
13210	return nil
13211}
13212
13213// SetContentType sets the ContentType field's value.
13214func (s *CreateModelInput) SetContentType(v string) *CreateModelInput {
13215	s.ContentType = &v
13216	return s
13217}
13218
13219// SetDescription sets the Description field's value.
13220func (s *CreateModelInput) SetDescription(v string) *CreateModelInput {
13221	s.Description = &v
13222	return s
13223}
13224
13225// SetName sets the Name field's value.
13226func (s *CreateModelInput) SetName(v string) *CreateModelInput {
13227	s.Name = &v
13228	return s
13229}
13230
13231// SetRestApiId sets the RestApiId field's value.
13232func (s *CreateModelInput) SetRestApiId(v string) *CreateModelInput {
13233	s.RestApiId = &v
13234	return s
13235}
13236
13237// SetSchema sets the Schema field's value.
13238func (s *CreateModelInput) SetSchema(v string) *CreateModelInput {
13239	s.Schema = &v
13240	return s
13241}
13242
13243// Creates a RequestValidator of a given RestApi.
13244type CreateRequestValidatorInput struct {
13245	_ struct{} `type:"structure"`
13246
13247	// The name of the to-be-created RequestValidator.
13248	Name *string `locationName:"name" type:"string"`
13249
13250	// [Required] The string identifier of the associated RestApi.
13251	//
13252	// RestApiId is a required field
13253	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13254
13255	// A Boolean flag to indicate whether to validate request body according to
13256	// the configured model schema for the method (true) or not (false).
13257	ValidateRequestBody *bool `locationName:"validateRequestBody" type:"boolean"`
13258
13259	// A Boolean flag to indicate whether to validate request parameters, true,
13260	// or not false.
13261	ValidateRequestParameters *bool `locationName:"validateRequestParameters" type:"boolean"`
13262}
13263
13264// String returns the string representation
13265func (s CreateRequestValidatorInput) String() string {
13266	return awsutil.Prettify(s)
13267}
13268
13269// GoString returns the string representation
13270func (s CreateRequestValidatorInput) GoString() string {
13271	return s.String()
13272}
13273
13274// Validate inspects the fields of the type to determine if they are valid.
13275func (s *CreateRequestValidatorInput) Validate() error {
13276	invalidParams := request.ErrInvalidParams{Context: "CreateRequestValidatorInput"}
13277	if s.RestApiId == nil {
13278		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13279	}
13280	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13281		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13282	}
13283
13284	if invalidParams.Len() > 0 {
13285		return invalidParams
13286	}
13287	return nil
13288}
13289
13290// SetName sets the Name field's value.
13291func (s *CreateRequestValidatorInput) SetName(v string) *CreateRequestValidatorInput {
13292	s.Name = &v
13293	return s
13294}
13295
13296// SetRestApiId sets the RestApiId field's value.
13297func (s *CreateRequestValidatorInput) SetRestApiId(v string) *CreateRequestValidatorInput {
13298	s.RestApiId = &v
13299	return s
13300}
13301
13302// SetValidateRequestBody sets the ValidateRequestBody field's value.
13303func (s *CreateRequestValidatorInput) SetValidateRequestBody(v bool) *CreateRequestValidatorInput {
13304	s.ValidateRequestBody = &v
13305	return s
13306}
13307
13308// SetValidateRequestParameters sets the ValidateRequestParameters field's value.
13309func (s *CreateRequestValidatorInput) SetValidateRequestParameters(v bool) *CreateRequestValidatorInput {
13310	s.ValidateRequestParameters = &v
13311	return s
13312}
13313
13314// Requests API Gateway to create a Resource resource.
13315type CreateResourceInput struct {
13316	_ struct{} `type:"structure"`
13317
13318	// [Required] The parent resource's identifier.
13319	//
13320	// ParentId is a required field
13321	ParentId *string `location:"uri" locationName:"parent_id" type:"string" required:"true"`
13322
13323	// The last path segment for this resource.
13324	//
13325	// PathPart is a required field
13326	PathPart *string `locationName:"pathPart" type:"string" required:"true"`
13327
13328	// [Required] The string identifier of the associated RestApi.
13329	//
13330	// RestApiId is a required field
13331	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13332}
13333
13334// String returns the string representation
13335func (s CreateResourceInput) String() string {
13336	return awsutil.Prettify(s)
13337}
13338
13339// GoString returns the string representation
13340func (s CreateResourceInput) GoString() string {
13341	return s.String()
13342}
13343
13344// Validate inspects the fields of the type to determine if they are valid.
13345func (s *CreateResourceInput) Validate() error {
13346	invalidParams := request.ErrInvalidParams{Context: "CreateResourceInput"}
13347	if s.ParentId == nil {
13348		invalidParams.Add(request.NewErrParamRequired("ParentId"))
13349	}
13350	if s.ParentId != nil && len(*s.ParentId) < 1 {
13351		invalidParams.Add(request.NewErrParamMinLen("ParentId", 1))
13352	}
13353	if s.PathPart == nil {
13354		invalidParams.Add(request.NewErrParamRequired("PathPart"))
13355	}
13356	if s.RestApiId == nil {
13357		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13358	}
13359	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13360		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13361	}
13362
13363	if invalidParams.Len() > 0 {
13364		return invalidParams
13365	}
13366	return nil
13367}
13368
13369// SetParentId sets the ParentId field's value.
13370func (s *CreateResourceInput) SetParentId(v string) *CreateResourceInput {
13371	s.ParentId = &v
13372	return s
13373}
13374
13375// SetPathPart sets the PathPart field's value.
13376func (s *CreateResourceInput) SetPathPart(v string) *CreateResourceInput {
13377	s.PathPart = &v
13378	return s
13379}
13380
13381// SetRestApiId sets the RestApiId field's value.
13382func (s *CreateResourceInput) SetRestApiId(v string) *CreateResourceInput {
13383	s.RestApiId = &v
13384	return s
13385}
13386
13387// The POST Request to add a new RestApi resource to your collection.
13388type CreateRestApiInput struct {
13389	_ struct{} `type:"structure"`
13390
13391	// The source of the API key for metering requests according to a usage plan.
13392	// Valid values are:
13393	//    * HEADER to read the API key from the X-API-Key header of a request.
13394	//
13395	//    * AUTHORIZER to read the API key from the UsageIdentifierKey from a custom
13396	//    authorizer.
13397	ApiKeySource *string `locationName:"apiKeySource" type:"string" enum:"ApiKeySourceType"`
13398
13399	// The list of binary media types supported by the RestApi. By default, the
13400	// RestApi supports only UTF-8-encoded text payloads.
13401	BinaryMediaTypes []*string `locationName:"binaryMediaTypes" type:"list"`
13402
13403	// The ID of the RestApi that you want to clone from.
13404	CloneFrom *string `locationName:"cloneFrom" type:"string"`
13405
13406	// The description of the RestApi.
13407	Description *string `locationName:"description" type:"string"`
13408
13409	// Specifies whether clients can invoke your API by using the default execute-api
13410	// endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com
13411	// endpoint. To require that clients use a custom domain name to invoke your
13412	// API, disable the default endpoint.
13413	DisableExecuteApiEndpoint *bool `locationName:"disableExecuteApiEndpoint" type:"boolean"`
13414
13415	// The endpoint configuration of this RestApi showing the endpoint types of
13416	// the API.
13417	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
13418
13419	// A nullable integer that is used to enable compression (with non-negative
13420	// between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with
13421	// a null value) on an API. When compression is enabled, compression or decompression
13422	// is not applied on the payload if the payload size is smaller than this value.
13423	// Setting it to zero allows compression for any payload size.
13424	MinimumCompressionSize *int64 `locationName:"minimumCompressionSize" type:"integer"`
13425
13426	// [Required] The name of the RestApi.
13427	//
13428	// Name is a required field
13429	Name *string `locationName:"name" type:"string" required:"true"`
13430
13431	// A stringified JSON policy document that applies to this RestApi regardless
13432	// of the caller and Method configuration.
13433	Policy *string `locationName:"policy" type:"string"`
13434
13435	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13436	// The tag key can be up to 128 characters and must not start with aws:. The
13437	// tag value can be up to 256 characters.
13438	Tags map[string]*string `locationName:"tags" type:"map"`
13439
13440	// A version identifier for the API.
13441	Version *string `locationName:"version" type:"string"`
13442}
13443
13444// String returns the string representation
13445func (s CreateRestApiInput) String() string {
13446	return awsutil.Prettify(s)
13447}
13448
13449// GoString returns the string representation
13450func (s CreateRestApiInput) GoString() string {
13451	return s.String()
13452}
13453
13454// Validate inspects the fields of the type to determine if they are valid.
13455func (s *CreateRestApiInput) Validate() error {
13456	invalidParams := request.ErrInvalidParams{Context: "CreateRestApiInput"}
13457	if s.Name == nil {
13458		invalidParams.Add(request.NewErrParamRequired("Name"))
13459	}
13460
13461	if invalidParams.Len() > 0 {
13462		return invalidParams
13463	}
13464	return nil
13465}
13466
13467// SetApiKeySource sets the ApiKeySource field's value.
13468func (s *CreateRestApiInput) SetApiKeySource(v string) *CreateRestApiInput {
13469	s.ApiKeySource = &v
13470	return s
13471}
13472
13473// SetBinaryMediaTypes sets the BinaryMediaTypes field's value.
13474func (s *CreateRestApiInput) SetBinaryMediaTypes(v []*string) *CreateRestApiInput {
13475	s.BinaryMediaTypes = v
13476	return s
13477}
13478
13479// SetCloneFrom sets the CloneFrom field's value.
13480func (s *CreateRestApiInput) SetCloneFrom(v string) *CreateRestApiInput {
13481	s.CloneFrom = &v
13482	return s
13483}
13484
13485// SetDescription sets the Description field's value.
13486func (s *CreateRestApiInput) SetDescription(v string) *CreateRestApiInput {
13487	s.Description = &v
13488	return s
13489}
13490
13491// SetDisableExecuteApiEndpoint sets the DisableExecuteApiEndpoint field's value.
13492func (s *CreateRestApiInput) SetDisableExecuteApiEndpoint(v bool) *CreateRestApiInput {
13493	s.DisableExecuteApiEndpoint = &v
13494	return s
13495}
13496
13497// SetEndpointConfiguration sets the EndpointConfiguration field's value.
13498func (s *CreateRestApiInput) SetEndpointConfiguration(v *EndpointConfiguration) *CreateRestApiInput {
13499	s.EndpointConfiguration = v
13500	return s
13501}
13502
13503// SetMinimumCompressionSize sets the MinimumCompressionSize field's value.
13504func (s *CreateRestApiInput) SetMinimumCompressionSize(v int64) *CreateRestApiInput {
13505	s.MinimumCompressionSize = &v
13506	return s
13507}
13508
13509// SetName sets the Name field's value.
13510func (s *CreateRestApiInput) SetName(v string) *CreateRestApiInput {
13511	s.Name = &v
13512	return s
13513}
13514
13515// SetPolicy sets the Policy field's value.
13516func (s *CreateRestApiInput) SetPolicy(v string) *CreateRestApiInput {
13517	s.Policy = &v
13518	return s
13519}
13520
13521// SetTags sets the Tags field's value.
13522func (s *CreateRestApiInput) SetTags(v map[string]*string) *CreateRestApiInput {
13523	s.Tags = v
13524	return s
13525}
13526
13527// SetVersion sets the Version field's value.
13528func (s *CreateRestApiInput) SetVersion(v string) *CreateRestApiInput {
13529	s.Version = &v
13530	return s
13531}
13532
13533// Requests API Gateway to create a Stage resource.
13534type CreateStageInput struct {
13535	_ struct{} `type:"structure"`
13536
13537	// Whether cache clustering is enabled for the stage.
13538	CacheClusterEnabled *bool `locationName:"cacheClusterEnabled" type:"boolean"`
13539
13540	// The stage's cache cluster size.
13541	CacheClusterSize *string `locationName:"cacheClusterSize" type:"string" enum:"CacheClusterSize"`
13542
13543	// The canary deployment settings of this stage.
13544	CanarySettings *CanarySettings `locationName:"canarySettings" type:"structure"`
13545
13546	// [Required] The identifier of the Deployment resource for the Stage resource.
13547	//
13548	// DeploymentId is a required field
13549	DeploymentId *string `locationName:"deploymentId" type:"string" required:"true"`
13550
13551	// The description of the Stage resource.
13552	Description *string `locationName:"description" type:"string"`
13553
13554	// The version of the associated API documentation.
13555	DocumentationVersion *string `locationName:"documentationVersion" type:"string"`
13556
13557	// [Required] The string identifier of the associated RestApi.
13558	//
13559	// RestApiId is a required field
13560	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13561
13562	// [Required] The name for the Stage resource. Stage names can only contain
13563	// alphanumeric characters, hyphens, and underscores. Maximum length is 128
13564	// characters.
13565	//
13566	// StageName is a required field
13567	StageName *string `locationName:"stageName" type:"string" required:"true"`
13568
13569	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13570	// The tag key can be up to 128 characters and must not start with aws:. The
13571	// tag value can be up to 256 characters.
13572	Tags map[string]*string `locationName:"tags" type:"map"`
13573
13574	// Specifies whether active tracing with X-ray is enabled for the Stage.
13575	TracingEnabled *bool `locationName:"tracingEnabled" type:"boolean"`
13576
13577	// A map that defines the stage variables for the new Stage resource. Variable
13578	// names can have alphanumeric and underscore characters, and the values must
13579	// match [A-Za-z0-9-._~:/?#&=,]+.
13580	Variables map[string]*string `locationName:"variables" type:"map"`
13581}
13582
13583// String returns the string representation
13584func (s CreateStageInput) String() string {
13585	return awsutil.Prettify(s)
13586}
13587
13588// GoString returns the string representation
13589func (s CreateStageInput) GoString() string {
13590	return s.String()
13591}
13592
13593// Validate inspects the fields of the type to determine if they are valid.
13594func (s *CreateStageInput) Validate() error {
13595	invalidParams := request.ErrInvalidParams{Context: "CreateStageInput"}
13596	if s.DeploymentId == nil {
13597		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
13598	}
13599	if s.RestApiId == nil {
13600		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13601	}
13602	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13603		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13604	}
13605	if s.StageName == nil {
13606		invalidParams.Add(request.NewErrParamRequired("StageName"))
13607	}
13608
13609	if invalidParams.Len() > 0 {
13610		return invalidParams
13611	}
13612	return nil
13613}
13614
13615// SetCacheClusterEnabled sets the CacheClusterEnabled field's value.
13616func (s *CreateStageInput) SetCacheClusterEnabled(v bool) *CreateStageInput {
13617	s.CacheClusterEnabled = &v
13618	return s
13619}
13620
13621// SetCacheClusterSize sets the CacheClusterSize field's value.
13622func (s *CreateStageInput) SetCacheClusterSize(v string) *CreateStageInput {
13623	s.CacheClusterSize = &v
13624	return s
13625}
13626
13627// SetCanarySettings sets the CanarySettings field's value.
13628func (s *CreateStageInput) SetCanarySettings(v *CanarySettings) *CreateStageInput {
13629	s.CanarySettings = v
13630	return s
13631}
13632
13633// SetDeploymentId sets the DeploymentId field's value.
13634func (s *CreateStageInput) SetDeploymentId(v string) *CreateStageInput {
13635	s.DeploymentId = &v
13636	return s
13637}
13638
13639// SetDescription sets the Description field's value.
13640func (s *CreateStageInput) SetDescription(v string) *CreateStageInput {
13641	s.Description = &v
13642	return s
13643}
13644
13645// SetDocumentationVersion sets the DocumentationVersion field's value.
13646func (s *CreateStageInput) SetDocumentationVersion(v string) *CreateStageInput {
13647	s.DocumentationVersion = &v
13648	return s
13649}
13650
13651// SetRestApiId sets the RestApiId field's value.
13652func (s *CreateStageInput) SetRestApiId(v string) *CreateStageInput {
13653	s.RestApiId = &v
13654	return s
13655}
13656
13657// SetStageName sets the StageName field's value.
13658func (s *CreateStageInput) SetStageName(v string) *CreateStageInput {
13659	s.StageName = &v
13660	return s
13661}
13662
13663// SetTags sets the Tags field's value.
13664func (s *CreateStageInput) SetTags(v map[string]*string) *CreateStageInput {
13665	s.Tags = v
13666	return s
13667}
13668
13669// SetTracingEnabled sets the TracingEnabled field's value.
13670func (s *CreateStageInput) SetTracingEnabled(v bool) *CreateStageInput {
13671	s.TracingEnabled = &v
13672	return s
13673}
13674
13675// SetVariables sets the Variables field's value.
13676func (s *CreateStageInput) SetVariables(v map[string]*string) *CreateStageInput {
13677	s.Variables = v
13678	return s
13679}
13680
13681// The POST request to create a usage plan with the name, description, throttle
13682// limits and quota limits, as well as the associated API stages, specified
13683// in the payload.
13684type CreateUsagePlanInput struct {
13685	_ struct{} `type:"structure"`
13686
13687	// The associated API stages of the usage plan.
13688	ApiStages []*ApiStage `locationName:"apiStages" type:"list"`
13689
13690	// The description of the usage plan.
13691	Description *string `locationName:"description" type:"string"`
13692
13693	// [Required] The name of the usage plan.
13694	//
13695	// Name is a required field
13696	Name *string `locationName:"name" type:"string" required:"true"`
13697
13698	// The quota of the usage plan.
13699	Quota *QuotaSettings `locationName:"quota" type:"structure"`
13700
13701	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13702	// The tag key can be up to 128 characters and must not start with aws:. The
13703	// tag value can be up to 256 characters.
13704	Tags map[string]*string `locationName:"tags" type:"map"`
13705
13706	// The throttling limits of the usage plan.
13707	Throttle *ThrottleSettings `locationName:"throttle" type:"structure"`
13708}
13709
13710// String returns the string representation
13711func (s CreateUsagePlanInput) String() string {
13712	return awsutil.Prettify(s)
13713}
13714
13715// GoString returns the string representation
13716func (s CreateUsagePlanInput) GoString() string {
13717	return s.String()
13718}
13719
13720// Validate inspects the fields of the type to determine if they are valid.
13721func (s *CreateUsagePlanInput) Validate() error {
13722	invalidParams := request.ErrInvalidParams{Context: "CreateUsagePlanInput"}
13723	if s.Name == nil {
13724		invalidParams.Add(request.NewErrParamRequired("Name"))
13725	}
13726
13727	if invalidParams.Len() > 0 {
13728		return invalidParams
13729	}
13730	return nil
13731}
13732
13733// SetApiStages sets the ApiStages field's value.
13734func (s *CreateUsagePlanInput) SetApiStages(v []*ApiStage) *CreateUsagePlanInput {
13735	s.ApiStages = v
13736	return s
13737}
13738
13739// SetDescription sets the Description field's value.
13740func (s *CreateUsagePlanInput) SetDescription(v string) *CreateUsagePlanInput {
13741	s.Description = &v
13742	return s
13743}
13744
13745// SetName sets the Name field's value.
13746func (s *CreateUsagePlanInput) SetName(v string) *CreateUsagePlanInput {
13747	s.Name = &v
13748	return s
13749}
13750
13751// SetQuota sets the Quota field's value.
13752func (s *CreateUsagePlanInput) SetQuota(v *QuotaSettings) *CreateUsagePlanInput {
13753	s.Quota = v
13754	return s
13755}
13756
13757// SetTags sets the Tags field's value.
13758func (s *CreateUsagePlanInput) SetTags(v map[string]*string) *CreateUsagePlanInput {
13759	s.Tags = v
13760	return s
13761}
13762
13763// SetThrottle sets the Throttle field's value.
13764func (s *CreateUsagePlanInput) SetThrottle(v *ThrottleSettings) *CreateUsagePlanInput {
13765	s.Throttle = v
13766	return s
13767}
13768
13769// The POST request to create a usage plan key for adding an existing API key
13770// to a usage plan.
13771type CreateUsagePlanKeyInput struct {
13772	_ struct{} `type:"structure"`
13773
13774	// [Required] The identifier of a UsagePlanKey resource for a plan customer.
13775	//
13776	// KeyId is a required field
13777	KeyId *string `locationName:"keyId" type:"string" required:"true"`
13778
13779	// [Required] The type of a UsagePlanKey resource for a plan customer.
13780	//
13781	// KeyType is a required field
13782	KeyType *string `locationName:"keyType" type:"string" required:"true"`
13783
13784	// [Required] The Id of the UsagePlan resource representing the usage plan containing
13785	// the to-be-created UsagePlanKey resource representing a plan customer.
13786	//
13787	// UsagePlanId is a required field
13788	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
13789}
13790
13791// String returns the string representation
13792func (s CreateUsagePlanKeyInput) String() string {
13793	return awsutil.Prettify(s)
13794}
13795
13796// GoString returns the string representation
13797func (s CreateUsagePlanKeyInput) GoString() string {
13798	return s.String()
13799}
13800
13801// Validate inspects the fields of the type to determine if they are valid.
13802func (s *CreateUsagePlanKeyInput) Validate() error {
13803	invalidParams := request.ErrInvalidParams{Context: "CreateUsagePlanKeyInput"}
13804	if s.KeyId == nil {
13805		invalidParams.Add(request.NewErrParamRequired("KeyId"))
13806	}
13807	if s.KeyType == nil {
13808		invalidParams.Add(request.NewErrParamRequired("KeyType"))
13809	}
13810	if s.UsagePlanId == nil {
13811		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
13812	}
13813	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
13814		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
13815	}
13816
13817	if invalidParams.Len() > 0 {
13818		return invalidParams
13819	}
13820	return nil
13821}
13822
13823// SetKeyId sets the KeyId field's value.
13824func (s *CreateUsagePlanKeyInput) SetKeyId(v string) *CreateUsagePlanKeyInput {
13825	s.KeyId = &v
13826	return s
13827}
13828
13829// SetKeyType sets the KeyType field's value.
13830func (s *CreateUsagePlanKeyInput) SetKeyType(v string) *CreateUsagePlanKeyInput {
13831	s.KeyType = &v
13832	return s
13833}
13834
13835// SetUsagePlanId sets the UsagePlanId field's value.
13836func (s *CreateUsagePlanKeyInput) SetUsagePlanId(v string) *CreateUsagePlanKeyInput {
13837	s.UsagePlanId = &v
13838	return s
13839}
13840
13841// Creates a VPC link, under the caller's account in a selected region, in an
13842// asynchronous operation that typically takes 2-4 minutes to complete and become
13843// operational. The caller must have permissions to create and update VPC Endpoint
13844// services.
13845type CreateVpcLinkInput struct {
13846	_ struct{} `type:"structure"`
13847
13848	// The description of the VPC link.
13849	Description *string `locationName:"description" type:"string"`
13850
13851	// [Required] The name used to label and identify the VPC link.
13852	//
13853	// Name is a required field
13854	Name *string `locationName:"name" type:"string" required:"true"`
13855
13856	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13857	// The tag key can be up to 128 characters and must not start with aws:. The
13858	// tag value can be up to 256 characters.
13859	Tags map[string]*string `locationName:"tags" type:"map"`
13860
13861	// [Required] The ARN of the network load balancer of the VPC targeted by the
13862	// VPC link. The network load balancer must be owned by the same AWS account
13863	// of the API owner.
13864	//
13865	// TargetArns is a required field
13866	TargetArns []*string `locationName:"targetArns" type:"list" required:"true"`
13867}
13868
13869// String returns the string representation
13870func (s CreateVpcLinkInput) String() string {
13871	return awsutil.Prettify(s)
13872}
13873
13874// GoString returns the string representation
13875func (s CreateVpcLinkInput) GoString() string {
13876	return s.String()
13877}
13878
13879// Validate inspects the fields of the type to determine if they are valid.
13880func (s *CreateVpcLinkInput) Validate() error {
13881	invalidParams := request.ErrInvalidParams{Context: "CreateVpcLinkInput"}
13882	if s.Name == nil {
13883		invalidParams.Add(request.NewErrParamRequired("Name"))
13884	}
13885	if s.TargetArns == nil {
13886		invalidParams.Add(request.NewErrParamRequired("TargetArns"))
13887	}
13888
13889	if invalidParams.Len() > 0 {
13890		return invalidParams
13891	}
13892	return nil
13893}
13894
13895// SetDescription sets the Description field's value.
13896func (s *CreateVpcLinkInput) SetDescription(v string) *CreateVpcLinkInput {
13897	s.Description = &v
13898	return s
13899}
13900
13901// SetName sets the Name field's value.
13902func (s *CreateVpcLinkInput) SetName(v string) *CreateVpcLinkInput {
13903	s.Name = &v
13904	return s
13905}
13906
13907// SetTags sets the Tags field's value.
13908func (s *CreateVpcLinkInput) SetTags(v map[string]*string) *CreateVpcLinkInput {
13909	s.Tags = v
13910	return s
13911}
13912
13913// SetTargetArns sets the TargetArns field's value.
13914func (s *CreateVpcLinkInput) SetTargetArns(v []*string) *CreateVpcLinkInput {
13915	s.TargetArns = v
13916	return s
13917}
13918
13919// A request to delete the ApiKey resource.
13920type DeleteApiKeyInput struct {
13921	_ struct{} `type:"structure"`
13922
13923	// [Required] The identifier of the ApiKey resource to be deleted.
13924	//
13925	// ApiKey is a required field
13926	ApiKey *string `location:"uri" locationName:"api_Key" type:"string" required:"true"`
13927}
13928
13929// String returns the string representation
13930func (s DeleteApiKeyInput) String() string {
13931	return awsutil.Prettify(s)
13932}
13933
13934// GoString returns the string representation
13935func (s DeleteApiKeyInput) GoString() string {
13936	return s.String()
13937}
13938
13939// Validate inspects the fields of the type to determine if they are valid.
13940func (s *DeleteApiKeyInput) Validate() error {
13941	invalidParams := request.ErrInvalidParams{Context: "DeleteApiKeyInput"}
13942	if s.ApiKey == nil {
13943		invalidParams.Add(request.NewErrParamRequired("ApiKey"))
13944	}
13945	if s.ApiKey != nil && len(*s.ApiKey) < 1 {
13946		invalidParams.Add(request.NewErrParamMinLen("ApiKey", 1))
13947	}
13948
13949	if invalidParams.Len() > 0 {
13950		return invalidParams
13951	}
13952	return nil
13953}
13954
13955// SetApiKey sets the ApiKey field's value.
13956func (s *DeleteApiKeyInput) SetApiKey(v string) *DeleteApiKeyInput {
13957	s.ApiKey = &v
13958	return s
13959}
13960
13961type DeleteApiKeyOutput struct {
13962	_ struct{} `type:"structure"`
13963}
13964
13965// String returns the string representation
13966func (s DeleteApiKeyOutput) String() string {
13967	return awsutil.Prettify(s)
13968}
13969
13970// GoString returns the string representation
13971func (s DeleteApiKeyOutput) GoString() string {
13972	return s.String()
13973}
13974
13975// Request to delete an existing Authorizer resource.
13976type DeleteAuthorizerInput struct {
13977	_ struct{} `type:"structure"`
13978
13979	// [Required] The identifier of the Authorizer resource.
13980	//
13981	// AuthorizerId is a required field
13982	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
13983
13984	// [Required] The string identifier of the associated RestApi.
13985	//
13986	// RestApiId is a required field
13987	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13988}
13989
13990// String returns the string representation
13991func (s DeleteAuthorizerInput) String() string {
13992	return awsutil.Prettify(s)
13993}
13994
13995// GoString returns the string representation
13996func (s DeleteAuthorizerInput) GoString() string {
13997	return s.String()
13998}
13999
14000// Validate inspects the fields of the type to determine if they are valid.
14001func (s *DeleteAuthorizerInput) Validate() error {
14002	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
14003	if s.AuthorizerId == nil {
14004		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
14005	}
14006	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
14007		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
14008	}
14009	if s.RestApiId == nil {
14010		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14011	}
14012	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14013		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14014	}
14015
14016	if invalidParams.Len() > 0 {
14017		return invalidParams
14018	}
14019	return nil
14020}
14021
14022// SetAuthorizerId sets the AuthorizerId field's value.
14023func (s *DeleteAuthorizerInput) SetAuthorizerId(v string) *DeleteAuthorizerInput {
14024	s.AuthorizerId = &v
14025	return s
14026}
14027
14028// SetRestApiId sets the RestApiId field's value.
14029func (s *DeleteAuthorizerInput) SetRestApiId(v string) *DeleteAuthorizerInput {
14030	s.RestApiId = &v
14031	return s
14032}
14033
14034type DeleteAuthorizerOutput struct {
14035	_ struct{} `type:"structure"`
14036}
14037
14038// String returns the string representation
14039func (s DeleteAuthorizerOutput) String() string {
14040	return awsutil.Prettify(s)
14041}
14042
14043// GoString returns the string representation
14044func (s DeleteAuthorizerOutput) GoString() string {
14045	return s.String()
14046}
14047
14048// A request to delete the BasePathMapping resource.
14049type DeleteBasePathMappingInput struct {
14050	_ struct{} `type:"structure"`
14051
14052	// [Required] The base path name of the BasePathMapping resource to delete.
14053	//
14054	// To specify an empty base path, set this parameter to '(none)'.
14055	//
14056	// BasePath is a required field
14057	BasePath *string `location:"uri" locationName:"base_path" type:"string" required:"true"`
14058
14059	// [Required] The domain name of the BasePathMapping resource to delete.
14060	//
14061	// DomainName is a required field
14062	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
14063}
14064
14065// String returns the string representation
14066func (s DeleteBasePathMappingInput) String() string {
14067	return awsutil.Prettify(s)
14068}
14069
14070// GoString returns the string representation
14071func (s DeleteBasePathMappingInput) GoString() string {
14072	return s.String()
14073}
14074
14075// Validate inspects the fields of the type to determine if they are valid.
14076func (s *DeleteBasePathMappingInput) Validate() error {
14077	invalidParams := request.ErrInvalidParams{Context: "DeleteBasePathMappingInput"}
14078	if s.BasePath == nil {
14079		invalidParams.Add(request.NewErrParamRequired("BasePath"))
14080	}
14081	if s.BasePath != nil && len(*s.BasePath) < 1 {
14082		invalidParams.Add(request.NewErrParamMinLen("BasePath", 1))
14083	}
14084	if s.DomainName == nil {
14085		invalidParams.Add(request.NewErrParamRequired("DomainName"))
14086	}
14087	if s.DomainName != nil && len(*s.DomainName) < 1 {
14088		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
14089	}
14090
14091	if invalidParams.Len() > 0 {
14092		return invalidParams
14093	}
14094	return nil
14095}
14096
14097// SetBasePath sets the BasePath field's value.
14098func (s *DeleteBasePathMappingInput) SetBasePath(v string) *DeleteBasePathMappingInput {
14099	s.BasePath = &v
14100	return s
14101}
14102
14103// SetDomainName sets the DomainName field's value.
14104func (s *DeleteBasePathMappingInput) SetDomainName(v string) *DeleteBasePathMappingInput {
14105	s.DomainName = &v
14106	return s
14107}
14108
14109type DeleteBasePathMappingOutput struct {
14110	_ struct{} `type:"structure"`
14111}
14112
14113// String returns the string representation
14114func (s DeleteBasePathMappingOutput) String() string {
14115	return awsutil.Prettify(s)
14116}
14117
14118// GoString returns the string representation
14119func (s DeleteBasePathMappingOutput) GoString() string {
14120	return s.String()
14121}
14122
14123// A request to delete the ClientCertificate resource.
14124type DeleteClientCertificateInput struct {
14125	_ struct{} `type:"structure"`
14126
14127	// [Required] The identifier of the ClientCertificate resource to be deleted.
14128	//
14129	// ClientCertificateId is a required field
14130	ClientCertificateId *string `location:"uri" locationName:"clientcertificate_id" type:"string" required:"true"`
14131}
14132
14133// String returns the string representation
14134func (s DeleteClientCertificateInput) String() string {
14135	return awsutil.Prettify(s)
14136}
14137
14138// GoString returns the string representation
14139func (s DeleteClientCertificateInput) GoString() string {
14140	return s.String()
14141}
14142
14143// Validate inspects the fields of the type to determine if they are valid.
14144func (s *DeleteClientCertificateInput) Validate() error {
14145	invalidParams := request.ErrInvalidParams{Context: "DeleteClientCertificateInput"}
14146	if s.ClientCertificateId == nil {
14147		invalidParams.Add(request.NewErrParamRequired("ClientCertificateId"))
14148	}
14149	if s.ClientCertificateId != nil && len(*s.ClientCertificateId) < 1 {
14150		invalidParams.Add(request.NewErrParamMinLen("ClientCertificateId", 1))
14151	}
14152
14153	if invalidParams.Len() > 0 {
14154		return invalidParams
14155	}
14156	return nil
14157}
14158
14159// SetClientCertificateId sets the ClientCertificateId field's value.
14160func (s *DeleteClientCertificateInput) SetClientCertificateId(v string) *DeleteClientCertificateInput {
14161	s.ClientCertificateId = &v
14162	return s
14163}
14164
14165type DeleteClientCertificateOutput struct {
14166	_ struct{} `type:"structure"`
14167}
14168
14169// String returns the string representation
14170func (s DeleteClientCertificateOutput) String() string {
14171	return awsutil.Prettify(s)
14172}
14173
14174// GoString returns the string representation
14175func (s DeleteClientCertificateOutput) GoString() string {
14176	return s.String()
14177}
14178
14179// Requests API Gateway to delete a Deployment resource.
14180type DeleteDeploymentInput struct {
14181	_ struct{} `type:"structure"`
14182
14183	// [Required] The identifier of the Deployment resource to delete.
14184	//
14185	// DeploymentId is a required field
14186	DeploymentId *string `location:"uri" locationName:"deployment_id" type:"string" required:"true"`
14187
14188	// [Required] The string identifier of the associated RestApi.
14189	//
14190	// RestApiId is a required field
14191	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14192}
14193
14194// String returns the string representation
14195func (s DeleteDeploymentInput) String() string {
14196	return awsutil.Prettify(s)
14197}
14198
14199// GoString returns the string representation
14200func (s DeleteDeploymentInput) GoString() string {
14201	return s.String()
14202}
14203
14204// Validate inspects the fields of the type to determine if they are valid.
14205func (s *DeleteDeploymentInput) Validate() error {
14206	invalidParams := request.ErrInvalidParams{Context: "DeleteDeploymentInput"}
14207	if s.DeploymentId == nil {
14208		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
14209	}
14210	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
14211		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
14212	}
14213	if s.RestApiId == nil {
14214		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14215	}
14216	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14217		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14218	}
14219
14220	if invalidParams.Len() > 0 {
14221		return invalidParams
14222	}
14223	return nil
14224}
14225
14226// SetDeploymentId sets the DeploymentId field's value.
14227func (s *DeleteDeploymentInput) SetDeploymentId(v string) *DeleteDeploymentInput {
14228	s.DeploymentId = &v
14229	return s
14230}
14231
14232// SetRestApiId sets the RestApiId field's value.
14233func (s *DeleteDeploymentInput) SetRestApiId(v string) *DeleteDeploymentInput {
14234	s.RestApiId = &v
14235	return s
14236}
14237
14238type DeleteDeploymentOutput struct {
14239	_ struct{} `type:"structure"`
14240}
14241
14242// String returns the string representation
14243func (s DeleteDeploymentOutput) String() string {
14244	return awsutil.Prettify(s)
14245}
14246
14247// GoString returns the string representation
14248func (s DeleteDeploymentOutput) GoString() string {
14249	return s.String()
14250}
14251
14252// Deletes an existing documentation part of an API.
14253type DeleteDocumentationPartInput struct {
14254	_ struct{} `type:"structure"`
14255
14256	// [Required] The identifier of the to-be-deleted documentation part.
14257	//
14258	// DocumentationPartId is a required field
14259	DocumentationPartId *string `location:"uri" locationName:"part_id" type:"string" required:"true"`
14260
14261	// [Required] The string identifier of the associated RestApi.
14262	//
14263	// RestApiId is a required field
14264	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14265}
14266
14267// String returns the string representation
14268func (s DeleteDocumentationPartInput) String() string {
14269	return awsutil.Prettify(s)
14270}
14271
14272// GoString returns the string representation
14273func (s DeleteDocumentationPartInput) GoString() string {
14274	return s.String()
14275}
14276
14277// Validate inspects the fields of the type to determine if they are valid.
14278func (s *DeleteDocumentationPartInput) Validate() error {
14279	invalidParams := request.ErrInvalidParams{Context: "DeleteDocumentationPartInput"}
14280	if s.DocumentationPartId == nil {
14281		invalidParams.Add(request.NewErrParamRequired("DocumentationPartId"))
14282	}
14283	if s.DocumentationPartId != nil && len(*s.DocumentationPartId) < 1 {
14284		invalidParams.Add(request.NewErrParamMinLen("DocumentationPartId", 1))
14285	}
14286	if s.RestApiId == nil {
14287		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14288	}
14289	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14290		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14291	}
14292
14293	if invalidParams.Len() > 0 {
14294		return invalidParams
14295	}
14296	return nil
14297}
14298
14299// SetDocumentationPartId sets the DocumentationPartId field's value.
14300func (s *DeleteDocumentationPartInput) SetDocumentationPartId(v string) *DeleteDocumentationPartInput {
14301	s.DocumentationPartId = &v
14302	return s
14303}
14304
14305// SetRestApiId sets the RestApiId field's value.
14306func (s *DeleteDocumentationPartInput) SetRestApiId(v string) *DeleteDocumentationPartInput {
14307	s.RestApiId = &v
14308	return s
14309}
14310
14311type DeleteDocumentationPartOutput struct {
14312	_ struct{} `type:"structure"`
14313}
14314
14315// String returns the string representation
14316func (s DeleteDocumentationPartOutput) String() string {
14317	return awsutil.Prettify(s)
14318}
14319
14320// GoString returns the string representation
14321func (s DeleteDocumentationPartOutput) GoString() string {
14322	return s.String()
14323}
14324
14325// Deletes an existing documentation version of an API.
14326type DeleteDocumentationVersionInput struct {
14327	_ struct{} `type:"structure"`
14328
14329	// [Required] The version identifier of a to-be-deleted documentation snapshot.
14330	//
14331	// DocumentationVersion is a required field
14332	DocumentationVersion *string `location:"uri" locationName:"doc_version" type:"string" required:"true"`
14333
14334	// [Required] The string identifier of the associated RestApi.
14335	//
14336	// RestApiId is a required field
14337	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14338}
14339
14340// String returns the string representation
14341func (s DeleteDocumentationVersionInput) String() string {
14342	return awsutil.Prettify(s)
14343}
14344
14345// GoString returns the string representation
14346func (s DeleteDocumentationVersionInput) GoString() string {
14347	return s.String()
14348}
14349
14350// Validate inspects the fields of the type to determine if they are valid.
14351func (s *DeleteDocumentationVersionInput) Validate() error {
14352	invalidParams := request.ErrInvalidParams{Context: "DeleteDocumentationVersionInput"}
14353	if s.DocumentationVersion == nil {
14354		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
14355	}
14356	if s.DocumentationVersion != nil && len(*s.DocumentationVersion) < 1 {
14357		invalidParams.Add(request.NewErrParamMinLen("DocumentationVersion", 1))
14358	}
14359	if s.RestApiId == nil {
14360		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14361	}
14362	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14363		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14364	}
14365
14366	if invalidParams.Len() > 0 {
14367		return invalidParams
14368	}
14369	return nil
14370}
14371
14372// SetDocumentationVersion sets the DocumentationVersion field's value.
14373func (s *DeleteDocumentationVersionInput) SetDocumentationVersion(v string) *DeleteDocumentationVersionInput {
14374	s.DocumentationVersion = &v
14375	return s
14376}
14377
14378// SetRestApiId sets the RestApiId field's value.
14379func (s *DeleteDocumentationVersionInput) SetRestApiId(v string) *DeleteDocumentationVersionInput {
14380	s.RestApiId = &v
14381	return s
14382}
14383
14384type DeleteDocumentationVersionOutput struct {
14385	_ struct{} `type:"structure"`
14386}
14387
14388// String returns the string representation
14389func (s DeleteDocumentationVersionOutput) String() string {
14390	return awsutil.Prettify(s)
14391}
14392
14393// GoString returns the string representation
14394func (s DeleteDocumentationVersionOutput) GoString() string {
14395	return s.String()
14396}
14397
14398// A request to delete the DomainName resource.
14399type DeleteDomainNameInput struct {
14400	_ struct{} `type:"structure"`
14401
14402	// [Required] The name of the DomainName resource to be deleted.
14403	//
14404	// DomainName is a required field
14405	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
14406}
14407
14408// String returns the string representation
14409func (s DeleteDomainNameInput) String() string {
14410	return awsutil.Prettify(s)
14411}
14412
14413// GoString returns the string representation
14414func (s DeleteDomainNameInput) GoString() string {
14415	return s.String()
14416}
14417
14418// Validate inspects the fields of the type to determine if they are valid.
14419func (s *DeleteDomainNameInput) Validate() error {
14420	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainNameInput"}
14421	if s.DomainName == nil {
14422		invalidParams.Add(request.NewErrParamRequired("DomainName"))
14423	}
14424	if s.DomainName != nil && len(*s.DomainName) < 1 {
14425		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
14426	}
14427
14428	if invalidParams.Len() > 0 {
14429		return invalidParams
14430	}
14431	return nil
14432}
14433
14434// SetDomainName sets the DomainName field's value.
14435func (s *DeleteDomainNameInput) SetDomainName(v string) *DeleteDomainNameInput {
14436	s.DomainName = &v
14437	return s
14438}
14439
14440type DeleteDomainNameOutput struct {
14441	_ struct{} `type:"structure"`
14442}
14443
14444// String returns the string representation
14445func (s DeleteDomainNameOutput) String() string {
14446	return awsutil.Prettify(s)
14447}
14448
14449// GoString returns the string representation
14450func (s DeleteDomainNameOutput) GoString() string {
14451	return s.String()
14452}
14453
14454// Clears any customization of a GatewayResponse of a specified response type
14455// on the given RestApi and resets it with the default settings.
14456type DeleteGatewayResponseInput struct {
14457	_ struct{} `type:"structure"`
14458
14459	// [Required]
14460	// The response type of the associated GatewayResponse.
14461	//
14462	// ResponseType is a required field
14463	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
14464
14465	// [Required] The string identifier of the associated RestApi.
14466	//
14467	// RestApiId is a required field
14468	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14469}
14470
14471// String returns the string representation
14472func (s DeleteGatewayResponseInput) String() string {
14473	return awsutil.Prettify(s)
14474}
14475
14476// GoString returns the string representation
14477func (s DeleteGatewayResponseInput) GoString() string {
14478	return s.String()
14479}
14480
14481// Validate inspects the fields of the type to determine if they are valid.
14482func (s *DeleteGatewayResponseInput) Validate() error {
14483	invalidParams := request.ErrInvalidParams{Context: "DeleteGatewayResponseInput"}
14484	if s.ResponseType == nil {
14485		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
14486	}
14487	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
14488		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
14489	}
14490	if s.RestApiId == nil {
14491		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14492	}
14493	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14494		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14495	}
14496
14497	if invalidParams.Len() > 0 {
14498		return invalidParams
14499	}
14500	return nil
14501}
14502
14503// SetResponseType sets the ResponseType field's value.
14504func (s *DeleteGatewayResponseInput) SetResponseType(v string) *DeleteGatewayResponseInput {
14505	s.ResponseType = &v
14506	return s
14507}
14508
14509// SetRestApiId sets the RestApiId field's value.
14510func (s *DeleteGatewayResponseInput) SetRestApiId(v string) *DeleteGatewayResponseInput {
14511	s.RestApiId = &v
14512	return s
14513}
14514
14515type DeleteGatewayResponseOutput struct {
14516	_ struct{} `type:"structure"`
14517}
14518
14519// String returns the string representation
14520func (s DeleteGatewayResponseOutput) String() string {
14521	return awsutil.Prettify(s)
14522}
14523
14524// GoString returns the string representation
14525func (s DeleteGatewayResponseOutput) GoString() string {
14526	return s.String()
14527}
14528
14529// Represents a delete integration request.
14530type DeleteIntegrationInput struct {
14531	_ struct{} `type:"structure"`
14532
14533	// [Required] Specifies a delete integration request's HTTP method.
14534	//
14535	// HttpMethod is a required field
14536	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
14537
14538	// [Required] Specifies a delete integration request's resource identifier.
14539	//
14540	// ResourceId is a required field
14541	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14542
14543	// [Required] The string identifier of the associated RestApi.
14544	//
14545	// RestApiId is a required field
14546	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14547}
14548
14549// String returns the string representation
14550func (s DeleteIntegrationInput) String() string {
14551	return awsutil.Prettify(s)
14552}
14553
14554// GoString returns the string representation
14555func (s DeleteIntegrationInput) GoString() string {
14556	return s.String()
14557}
14558
14559// Validate inspects the fields of the type to determine if they are valid.
14560func (s *DeleteIntegrationInput) Validate() error {
14561	invalidParams := request.ErrInvalidParams{Context: "DeleteIntegrationInput"}
14562	if s.HttpMethod == nil {
14563		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
14564	}
14565	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
14566		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
14567	}
14568	if s.ResourceId == nil {
14569		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14570	}
14571	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14572		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14573	}
14574	if s.RestApiId == nil {
14575		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14576	}
14577	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14578		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14579	}
14580
14581	if invalidParams.Len() > 0 {
14582		return invalidParams
14583	}
14584	return nil
14585}
14586
14587// SetHttpMethod sets the HttpMethod field's value.
14588func (s *DeleteIntegrationInput) SetHttpMethod(v string) *DeleteIntegrationInput {
14589	s.HttpMethod = &v
14590	return s
14591}
14592
14593// SetResourceId sets the ResourceId field's value.
14594func (s *DeleteIntegrationInput) SetResourceId(v string) *DeleteIntegrationInput {
14595	s.ResourceId = &v
14596	return s
14597}
14598
14599// SetRestApiId sets the RestApiId field's value.
14600func (s *DeleteIntegrationInput) SetRestApiId(v string) *DeleteIntegrationInput {
14601	s.RestApiId = &v
14602	return s
14603}
14604
14605type DeleteIntegrationOutput struct {
14606	_ struct{} `type:"structure"`
14607}
14608
14609// String returns the string representation
14610func (s DeleteIntegrationOutput) String() string {
14611	return awsutil.Prettify(s)
14612}
14613
14614// GoString returns the string representation
14615func (s DeleteIntegrationOutput) GoString() string {
14616	return s.String()
14617}
14618
14619// Represents a delete integration response request.
14620type DeleteIntegrationResponseInput struct {
14621	_ struct{} `type:"structure"`
14622
14623	// [Required] Specifies a delete integration response request's HTTP method.
14624	//
14625	// HttpMethod is a required field
14626	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
14627
14628	// [Required] Specifies a delete integration response request's resource identifier.
14629	//
14630	// ResourceId is a required field
14631	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14632
14633	// [Required] The string identifier of the associated RestApi.
14634	//
14635	// RestApiId is a required field
14636	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14637
14638	// [Required] Specifies a delete integration response request's status code.
14639	//
14640	// StatusCode is a required field
14641	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
14642}
14643
14644// String returns the string representation
14645func (s DeleteIntegrationResponseInput) String() string {
14646	return awsutil.Prettify(s)
14647}
14648
14649// GoString returns the string representation
14650func (s DeleteIntegrationResponseInput) GoString() string {
14651	return s.String()
14652}
14653
14654// Validate inspects the fields of the type to determine if they are valid.
14655func (s *DeleteIntegrationResponseInput) Validate() error {
14656	invalidParams := request.ErrInvalidParams{Context: "DeleteIntegrationResponseInput"}
14657	if s.HttpMethod == nil {
14658		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
14659	}
14660	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
14661		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
14662	}
14663	if s.ResourceId == nil {
14664		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14665	}
14666	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14667		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14668	}
14669	if s.RestApiId == nil {
14670		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14671	}
14672	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14673		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14674	}
14675	if s.StatusCode == nil {
14676		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
14677	}
14678	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
14679		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
14680	}
14681
14682	if invalidParams.Len() > 0 {
14683		return invalidParams
14684	}
14685	return nil
14686}
14687
14688// SetHttpMethod sets the HttpMethod field's value.
14689func (s *DeleteIntegrationResponseInput) SetHttpMethod(v string) *DeleteIntegrationResponseInput {
14690	s.HttpMethod = &v
14691	return s
14692}
14693
14694// SetResourceId sets the ResourceId field's value.
14695func (s *DeleteIntegrationResponseInput) SetResourceId(v string) *DeleteIntegrationResponseInput {
14696	s.ResourceId = &v
14697	return s
14698}
14699
14700// SetRestApiId sets the RestApiId field's value.
14701func (s *DeleteIntegrationResponseInput) SetRestApiId(v string) *DeleteIntegrationResponseInput {
14702	s.RestApiId = &v
14703	return s
14704}
14705
14706// SetStatusCode sets the StatusCode field's value.
14707func (s *DeleteIntegrationResponseInput) SetStatusCode(v string) *DeleteIntegrationResponseInput {
14708	s.StatusCode = &v
14709	return s
14710}
14711
14712type DeleteIntegrationResponseOutput struct {
14713	_ struct{} `type:"structure"`
14714}
14715
14716// String returns the string representation
14717func (s DeleteIntegrationResponseOutput) String() string {
14718	return awsutil.Prettify(s)
14719}
14720
14721// GoString returns the string representation
14722func (s DeleteIntegrationResponseOutput) GoString() string {
14723	return s.String()
14724}
14725
14726// Request to delete an existing Method resource.
14727type DeleteMethodInput struct {
14728	_ struct{} `type:"structure"`
14729
14730	// [Required] The HTTP verb of the Method resource.
14731	//
14732	// HttpMethod is a required field
14733	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
14734
14735	// [Required] The Resource identifier for the Method resource.
14736	//
14737	// ResourceId is a required field
14738	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14739
14740	// [Required] The string identifier of the associated RestApi.
14741	//
14742	// RestApiId is a required field
14743	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14744}
14745
14746// String returns the string representation
14747func (s DeleteMethodInput) String() string {
14748	return awsutil.Prettify(s)
14749}
14750
14751// GoString returns the string representation
14752func (s DeleteMethodInput) GoString() string {
14753	return s.String()
14754}
14755
14756// Validate inspects the fields of the type to determine if they are valid.
14757func (s *DeleteMethodInput) Validate() error {
14758	invalidParams := request.ErrInvalidParams{Context: "DeleteMethodInput"}
14759	if s.HttpMethod == nil {
14760		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
14761	}
14762	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
14763		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
14764	}
14765	if s.ResourceId == nil {
14766		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14767	}
14768	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14769		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14770	}
14771	if s.RestApiId == nil {
14772		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14773	}
14774	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14775		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14776	}
14777
14778	if invalidParams.Len() > 0 {
14779		return invalidParams
14780	}
14781	return nil
14782}
14783
14784// SetHttpMethod sets the HttpMethod field's value.
14785func (s *DeleteMethodInput) SetHttpMethod(v string) *DeleteMethodInput {
14786	s.HttpMethod = &v
14787	return s
14788}
14789
14790// SetResourceId sets the ResourceId field's value.
14791func (s *DeleteMethodInput) SetResourceId(v string) *DeleteMethodInput {
14792	s.ResourceId = &v
14793	return s
14794}
14795
14796// SetRestApiId sets the RestApiId field's value.
14797func (s *DeleteMethodInput) SetRestApiId(v string) *DeleteMethodInput {
14798	s.RestApiId = &v
14799	return s
14800}
14801
14802type DeleteMethodOutput struct {
14803	_ struct{} `type:"structure"`
14804}
14805
14806// String returns the string representation
14807func (s DeleteMethodOutput) String() string {
14808	return awsutil.Prettify(s)
14809}
14810
14811// GoString returns the string representation
14812func (s DeleteMethodOutput) GoString() string {
14813	return s.String()
14814}
14815
14816// A request to delete an existing MethodResponse resource.
14817type DeleteMethodResponseInput struct {
14818	_ struct{} `type:"structure"`
14819
14820	// [Required] The HTTP verb of the Method resource.
14821	//
14822	// HttpMethod is a required field
14823	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
14824
14825	// [Required] The Resource identifier for the MethodResponse resource.
14826	//
14827	// ResourceId is a required field
14828	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14829
14830	// [Required] The string identifier of the associated RestApi.
14831	//
14832	// RestApiId is a required field
14833	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14834
14835	// [Required] The status code identifier for the MethodResponse resource.
14836	//
14837	// StatusCode is a required field
14838	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
14839}
14840
14841// String returns the string representation
14842func (s DeleteMethodResponseInput) String() string {
14843	return awsutil.Prettify(s)
14844}
14845
14846// GoString returns the string representation
14847func (s DeleteMethodResponseInput) GoString() string {
14848	return s.String()
14849}
14850
14851// Validate inspects the fields of the type to determine if they are valid.
14852func (s *DeleteMethodResponseInput) Validate() error {
14853	invalidParams := request.ErrInvalidParams{Context: "DeleteMethodResponseInput"}
14854	if s.HttpMethod == nil {
14855		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
14856	}
14857	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
14858		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
14859	}
14860	if s.ResourceId == nil {
14861		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14862	}
14863	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14864		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14865	}
14866	if s.RestApiId == nil {
14867		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14868	}
14869	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14870		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14871	}
14872	if s.StatusCode == nil {
14873		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
14874	}
14875	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
14876		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
14877	}
14878
14879	if invalidParams.Len() > 0 {
14880		return invalidParams
14881	}
14882	return nil
14883}
14884
14885// SetHttpMethod sets the HttpMethod field's value.
14886func (s *DeleteMethodResponseInput) SetHttpMethod(v string) *DeleteMethodResponseInput {
14887	s.HttpMethod = &v
14888	return s
14889}
14890
14891// SetResourceId sets the ResourceId field's value.
14892func (s *DeleteMethodResponseInput) SetResourceId(v string) *DeleteMethodResponseInput {
14893	s.ResourceId = &v
14894	return s
14895}
14896
14897// SetRestApiId sets the RestApiId field's value.
14898func (s *DeleteMethodResponseInput) SetRestApiId(v string) *DeleteMethodResponseInput {
14899	s.RestApiId = &v
14900	return s
14901}
14902
14903// SetStatusCode sets the StatusCode field's value.
14904func (s *DeleteMethodResponseInput) SetStatusCode(v string) *DeleteMethodResponseInput {
14905	s.StatusCode = &v
14906	return s
14907}
14908
14909type DeleteMethodResponseOutput struct {
14910	_ struct{} `type:"structure"`
14911}
14912
14913// String returns the string representation
14914func (s DeleteMethodResponseOutput) String() string {
14915	return awsutil.Prettify(s)
14916}
14917
14918// GoString returns the string representation
14919func (s DeleteMethodResponseOutput) GoString() string {
14920	return s.String()
14921}
14922
14923// Request to delete an existing model in an existing RestApi resource.
14924type DeleteModelInput struct {
14925	_ struct{} `type:"structure"`
14926
14927	// [Required] The name of the model to delete.
14928	//
14929	// ModelName is a required field
14930	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
14931
14932	// [Required] The string identifier of the associated RestApi.
14933	//
14934	// RestApiId is a required field
14935	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14936}
14937
14938// String returns the string representation
14939func (s DeleteModelInput) String() string {
14940	return awsutil.Prettify(s)
14941}
14942
14943// GoString returns the string representation
14944func (s DeleteModelInput) GoString() string {
14945	return s.String()
14946}
14947
14948// Validate inspects the fields of the type to determine if they are valid.
14949func (s *DeleteModelInput) Validate() error {
14950	invalidParams := request.ErrInvalidParams{Context: "DeleteModelInput"}
14951	if s.ModelName == nil {
14952		invalidParams.Add(request.NewErrParamRequired("ModelName"))
14953	}
14954	if s.ModelName != nil && len(*s.ModelName) < 1 {
14955		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
14956	}
14957	if s.RestApiId == nil {
14958		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14959	}
14960	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14961		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14962	}
14963
14964	if invalidParams.Len() > 0 {
14965		return invalidParams
14966	}
14967	return nil
14968}
14969
14970// SetModelName sets the ModelName field's value.
14971func (s *DeleteModelInput) SetModelName(v string) *DeleteModelInput {
14972	s.ModelName = &v
14973	return s
14974}
14975
14976// SetRestApiId sets the RestApiId field's value.
14977func (s *DeleteModelInput) SetRestApiId(v string) *DeleteModelInput {
14978	s.RestApiId = &v
14979	return s
14980}
14981
14982type DeleteModelOutput struct {
14983	_ struct{} `type:"structure"`
14984}
14985
14986// String returns the string representation
14987func (s DeleteModelOutput) String() string {
14988	return awsutil.Prettify(s)
14989}
14990
14991// GoString returns the string representation
14992func (s DeleteModelOutput) GoString() string {
14993	return s.String()
14994}
14995
14996// Deletes a specified RequestValidator of a given RestApi.
14997type DeleteRequestValidatorInput struct {
14998	_ struct{} `type:"structure"`
14999
15000	// [Required] The identifier of the RequestValidator to be deleted.
15001	//
15002	// RequestValidatorId is a required field
15003	RequestValidatorId *string `location:"uri" locationName:"requestvalidator_id" type:"string" required:"true"`
15004
15005	// [Required] The string identifier of the associated RestApi.
15006	//
15007	// RestApiId is a required field
15008	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15009}
15010
15011// String returns the string representation
15012func (s DeleteRequestValidatorInput) String() string {
15013	return awsutil.Prettify(s)
15014}
15015
15016// GoString returns the string representation
15017func (s DeleteRequestValidatorInput) GoString() string {
15018	return s.String()
15019}
15020
15021// Validate inspects the fields of the type to determine if they are valid.
15022func (s *DeleteRequestValidatorInput) Validate() error {
15023	invalidParams := request.ErrInvalidParams{Context: "DeleteRequestValidatorInput"}
15024	if s.RequestValidatorId == nil {
15025		invalidParams.Add(request.NewErrParamRequired("RequestValidatorId"))
15026	}
15027	if s.RequestValidatorId != nil && len(*s.RequestValidatorId) < 1 {
15028		invalidParams.Add(request.NewErrParamMinLen("RequestValidatorId", 1))
15029	}
15030	if s.RestApiId == nil {
15031		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15032	}
15033	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15034		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15035	}
15036
15037	if invalidParams.Len() > 0 {
15038		return invalidParams
15039	}
15040	return nil
15041}
15042
15043// SetRequestValidatorId sets the RequestValidatorId field's value.
15044func (s *DeleteRequestValidatorInput) SetRequestValidatorId(v string) *DeleteRequestValidatorInput {
15045	s.RequestValidatorId = &v
15046	return s
15047}
15048
15049// SetRestApiId sets the RestApiId field's value.
15050func (s *DeleteRequestValidatorInput) SetRestApiId(v string) *DeleteRequestValidatorInput {
15051	s.RestApiId = &v
15052	return s
15053}
15054
15055type DeleteRequestValidatorOutput struct {
15056	_ struct{} `type:"structure"`
15057}
15058
15059// String returns the string representation
15060func (s DeleteRequestValidatorOutput) String() string {
15061	return awsutil.Prettify(s)
15062}
15063
15064// GoString returns the string representation
15065func (s DeleteRequestValidatorOutput) GoString() string {
15066	return s.String()
15067}
15068
15069// Request to delete a Resource.
15070type DeleteResourceInput struct {
15071	_ struct{} `type:"structure"`
15072
15073	// [Required] The identifier of the Resource resource.
15074	//
15075	// ResourceId is a required field
15076	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
15077
15078	// [Required] The string identifier of the associated RestApi.
15079	//
15080	// RestApiId is a required field
15081	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15082}
15083
15084// String returns the string representation
15085func (s DeleteResourceInput) String() string {
15086	return awsutil.Prettify(s)
15087}
15088
15089// GoString returns the string representation
15090func (s DeleteResourceInput) GoString() string {
15091	return s.String()
15092}
15093
15094// Validate inspects the fields of the type to determine if they are valid.
15095func (s *DeleteResourceInput) Validate() error {
15096	invalidParams := request.ErrInvalidParams{Context: "DeleteResourceInput"}
15097	if s.ResourceId == nil {
15098		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
15099	}
15100	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
15101		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
15102	}
15103	if s.RestApiId == nil {
15104		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15105	}
15106	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15107		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15108	}
15109
15110	if invalidParams.Len() > 0 {
15111		return invalidParams
15112	}
15113	return nil
15114}
15115
15116// SetResourceId sets the ResourceId field's value.
15117func (s *DeleteResourceInput) SetResourceId(v string) *DeleteResourceInput {
15118	s.ResourceId = &v
15119	return s
15120}
15121
15122// SetRestApiId sets the RestApiId field's value.
15123func (s *DeleteResourceInput) SetRestApiId(v string) *DeleteResourceInput {
15124	s.RestApiId = &v
15125	return s
15126}
15127
15128type DeleteResourceOutput struct {
15129	_ struct{} `type:"structure"`
15130}
15131
15132// String returns the string representation
15133func (s DeleteResourceOutput) String() string {
15134	return awsutil.Prettify(s)
15135}
15136
15137// GoString returns the string representation
15138func (s DeleteResourceOutput) GoString() string {
15139	return s.String()
15140}
15141
15142// Request to delete the specified API from your collection.
15143type DeleteRestApiInput struct {
15144	_ struct{} `type:"structure"`
15145
15146	// [Required] The string identifier of the associated RestApi.
15147	//
15148	// RestApiId is a required field
15149	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15150}
15151
15152// String returns the string representation
15153func (s DeleteRestApiInput) String() string {
15154	return awsutil.Prettify(s)
15155}
15156
15157// GoString returns the string representation
15158func (s DeleteRestApiInput) GoString() string {
15159	return s.String()
15160}
15161
15162// Validate inspects the fields of the type to determine if they are valid.
15163func (s *DeleteRestApiInput) Validate() error {
15164	invalidParams := request.ErrInvalidParams{Context: "DeleteRestApiInput"}
15165	if s.RestApiId == nil {
15166		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15167	}
15168	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15169		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15170	}
15171
15172	if invalidParams.Len() > 0 {
15173		return invalidParams
15174	}
15175	return nil
15176}
15177
15178// SetRestApiId sets the RestApiId field's value.
15179func (s *DeleteRestApiInput) SetRestApiId(v string) *DeleteRestApiInput {
15180	s.RestApiId = &v
15181	return s
15182}
15183
15184type DeleteRestApiOutput struct {
15185	_ struct{} `type:"structure"`
15186}
15187
15188// String returns the string representation
15189func (s DeleteRestApiOutput) String() string {
15190	return awsutil.Prettify(s)
15191}
15192
15193// GoString returns the string representation
15194func (s DeleteRestApiOutput) GoString() string {
15195	return s.String()
15196}
15197
15198// Requests API Gateway to delete a Stage resource.
15199type DeleteStageInput struct {
15200	_ struct{} `type:"structure"`
15201
15202	// [Required] The string identifier of the associated RestApi.
15203	//
15204	// RestApiId is a required field
15205	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15206
15207	// [Required] The name of the Stage resource to delete.
15208	//
15209	// StageName is a required field
15210	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
15211}
15212
15213// String returns the string representation
15214func (s DeleteStageInput) String() string {
15215	return awsutil.Prettify(s)
15216}
15217
15218// GoString returns the string representation
15219func (s DeleteStageInput) GoString() string {
15220	return s.String()
15221}
15222
15223// Validate inspects the fields of the type to determine if they are valid.
15224func (s *DeleteStageInput) Validate() error {
15225	invalidParams := request.ErrInvalidParams{Context: "DeleteStageInput"}
15226	if s.RestApiId == nil {
15227		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15228	}
15229	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15230		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15231	}
15232	if s.StageName == nil {
15233		invalidParams.Add(request.NewErrParamRequired("StageName"))
15234	}
15235	if s.StageName != nil && len(*s.StageName) < 1 {
15236		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
15237	}
15238
15239	if invalidParams.Len() > 0 {
15240		return invalidParams
15241	}
15242	return nil
15243}
15244
15245// SetRestApiId sets the RestApiId field's value.
15246func (s *DeleteStageInput) SetRestApiId(v string) *DeleteStageInput {
15247	s.RestApiId = &v
15248	return s
15249}
15250
15251// SetStageName sets the StageName field's value.
15252func (s *DeleteStageInput) SetStageName(v string) *DeleteStageInput {
15253	s.StageName = &v
15254	return s
15255}
15256
15257type DeleteStageOutput struct {
15258	_ struct{} `type:"structure"`
15259}
15260
15261// String returns the string representation
15262func (s DeleteStageOutput) String() string {
15263	return awsutil.Prettify(s)
15264}
15265
15266// GoString returns the string representation
15267func (s DeleteStageOutput) GoString() string {
15268	return s.String()
15269}
15270
15271// The DELETE request to delete a usage plan of a given plan Id.
15272type DeleteUsagePlanInput struct {
15273	_ struct{} `type:"structure"`
15274
15275	// [Required] The Id of the to-be-deleted usage plan.
15276	//
15277	// UsagePlanId is a required field
15278	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
15279}
15280
15281// String returns the string representation
15282func (s DeleteUsagePlanInput) String() string {
15283	return awsutil.Prettify(s)
15284}
15285
15286// GoString returns the string representation
15287func (s DeleteUsagePlanInput) GoString() string {
15288	return s.String()
15289}
15290
15291// Validate inspects the fields of the type to determine if they are valid.
15292func (s *DeleteUsagePlanInput) Validate() error {
15293	invalidParams := request.ErrInvalidParams{Context: "DeleteUsagePlanInput"}
15294	if s.UsagePlanId == nil {
15295		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
15296	}
15297	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
15298		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
15299	}
15300
15301	if invalidParams.Len() > 0 {
15302		return invalidParams
15303	}
15304	return nil
15305}
15306
15307// SetUsagePlanId sets the UsagePlanId field's value.
15308func (s *DeleteUsagePlanInput) SetUsagePlanId(v string) *DeleteUsagePlanInput {
15309	s.UsagePlanId = &v
15310	return s
15311}
15312
15313// The DELETE request to delete a usage plan key and remove the underlying API
15314// key from the associated usage plan.
15315type DeleteUsagePlanKeyInput struct {
15316	_ struct{} `type:"structure"`
15317
15318	// [Required] The Id of the UsagePlanKey resource to be deleted.
15319	//
15320	// KeyId is a required field
15321	KeyId *string `location:"uri" locationName:"keyId" type:"string" required:"true"`
15322
15323	// [Required] The Id of the UsagePlan resource representing the usage plan containing
15324	// the to-be-deleted UsagePlanKey resource representing a plan customer.
15325	//
15326	// UsagePlanId is a required field
15327	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
15328}
15329
15330// String returns the string representation
15331func (s DeleteUsagePlanKeyInput) String() string {
15332	return awsutil.Prettify(s)
15333}
15334
15335// GoString returns the string representation
15336func (s DeleteUsagePlanKeyInput) GoString() string {
15337	return s.String()
15338}
15339
15340// Validate inspects the fields of the type to determine if they are valid.
15341func (s *DeleteUsagePlanKeyInput) Validate() error {
15342	invalidParams := request.ErrInvalidParams{Context: "DeleteUsagePlanKeyInput"}
15343	if s.KeyId == nil {
15344		invalidParams.Add(request.NewErrParamRequired("KeyId"))
15345	}
15346	if s.KeyId != nil && len(*s.KeyId) < 1 {
15347		invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
15348	}
15349	if s.UsagePlanId == nil {
15350		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
15351	}
15352	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
15353		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
15354	}
15355
15356	if invalidParams.Len() > 0 {
15357		return invalidParams
15358	}
15359	return nil
15360}
15361
15362// SetKeyId sets the KeyId field's value.
15363func (s *DeleteUsagePlanKeyInput) SetKeyId(v string) *DeleteUsagePlanKeyInput {
15364	s.KeyId = &v
15365	return s
15366}
15367
15368// SetUsagePlanId sets the UsagePlanId field's value.
15369func (s *DeleteUsagePlanKeyInput) SetUsagePlanId(v string) *DeleteUsagePlanKeyInput {
15370	s.UsagePlanId = &v
15371	return s
15372}
15373
15374type DeleteUsagePlanKeyOutput struct {
15375	_ struct{} `type:"structure"`
15376}
15377
15378// String returns the string representation
15379func (s DeleteUsagePlanKeyOutput) String() string {
15380	return awsutil.Prettify(s)
15381}
15382
15383// GoString returns the string representation
15384func (s DeleteUsagePlanKeyOutput) GoString() string {
15385	return s.String()
15386}
15387
15388type DeleteUsagePlanOutput struct {
15389	_ struct{} `type:"structure"`
15390}
15391
15392// String returns the string representation
15393func (s DeleteUsagePlanOutput) String() string {
15394	return awsutil.Prettify(s)
15395}
15396
15397// GoString returns the string representation
15398func (s DeleteUsagePlanOutput) GoString() string {
15399	return s.String()
15400}
15401
15402// Deletes an existing VpcLink of a specified identifier.
15403type DeleteVpcLinkInput struct {
15404	_ struct{} `type:"structure"`
15405
15406	// [Required] The identifier of the VpcLink. It is used in an Integration to
15407	// reference this VpcLink.
15408	//
15409	// VpcLinkId is a required field
15410	VpcLinkId *string `location:"uri" locationName:"vpclink_id" type:"string" required:"true"`
15411}
15412
15413// String returns the string representation
15414func (s DeleteVpcLinkInput) String() string {
15415	return awsutil.Prettify(s)
15416}
15417
15418// GoString returns the string representation
15419func (s DeleteVpcLinkInput) GoString() string {
15420	return s.String()
15421}
15422
15423// Validate inspects the fields of the type to determine if they are valid.
15424func (s *DeleteVpcLinkInput) Validate() error {
15425	invalidParams := request.ErrInvalidParams{Context: "DeleteVpcLinkInput"}
15426	if s.VpcLinkId == nil {
15427		invalidParams.Add(request.NewErrParamRequired("VpcLinkId"))
15428	}
15429	if s.VpcLinkId != nil && len(*s.VpcLinkId) < 1 {
15430		invalidParams.Add(request.NewErrParamMinLen("VpcLinkId", 1))
15431	}
15432
15433	if invalidParams.Len() > 0 {
15434		return invalidParams
15435	}
15436	return nil
15437}
15438
15439// SetVpcLinkId sets the VpcLinkId field's value.
15440func (s *DeleteVpcLinkInput) SetVpcLinkId(v string) *DeleteVpcLinkInput {
15441	s.VpcLinkId = &v
15442	return s
15443}
15444
15445type DeleteVpcLinkOutput struct {
15446	_ struct{} `type:"structure"`
15447}
15448
15449// String returns the string representation
15450func (s DeleteVpcLinkOutput) String() string {
15451	return awsutil.Prettify(s)
15452}
15453
15454// GoString returns the string representation
15455func (s DeleteVpcLinkOutput) GoString() string {
15456	return s.String()
15457}
15458
15459// An immutable representation of a RestApi resource that can be called by users
15460// using Stages. A deployment must be associated with a Stage for it to be callable
15461// over the Internet.
15462//
15463// To create a deployment, call POST on the Deployments resource of a RestApi.
15464// To view, update, or delete a deployment, call GET, PATCH, or DELETE on the
15465// specified deployment resource (/restapis/{restapi_id}/deployments/{deployment_id}).
15466//
15467// RestApi, Deployments, Stage, AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-deployment.html),
15468// AWS SDKs (https://aws.amazon.com/tools/)
15469type Deployment struct {
15470	_ struct{} `type:"structure"`
15471
15472	// A summary of the RestApi at the date and time that the deployment resource
15473	// was created.
15474	ApiSummary map[string]map[string]*MethodSnapshot `locationName:"apiSummary" type:"map"`
15475
15476	// The date and time that the deployment resource was created.
15477	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
15478
15479	// The description for the deployment resource.
15480	Description *string `locationName:"description" type:"string"`
15481
15482	// The identifier for the deployment resource.
15483	Id *string `locationName:"id" type:"string"`
15484}
15485
15486// String returns the string representation
15487func (s Deployment) String() string {
15488	return awsutil.Prettify(s)
15489}
15490
15491// GoString returns the string representation
15492func (s Deployment) GoString() string {
15493	return s.String()
15494}
15495
15496// SetApiSummary sets the ApiSummary field's value.
15497func (s *Deployment) SetApiSummary(v map[string]map[string]*MethodSnapshot) *Deployment {
15498	s.ApiSummary = v
15499	return s
15500}
15501
15502// SetCreatedDate sets the CreatedDate field's value.
15503func (s *Deployment) SetCreatedDate(v time.Time) *Deployment {
15504	s.CreatedDate = &v
15505	return s
15506}
15507
15508// SetDescription sets the Description field's value.
15509func (s *Deployment) SetDescription(v string) *Deployment {
15510	s.Description = &v
15511	return s
15512}
15513
15514// SetId sets the Id field's value.
15515func (s *Deployment) SetId(v string) *Deployment {
15516	s.Id = &v
15517	return s
15518}
15519
15520// The input configuration for a canary deployment.
15521type DeploymentCanarySettings struct {
15522	_ struct{} `type:"structure"`
15523
15524	// The percentage (0.0-100.0) of traffic routed to the canary deployment.
15525	PercentTraffic *float64 `locationName:"percentTraffic" type:"double"`
15526
15527	// A stage variable overrides used for the canary release deployment. They can
15528	// override existing stage variables or add new stage variables for the canary
15529	// release deployment. These stage variables are represented as a string-to-string
15530	// map between stage variable names and their values.
15531	StageVariableOverrides map[string]*string `locationName:"stageVariableOverrides" type:"map"`
15532
15533	// A Boolean flag to indicate whether the canary release deployment uses the
15534	// stage cache or not.
15535	UseStageCache *bool `locationName:"useStageCache" type:"boolean"`
15536}
15537
15538// String returns the string representation
15539func (s DeploymentCanarySettings) String() string {
15540	return awsutil.Prettify(s)
15541}
15542
15543// GoString returns the string representation
15544func (s DeploymentCanarySettings) GoString() string {
15545	return s.String()
15546}
15547
15548// SetPercentTraffic sets the PercentTraffic field's value.
15549func (s *DeploymentCanarySettings) SetPercentTraffic(v float64) *DeploymentCanarySettings {
15550	s.PercentTraffic = &v
15551	return s
15552}
15553
15554// SetStageVariableOverrides sets the StageVariableOverrides field's value.
15555func (s *DeploymentCanarySettings) SetStageVariableOverrides(v map[string]*string) *DeploymentCanarySettings {
15556	s.StageVariableOverrides = v
15557	return s
15558}
15559
15560// SetUseStageCache sets the UseStageCache field's value.
15561func (s *DeploymentCanarySettings) SetUseStageCache(v bool) *DeploymentCanarySettings {
15562	s.UseStageCache = &v
15563	return s
15564}
15565
15566// A documentation part for a targeted API entity.
15567//
15568// A documentation part consists of a content map (properties) and a target
15569// (location). The target specifies an API entity to which the documentation
15570// content applies. The supported API entity types are API, AUTHORIZER, MODEL,
15571// RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY,
15572// RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. Valid location fields depend
15573// on the API entity type. All valid fields are not required.
15574//
15575// The content map is a JSON string of API-specific key-value pairs. Although
15576// an API can use any shape for the content map, only the OpenAPI-compliant
15577// documentation fields will be injected into the associated API entity definition
15578// in the exported OpenAPI definition file.
15579//
15580// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
15581// DocumentationParts
15582type DocumentationPart struct {
15583	_ struct{} `type:"structure"`
15584
15585	// The DocumentationPart identifier, generated by API Gateway when the DocumentationPart
15586	// is created.
15587	Id *string `locationName:"id" type:"string"`
15588
15589	// The location of the API entity to which the documentation applies. Valid
15590	// fields depend on the targeted API entity type. All the valid location fields
15591	// are not required. If not explicitly specified, a valid location field is
15592	// treated as a wildcard and associated documentation content may be inherited
15593	// by matching entities, unless overridden.
15594	Location *DocumentationPartLocation `locationName:"location" type:"structure"`
15595
15596	// A content map of API-specific key-value pairs describing the targeted API
15597	// entity. The map must be encoded as a JSON string, e.g., "{ \"description\":
15598	// \"The API does ...\" }". Only OpenAPI-compliant documentation-related fields
15599	// from the properties map are exported and, hence, published as part of the
15600	// API entity definitions, while the original documentation parts are exported
15601	// in a OpenAPI extension of x-amazon-apigateway-documentation.
15602	Properties *string `locationName:"properties" type:"string"`
15603}
15604
15605// String returns the string representation
15606func (s DocumentationPart) String() string {
15607	return awsutil.Prettify(s)
15608}
15609
15610// GoString returns the string representation
15611func (s DocumentationPart) GoString() string {
15612	return s.String()
15613}
15614
15615// SetId sets the Id field's value.
15616func (s *DocumentationPart) SetId(v string) *DocumentationPart {
15617	s.Id = &v
15618	return s
15619}
15620
15621// SetLocation sets the Location field's value.
15622func (s *DocumentationPart) SetLocation(v *DocumentationPartLocation) *DocumentationPart {
15623	s.Location = v
15624	return s
15625}
15626
15627// SetProperties sets the Properties field's value.
15628func (s *DocumentationPart) SetProperties(v string) *DocumentationPart {
15629	s.Properties = &v
15630	return s
15631}
15632
15633// Specifies the target API entity to which the documentation applies.
15634type DocumentationPartLocation struct {
15635	_ struct{} `type:"structure"`
15636
15637	// The HTTP verb of a method. It is a valid field for the API entity types of
15638	// METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE,
15639	// RESPONSE_HEADER, and RESPONSE_BODY. The default value is * for any method.
15640	// When an applicable child entity inherits the content of an entity of the
15641	// same type with more general specifications of the other location attributes,
15642	// the child entity's method attribute must match that of the parent entity
15643	// exactly.
15644	Method *string `locationName:"method" type:"string"`
15645
15646	// The name of the targeted API entity. It is a valid and required field for
15647	// the API entity types of AUTHORIZER, MODEL, PATH_PARAMETER, QUERY_PARAMETER,
15648	// REQUEST_HEADER, REQUEST_BODY and RESPONSE_HEADER. It is an invalid field
15649	// for any other entity type.
15650	Name *string `locationName:"name" type:"string"`
15651
15652	// The URL path of the target. It is a valid field for the API entity types
15653	// of RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY,
15654	// RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value is / for
15655	// the root resource. When an applicable child entity inherits the content of
15656	// another entity of the same type with more general specifications of the other
15657	// location attributes, the child entity's path attribute must match that of
15658	// the parent entity as a prefix.
15659	Path *string `locationName:"path" type:"string"`
15660
15661	// The HTTP status code of a response. It is a valid field for the API entity
15662	// types of RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value
15663	// is * for any status code. When an applicable child entity inherits the content
15664	// of an entity of the same type with more general specifications of the other
15665	// location attributes, the child entity's statusCode attribute must match that
15666	// of the parent entity exactly.
15667	StatusCode *string `locationName:"statusCode" type:"string"`
15668
15669	// [Required] The type of API entity to which the documentation content applies.
15670	// Valid values are API, AUTHORIZER, MODEL, RESOURCE, METHOD, PATH_PARAMETER,
15671	// QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER,
15672	// and RESPONSE_BODY. Content inheritance does not apply to any entity of the
15673	// API, AUTHORIZER, METHOD, MODEL, REQUEST_BODY, or RESOURCE type.
15674	//
15675	// Type is a required field
15676	Type *string `locationName:"type" type:"string" required:"true" enum:"DocumentationPartType"`
15677}
15678
15679// String returns the string representation
15680func (s DocumentationPartLocation) String() string {
15681	return awsutil.Prettify(s)
15682}
15683
15684// GoString returns the string representation
15685func (s DocumentationPartLocation) GoString() string {
15686	return s.String()
15687}
15688
15689// Validate inspects the fields of the type to determine if they are valid.
15690func (s *DocumentationPartLocation) Validate() error {
15691	invalidParams := request.ErrInvalidParams{Context: "DocumentationPartLocation"}
15692	if s.Type == nil {
15693		invalidParams.Add(request.NewErrParamRequired("Type"))
15694	}
15695
15696	if invalidParams.Len() > 0 {
15697		return invalidParams
15698	}
15699	return nil
15700}
15701
15702// SetMethod sets the Method field's value.
15703func (s *DocumentationPartLocation) SetMethod(v string) *DocumentationPartLocation {
15704	s.Method = &v
15705	return s
15706}
15707
15708// SetName sets the Name field's value.
15709func (s *DocumentationPartLocation) SetName(v string) *DocumentationPartLocation {
15710	s.Name = &v
15711	return s
15712}
15713
15714// SetPath sets the Path field's value.
15715func (s *DocumentationPartLocation) SetPath(v string) *DocumentationPartLocation {
15716	s.Path = &v
15717	return s
15718}
15719
15720// SetStatusCode sets the StatusCode field's value.
15721func (s *DocumentationPartLocation) SetStatusCode(v string) *DocumentationPartLocation {
15722	s.StatusCode = &v
15723	return s
15724}
15725
15726// SetType sets the Type field's value.
15727func (s *DocumentationPartLocation) SetType(v string) *DocumentationPartLocation {
15728	s.Type = &v
15729	return s
15730}
15731
15732// A snapshot of the documentation of an API.
15733//
15734// Publishing API documentation involves creating a documentation version associated
15735// with an API stage and exporting the versioned documentation to an external
15736// (e.g., OpenAPI) file.
15737//
15738// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
15739// DocumentationPart, DocumentationVersions
15740type DocumentationVersion struct {
15741	_ struct{} `type:"structure"`
15742
15743	// The date when the API documentation snapshot is created.
15744	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
15745
15746	// The description of the API documentation snapshot.
15747	Description *string `locationName:"description" type:"string"`
15748
15749	// The version identifier of the API documentation snapshot.
15750	Version *string `locationName:"version" type:"string"`
15751}
15752
15753// String returns the string representation
15754func (s DocumentationVersion) String() string {
15755	return awsutil.Prettify(s)
15756}
15757
15758// GoString returns the string representation
15759func (s DocumentationVersion) GoString() string {
15760	return s.String()
15761}
15762
15763// SetCreatedDate sets the CreatedDate field's value.
15764func (s *DocumentationVersion) SetCreatedDate(v time.Time) *DocumentationVersion {
15765	s.CreatedDate = &v
15766	return s
15767}
15768
15769// SetDescription sets the Description field's value.
15770func (s *DocumentationVersion) SetDescription(v string) *DocumentationVersion {
15771	s.Description = &v
15772	return s
15773}
15774
15775// SetVersion sets the Version field's value.
15776func (s *DocumentationVersion) SetVersion(v string) *DocumentationVersion {
15777	s.Version = &v
15778	return s
15779}
15780
15781// Represents a custom domain name as a user-friendly host name of an API (RestApi).
15782//
15783// When you deploy an API, API Gateway creates a default host name for the API.
15784// This default API host name is of the {restapi-id}.execute-api.{region}.amazonaws.com
15785// format. With the default host name, you can access the API's root resource
15786// with the URL of https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/.
15787// When you set up a custom domain name of apis.example.com for this API, you
15788// can then access the same resource using the URL of the https://apis.examples.com/myApi,
15789// where myApi is the base path mapping (BasePathMapping) of your API under
15790// the custom domain name.
15791//
15792// Set a Custom Host Name for an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
15793type DomainName struct {
15794	_ struct{} `type:"structure"`
15795
15796	// The reference to an AWS-managed certificate that will be used by edge-optimized
15797	// endpoint for this domain name. AWS Certificate Manager is the only supported
15798	// source.
15799	CertificateArn *string `locationName:"certificateArn" type:"string"`
15800
15801	// The name of the certificate that will be used by edge-optimized endpoint
15802	// for this domain name.
15803	CertificateName *string `locationName:"certificateName" type:"string"`
15804
15805	// The timestamp when the certificate that was used by edge-optimized endpoint
15806	// for this domain name was uploaded.
15807	CertificateUploadDate *time.Time `locationName:"certificateUploadDate" type:"timestamp"`
15808
15809	// The domain name of the Amazon CloudFront distribution associated with this
15810	// custom domain name for an edge-optimized endpoint. You set up this association
15811	// when adding a DNS record pointing the custom domain name to this distribution
15812	// name. For more information about CloudFront distributions, see the Amazon
15813	// CloudFront documentation (https://aws.amazon.com/documentation/cloudfront/).
15814	DistributionDomainName *string `locationName:"distributionDomainName" type:"string"`
15815
15816	// The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized
15817	// endpoint. The valid value is Z2FDTNDATAQYW2 for all the regions. For more
15818	// information, see Set up a Regional Custom Domain Name (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html)
15819	// and AWS Regions and Endpoints for API Gateway (https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region).
15820	DistributionHostedZoneId *string `locationName:"distributionHostedZoneId" type:"string"`
15821
15822	// The custom domain name as an API host name, for example, my-api.example.com.
15823	DomainName *string `locationName:"domainName" type:"string"`
15824
15825	// The status of the DomainName migration. The valid values are AVAILABLE, UPDATING,
15826	// PENDING_CERTIFICATE_REIMPORT, and PENDING_OWNERSHIP_VERIFICATION. If the
15827	// status is UPDATING, the domain cannot be modified further until the existing
15828	// operation is complete. If it is AVAILABLE, the domain can be updated.
15829	DomainNameStatus *string `locationName:"domainNameStatus" type:"string" enum:"DomainNameStatus"`
15830
15831	// An optional text message containing detailed information about status of
15832	// the DomainName migration.
15833	DomainNameStatusMessage *string `locationName:"domainNameStatusMessage" type:"string"`
15834
15835	// The endpoint configuration of this DomainName showing the endpoint types
15836	// of the domain name.
15837	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
15838
15839	// The mutual TLS authentication configuration for a custom domain name. If
15840	// specified, API Gateway performs two-way authentication between the client
15841	// and the server. Clients must present a trusted certificate to access your
15842	// API.
15843	MutualTlsAuthentication *MutualTlsAuthentication `locationName:"mutualTlsAuthentication" type:"structure"`
15844
15845	// The ARN of the public certificate issued by ACM to validate ownership of
15846	// your custom domain. Only required when configuring mutual TLS and using an
15847	// ACM imported or private CA certificate ARN as the regionalCertificateArn.
15848	OwnershipVerificationCertificateArn *string `locationName:"ownershipVerificationCertificateArn" type:"string"`
15849
15850	// The reference to an AWS-managed certificate that will be used for validating
15851	// the regional domain name. AWS Certificate Manager is the only supported source.
15852	RegionalCertificateArn *string `locationName:"regionalCertificateArn" type:"string"`
15853
15854	// The name of the certificate that will be used for validating the regional
15855	// domain name.
15856	RegionalCertificateName *string `locationName:"regionalCertificateName" type:"string"`
15857
15858	// The domain name associated with the regional endpoint for this custom domain
15859	// name. You set up this association by adding a DNS record that points the
15860	// custom domain name to this regional domain name. The regional domain name
15861	// is returned by API Gateway when you create a regional endpoint.
15862	RegionalDomainName *string `locationName:"regionalDomainName" type:"string"`
15863
15864	// The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint.
15865	// For more information, see Set up a Regional Custom Domain Name (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html)
15866	// and AWS Regions and Endpoints for API Gateway (https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region).
15867	RegionalHostedZoneId *string `locationName:"regionalHostedZoneId" type:"string"`
15868
15869	// The Transport Layer Security (TLS) version + cipher suite for this DomainName.
15870	// The valid values are TLS_1_0 and TLS_1_2.
15871	SecurityPolicy *string `locationName:"securityPolicy" type:"string" enum:"SecurityPolicy"`
15872
15873	// The collection of tags. Each tag element is associated with a given resource.
15874	Tags map[string]*string `locationName:"tags" type:"map"`
15875}
15876
15877// String returns the string representation
15878func (s DomainName) String() string {
15879	return awsutil.Prettify(s)
15880}
15881
15882// GoString returns the string representation
15883func (s DomainName) GoString() string {
15884	return s.String()
15885}
15886
15887// SetCertificateArn sets the CertificateArn field's value.
15888func (s *DomainName) SetCertificateArn(v string) *DomainName {
15889	s.CertificateArn = &v
15890	return s
15891}
15892
15893// SetCertificateName sets the CertificateName field's value.
15894func (s *DomainName) SetCertificateName(v string) *DomainName {
15895	s.CertificateName = &v
15896	return s
15897}
15898
15899// SetCertificateUploadDate sets the CertificateUploadDate field's value.
15900func (s *DomainName) SetCertificateUploadDate(v time.Time) *DomainName {
15901	s.CertificateUploadDate = &v
15902	return s
15903}
15904
15905// SetDistributionDomainName sets the DistributionDomainName field's value.
15906func (s *DomainName) SetDistributionDomainName(v string) *DomainName {
15907	s.DistributionDomainName = &v
15908	return s
15909}
15910
15911// SetDistributionHostedZoneId sets the DistributionHostedZoneId field's value.
15912func (s *DomainName) SetDistributionHostedZoneId(v string) *DomainName {
15913	s.DistributionHostedZoneId = &v
15914	return s
15915}
15916
15917// SetDomainName sets the DomainName field's value.
15918func (s *DomainName) SetDomainName(v string) *DomainName {
15919	s.DomainName = &v
15920	return s
15921}
15922
15923// SetDomainNameStatus sets the DomainNameStatus field's value.
15924func (s *DomainName) SetDomainNameStatus(v string) *DomainName {
15925	s.DomainNameStatus = &v
15926	return s
15927}
15928
15929// SetDomainNameStatusMessage sets the DomainNameStatusMessage field's value.
15930func (s *DomainName) SetDomainNameStatusMessage(v string) *DomainName {
15931	s.DomainNameStatusMessage = &v
15932	return s
15933}
15934
15935// SetEndpointConfiguration sets the EndpointConfiguration field's value.
15936func (s *DomainName) SetEndpointConfiguration(v *EndpointConfiguration) *DomainName {
15937	s.EndpointConfiguration = v
15938	return s
15939}
15940
15941// SetMutualTlsAuthentication sets the MutualTlsAuthentication field's value.
15942func (s *DomainName) SetMutualTlsAuthentication(v *MutualTlsAuthentication) *DomainName {
15943	s.MutualTlsAuthentication = v
15944	return s
15945}
15946
15947// SetOwnershipVerificationCertificateArn sets the OwnershipVerificationCertificateArn field's value.
15948func (s *DomainName) SetOwnershipVerificationCertificateArn(v string) *DomainName {
15949	s.OwnershipVerificationCertificateArn = &v
15950	return s
15951}
15952
15953// SetRegionalCertificateArn sets the RegionalCertificateArn field's value.
15954func (s *DomainName) SetRegionalCertificateArn(v string) *DomainName {
15955	s.RegionalCertificateArn = &v
15956	return s
15957}
15958
15959// SetRegionalCertificateName sets the RegionalCertificateName field's value.
15960func (s *DomainName) SetRegionalCertificateName(v string) *DomainName {
15961	s.RegionalCertificateName = &v
15962	return s
15963}
15964
15965// SetRegionalDomainName sets the RegionalDomainName field's value.
15966func (s *DomainName) SetRegionalDomainName(v string) *DomainName {
15967	s.RegionalDomainName = &v
15968	return s
15969}
15970
15971// SetRegionalHostedZoneId sets the RegionalHostedZoneId field's value.
15972func (s *DomainName) SetRegionalHostedZoneId(v string) *DomainName {
15973	s.RegionalHostedZoneId = &v
15974	return s
15975}
15976
15977// SetSecurityPolicy sets the SecurityPolicy field's value.
15978func (s *DomainName) SetSecurityPolicy(v string) *DomainName {
15979	s.SecurityPolicy = &v
15980	return s
15981}
15982
15983// SetTags sets the Tags field's value.
15984func (s *DomainName) SetTags(v map[string]*string) *DomainName {
15985	s.Tags = v
15986	return s
15987}
15988
15989// The endpoint configuration to indicate the types of endpoints an API (RestApi)
15990// or its custom domain name (DomainName) has.
15991type EndpointConfiguration struct {
15992	_ struct{} `type:"structure"`
15993
15994	// A list of endpoint types of an API (RestApi) or its custom domain name (DomainName).
15995	// For an edge-optimized API and its custom domain name, the endpoint type is
15996	// "EDGE". For a regional API and its custom domain name, the endpoint type
15997	// is REGIONAL. For a private API, the endpoint type is PRIVATE.
15998	Types []*string `locationName:"types" type:"list"`
15999
16000	// A list of VpcEndpointIds of an API (RestApi) against which to create Route53
16001	// ALIASes. It is only supported for PRIVATE endpoint type.
16002	VpcEndpointIds []*string `locationName:"vpcEndpointIds" type:"list"`
16003}
16004
16005// String returns the string representation
16006func (s EndpointConfiguration) String() string {
16007	return awsutil.Prettify(s)
16008}
16009
16010// GoString returns the string representation
16011func (s EndpointConfiguration) GoString() string {
16012	return s.String()
16013}
16014
16015// SetTypes sets the Types field's value.
16016func (s *EndpointConfiguration) SetTypes(v []*string) *EndpointConfiguration {
16017	s.Types = v
16018	return s
16019}
16020
16021// SetVpcEndpointIds sets the VpcEndpointIds field's value.
16022func (s *EndpointConfiguration) SetVpcEndpointIds(v []*string) *EndpointConfiguration {
16023	s.VpcEndpointIds = v
16024	return s
16025}
16026
16027// Request to flush authorizer cache entries on a specified stage.
16028type FlushStageAuthorizersCacheInput struct {
16029	_ struct{} `type:"structure"`
16030
16031	// The string identifier of the associated RestApi.
16032	//
16033	// RestApiId is a required field
16034	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16035
16036	// The name of the stage to flush.
16037	//
16038	// StageName is a required field
16039	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
16040}
16041
16042// String returns the string representation
16043func (s FlushStageAuthorizersCacheInput) String() string {
16044	return awsutil.Prettify(s)
16045}
16046
16047// GoString returns the string representation
16048func (s FlushStageAuthorizersCacheInput) GoString() string {
16049	return s.String()
16050}
16051
16052// Validate inspects the fields of the type to determine if they are valid.
16053func (s *FlushStageAuthorizersCacheInput) Validate() error {
16054	invalidParams := request.ErrInvalidParams{Context: "FlushStageAuthorizersCacheInput"}
16055	if s.RestApiId == nil {
16056		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16057	}
16058	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16059		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16060	}
16061	if s.StageName == nil {
16062		invalidParams.Add(request.NewErrParamRequired("StageName"))
16063	}
16064	if s.StageName != nil && len(*s.StageName) < 1 {
16065		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
16066	}
16067
16068	if invalidParams.Len() > 0 {
16069		return invalidParams
16070	}
16071	return nil
16072}
16073
16074// SetRestApiId sets the RestApiId field's value.
16075func (s *FlushStageAuthorizersCacheInput) SetRestApiId(v string) *FlushStageAuthorizersCacheInput {
16076	s.RestApiId = &v
16077	return s
16078}
16079
16080// SetStageName sets the StageName field's value.
16081func (s *FlushStageAuthorizersCacheInput) SetStageName(v string) *FlushStageAuthorizersCacheInput {
16082	s.StageName = &v
16083	return s
16084}
16085
16086type FlushStageAuthorizersCacheOutput struct {
16087	_ struct{} `type:"structure"`
16088}
16089
16090// String returns the string representation
16091func (s FlushStageAuthorizersCacheOutput) String() string {
16092	return awsutil.Prettify(s)
16093}
16094
16095// GoString returns the string representation
16096func (s FlushStageAuthorizersCacheOutput) GoString() string {
16097	return s.String()
16098}
16099
16100// Requests API Gateway to flush a stage's cache.
16101type FlushStageCacheInput struct {
16102	_ struct{} `type:"structure"`
16103
16104	// [Required] The string identifier of the associated RestApi.
16105	//
16106	// RestApiId is a required field
16107	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16108
16109	// [Required] The name of the stage to flush its cache.
16110	//
16111	// StageName is a required field
16112	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
16113}
16114
16115// String returns the string representation
16116func (s FlushStageCacheInput) String() string {
16117	return awsutil.Prettify(s)
16118}
16119
16120// GoString returns the string representation
16121func (s FlushStageCacheInput) GoString() string {
16122	return s.String()
16123}
16124
16125// Validate inspects the fields of the type to determine if they are valid.
16126func (s *FlushStageCacheInput) Validate() error {
16127	invalidParams := request.ErrInvalidParams{Context: "FlushStageCacheInput"}
16128	if s.RestApiId == nil {
16129		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16130	}
16131	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16132		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16133	}
16134	if s.StageName == nil {
16135		invalidParams.Add(request.NewErrParamRequired("StageName"))
16136	}
16137	if s.StageName != nil && len(*s.StageName) < 1 {
16138		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
16139	}
16140
16141	if invalidParams.Len() > 0 {
16142		return invalidParams
16143	}
16144	return nil
16145}
16146
16147// SetRestApiId sets the RestApiId field's value.
16148func (s *FlushStageCacheInput) SetRestApiId(v string) *FlushStageCacheInput {
16149	s.RestApiId = &v
16150	return s
16151}
16152
16153// SetStageName sets the StageName field's value.
16154func (s *FlushStageCacheInput) SetStageName(v string) *FlushStageCacheInput {
16155	s.StageName = &v
16156	return s
16157}
16158
16159type FlushStageCacheOutput struct {
16160	_ struct{} `type:"structure"`
16161}
16162
16163// String returns the string representation
16164func (s FlushStageCacheOutput) String() string {
16165	return awsutil.Prettify(s)
16166}
16167
16168// GoString returns the string representation
16169func (s FlushStageCacheOutput) GoString() string {
16170	return s.String()
16171}
16172
16173// A request to generate a ClientCertificate resource.
16174type GenerateClientCertificateInput struct {
16175	_ struct{} `type:"structure"`
16176
16177	// The description of the ClientCertificate.
16178	Description *string `locationName:"description" type:"string"`
16179
16180	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
16181	// The tag key can be up to 128 characters and must not start with aws:. The
16182	// tag value can be up to 256 characters.
16183	Tags map[string]*string `locationName:"tags" type:"map"`
16184}
16185
16186// String returns the string representation
16187func (s GenerateClientCertificateInput) String() string {
16188	return awsutil.Prettify(s)
16189}
16190
16191// GoString returns the string representation
16192func (s GenerateClientCertificateInput) GoString() string {
16193	return s.String()
16194}
16195
16196// SetDescription sets the Description field's value.
16197func (s *GenerateClientCertificateInput) SetDescription(v string) *GenerateClientCertificateInput {
16198	s.Description = &v
16199	return s
16200}
16201
16202// SetTags sets the Tags field's value.
16203func (s *GenerateClientCertificateInput) SetTags(v map[string]*string) *GenerateClientCertificateInput {
16204	s.Tags = v
16205	return s
16206}
16207
16208// Requests API Gateway to get information about the current Account resource.
16209type GetAccountInput struct {
16210	_ struct{} `type:"structure"`
16211}
16212
16213// String returns the string representation
16214func (s GetAccountInput) String() string {
16215	return awsutil.Prettify(s)
16216}
16217
16218// GoString returns the string representation
16219func (s GetAccountInput) GoString() string {
16220	return s.String()
16221}
16222
16223// A request to get information about the current ApiKey resource.
16224type GetApiKeyInput struct {
16225	_ struct{} `type:"structure"`
16226
16227	// [Required] The identifier of the ApiKey resource.
16228	//
16229	// ApiKey is a required field
16230	ApiKey *string `location:"uri" locationName:"api_Key" type:"string" required:"true"`
16231
16232	// A boolean flag to specify whether (true) or not (false) the result contains
16233	// the key value.
16234	IncludeValue *bool `location:"querystring" locationName:"includeValue" type:"boolean"`
16235}
16236
16237// String returns the string representation
16238func (s GetApiKeyInput) String() string {
16239	return awsutil.Prettify(s)
16240}
16241
16242// GoString returns the string representation
16243func (s GetApiKeyInput) GoString() string {
16244	return s.String()
16245}
16246
16247// Validate inspects the fields of the type to determine if they are valid.
16248func (s *GetApiKeyInput) Validate() error {
16249	invalidParams := request.ErrInvalidParams{Context: "GetApiKeyInput"}
16250	if s.ApiKey == nil {
16251		invalidParams.Add(request.NewErrParamRequired("ApiKey"))
16252	}
16253	if s.ApiKey != nil && len(*s.ApiKey) < 1 {
16254		invalidParams.Add(request.NewErrParamMinLen("ApiKey", 1))
16255	}
16256
16257	if invalidParams.Len() > 0 {
16258		return invalidParams
16259	}
16260	return nil
16261}
16262
16263// SetApiKey sets the ApiKey field's value.
16264func (s *GetApiKeyInput) SetApiKey(v string) *GetApiKeyInput {
16265	s.ApiKey = &v
16266	return s
16267}
16268
16269// SetIncludeValue sets the IncludeValue field's value.
16270func (s *GetApiKeyInput) SetIncludeValue(v bool) *GetApiKeyInput {
16271	s.IncludeValue = &v
16272	return s
16273}
16274
16275// A request to get information about the current ApiKeys resource.
16276type GetApiKeysInput struct {
16277	_ struct{} `type:"structure"`
16278
16279	// The identifier of a customer in AWS Marketplace or an external system, such
16280	// as a developer portal.
16281	CustomerId *string `location:"querystring" locationName:"customerId" type:"string"`
16282
16283	// A boolean flag to specify whether (true) or not (false) the result contains
16284	// key values.
16285	IncludeValues *bool `location:"querystring" locationName:"includeValues" type:"boolean"`
16286
16287	// The maximum number of returned results per page. The default value is 25
16288	// and the maximum value is 500.
16289	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16290
16291	// The name of queried API keys.
16292	NameQuery *string `location:"querystring" locationName:"name" type:"string"`
16293
16294	// The current pagination position in the paged result set.
16295	Position *string `location:"querystring" locationName:"position" type:"string"`
16296}
16297
16298// String returns the string representation
16299func (s GetApiKeysInput) String() string {
16300	return awsutil.Prettify(s)
16301}
16302
16303// GoString returns the string representation
16304func (s GetApiKeysInput) GoString() string {
16305	return s.String()
16306}
16307
16308// SetCustomerId sets the CustomerId field's value.
16309func (s *GetApiKeysInput) SetCustomerId(v string) *GetApiKeysInput {
16310	s.CustomerId = &v
16311	return s
16312}
16313
16314// SetIncludeValues sets the IncludeValues field's value.
16315func (s *GetApiKeysInput) SetIncludeValues(v bool) *GetApiKeysInput {
16316	s.IncludeValues = &v
16317	return s
16318}
16319
16320// SetLimit sets the Limit field's value.
16321func (s *GetApiKeysInput) SetLimit(v int64) *GetApiKeysInput {
16322	s.Limit = &v
16323	return s
16324}
16325
16326// SetNameQuery sets the NameQuery field's value.
16327func (s *GetApiKeysInput) SetNameQuery(v string) *GetApiKeysInput {
16328	s.NameQuery = &v
16329	return s
16330}
16331
16332// SetPosition sets the Position field's value.
16333func (s *GetApiKeysInput) SetPosition(v string) *GetApiKeysInput {
16334	s.Position = &v
16335	return s
16336}
16337
16338// Represents a collection of API keys as represented by an ApiKeys resource.
16339//
16340// Use API Keys (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html)
16341type GetApiKeysOutput struct {
16342	_ struct{} `type:"structure"`
16343
16344	// The current page of elements from this collection.
16345	Items []*ApiKey `locationName:"item" type:"list"`
16346
16347	Position *string `locationName:"position" type:"string"`
16348
16349	// A list of warning messages logged during the import of API keys when the
16350	// failOnWarnings option is set to true.
16351	Warnings []*string `locationName:"warnings" type:"list"`
16352}
16353
16354// String returns the string representation
16355func (s GetApiKeysOutput) String() string {
16356	return awsutil.Prettify(s)
16357}
16358
16359// GoString returns the string representation
16360func (s GetApiKeysOutput) GoString() string {
16361	return s.String()
16362}
16363
16364// SetItems sets the Items field's value.
16365func (s *GetApiKeysOutput) SetItems(v []*ApiKey) *GetApiKeysOutput {
16366	s.Items = v
16367	return s
16368}
16369
16370// SetPosition sets the Position field's value.
16371func (s *GetApiKeysOutput) SetPosition(v string) *GetApiKeysOutput {
16372	s.Position = &v
16373	return s
16374}
16375
16376// SetWarnings sets the Warnings field's value.
16377func (s *GetApiKeysOutput) SetWarnings(v []*string) *GetApiKeysOutput {
16378	s.Warnings = v
16379	return s
16380}
16381
16382// Request to describe an existing Authorizer resource.
16383type GetAuthorizerInput struct {
16384	_ struct{} `type:"structure"`
16385
16386	// [Required] The identifier of the Authorizer resource.
16387	//
16388	// AuthorizerId is a required field
16389	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
16390
16391	// [Required] The string identifier of the associated RestApi.
16392	//
16393	// RestApiId is a required field
16394	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16395}
16396
16397// String returns the string representation
16398func (s GetAuthorizerInput) String() string {
16399	return awsutil.Prettify(s)
16400}
16401
16402// GoString returns the string representation
16403func (s GetAuthorizerInput) GoString() string {
16404	return s.String()
16405}
16406
16407// Validate inspects the fields of the type to determine if they are valid.
16408func (s *GetAuthorizerInput) Validate() error {
16409	invalidParams := request.ErrInvalidParams{Context: "GetAuthorizerInput"}
16410	if s.AuthorizerId == nil {
16411		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
16412	}
16413	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
16414		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
16415	}
16416	if s.RestApiId == nil {
16417		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16418	}
16419	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16420		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16421	}
16422
16423	if invalidParams.Len() > 0 {
16424		return invalidParams
16425	}
16426	return nil
16427}
16428
16429// SetAuthorizerId sets the AuthorizerId field's value.
16430func (s *GetAuthorizerInput) SetAuthorizerId(v string) *GetAuthorizerInput {
16431	s.AuthorizerId = &v
16432	return s
16433}
16434
16435// SetRestApiId sets the RestApiId field's value.
16436func (s *GetAuthorizerInput) SetRestApiId(v string) *GetAuthorizerInput {
16437	s.RestApiId = &v
16438	return s
16439}
16440
16441// Request to describe an existing Authorizers resource.
16442type GetAuthorizersInput struct {
16443	_ struct{} `type:"structure"`
16444
16445	// The maximum number of returned results per page. The default value is 25
16446	// and the maximum value is 500.
16447	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16448
16449	// The current pagination position in the paged result set.
16450	Position *string `location:"querystring" locationName:"position" type:"string"`
16451
16452	// [Required] The string identifier of the associated RestApi.
16453	//
16454	// RestApiId is a required field
16455	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16456}
16457
16458// String returns the string representation
16459func (s GetAuthorizersInput) String() string {
16460	return awsutil.Prettify(s)
16461}
16462
16463// GoString returns the string representation
16464func (s GetAuthorizersInput) GoString() string {
16465	return s.String()
16466}
16467
16468// Validate inspects the fields of the type to determine if they are valid.
16469func (s *GetAuthorizersInput) Validate() error {
16470	invalidParams := request.ErrInvalidParams{Context: "GetAuthorizersInput"}
16471	if s.RestApiId == nil {
16472		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16473	}
16474	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16475		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16476	}
16477
16478	if invalidParams.Len() > 0 {
16479		return invalidParams
16480	}
16481	return nil
16482}
16483
16484// SetLimit sets the Limit field's value.
16485func (s *GetAuthorizersInput) SetLimit(v int64) *GetAuthorizersInput {
16486	s.Limit = &v
16487	return s
16488}
16489
16490// SetPosition sets the Position field's value.
16491func (s *GetAuthorizersInput) SetPosition(v string) *GetAuthorizersInput {
16492	s.Position = &v
16493	return s
16494}
16495
16496// SetRestApiId sets the RestApiId field's value.
16497func (s *GetAuthorizersInput) SetRestApiId(v string) *GetAuthorizersInput {
16498	s.RestApiId = &v
16499	return s
16500}
16501
16502// Represents a collection of Authorizer resources.
16503//
16504// Use Lambda Function as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)
16505// Use Cognito User Pool as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)
16506type GetAuthorizersOutput struct {
16507	_ struct{} `type:"structure"`
16508
16509	// The current page of elements from this collection.
16510	Items []*Authorizer `locationName:"item" type:"list"`
16511
16512	Position *string `locationName:"position" type:"string"`
16513}
16514
16515// String returns the string representation
16516func (s GetAuthorizersOutput) String() string {
16517	return awsutil.Prettify(s)
16518}
16519
16520// GoString returns the string representation
16521func (s GetAuthorizersOutput) GoString() string {
16522	return s.String()
16523}
16524
16525// SetItems sets the Items field's value.
16526func (s *GetAuthorizersOutput) SetItems(v []*Authorizer) *GetAuthorizersOutput {
16527	s.Items = v
16528	return s
16529}
16530
16531// SetPosition sets the Position field's value.
16532func (s *GetAuthorizersOutput) SetPosition(v string) *GetAuthorizersOutput {
16533	s.Position = &v
16534	return s
16535}
16536
16537// Request to describe a BasePathMapping resource.
16538type GetBasePathMappingInput struct {
16539	_ struct{} `type:"structure"`
16540
16541	// [Required] The base path name that callers of the API must provide as part
16542	// of the URL after the domain name. This value must be unique for all of the
16543	// mappings across a single API. Specify '(none)' if you do not want callers
16544	// to specify any base path name after the domain name.
16545	//
16546	// BasePath is a required field
16547	BasePath *string `location:"uri" locationName:"base_path" type:"string" required:"true"`
16548
16549	// [Required] The domain name of the BasePathMapping resource to be described.
16550	//
16551	// DomainName is a required field
16552	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
16553}
16554
16555// String returns the string representation
16556func (s GetBasePathMappingInput) String() string {
16557	return awsutil.Prettify(s)
16558}
16559
16560// GoString returns the string representation
16561func (s GetBasePathMappingInput) GoString() string {
16562	return s.String()
16563}
16564
16565// Validate inspects the fields of the type to determine if they are valid.
16566func (s *GetBasePathMappingInput) Validate() error {
16567	invalidParams := request.ErrInvalidParams{Context: "GetBasePathMappingInput"}
16568	if s.BasePath == nil {
16569		invalidParams.Add(request.NewErrParamRequired("BasePath"))
16570	}
16571	if s.BasePath != nil && len(*s.BasePath) < 1 {
16572		invalidParams.Add(request.NewErrParamMinLen("BasePath", 1))
16573	}
16574	if s.DomainName == nil {
16575		invalidParams.Add(request.NewErrParamRequired("DomainName"))
16576	}
16577	if s.DomainName != nil && len(*s.DomainName) < 1 {
16578		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
16579	}
16580
16581	if invalidParams.Len() > 0 {
16582		return invalidParams
16583	}
16584	return nil
16585}
16586
16587// SetBasePath sets the BasePath field's value.
16588func (s *GetBasePathMappingInput) SetBasePath(v string) *GetBasePathMappingInput {
16589	s.BasePath = &v
16590	return s
16591}
16592
16593// SetDomainName sets the DomainName field's value.
16594func (s *GetBasePathMappingInput) SetDomainName(v string) *GetBasePathMappingInput {
16595	s.DomainName = &v
16596	return s
16597}
16598
16599// A request to get information about a collection of BasePathMapping resources.
16600type GetBasePathMappingsInput struct {
16601	_ struct{} `type:"structure"`
16602
16603	// [Required] The domain name of a BasePathMapping resource.
16604	//
16605	// DomainName is a required field
16606	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
16607
16608	// The maximum number of returned results per page. The default value is 25
16609	// and the maximum value is 500.
16610	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16611
16612	// The current pagination position in the paged result set.
16613	Position *string `location:"querystring" locationName:"position" type:"string"`
16614}
16615
16616// String returns the string representation
16617func (s GetBasePathMappingsInput) String() string {
16618	return awsutil.Prettify(s)
16619}
16620
16621// GoString returns the string representation
16622func (s GetBasePathMappingsInput) GoString() string {
16623	return s.String()
16624}
16625
16626// Validate inspects the fields of the type to determine if they are valid.
16627func (s *GetBasePathMappingsInput) Validate() error {
16628	invalidParams := request.ErrInvalidParams{Context: "GetBasePathMappingsInput"}
16629	if s.DomainName == nil {
16630		invalidParams.Add(request.NewErrParamRequired("DomainName"))
16631	}
16632	if s.DomainName != nil && len(*s.DomainName) < 1 {
16633		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
16634	}
16635
16636	if invalidParams.Len() > 0 {
16637		return invalidParams
16638	}
16639	return nil
16640}
16641
16642// SetDomainName sets the DomainName field's value.
16643func (s *GetBasePathMappingsInput) SetDomainName(v string) *GetBasePathMappingsInput {
16644	s.DomainName = &v
16645	return s
16646}
16647
16648// SetLimit sets the Limit field's value.
16649func (s *GetBasePathMappingsInput) SetLimit(v int64) *GetBasePathMappingsInput {
16650	s.Limit = &v
16651	return s
16652}
16653
16654// SetPosition sets the Position field's value.
16655func (s *GetBasePathMappingsInput) SetPosition(v string) *GetBasePathMappingsInput {
16656	s.Position = &v
16657	return s
16658}
16659
16660// Represents a collection of BasePathMapping resources.
16661//
16662// Use Custom Domain Names (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
16663type GetBasePathMappingsOutput struct {
16664	_ struct{} `type:"structure"`
16665
16666	// The current page of elements from this collection.
16667	Items []*BasePathMapping `locationName:"item" type:"list"`
16668
16669	Position *string `locationName:"position" type:"string"`
16670}
16671
16672// String returns the string representation
16673func (s GetBasePathMappingsOutput) String() string {
16674	return awsutil.Prettify(s)
16675}
16676
16677// GoString returns the string representation
16678func (s GetBasePathMappingsOutput) GoString() string {
16679	return s.String()
16680}
16681
16682// SetItems sets the Items field's value.
16683func (s *GetBasePathMappingsOutput) SetItems(v []*BasePathMapping) *GetBasePathMappingsOutput {
16684	s.Items = v
16685	return s
16686}
16687
16688// SetPosition sets the Position field's value.
16689func (s *GetBasePathMappingsOutput) SetPosition(v string) *GetBasePathMappingsOutput {
16690	s.Position = &v
16691	return s
16692}
16693
16694// A request to get information about the current ClientCertificate resource.
16695type GetClientCertificateInput struct {
16696	_ struct{} `type:"structure"`
16697
16698	// [Required] The identifier of the ClientCertificate resource to be described.
16699	//
16700	// ClientCertificateId is a required field
16701	ClientCertificateId *string `location:"uri" locationName:"clientcertificate_id" type:"string" required:"true"`
16702}
16703
16704// String returns the string representation
16705func (s GetClientCertificateInput) String() string {
16706	return awsutil.Prettify(s)
16707}
16708
16709// GoString returns the string representation
16710func (s GetClientCertificateInput) GoString() string {
16711	return s.String()
16712}
16713
16714// Validate inspects the fields of the type to determine if they are valid.
16715func (s *GetClientCertificateInput) Validate() error {
16716	invalidParams := request.ErrInvalidParams{Context: "GetClientCertificateInput"}
16717	if s.ClientCertificateId == nil {
16718		invalidParams.Add(request.NewErrParamRequired("ClientCertificateId"))
16719	}
16720	if s.ClientCertificateId != nil && len(*s.ClientCertificateId) < 1 {
16721		invalidParams.Add(request.NewErrParamMinLen("ClientCertificateId", 1))
16722	}
16723
16724	if invalidParams.Len() > 0 {
16725		return invalidParams
16726	}
16727	return nil
16728}
16729
16730// SetClientCertificateId sets the ClientCertificateId field's value.
16731func (s *GetClientCertificateInput) SetClientCertificateId(v string) *GetClientCertificateInput {
16732	s.ClientCertificateId = &v
16733	return s
16734}
16735
16736// A request to get information about a collection of ClientCertificate resources.
16737type GetClientCertificatesInput struct {
16738	_ struct{} `type:"structure"`
16739
16740	// The maximum number of returned results per page. The default value is 25
16741	// and the maximum value is 500.
16742	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16743
16744	// The current pagination position in the paged result set.
16745	Position *string `location:"querystring" locationName:"position" type:"string"`
16746}
16747
16748// String returns the string representation
16749func (s GetClientCertificatesInput) String() string {
16750	return awsutil.Prettify(s)
16751}
16752
16753// GoString returns the string representation
16754func (s GetClientCertificatesInput) GoString() string {
16755	return s.String()
16756}
16757
16758// SetLimit sets the Limit field's value.
16759func (s *GetClientCertificatesInput) SetLimit(v int64) *GetClientCertificatesInput {
16760	s.Limit = &v
16761	return s
16762}
16763
16764// SetPosition sets the Position field's value.
16765func (s *GetClientCertificatesInput) SetPosition(v string) *GetClientCertificatesInput {
16766	s.Position = &v
16767	return s
16768}
16769
16770// Represents a collection of ClientCertificate resources.
16771//
16772// Use Client-Side Certificate (https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html)
16773type GetClientCertificatesOutput struct {
16774	_ struct{} `type:"structure"`
16775
16776	// The current page of elements from this collection.
16777	Items []*ClientCertificate `locationName:"item" type:"list"`
16778
16779	Position *string `locationName:"position" type:"string"`
16780}
16781
16782// String returns the string representation
16783func (s GetClientCertificatesOutput) String() string {
16784	return awsutil.Prettify(s)
16785}
16786
16787// GoString returns the string representation
16788func (s GetClientCertificatesOutput) GoString() string {
16789	return s.String()
16790}
16791
16792// SetItems sets the Items field's value.
16793func (s *GetClientCertificatesOutput) SetItems(v []*ClientCertificate) *GetClientCertificatesOutput {
16794	s.Items = v
16795	return s
16796}
16797
16798// SetPosition sets the Position field's value.
16799func (s *GetClientCertificatesOutput) SetPosition(v string) *GetClientCertificatesOutput {
16800	s.Position = &v
16801	return s
16802}
16803
16804// Requests API Gateway to get information about a Deployment resource.
16805type GetDeploymentInput struct {
16806	_ struct{} `type:"structure"`
16807
16808	// [Required] The identifier of the Deployment resource to get information about.
16809	//
16810	// DeploymentId is a required field
16811	DeploymentId *string `location:"uri" locationName:"deployment_id" type:"string" required:"true"`
16812
16813	// A query parameter to retrieve the specified embedded resources of the returned
16814	// Deployment resource in the response. In a REST API call, this embed parameter
16815	// value is a list of comma-separated strings, as in GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=var1,var2.
16816	// The SDK and other platform-dependent libraries might use a different format
16817	// for the list. Currently, this request supports only retrieval of the embedded
16818	// API summary this way. Hence, the parameter value must be a single-valued
16819	// list containing only the "apisummary" string. For example, GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=apisummary.
16820	Embed []*string `location:"querystring" locationName:"embed" type:"list"`
16821
16822	// [Required] The string identifier of the associated RestApi.
16823	//
16824	// RestApiId is a required field
16825	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16826}
16827
16828// String returns the string representation
16829func (s GetDeploymentInput) String() string {
16830	return awsutil.Prettify(s)
16831}
16832
16833// GoString returns the string representation
16834func (s GetDeploymentInput) GoString() string {
16835	return s.String()
16836}
16837
16838// Validate inspects the fields of the type to determine if they are valid.
16839func (s *GetDeploymentInput) Validate() error {
16840	invalidParams := request.ErrInvalidParams{Context: "GetDeploymentInput"}
16841	if s.DeploymentId == nil {
16842		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
16843	}
16844	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
16845		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
16846	}
16847	if s.RestApiId == nil {
16848		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16849	}
16850	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16851		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16852	}
16853
16854	if invalidParams.Len() > 0 {
16855		return invalidParams
16856	}
16857	return nil
16858}
16859
16860// SetDeploymentId sets the DeploymentId field's value.
16861func (s *GetDeploymentInput) SetDeploymentId(v string) *GetDeploymentInput {
16862	s.DeploymentId = &v
16863	return s
16864}
16865
16866// SetEmbed sets the Embed field's value.
16867func (s *GetDeploymentInput) SetEmbed(v []*string) *GetDeploymentInput {
16868	s.Embed = v
16869	return s
16870}
16871
16872// SetRestApiId sets the RestApiId field's value.
16873func (s *GetDeploymentInput) SetRestApiId(v string) *GetDeploymentInput {
16874	s.RestApiId = &v
16875	return s
16876}
16877
16878// Requests API Gateway to get information about a Deployments collection.
16879type GetDeploymentsInput struct {
16880	_ struct{} `type:"structure"`
16881
16882	// The maximum number of returned results per page. The default value is 25
16883	// and the maximum value is 500.
16884	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16885
16886	// The current pagination position in the paged result set.
16887	Position *string `location:"querystring" locationName:"position" type:"string"`
16888
16889	// [Required] The string identifier of the associated RestApi.
16890	//
16891	// RestApiId is a required field
16892	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16893}
16894
16895// String returns the string representation
16896func (s GetDeploymentsInput) String() string {
16897	return awsutil.Prettify(s)
16898}
16899
16900// GoString returns the string representation
16901func (s GetDeploymentsInput) GoString() string {
16902	return s.String()
16903}
16904
16905// Validate inspects the fields of the type to determine if they are valid.
16906func (s *GetDeploymentsInput) Validate() error {
16907	invalidParams := request.ErrInvalidParams{Context: "GetDeploymentsInput"}
16908	if s.RestApiId == nil {
16909		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16910	}
16911	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16912		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16913	}
16914
16915	if invalidParams.Len() > 0 {
16916		return invalidParams
16917	}
16918	return nil
16919}
16920
16921// SetLimit sets the Limit field's value.
16922func (s *GetDeploymentsInput) SetLimit(v int64) *GetDeploymentsInput {
16923	s.Limit = &v
16924	return s
16925}
16926
16927// SetPosition sets the Position field's value.
16928func (s *GetDeploymentsInput) SetPosition(v string) *GetDeploymentsInput {
16929	s.Position = &v
16930	return s
16931}
16932
16933// SetRestApiId sets the RestApiId field's value.
16934func (s *GetDeploymentsInput) SetRestApiId(v string) *GetDeploymentsInput {
16935	s.RestApiId = &v
16936	return s
16937}
16938
16939// Represents a collection resource that contains zero or more references to
16940// your existing deployments, and links that guide you on how to interact with
16941// your collection. The collection offers a paginated view of the contained
16942// deployments.
16943//
16944// To create a new deployment of a RestApi, make a POST request against this
16945// resource. To view, update, or delete an existing deployment, make a GET,
16946// PATCH, or DELETE request, respectively, on a specified Deployment resource.
16947//
16948// Deploying an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-deploy-api.html),
16949// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-deployment.html),
16950// AWS SDKs (https://aws.amazon.com/tools/)
16951type GetDeploymentsOutput struct {
16952	_ struct{} `type:"structure"`
16953
16954	// The current page of elements from this collection.
16955	Items []*Deployment `locationName:"item" type:"list"`
16956
16957	Position *string `locationName:"position" type:"string"`
16958}
16959
16960// String returns the string representation
16961func (s GetDeploymentsOutput) String() string {
16962	return awsutil.Prettify(s)
16963}
16964
16965// GoString returns the string representation
16966func (s GetDeploymentsOutput) GoString() string {
16967	return s.String()
16968}
16969
16970// SetItems sets the Items field's value.
16971func (s *GetDeploymentsOutput) SetItems(v []*Deployment) *GetDeploymentsOutput {
16972	s.Items = v
16973	return s
16974}
16975
16976// SetPosition sets the Position field's value.
16977func (s *GetDeploymentsOutput) SetPosition(v string) *GetDeploymentsOutput {
16978	s.Position = &v
16979	return s
16980}
16981
16982// Gets a specified documentation part of a given API.
16983type GetDocumentationPartInput struct {
16984	_ struct{} `type:"structure"`
16985
16986	// [Required] The string identifier of the associated RestApi.
16987	//
16988	// DocumentationPartId is a required field
16989	DocumentationPartId *string `location:"uri" locationName:"part_id" type:"string" required:"true"`
16990
16991	// [Required] The string identifier of the associated RestApi.
16992	//
16993	// RestApiId is a required field
16994	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16995}
16996
16997// String returns the string representation
16998func (s GetDocumentationPartInput) String() string {
16999	return awsutil.Prettify(s)
17000}
17001
17002// GoString returns the string representation
17003func (s GetDocumentationPartInput) GoString() string {
17004	return s.String()
17005}
17006
17007// Validate inspects the fields of the type to determine if they are valid.
17008func (s *GetDocumentationPartInput) Validate() error {
17009	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationPartInput"}
17010	if s.DocumentationPartId == nil {
17011		invalidParams.Add(request.NewErrParamRequired("DocumentationPartId"))
17012	}
17013	if s.DocumentationPartId != nil && len(*s.DocumentationPartId) < 1 {
17014		invalidParams.Add(request.NewErrParamMinLen("DocumentationPartId", 1))
17015	}
17016	if s.RestApiId == nil {
17017		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17018	}
17019	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17020		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17021	}
17022
17023	if invalidParams.Len() > 0 {
17024		return invalidParams
17025	}
17026	return nil
17027}
17028
17029// SetDocumentationPartId sets the DocumentationPartId field's value.
17030func (s *GetDocumentationPartInput) SetDocumentationPartId(v string) *GetDocumentationPartInput {
17031	s.DocumentationPartId = &v
17032	return s
17033}
17034
17035// SetRestApiId sets the RestApiId field's value.
17036func (s *GetDocumentationPartInput) SetRestApiId(v string) *GetDocumentationPartInput {
17037	s.RestApiId = &v
17038	return s
17039}
17040
17041// Gets the documentation parts of an API. The result may be filtered by the
17042// type, name, or path of API entities (targets).
17043type GetDocumentationPartsInput struct {
17044	_ struct{} `type:"structure"`
17045
17046	// The maximum number of returned results per page. The default value is 25
17047	// and the maximum value is 500.
17048	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
17049
17050	// The status of the API documentation parts to retrieve. Valid values are DOCUMENTED
17051	// for retrieving DocumentationPart resources with content and UNDOCUMENTED
17052	// for DocumentationPart resources without content.
17053	LocationStatus *string `location:"querystring" locationName:"locationStatus" type:"string" enum:"LocationStatusType"`
17054
17055	// The name of API entities of the to-be-retrieved documentation parts.
17056	NameQuery *string `location:"querystring" locationName:"name" type:"string"`
17057
17058	// The path of API entities of the to-be-retrieved documentation parts.
17059	Path *string `location:"querystring" locationName:"path" type:"string"`
17060
17061	// The current pagination position in the paged result set.
17062	Position *string `location:"querystring" locationName:"position" type:"string"`
17063
17064	// [Required] The string identifier of the associated RestApi.
17065	//
17066	// RestApiId is a required field
17067	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17068
17069	// The type of API entities of the to-be-retrieved documentation parts.
17070	Type *string `location:"querystring" locationName:"type" type:"string" enum:"DocumentationPartType"`
17071}
17072
17073// String returns the string representation
17074func (s GetDocumentationPartsInput) String() string {
17075	return awsutil.Prettify(s)
17076}
17077
17078// GoString returns the string representation
17079func (s GetDocumentationPartsInput) GoString() string {
17080	return s.String()
17081}
17082
17083// Validate inspects the fields of the type to determine if they are valid.
17084func (s *GetDocumentationPartsInput) Validate() error {
17085	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationPartsInput"}
17086	if s.RestApiId == nil {
17087		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17088	}
17089	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17090		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17091	}
17092
17093	if invalidParams.Len() > 0 {
17094		return invalidParams
17095	}
17096	return nil
17097}
17098
17099// SetLimit sets the Limit field's value.
17100func (s *GetDocumentationPartsInput) SetLimit(v int64) *GetDocumentationPartsInput {
17101	s.Limit = &v
17102	return s
17103}
17104
17105// SetLocationStatus sets the LocationStatus field's value.
17106func (s *GetDocumentationPartsInput) SetLocationStatus(v string) *GetDocumentationPartsInput {
17107	s.LocationStatus = &v
17108	return s
17109}
17110
17111// SetNameQuery sets the NameQuery field's value.
17112func (s *GetDocumentationPartsInput) SetNameQuery(v string) *GetDocumentationPartsInput {
17113	s.NameQuery = &v
17114	return s
17115}
17116
17117// SetPath sets the Path field's value.
17118func (s *GetDocumentationPartsInput) SetPath(v string) *GetDocumentationPartsInput {
17119	s.Path = &v
17120	return s
17121}
17122
17123// SetPosition sets the Position field's value.
17124func (s *GetDocumentationPartsInput) SetPosition(v string) *GetDocumentationPartsInput {
17125	s.Position = &v
17126	return s
17127}
17128
17129// SetRestApiId sets the RestApiId field's value.
17130func (s *GetDocumentationPartsInput) SetRestApiId(v string) *GetDocumentationPartsInput {
17131	s.RestApiId = &v
17132	return s
17133}
17134
17135// SetType sets the Type field's value.
17136func (s *GetDocumentationPartsInput) SetType(v string) *GetDocumentationPartsInput {
17137	s.Type = &v
17138	return s
17139}
17140
17141// The collection of documentation parts of an API.
17142//
17143// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
17144// DocumentationPart
17145type GetDocumentationPartsOutput struct {
17146	_ struct{} `type:"structure"`
17147
17148	// The current page of elements from this collection.
17149	Items []*DocumentationPart `locationName:"item" type:"list"`
17150
17151	Position *string `locationName:"position" type:"string"`
17152}
17153
17154// String returns the string representation
17155func (s GetDocumentationPartsOutput) String() string {
17156	return awsutil.Prettify(s)
17157}
17158
17159// GoString returns the string representation
17160func (s GetDocumentationPartsOutput) GoString() string {
17161	return s.String()
17162}
17163
17164// SetItems sets the Items field's value.
17165func (s *GetDocumentationPartsOutput) SetItems(v []*DocumentationPart) *GetDocumentationPartsOutput {
17166	s.Items = v
17167	return s
17168}
17169
17170// SetPosition sets the Position field's value.
17171func (s *GetDocumentationPartsOutput) SetPosition(v string) *GetDocumentationPartsOutput {
17172	s.Position = &v
17173	return s
17174}
17175
17176// Gets a documentation snapshot of an API.
17177type GetDocumentationVersionInput struct {
17178	_ struct{} `type:"structure"`
17179
17180	// [Required] The version identifier of the to-be-retrieved documentation snapshot.
17181	//
17182	// DocumentationVersion is a required field
17183	DocumentationVersion *string `location:"uri" locationName:"doc_version" type:"string" required:"true"`
17184
17185	// [Required] The string identifier of the associated RestApi.
17186	//
17187	// RestApiId is a required field
17188	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17189}
17190
17191// String returns the string representation
17192func (s GetDocumentationVersionInput) String() string {
17193	return awsutil.Prettify(s)
17194}
17195
17196// GoString returns the string representation
17197func (s GetDocumentationVersionInput) GoString() string {
17198	return s.String()
17199}
17200
17201// Validate inspects the fields of the type to determine if they are valid.
17202func (s *GetDocumentationVersionInput) Validate() error {
17203	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationVersionInput"}
17204	if s.DocumentationVersion == nil {
17205		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
17206	}
17207	if s.DocumentationVersion != nil && len(*s.DocumentationVersion) < 1 {
17208		invalidParams.Add(request.NewErrParamMinLen("DocumentationVersion", 1))
17209	}
17210	if s.RestApiId == nil {
17211		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17212	}
17213	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17214		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17215	}
17216
17217	if invalidParams.Len() > 0 {
17218		return invalidParams
17219	}
17220	return nil
17221}
17222
17223// SetDocumentationVersion sets the DocumentationVersion field's value.
17224func (s *GetDocumentationVersionInput) SetDocumentationVersion(v string) *GetDocumentationVersionInput {
17225	s.DocumentationVersion = &v
17226	return s
17227}
17228
17229// SetRestApiId sets the RestApiId field's value.
17230func (s *GetDocumentationVersionInput) SetRestApiId(v string) *GetDocumentationVersionInput {
17231	s.RestApiId = &v
17232	return s
17233}
17234
17235// Gets the documentation versions of an API.
17236type GetDocumentationVersionsInput struct {
17237	_ struct{} `type:"structure"`
17238
17239	// The maximum number of returned results per page. The default value is 25
17240	// and the maximum value is 500.
17241	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
17242
17243	// The current pagination position in the paged result set.
17244	Position *string `location:"querystring" locationName:"position" type:"string"`
17245
17246	// [Required] The string identifier of the associated RestApi.
17247	//
17248	// RestApiId is a required field
17249	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17250}
17251
17252// String returns the string representation
17253func (s GetDocumentationVersionsInput) String() string {
17254	return awsutil.Prettify(s)
17255}
17256
17257// GoString returns the string representation
17258func (s GetDocumentationVersionsInput) GoString() string {
17259	return s.String()
17260}
17261
17262// Validate inspects the fields of the type to determine if they are valid.
17263func (s *GetDocumentationVersionsInput) Validate() error {
17264	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationVersionsInput"}
17265	if s.RestApiId == nil {
17266		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17267	}
17268	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17269		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17270	}
17271
17272	if invalidParams.Len() > 0 {
17273		return invalidParams
17274	}
17275	return nil
17276}
17277
17278// SetLimit sets the Limit field's value.
17279func (s *GetDocumentationVersionsInput) SetLimit(v int64) *GetDocumentationVersionsInput {
17280	s.Limit = &v
17281	return s
17282}
17283
17284// SetPosition sets the Position field's value.
17285func (s *GetDocumentationVersionsInput) SetPosition(v string) *GetDocumentationVersionsInput {
17286	s.Position = &v
17287	return s
17288}
17289
17290// SetRestApiId sets the RestApiId field's value.
17291func (s *GetDocumentationVersionsInput) SetRestApiId(v string) *GetDocumentationVersionsInput {
17292	s.RestApiId = &v
17293	return s
17294}
17295
17296// The collection of documentation snapshots of an API.
17297//
17298// Use the DocumentationVersions to manage documentation snapshots associated
17299// with various API stages.
17300//
17301// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
17302// DocumentationPart, DocumentationVersion
17303type GetDocumentationVersionsOutput struct {
17304	_ struct{} `type:"structure"`
17305
17306	// The current page of elements from this collection.
17307	Items []*DocumentationVersion `locationName:"item" type:"list"`
17308
17309	Position *string `locationName:"position" type:"string"`
17310}
17311
17312// String returns the string representation
17313func (s GetDocumentationVersionsOutput) String() string {
17314	return awsutil.Prettify(s)
17315}
17316
17317// GoString returns the string representation
17318func (s GetDocumentationVersionsOutput) GoString() string {
17319	return s.String()
17320}
17321
17322// SetItems sets the Items field's value.
17323func (s *GetDocumentationVersionsOutput) SetItems(v []*DocumentationVersion) *GetDocumentationVersionsOutput {
17324	s.Items = v
17325	return s
17326}
17327
17328// SetPosition sets the Position field's value.
17329func (s *GetDocumentationVersionsOutput) SetPosition(v string) *GetDocumentationVersionsOutput {
17330	s.Position = &v
17331	return s
17332}
17333
17334// Request to get the name of a DomainName resource.
17335type GetDomainNameInput struct {
17336	_ struct{} `type:"structure"`
17337
17338	// [Required] The name of the DomainName resource.
17339	//
17340	// DomainName is a required field
17341	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
17342}
17343
17344// String returns the string representation
17345func (s GetDomainNameInput) String() string {
17346	return awsutil.Prettify(s)
17347}
17348
17349// GoString returns the string representation
17350func (s GetDomainNameInput) GoString() string {
17351	return s.String()
17352}
17353
17354// Validate inspects the fields of the type to determine if they are valid.
17355func (s *GetDomainNameInput) Validate() error {
17356	invalidParams := request.ErrInvalidParams{Context: "GetDomainNameInput"}
17357	if s.DomainName == nil {
17358		invalidParams.Add(request.NewErrParamRequired("DomainName"))
17359	}
17360	if s.DomainName != nil && len(*s.DomainName) < 1 {
17361		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
17362	}
17363
17364	if invalidParams.Len() > 0 {
17365		return invalidParams
17366	}
17367	return nil
17368}
17369
17370// SetDomainName sets the DomainName field's value.
17371func (s *GetDomainNameInput) SetDomainName(v string) *GetDomainNameInput {
17372	s.DomainName = &v
17373	return s
17374}
17375
17376// Request to describe a collection of DomainName resources.
17377type GetDomainNamesInput struct {
17378	_ struct{} `type:"structure"`
17379
17380	// The maximum number of returned results per page. The default value is 25
17381	// and the maximum value is 500.
17382	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
17383
17384	// The current pagination position in the paged result set.
17385	Position *string `location:"querystring" locationName:"position" type:"string"`
17386}
17387
17388// String returns the string representation
17389func (s GetDomainNamesInput) String() string {
17390	return awsutil.Prettify(s)
17391}
17392
17393// GoString returns the string representation
17394func (s GetDomainNamesInput) GoString() string {
17395	return s.String()
17396}
17397
17398// SetLimit sets the Limit field's value.
17399func (s *GetDomainNamesInput) SetLimit(v int64) *GetDomainNamesInput {
17400	s.Limit = &v
17401	return s
17402}
17403
17404// SetPosition sets the Position field's value.
17405func (s *GetDomainNamesInput) SetPosition(v string) *GetDomainNamesInput {
17406	s.Position = &v
17407	return s
17408}
17409
17410// Represents a collection of DomainName resources.
17411//
17412// Use Client-Side Certificate (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
17413type GetDomainNamesOutput struct {
17414	_ struct{} `type:"structure"`
17415
17416	// The current page of elements from this collection.
17417	Items []*DomainName `locationName:"item" type:"list"`
17418
17419	Position *string `locationName:"position" type:"string"`
17420}
17421
17422// String returns the string representation
17423func (s GetDomainNamesOutput) String() string {
17424	return awsutil.Prettify(s)
17425}
17426
17427// GoString returns the string representation
17428func (s GetDomainNamesOutput) GoString() string {
17429	return s.String()
17430}
17431
17432// SetItems sets the Items field's value.
17433func (s *GetDomainNamesOutput) SetItems(v []*DomainName) *GetDomainNamesOutput {
17434	s.Items = v
17435	return s
17436}
17437
17438// SetPosition sets the Position field's value.
17439func (s *GetDomainNamesOutput) SetPosition(v string) *GetDomainNamesOutput {
17440	s.Position = &v
17441	return s
17442}
17443
17444// Request a new export of a RestApi for a particular Stage.
17445type GetExportInput struct {
17446	_ struct{} `type:"structure"`
17447
17448	// The content-type of the export, for example application/json. Currently application/json
17449	// and application/yaml are supported for exportType ofoas30 and swagger. This
17450	// should be specified in the Accept header for direct API requests.
17451	Accepts *string `location:"header" locationName:"Accept" type:"string"`
17452
17453	// [Required] The type of export. Acceptable values are 'oas30' for OpenAPI
17454	// 3.0.x and 'swagger' for Swagger/OpenAPI 2.0.
17455	//
17456	// ExportType is a required field
17457	ExportType *string `location:"uri" locationName:"export_type" type:"string" required:"true"`
17458
17459	// A key-value map of query string parameters that specify properties of the
17460	// export, depending on the requested exportType. For exportType oas30 and swagger,
17461	// any combination of the following parameters are supported: extensions='integrations'
17462	// or extensions='apigateway' will export the API with x-amazon-apigateway-integration
17463	// extensions. extensions='authorizers' will export the API with x-amazon-apigateway-authorizer
17464	// extensions. postman will export the API with Postman extensions, allowing
17465	// for import to the Postman tool
17466	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
17467
17468	// [Required] The string identifier of the associated RestApi.
17469	//
17470	// RestApiId is a required field
17471	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17472
17473	// [Required] The name of the Stage that will be exported.
17474	//
17475	// StageName is a required field
17476	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
17477}
17478
17479// String returns the string representation
17480func (s GetExportInput) String() string {
17481	return awsutil.Prettify(s)
17482}
17483
17484// GoString returns the string representation
17485func (s GetExportInput) GoString() string {
17486	return s.String()
17487}
17488
17489// Validate inspects the fields of the type to determine if they are valid.
17490func (s *GetExportInput) Validate() error {
17491	invalidParams := request.ErrInvalidParams{Context: "GetExportInput"}
17492	if s.ExportType == nil {
17493		invalidParams.Add(request.NewErrParamRequired("ExportType"))
17494	}
17495	if s.ExportType != nil && len(*s.ExportType) < 1 {
17496		invalidParams.Add(request.NewErrParamMinLen("ExportType", 1))
17497	}
17498	if s.RestApiId == nil {
17499		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17500	}
17501	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17502		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17503	}
17504	if s.StageName == nil {
17505		invalidParams.Add(request.NewErrParamRequired("StageName"))
17506	}
17507	if s.StageName != nil && len(*s.StageName) < 1 {
17508		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
17509	}
17510
17511	if invalidParams.Len() > 0 {
17512		return invalidParams
17513	}
17514	return nil
17515}
17516
17517// SetAccepts sets the Accepts field's value.
17518func (s *GetExportInput) SetAccepts(v string) *GetExportInput {
17519	s.Accepts = &v
17520	return s
17521}
17522
17523// SetExportType sets the ExportType field's value.
17524func (s *GetExportInput) SetExportType(v string) *GetExportInput {
17525	s.ExportType = &v
17526	return s
17527}
17528
17529// SetParameters sets the Parameters field's value.
17530func (s *GetExportInput) SetParameters(v map[string]*string) *GetExportInput {
17531	s.Parameters = v
17532	return s
17533}
17534
17535// SetRestApiId sets the RestApiId field's value.
17536func (s *GetExportInput) SetRestApiId(v string) *GetExportInput {
17537	s.RestApiId = &v
17538	return s
17539}
17540
17541// SetStageName sets the StageName field's value.
17542func (s *GetExportInput) SetStageName(v string) *GetExportInput {
17543	s.StageName = &v
17544	return s
17545}
17546
17547// The binary blob response to GetExport, which contains the generated SDK.
17548type GetExportOutput struct {
17549	_ struct{} `type:"structure" payload:"Body"`
17550
17551	// The binary blob response to GetExport, which contains the export.
17552	Body []byte `locationName:"body" type:"blob"`
17553
17554	// The content-disposition header value in the HTTP response.
17555	ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"`
17556
17557	// The content-type header value in the HTTP response. This will correspond
17558	// to a valid 'accept' type in the request.
17559	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
17560}
17561
17562// String returns the string representation
17563func (s GetExportOutput) String() string {
17564	return awsutil.Prettify(s)
17565}
17566
17567// GoString returns the string representation
17568func (s GetExportOutput) GoString() string {
17569	return s.String()
17570}
17571
17572// SetBody sets the Body field's value.
17573func (s *GetExportOutput) SetBody(v []byte) *GetExportOutput {
17574	s.Body = v
17575	return s
17576}
17577
17578// SetContentDisposition sets the ContentDisposition field's value.
17579func (s *GetExportOutput) SetContentDisposition(v string) *GetExportOutput {
17580	s.ContentDisposition = &v
17581	return s
17582}
17583
17584// SetContentType sets the ContentType field's value.
17585func (s *GetExportOutput) SetContentType(v string) *GetExportOutput {
17586	s.ContentType = &v
17587	return s
17588}
17589
17590// Gets a GatewayResponse of a specified response type on the given RestApi.
17591type GetGatewayResponseInput struct {
17592	_ struct{} `type:"structure"`
17593
17594	// [Required]
17595	// The response type of the associated GatewayResponse.
17596	//
17597	// ResponseType is a required field
17598	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
17599
17600	// [Required] The string identifier of the associated RestApi.
17601	//
17602	// RestApiId is a required field
17603	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17604}
17605
17606// String returns the string representation
17607func (s GetGatewayResponseInput) String() string {
17608	return awsutil.Prettify(s)
17609}
17610
17611// GoString returns the string representation
17612func (s GetGatewayResponseInput) GoString() string {
17613	return s.String()
17614}
17615
17616// Validate inspects the fields of the type to determine if they are valid.
17617func (s *GetGatewayResponseInput) Validate() error {
17618	invalidParams := request.ErrInvalidParams{Context: "GetGatewayResponseInput"}
17619	if s.ResponseType == nil {
17620		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
17621	}
17622	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
17623		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
17624	}
17625	if s.RestApiId == nil {
17626		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17627	}
17628	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17629		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17630	}
17631
17632	if invalidParams.Len() > 0 {
17633		return invalidParams
17634	}
17635	return nil
17636}
17637
17638// SetResponseType sets the ResponseType field's value.
17639func (s *GetGatewayResponseInput) SetResponseType(v string) *GetGatewayResponseInput {
17640	s.ResponseType = &v
17641	return s
17642}
17643
17644// SetRestApiId sets the RestApiId field's value.
17645func (s *GetGatewayResponseInput) SetRestApiId(v string) *GetGatewayResponseInput {
17646	s.RestApiId = &v
17647	return s
17648}
17649
17650// Gets the GatewayResponses collection on the given RestApi. If an API developer
17651// has not added any definitions for gateway responses, the result will be the
17652// API Gateway-generated default GatewayResponses collection for the supported
17653// response types.
17654type GetGatewayResponsesInput struct {
17655	_ struct{} `type:"structure"`
17656
17657	// The maximum number of returned results per page. The default value is 25
17658	// and the maximum value is 500. The GatewayResponses collection does not support
17659	// pagination and the limit does not apply here.
17660	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
17661
17662	// The current pagination position in the paged result set. The GatewayResponse
17663	// collection does not support pagination and the position does not apply here.
17664	Position *string `location:"querystring" locationName:"position" type:"string"`
17665
17666	// [Required] The string identifier of the associated RestApi.
17667	//
17668	// RestApiId is a required field
17669	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17670}
17671
17672// String returns the string representation
17673func (s GetGatewayResponsesInput) String() string {
17674	return awsutil.Prettify(s)
17675}
17676
17677// GoString returns the string representation
17678func (s GetGatewayResponsesInput) GoString() string {
17679	return s.String()
17680}
17681
17682// Validate inspects the fields of the type to determine if they are valid.
17683func (s *GetGatewayResponsesInput) Validate() error {
17684	invalidParams := request.ErrInvalidParams{Context: "GetGatewayResponsesInput"}
17685	if s.RestApiId == nil {
17686		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17687	}
17688	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17689		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17690	}
17691
17692	if invalidParams.Len() > 0 {
17693		return invalidParams
17694	}
17695	return nil
17696}
17697
17698// SetLimit sets the Limit field's value.
17699func (s *GetGatewayResponsesInput) SetLimit(v int64) *GetGatewayResponsesInput {
17700	s.Limit = &v
17701	return s
17702}
17703
17704// SetPosition sets the Position field's value.
17705func (s *GetGatewayResponsesInput) SetPosition(v string) *GetGatewayResponsesInput {
17706	s.Position = &v
17707	return s
17708}
17709
17710// SetRestApiId sets the RestApiId field's value.
17711func (s *GetGatewayResponsesInput) SetRestApiId(v string) *GetGatewayResponsesInput {
17712	s.RestApiId = &v
17713	return s
17714}
17715
17716// The collection of the GatewayResponse instances of a RestApi as a responseType-to-GatewayResponse
17717// object map of key-value pairs. As such, pagination is not supported for querying
17718// this collection.
17719//
17720// For more information about valid gateway response types, see Gateway Response
17721// Types Supported by API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/supported-gateway-response-types.html)
17722//
17723// Example: Get the collection of gateway responses of an API
17724//
17725// Request
17726//
17727// This example request shows how to retrieve the GatewayResponses collection
17728// from an API.
17729//  GET /restapis/o81lxisefl/gatewayresponses HTTP/1.1 Host: beta-apigateway.us-east-1.amazonaws.com
17730//  Content-Type: application/json X-Amz-Date: 20170503T220604Z Authorization:
17731//  AWS4-HMAC-SHA256 Credential={access-key-id}/20170503/us-east-1/apigateway/aws4_request,
17732//  SignedHeaders=content-type;host;x-amz-date, Signature=59b42fe54a76a5de8adf2c67baa6d39206f8e9ad49a1d77ccc6a5da3103a398a
17733//  Cache-Control: no-cache Postman-Token: 5637af27-dc29-fc5c-9dfe-0645d52cb515
17734// Response
17735//
17736// The successful operation returns the 200 OK status code and a payload similar
17737// to the following:
17738//  { "_links": { "curies": { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html",
17739//  "name": "gatewayresponse", "templated": true }, "self": { "href": "/restapis/o81lxisefl/gatewayresponses"
17740//  }, "first": { "href": "/restapis/o81lxisefl/gatewayresponses" }, "gatewayresponse:by-type":
17741//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17742//  true }, "item": [ { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE"
17743//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND"
17744//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE" },
17745//  { "href": "/restapis/o81lxisefl/gatewayresponses/THROTTLED" }, { "href":
17746//  "/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE" }, { "href":
17747//  "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR" },
17748//  { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX" }, { "href":
17749//  "/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX" }, { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS"
17750//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY" },
17751//  { "href": "/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN" }, { "href":
17752//  "/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED" }, { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY"
17753//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED" }, { "href":
17754//  "/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR" }, { "href":
17755//  "/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED" }, { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT"
17756//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
17757//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE" },
17758//  { "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE" } ]
17759//  }, "_embedded": { "item": [ { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE"
17760//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17761//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE"
17762//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17763//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17764//  "INTEGRATION_FAILURE", "statusCode": "504" }, { "_links": { "self": { "href":
17765//  "/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND" }, "gatewayresponse:put":
17766//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17767//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND"
17768//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17769//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17770//  "RESOURCE_NOT_FOUND", "statusCode": "404" }, { "_links": { "self": { "href":
17771//  "/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE" }, "gatewayresponse:put":
17772//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17773//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE"
17774//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17775//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17776//  "REQUEST_TOO_LARGE", "statusCode": "413" }, { "_links": { "self": { "href":
17777//  "/restapis/o81lxisefl/gatewayresponses/THROTTLED" }, "gatewayresponse:put":
17778//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17779//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/THROTTLED"
17780//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17781//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17782//  "THROTTLED", "statusCode": "429" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE"
17783//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17784//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE"
17785//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17786//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17787//  "UNSUPPORTED_MEDIA_TYPE", "statusCode": "415" }, { "_links": { "self": {
17788//  "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR"
17789//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17790//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR"
17791//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17792//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17793//  "AUTHORIZER_CONFIGURATION_ERROR", "statusCode": "500" }, { "_links": { "self":
17794//  { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX" }, "gatewayresponse:put":
17795//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17796//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX"
17797//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17798//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17799//  "DEFAULT_5XX" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX"
17800//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17801//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX"
17802//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17803//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17804//  "DEFAULT_4XX" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS"
17805//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17806//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS"
17807//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17808//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17809//  "BAD_REQUEST_PARAMETERS", "statusCode": "400" }, { "_links": { "self": {
17810//  "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY" }, "gatewayresponse:put":
17811//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17812//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY"
17813//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17814//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17815//  "BAD_REQUEST_BODY", "statusCode": "400" }, { "_links": { "self": { "href":
17816//  "/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN" }, "gatewayresponse:put":
17817//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17818//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN"
17819//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17820//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17821//  "EXPIRED_TOKEN", "statusCode": "403" }, { "_links": { "self": { "href":
17822//  "/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED" }, "gatewayresponse:put":
17823//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17824//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED"
17825//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17826//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17827//  "ACCESS_DENIED", "statusCode": "403" }, { "_links": { "self": { "href":
17828//  "/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY" }, "gatewayresponse:put":
17829//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17830//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY"
17831//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17832//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17833//  "INVALID_API_KEY", "statusCode": "403" }, { "_links": { "self": { "href":
17834//  "/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED" }, "gatewayresponse:put":
17835//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17836//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED"
17837//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17838//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17839//  "UNAUTHORIZED", "statusCode": "401" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR"
17840//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17841//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR"
17842//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17843//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17844//  "API_CONFIGURATION_ERROR", "statusCode": "500" }, { "_links": { "self":
17845//  { "href": "/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED" }, "gatewayresponse:put":
17846//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17847//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED"
17848//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17849//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17850//  "QUOTA_EXCEEDED", "statusCode": "429" }, { "_links": { "self": { "href":
17851//  "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT" }, "gatewayresponse:put":
17852//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17853//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT"
17854//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17855//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17856//  "INTEGRATION_TIMEOUT", "statusCode": "504" }, { "_links": { "self": { "href":
17857//  "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN" },
17858//  "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17859//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
17860//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17861//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17862//  "MISSING_AUTHENTICATION_TOKEN", "statusCode": "403" }, { "_links": { "self":
17863//  { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE" }, "gatewayresponse:put":
17864//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17865//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE"
17866//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17867//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17868//  "INVALID_SIGNATURE", "statusCode": "403" }, { "_links": { "self": { "href":
17869//  "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE" }, "gatewayresponse:put":
17870//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17871//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE"
17872//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17873//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17874//  "AUTHORIZER_FAILURE", "statusCode": "500" } ] } }
17875//
17876// Customize Gateway Responses (https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html)
17877type GetGatewayResponsesOutput struct {
17878	_ struct{} `type:"structure"`
17879
17880	// Returns the entire collection, because of no pagination support.
17881	Items []*UpdateGatewayResponseOutput `locationName:"item" type:"list"`
17882
17883	Position *string `locationName:"position" type:"string"`
17884}
17885
17886// String returns the string representation
17887func (s GetGatewayResponsesOutput) String() string {
17888	return awsutil.Prettify(s)
17889}
17890
17891// GoString returns the string representation
17892func (s GetGatewayResponsesOutput) GoString() string {
17893	return s.String()
17894}
17895
17896// SetItems sets the Items field's value.
17897func (s *GetGatewayResponsesOutput) SetItems(v []*UpdateGatewayResponseOutput) *GetGatewayResponsesOutput {
17898	s.Items = v
17899	return s
17900}
17901
17902// SetPosition sets the Position field's value.
17903func (s *GetGatewayResponsesOutput) SetPosition(v string) *GetGatewayResponsesOutput {
17904	s.Position = &v
17905	return s
17906}
17907
17908// Represents a request to get the integration configuration.
17909type GetIntegrationInput struct {
17910	_ struct{} `type:"structure"`
17911
17912	// [Required] Specifies a get integration request's HTTP method.
17913	//
17914	// HttpMethod is a required field
17915	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
17916
17917	// [Required] Specifies a get integration request's resource identifier
17918	//
17919	// ResourceId is a required field
17920	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
17921
17922	// [Required] The string identifier of the associated RestApi.
17923	//
17924	// RestApiId is a required field
17925	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17926}
17927
17928// String returns the string representation
17929func (s GetIntegrationInput) String() string {
17930	return awsutil.Prettify(s)
17931}
17932
17933// GoString returns the string representation
17934func (s GetIntegrationInput) GoString() string {
17935	return s.String()
17936}
17937
17938// Validate inspects the fields of the type to determine if they are valid.
17939func (s *GetIntegrationInput) Validate() error {
17940	invalidParams := request.ErrInvalidParams{Context: "GetIntegrationInput"}
17941	if s.HttpMethod == nil {
17942		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
17943	}
17944	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
17945		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
17946	}
17947	if s.ResourceId == nil {
17948		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
17949	}
17950	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
17951		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
17952	}
17953	if s.RestApiId == nil {
17954		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17955	}
17956	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17957		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17958	}
17959
17960	if invalidParams.Len() > 0 {
17961		return invalidParams
17962	}
17963	return nil
17964}
17965
17966// SetHttpMethod sets the HttpMethod field's value.
17967func (s *GetIntegrationInput) SetHttpMethod(v string) *GetIntegrationInput {
17968	s.HttpMethod = &v
17969	return s
17970}
17971
17972// SetResourceId sets the ResourceId field's value.
17973func (s *GetIntegrationInput) SetResourceId(v string) *GetIntegrationInput {
17974	s.ResourceId = &v
17975	return s
17976}
17977
17978// SetRestApiId sets the RestApiId field's value.
17979func (s *GetIntegrationInput) SetRestApiId(v string) *GetIntegrationInput {
17980	s.RestApiId = &v
17981	return s
17982}
17983
17984// Represents a get integration response request.
17985type GetIntegrationResponseInput struct {
17986	_ struct{} `type:"structure"`
17987
17988	// [Required] Specifies a get integration response request's HTTP method.
17989	//
17990	// HttpMethod is a required field
17991	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
17992
17993	// [Required] Specifies a get integration response request's resource identifier.
17994	//
17995	// ResourceId is a required field
17996	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
17997
17998	// [Required] The string identifier of the associated RestApi.
17999	//
18000	// RestApiId is a required field
18001	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18002
18003	// [Required] Specifies a get integration response request's status code.
18004	//
18005	// StatusCode is a required field
18006	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
18007}
18008
18009// String returns the string representation
18010func (s GetIntegrationResponseInput) String() string {
18011	return awsutil.Prettify(s)
18012}
18013
18014// GoString returns the string representation
18015func (s GetIntegrationResponseInput) GoString() string {
18016	return s.String()
18017}
18018
18019// Validate inspects the fields of the type to determine if they are valid.
18020func (s *GetIntegrationResponseInput) Validate() error {
18021	invalidParams := request.ErrInvalidParams{Context: "GetIntegrationResponseInput"}
18022	if s.HttpMethod == nil {
18023		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
18024	}
18025	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
18026		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
18027	}
18028	if s.ResourceId == nil {
18029		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
18030	}
18031	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
18032		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
18033	}
18034	if s.RestApiId == nil {
18035		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18036	}
18037	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18038		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18039	}
18040	if s.StatusCode == nil {
18041		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
18042	}
18043	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
18044		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
18045	}
18046
18047	if invalidParams.Len() > 0 {
18048		return invalidParams
18049	}
18050	return nil
18051}
18052
18053// SetHttpMethod sets the HttpMethod field's value.
18054func (s *GetIntegrationResponseInput) SetHttpMethod(v string) *GetIntegrationResponseInput {
18055	s.HttpMethod = &v
18056	return s
18057}
18058
18059// SetResourceId sets the ResourceId field's value.
18060func (s *GetIntegrationResponseInput) SetResourceId(v string) *GetIntegrationResponseInput {
18061	s.ResourceId = &v
18062	return s
18063}
18064
18065// SetRestApiId sets the RestApiId field's value.
18066func (s *GetIntegrationResponseInput) SetRestApiId(v string) *GetIntegrationResponseInput {
18067	s.RestApiId = &v
18068	return s
18069}
18070
18071// SetStatusCode sets the StatusCode field's value.
18072func (s *GetIntegrationResponseInput) SetStatusCode(v string) *GetIntegrationResponseInput {
18073	s.StatusCode = &v
18074	return s
18075}
18076
18077// Request to describe an existing Method resource.
18078type GetMethodInput struct {
18079	_ struct{} `type:"structure"`
18080
18081	// [Required] Specifies the method request's HTTP method type.
18082	//
18083	// HttpMethod is a required field
18084	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
18085
18086	// [Required] The Resource identifier for the Method resource.
18087	//
18088	// ResourceId is a required field
18089	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
18090
18091	// [Required] The string identifier of the associated RestApi.
18092	//
18093	// RestApiId is a required field
18094	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18095}
18096
18097// String returns the string representation
18098func (s GetMethodInput) String() string {
18099	return awsutil.Prettify(s)
18100}
18101
18102// GoString returns the string representation
18103func (s GetMethodInput) GoString() string {
18104	return s.String()
18105}
18106
18107// Validate inspects the fields of the type to determine if they are valid.
18108func (s *GetMethodInput) Validate() error {
18109	invalidParams := request.ErrInvalidParams{Context: "GetMethodInput"}
18110	if s.HttpMethod == nil {
18111		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
18112	}
18113	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
18114		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
18115	}
18116	if s.ResourceId == nil {
18117		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
18118	}
18119	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
18120		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
18121	}
18122	if s.RestApiId == nil {
18123		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18124	}
18125	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18126		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18127	}
18128
18129	if invalidParams.Len() > 0 {
18130		return invalidParams
18131	}
18132	return nil
18133}
18134
18135// SetHttpMethod sets the HttpMethod field's value.
18136func (s *GetMethodInput) SetHttpMethod(v string) *GetMethodInput {
18137	s.HttpMethod = &v
18138	return s
18139}
18140
18141// SetResourceId sets the ResourceId field's value.
18142func (s *GetMethodInput) SetResourceId(v string) *GetMethodInput {
18143	s.ResourceId = &v
18144	return s
18145}
18146
18147// SetRestApiId sets the RestApiId field's value.
18148func (s *GetMethodInput) SetRestApiId(v string) *GetMethodInput {
18149	s.RestApiId = &v
18150	return s
18151}
18152
18153// Request to describe a MethodResponse resource.
18154type GetMethodResponseInput struct {
18155	_ struct{} `type:"structure"`
18156
18157	// [Required] The HTTP verb of the Method resource.
18158	//
18159	// HttpMethod is a required field
18160	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
18161
18162	// [Required] The Resource identifier for the MethodResponse resource.
18163	//
18164	// ResourceId is a required field
18165	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
18166
18167	// [Required] The string identifier of the associated RestApi.
18168	//
18169	// RestApiId is a required field
18170	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18171
18172	// [Required] The status code for the MethodResponse resource.
18173	//
18174	// StatusCode is a required field
18175	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
18176}
18177
18178// String returns the string representation
18179func (s GetMethodResponseInput) String() string {
18180	return awsutil.Prettify(s)
18181}
18182
18183// GoString returns the string representation
18184func (s GetMethodResponseInput) GoString() string {
18185	return s.String()
18186}
18187
18188// Validate inspects the fields of the type to determine if they are valid.
18189func (s *GetMethodResponseInput) Validate() error {
18190	invalidParams := request.ErrInvalidParams{Context: "GetMethodResponseInput"}
18191	if s.HttpMethod == nil {
18192		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
18193	}
18194	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
18195		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
18196	}
18197	if s.ResourceId == nil {
18198		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
18199	}
18200	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
18201		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
18202	}
18203	if s.RestApiId == nil {
18204		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18205	}
18206	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18207		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18208	}
18209	if s.StatusCode == nil {
18210		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
18211	}
18212	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
18213		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
18214	}
18215
18216	if invalidParams.Len() > 0 {
18217		return invalidParams
18218	}
18219	return nil
18220}
18221
18222// SetHttpMethod sets the HttpMethod field's value.
18223func (s *GetMethodResponseInput) SetHttpMethod(v string) *GetMethodResponseInput {
18224	s.HttpMethod = &v
18225	return s
18226}
18227
18228// SetResourceId sets the ResourceId field's value.
18229func (s *GetMethodResponseInput) SetResourceId(v string) *GetMethodResponseInput {
18230	s.ResourceId = &v
18231	return s
18232}
18233
18234// SetRestApiId sets the RestApiId field's value.
18235func (s *GetMethodResponseInput) SetRestApiId(v string) *GetMethodResponseInput {
18236	s.RestApiId = &v
18237	return s
18238}
18239
18240// SetStatusCode sets the StatusCode field's value.
18241func (s *GetMethodResponseInput) SetStatusCode(v string) *GetMethodResponseInput {
18242	s.StatusCode = &v
18243	return s
18244}
18245
18246// Request to list information about a model in an existing RestApi resource.
18247type GetModelInput struct {
18248	_ struct{} `type:"structure"`
18249
18250	// A query parameter of a Boolean value to resolve (true) all external model
18251	// references and returns a flattened model schema or not (false) The default
18252	// is false.
18253	Flatten *bool `location:"querystring" locationName:"flatten" type:"boolean"`
18254
18255	// [Required] The name of the model as an identifier.
18256	//
18257	// ModelName is a required field
18258	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
18259
18260	// [Required] The RestApi identifier under which the Model exists.
18261	//
18262	// RestApiId is a required field
18263	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18264}
18265
18266// String returns the string representation
18267func (s GetModelInput) String() string {
18268	return awsutil.Prettify(s)
18269}
18270
18271// GoString returns the string representation
18272func (s GetModelInput) GoString() string {
18273	return s.String()
18274}
18275
18276// Validate inspects the fields of the type to determine if they are valid.
18277func (s *GetModelInput) Validate() error {
18278	invalidParams := request.ErrInvalidParams{Context: "GetModelInput"}
18279	if s.ModelName == nil {
18280		invalidParams.Add(request.NewErrParamRequired("ModelName"))
18281	}
18282	if s.ModelName != nil && len(*s.ModelName) < 1 {
18283		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
18284	}
18285	if s.RestApiId == nil {
18286		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18287	}
18288	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18289		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18290	}
18291
18292	if invalidParams.Len() > 0 {
18293		return invalidParams
18294	}
18295	return nil
18296}
18297
18298// SetFlatten sets the Flatten field's value.
18299func (s *GetModelInput) SetFlatten(v bool) *GetModelInput {
18300	s.Flatten = &v
18301	return s
18302}
18303
18304// SetModelName sets the ModelName field's value.
18305func (s *GetModelInput) SetModelName(v string) *GetModelInput {
18306	s.ModelName = &v
18307	return s
18308}
18309
18310// SetRestApiId sets the RestApiId field's value.
18311func (s *GetModelInput) SetRestApiId(v string) *GetModelInput {
18312	s.RestApiId = &v
18313	return s
18314}
18315
18316// Request to generate a sample mapping template used to transform the payload.
18317type GetModelTemplateInput struct {
18318	_ struct{} `type:"structure"`
18319
18320	// [Required] The name of the model for which to generate a template.
18321	//
18322	// ModelName is a required field
18323	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
18324
18325	// [Required] The string identifier of the associated RestApi.
18326	//
18327	// RestApiId is a required field
18328	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18329}
18330
18331// String returns the string representation
18332func (s GetModelTemplateInput) String() string {
18333	return awsutil.Prettify(s)
18334}
18335
18336// GoString returns the string representation
18337func (s GetModelTemplateInput) GoString() string {
18338	return s.String()
18339}
18340
18341// Validate inspects the fields of the type to determine if they are valid.
18342func (s *GetModelTemplateInput) Validate() error {
18343	invalidParams := request.ErrInvalidParams{Context: "GetModelTemplateInput"}
18344	if s.ModelName == nil {
18345		invalidParams.Add(request.NewErrParamRequired("ModelName"))
18346	}
18347	if s.ModelName != nil && len(*s.ModelName) < 1 {
18348		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
18349	}
18350	if s.RestApiId == nil {
18351		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18352	}
18353	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18354		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18355	}
18356
18357	if invalidParams.Len() > 0 {
18358		return invalidParams
18359	}
18360	return nil
18361}
18362
18363// SetModelName sets the ModelName field's value.
18364func (s *GetModelTemplateInput) SetModelName(v string) *GetModelTemplateInput {
18365	s.ModelName = &v
18366	return s
18367}
18368
18369// SetRestApiId sets the RestApiId field's value.
18370func (s *GetModelTemplateInput) SetRestApiId(v string) *GetModelTemplateInput {
18371	s.RestApiId = &v
18372	return s
18373}
18374
18375// Represents a mapping template used to transform a payload.
18376//
18377// Mapping Templates (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html#models-mappings-mappings)
18378type GetModelTemplateOutput struct {
18379	_ struct{} `type:"structure"`
18380
18381	// The Apache Velocity Template Language (VTL) (https://velocity.apache.org/engine/devel/vtl-reference.html)
18382	// template content used for the template resource.
18383	Value *string `locationName:"value" type:"string"`
18384}
18385
18386// String returns the string representation
18387func (s GetModelTemplateOutput) String() string {
18388	return awsutil.Prettify(s)
18389}
18390
18391// GoString returns the string representation
18392func (s GetModelTemplateOutput) GoString() string {
18393	return s.String()
18394}
18395
18396// SetValue sets the Value field's value.
18397func (s *GetModelTemplateOutput) SetValue(v string) *GetModelTemplateOutput {
18398	s.Value = &v
18399	return s
18400}
18401
18402// Request to list existing Models defined for a RestApi resource.
18403type GetModelsInput struct {
18404	_ struct{} `type:"structure"`
18405
18406	// The maximum number of returned results per page. The default value is 25
18407	// and the maximum value is 500.
18408	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18409
18410	// The current pagination position in the paged result set.
18411	Position *string `location:"querystring" locationName:"position" type:"string"`
18412
18413	// [Required] The string identifier of the associated RestApi.
18414	//
18415	// RestApiId is a required field
18416	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18417}
18418
18419// String returns the string representation
18420func (s GetModelsInput) String() string {
18421	return awsutil.Prettify(s)
18422}
18423
18424// GoString returns the string representation
18425func (s GetModelsInput) GoString() string {
18426	return s.String()
18427}
18428
18429// Validate inspects the fields of the type to determine if they are valid.
18430func (s *GetModelsInput) Validate() error {
18431	invalidParams := request.ErrInvalidParams{Context: "GetModelsInput"}
18432	if s.RestApiId == nil {
18433		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18434	}
18435	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18436		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18437	}
18438
18439	if invalidParams.Len() > 0 {
18440		return invalidParams
18441	}
18442	return nil
18443}
18444
18445// SetLimit sets the Limit field's value.
18446func (s *GetModelsInput) SetLimit(v int64) *GetModelsInput {
18447	s.Limit = &v
18448	return s
18449}
18450
18451// SetPosition sets the Position field's value.
18452func (s *GetModelsInput) SetPosition(v string) *GetModelsInput {
18453	s.Position = &v
18454	return s
18455}
18456
18457// SetRestApiId sets the RestApiId field's value.
18458func (s *GetModelsInput) SetRestApiId(v string) *GetModelsInput {
18459	s.RestApiId = &v
18460	return s
18461}
18462
18463// Represents a collection of Model resources.
18464//
18465// Method, MethodResponse, Models and Mappings (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html)
18466type GetModelsOutput struct {
18467	_ struct{} `type:"structure"`
18468
18469	// The current page of elements from this collection.
18470	Items []*Model `locationName:"item" type:"list"`
18471
18472	Position *string `locationName:"position" type:"string"`
18473}
18474
18475// String returns the string representation
18476func (s GetModelsOutput) String() string {
18477	return awsutil.Prettify(s)
18478}
18479
18480// GoString returns the string representation
18481func (s GetModelsOutput) GoString() string {
18482	return s.String()
18483}
18484
18485// SetItems sets the Items field's value.
18486func (s *GetModelsOutput) SetItems(v []*Model) *GetModelsOutput {
18487	s.Items = v
18488	return s
18489}
18490
18491// SetPosition sets the Position field's value.
18492func (s *GetModelsOutput) SetPosition(v string) *GetModelsOutput {
18493	s.Position = &v
18494	return s
18495}
18496
18497// Gets a RequestValidator of a given RestApi.
18498type GetRequestValidatorInput struct {
18499	_ struct{} `type:"structure"`
18500
18501	// [Required] The identifier of the RequestValidator to be retrieved.
18502	//
18503	// RequestValidatorId is a required field
18504	RequestValidatorId *string `location:"uri" locationName:"requestvalidator_id" type:"string" required:"true"`
18505
18506	// [Required] The string identifier of the associated RestApi.
18507	//
18508	// RestApiId is a required field
18509	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18510}
18511
18512// String returns the string representation
18513func (s GetRequestValidatorInput) String() string {
18514	return awsutil.Prettify(s)
18515}
18516
18517// GoString returns the string representation
18518func (s GetRequestValidatorInput) GoString() string {
18519	return s.String()
18520}
18521
18522// Validate inspects the fields of the type to determine if they are valid.
18523func (s *GetRequestValidatorInput) Validate() error {
18524	invalidParams := request.ErrInvalidParams{Context: "GetRequestValidatorInput"}
18525	if s.RequestValidatorId == nil {
18526		invalidParams.Add(request.NewErrParamRequired("RequestValidatorId"))
18527	}
18528	if s.RequestValidatorId != nil && len(*s.RequestValidatorId) < 1 {
18529		invalidParams.Add(request.NewErrParamMinLen("RequestValidatorId", 1))
18530	}
18531	if s.RestApiId == nil {
18532		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18533	}
18534	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18535		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18536	}
18537
18538	if invalidParams.Len() > 0 {
18539		return invalidParams
18540	}
18541	return nil
18542}
18543
18544// SetRequestValidatorId sets the RequestValidatorId field's value.
18545func (s *GetRequestValidatorInput) SetRequestValidatorId(v string) *GetRequestValidatorInput {
18546	s.RequestValidatorId = &v
18547	return s
18548}
18549
18550// SetRestApiId sets the RestApiId field's value.
18551func (s *GetRequestValidatorInput) SetRestApiId(v string) *GetRequestValidatorInput {
18552	s.RestApiId = &v
18553	return s
18554}
18555
18556// Gets the RequestValidators collection of a given RestApi.
18557type GetRequestValidatorsInput struct {
18558	_ struct{} `type:"structure"`
18559
18560	// The maximum number of returned results per page. The default value is 25
18561	// and the maximum value is 500.
18562	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18563
18564	// The current pagination position in the paged result set.
18565	Position *string `location:"querystring" locationName:"position" type:"string"`
18566
18567	// [Required] The string identifier of the associated RestApi.
18568	//
18569	// RestApiId is a required field
18570	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18571}
18572
18573// String returns the string representation
18574func (s GetRequestValidatorsInput) String() string {
18575	return awsutil.Prettify(s)
18576}
18577
18578// GoString returns the string representation
18579func (s GetRequestValidatorsInput) GoString() string {
18580	return s.String()
18581}
18582
18583// Validate inspects the fields of the type to determine if they are valid.
18584func (s *GetRequestValidatorsInput) Validate() error {
18585	invalidParams := request.ErrInvalidParams{Context: "GetRequestValidatorsInput"}
18586	if s.RestApiId == nil {
18587		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18588	}
18589	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18590		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18591	}
18592
18593	if invalidParams.Len() > 0 {
18594		return invalidParams
18595	}
18596	return nil
18597}
18598
18599// SetLimit sets the Limit field's value.
18600func (s *GetRequestValidatorsInput) SetLimit(v int64) *GetRequestValidatorsInput {
18601	s.Limit = &v
18602	return s
18603}
18604
18605// SetPosition sets the Position field's value.
18606func (s *GetRequestValidatorsInput) SetPosition(v string) *GetRequestValidatorsInput {
18607	s.Position = &v
18608	return s
18609}
18610
18611// SetRestApiId sets the RestApiId field's value.
18612func (s *GetRequestValidatorsInput) SetRestApiId(v string) *GetRequestValidatorsInput {
18613	s.RestApiId = &v
18614	return s
18615}
18616
18617// A collection of RequestValidator resources of a given RestApi.
18618//
18619// In OpenAPI, the RequestValidators of an API is defined by the x-amazon-apigateway-request-validators
18620// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html#api-gateway-swagger-extensions-request-validators.html)
18621// extension.
18622//
18623// Enable Basic Request Validation in API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html)
18624type GetRequestValidatorsOutput struct {
18625	_ struct{} `type:"structure"`
18626
18627	// The current page of elements from this collection.
18628	Items []*UpdateRequestValidatorOutput `locationName:"item" type:"list"`
18629
18630	Position *string `locationName:"position" type:"string"`
18631}
18632
18633// String returns the string representation
18634func (s GetRequestValidatorsOutput) String() string {
18635	return awsutil.Prettify(s)
18636}
18637
18638// GoString returns the string representation
18639func (s GetRequestValidatorsOutput) GoString() string {
18640	return s.String()
18641}
18642
18643// SetItems sets the Items field's value.
18644func (s *GetRequestValidatorsOutput) SetItems(v []*UpdateRequestValidatorOutput) *GetRequestValidatorsOutput {
18645	s.Items = v
18646	return s
18647}
18648
18649// SetPosition sets the Position field's value.
18650func (s *GetRequestValidatorsOutput) SetPosition(v string) *GetRequestValidatorsOutput {
18651	s.Position = &v
18652	return s
18653}
18654
18655// Request to list information about a resource.
18656type GetResourceInput struct {
18657	_ struct{} `type:"structure"`
18658
18659	// A query parameter to retrieve the specified resources embedded in the returned
18660	// Resource representation in the response. This embed parameter value is a
18661	// list of comma-separated strings. Currently, the request supports only retrieval
18662	// of the embedded Method resources this way. The query parameter value must
18663	// be a single-valued list and contain the "methods" string. For example, GET
18664	// /restapis/{restapi_id}/resources/{resource_id}?embed=methods.
18665	Embed []*string `location:"querystring" locationName:"embed" type:"list"`
18666
18667	// [Required] The identifier for the Resource resource.
18668	//
18669	// ResourceId is a required field
18670	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
18671
18672	// [Required] The string identifier of the associated RestApi.
18673	//
18674	// RestApiId is a required field
18675	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18676}
18677
18678// String returns the string representation
18679func (s GetResourceInput) String() string {
18680	return awsutil.Prettify(s)
18681}
18682
18683// GoString returns the string representation
18684func (s GetResourceInput) GoString() string {
18685	return s.String()
18686}
18687
18688// Validate inspects the fields of the type to determine if they are valid.
18689func (s *GetResourceInput) Validate() error {
18690	invalidParams := request.ErrInvalidParams{Context: "GetResourceInput"}
18691	if s.ResourceId == nil {
18692		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
18693	}
18694	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
18695		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
18696	}
18697	if s.RestApiId == nil {
18698		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18699	}
18700	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18701		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18702	}
18703
18704	if invalidParams.Len() > 0 {
18705		return invalidParams
18706	}
18707	return nil
18708}
18709
18710// SetEmbed sets the Embed field's value.
18711func (s *GetResourceInput) SetEmbed(v []*string) *GetResourceInput {
18712	s.Embed = v
18713	return s
18714}
18715
18716// SetResourceId sets the ResourceId field's value.
18717func (s *GetResourceInput) SetResourceId(v string) *GetResourceInput {
18718	s.ResourceId = &v
18719	return s
18720}
18721
18722// SetRestApiId sets the RestApiId field's value.
18723func (s *GetResourceInput) SetRestApiId(v string) *GetResourceInput {
18724	s.RestApiId = &v
18725	return s
18726}
18727
18728// Request to list information about a collection of resources.
18729type GetResourcesInput struct {
18730	_ struct{} `type:"structure"`
18731
18732	// A query parameter used to retrieve the specified resources embedded in the
18733	// returned Resources resource in the response. This embed parameter value is
18734	// a list of comma-separated strings. Currently, the request supports only retrieval
18735	// of the embedded Method resources this way. The query parameter value must
18736	// be a single-valued list and contain the "methods" string. For example, GET
18737	// /restapis/{restapi_id}/resources?embed=methods.
18738	Embed []*string `location:"querystring" locationName:"embed" type:"list"`
18739
18740	// The maximum number of returned results per page. The default value is 25
18741	// and the maximum value is 500.
18742	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18743
18744	// The current pagination position in the paged result set.
18745	Position *string `location:"querystring" locationName:"position" type:"string"`
18746
18747	// [Required] The string identifier of the associated RestApi.
18748	//
18749	// RestApiId is a required field
18750	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18751}
18752
18753// String returns the string representation
18754func (s GetResourcesInput) String() string {
18755	return awsutil.Prettify(s)
18756}
18757
18758// GoString returns the string representation
18759func (s GetResourcesInput) GoString() string {
18760	return s.String()
18761}
18762
18763// Validate inspects the fields of the type to determine if they are valid.
18764func (s *GetResourcesInput) Validate() error {
18765	invalidParams := request.ErrInvalidParams{Context: "GetResourcesInput"}
18766	if s.RestApiId == nil {
18767		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18768	}
18769	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18770		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18771	}
18772
18773	if invalidParams.Len() > 0 {
18774		return invalidParams
18775	}
18776	return nil
18777}
18778
18779// SetEmbed sets the Embed field's value.
18780func (s *GetResourcesInput) SetEmbed(v []*string) *GetResourcesInput {
18781	s.Embed = v
18782	return s
18783}
18784
18785// SetLimit sets the Limit field's value.
18786func (s *GetResourcesInput) SetLimit(v int64) *GetResourcesInput {
18787	s.Limit = &v
18788	return s
18789}
18790
18791// SetPosition sets the Position field's value.
18792func (s *GetResourcesInput) SetPosition(v string) *GetResourcesInput {
18793	s.Position = &v
18794	return s
18795}
18796
18797// SetRestApiId sets the RestApiId field's value.
18798func (s *GetResourcesInput) SetRestApiId(v string) *GetResourcesInput {
18799	s.RestApiId = &v
18800	return s
18801}
18802
18803// Represents a collection of Resource resources.
18804//
18805// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
18806type GetResourcesOutput struct {
18807	_ struct{} `type:"structure"`
18808
18809	// The current page of elements from this collection.
18810	Items []*Resource `locationName:"item" type:"list"`
18811
18812	Position *string `locationName:"position" type:"string"`
18813}
18814
18815// String returns the string representation
18816func (s GetResourcesOutput) String() string {
18817	return awsutil.Prettify(s)
18818}
18819
18820// GoString returns the string representation
18821func (s GetResourcesOutput) GoString() string {
18822	return s.String()
18823}
18824
18825// SetItems sets the Items field's value.
18826func (s *GetResourcesOutput) SetItems(v []*Resource) *GetResourcesOutput {
18827	s.Items = v
18828	return s
18829}
18830
18831// SetPosition sets the Position field's value.
18832func (s *GetResourcesOutput) SetPosition(v string) *GetResourcesOutput {
18833	s.Position = &v
18834	return s
18835}
18836
18837// The GET request to list an existing RestApi defined for your collection.
18838type GetRestApiInput struct {
18839	_ struct{} `type:"structure"`
18840
18841	// [Required] The string identifier of the associated RestApi.
18842	//
18843	// RestApiId is a required field
18844	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18845}
18846
18847// String returns the string representation
18848func (s GetRestApiInput) String() string {
18849	return awsutil.Prettify(s)
18850}
18851
18852// GoString returns the string representation
18853func (s GetRestApiInput) GoString() string {
18854	return s.String()
18855}
18856
18857// Validate inspects the fields of the type to determine if they are valid.
18858func (s *GetRestApiInput) Validate() error {
18859	invalidParams := request.ErrInvalidParams{Context: "GetRestApiInput"}
18860	if s.RestApiId == nil {
18861		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18862	}
18863	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18864		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18865	}
18866
18867	if invalidParams.Len() > 0 {
18868		return invalidParams
18869	}
18870	return nil
18871}
18872
18873// SetRestApiId sets the RestApiId field's value.
18874func (s *GetRestApiInput) SetRestApiId(v string) *GetRestApiInput {
18875	s.RestApiId = &v
18876	return s
18877}
18878
18879// The GET request to list existing RestApis defined for your collection.
18880type GetRestApisInput struct {
18881	_ struct{} `type:"structure"`
18882
18883	// The maximum number of returned results per page. The default value is 25
18884	// and the maximum value is 500.
18885	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18886
18887	// The current pagination position in the paged result set.
18888	Position *string `location:"querystring" locationName:"position" type:"string"`
18889}
18890
18891// String returns the string representation
18892func (s GetRestApisInput) String() string {
18893	return awsutil.Prettify(s)
18894}
18895
18896// GoString returns the string representation
18897func (s GetRestApisInput) GoString() string {
18898	return s.String()
18899}
18900
18901// SetLimit sets the Limit field's value.
18902func (s *GetRestApisInput) SetLimit(v int64) *GetRestApisInput {
18903	s.Limit = &v
18904	return s
18905}
18906
18907// SetPosition sets the Position field's value.
18908func (s *GetRestApisInput) SetPosition(v string) *GetRestApisInput {
18909	s.Position = &v
18910	return s
18911}
18912
18913// Contains references to your APIs and links that guide you in how to interact
18914// with your collection. A collection offers a paginated view of your APIs.
18915//
18916// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
18917type GetRestApisOutput struct {
18918	_ struct{} `type:"structure"`
18919
18920	// The current page of elements from this collection.
18921	Items []*RestApi `locationName:"item" type:"list"`
18922
18923	Position *string `locationName:"position" type:"string"`
18924}
18925
18926// String returns the string representation
18927func (s GetRestApisOutput) String() string {
18928	return awsutil.Prettify(s)
18929}
18930
18931// GoString returns the string representation
18932func (s GetRestApisOutput) GoString() string {
18933	return s.String()
18934}
18935
18936// SetItems sets the Items field's value.
18937func (s *GetRestApisOutput) SetItems(v []*RestApi) *GetRestApisOutput {
18938	s.Items = v
18939	return s
18940}
18941
18942// SetPosition sets the Position field's value.
18943func (s *GetRestApisOutput) SetPosition(v string) *GetRestApisOutput {
18944	s.Position = &v
18945	return s
18946}
18947
18948// Request a new generated client SDK for a RestApi and Stage.
18949type GetSdkInput struct {
18950	_ struct{} `type:"structure"`
18951
18952	// A string-to-string key-value map of query parameters sdkType-dependent properties
18953	// of the SDK. For sdkType of objectivec or swift, a parameter named classPrefix
18954	// is required. For sdkType of android, parameters named groupId, artifactId,
18955	// artifactVersion, and invokerPackage are required. For sdkType of java, parameters
18956	// named serviceName and javaPackageName are required.
18957	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
18958
18959	// [Required] The string identifier of the associated RestApi.
18960	//
18961	// RestApiId is a required field
18962	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18963
18964	// [Required] The language for the generated SDK. Currently java, javascript,
18965	// android, objectivec (for iOS), swift (for iOS), and ruby are supported.
18966	//
18967	// SdkType is a required field
18968	SdkType *string `location:"uri" locationName:"sdk_type" type:"string" required:"true"`
18969
18970	// [Required] The name of the Stage that the SDK will use.
18971	//
18972	// StageName is a required field
18973	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
18974}
18975
18976// String returns the string representation
18977func (s GetSdkInput) String() string {
18978	return awsutil.Prettify(s)
18979}
18980
18981// GoString returns the string representation
18982func (s GetSdkInput) GoString() string {
18983	return s.String()
18984}
18985
18986// Validate inspects the fields of the type to determine if they are valid.
18987func (s *GetSdkInput) Validate() error {
18988	invalidParams := request.ErrInvalidParams{Context: "GetSdkInput"}
18989	if s.RestApiId == nil {
18990		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18991	}
18992	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18993		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18994	}
18995	if s.SdkType == nil {
18996		invalidParams.Add(request.NewErrParamRequired("SdkType"))
18997	}
18998	if s.SdkType != nil && len(*s.SdkType) < 1 {
18999		invalidParams.Add(request.NewErrParamMinLen("SdkType", 1))
19000	}
19001	if s.StageName == nil {
19002		invalidParams.Add(request.NewErrParamRequired("StageName"))
19003	}
19004	if s.StageName != nil && len(*s.StageName) < 1 {
19005		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
19006	}
19007
19008	if invalidParams.Len() > 0 {
19009		return invalidParams
19010	}
19011	return nil
19012}
19013
19014// SetParameters sets the Parameters field's value.
19015func (s *GetSdkInput) SetParameters(v map[string]*string) *GetSdkInput {
19016	s.Parameters = v
19017	return s
19018}
19019
19020// SetRestApiId sets the RestApiId field's value.
19021func (s *GetSdkInput) SetRestApiId(v string) *GetSdkInput {
19022	s.RestApiId = &v
19023	return s
19024}
19025
19026// SetSdkType sets the SdkType field's value.
19027func (s *GetSdkInput) SetSdkType(v string) *GetSdkInput {
19028	s.SdkType = &v
19029	return s
19030}
19031
19032// SetStageName sets the StageName field's value.
19033func (s *GetSdkInput) SetStageName(v string) *GetSdkInput {
19034	s.StageName = &v
19035	return s
19036}
19037
19038// The binary blob response to GetSdk, which contains the generated SDK.
19039type GetSdkOutput struct {
19040	_ struct{} `type:"structure" payload:"Body"`
19041
19042	// The binary blob response to GetSdk, which contains the generated SDK.
19043	Body []byte `locationName:"body" type:"blob"`
19044
19045	// The content-disposition header value in the HTTP response.
19046	ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"`
19047
19048	// The content-type header value in the HTTP response.
19049	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
19050}
19051
19052// String returns the string representation
19053func (s GetSdkOutput) String() string {
19054	return awsutil.Prettify(s)
19055}
19056
19057// GoString returns the string representation
19058func (s GetSdkOutput) GoString() string {
19059	return s.String()
19060}
19061
19062// SetBody sets the Body field's value.
19063func (s *GetSdkOutput) SetBody(v []byte) *GetSdkOutput {
19064	s.Body = v
19065	return s
19066}
19067
19068// SetContentDisposition sets the ContentDisposition field's value.
19069func (s *GetSdkOutput) SetContentDisposition(v string) *GetSdkOutput {
19070	s.ContentDisposition = &v
19071	return s
19072}
19073
19074// SetContentType sets the ContentType field's value.
19075func (s *GetSdkOutput) SetContentType(v string) *GetSdkOutput {
19076	s.ContentType = &v
19077	return s
19078}
19079
19080// Get an SdkType instance.
19081type GetSdkTypeInput struct {
19082	_ struct{} `type:"structure"`
19083
19084	// [Required] The identifier of the queried SdkType instance.
19085	//
19086	// Id is a required field
19087	Id *string `location:"uri" locationName:"sdktype_id" type:"string" required:"true"`
19088}
19089
19090// String returns the string representation
19091func (s GetSdkTypeInput) String() string {
19092	return awsutil.Prettify(s)
19093}
19094
19095// GoString returns the string representation
19096func (s GetSdkTypeInput) GoString() string {
19097	return s.String()
19098}
19099
19100// Validate inspects the fields of the type to determine if they are valid.
19101func (s *GetSdkTypeInput) Validate() error {
19102	invalidParams := request.ErrInvalidParams{Context: "GetSdkTypeInput"}
19103	if s.Id == nil {
19104		invalidParams.Add(request.NewErrParamRequired("Id"))
19105	}
19106	if s.Id != nil && len(*s.Id) < 1 {
19107		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
19108	}
19109
19110	if invalidParams.Len() > 0 {
19111		return invalidParams
19112	}
19113	return nil
19114}
19115
19116// SetId sets the Id field's value.
19117func (s *GetSdkTypeInput) SetId(v string) *GetSdkTypeInput {
19118	s.Id = &v
19119	return s
19120}
19121
19122// Get the SdkTypes collection.
19123type GetSdkTypesInput struct {
19124	_ struct{} `type:"structure"`
19125
19126	// The maximum number of returned results per page. The default value is 25
19127	// and the maximum value is 500.
19128	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19129
19130	// The current pagination position in the paged result set.
19131	Position *string `location:"querystring" locationName:"position" type:"string"`
19132}
19133
19134// String returns the string representation
19135func (s GetSdkTypesInput) String() string {
19136	return awsutil.Prettify(s)
19137}
19138
19139// GoString returns the string representation
19140func (s GetSdkTypesInput) GoString() string {
19141	return s.String()
19142}
19143
19144// SetLimit sets the Limit field's value.
19145func (s *GetSdkTypesInput) SetLimit(v int64) *GetSdkTypesInput {
19146	s.Limit = &v
19147	return s
19148}
19149
19150// SetPosition sets the Position field's value.
19151func (s *GetSdkTypesInput) SetPosition(v string) *GetSdkTypesInput {
19152	s.Position = &v
19153	return s
19154}
19155
19156// The collection of SdkType instances.
19157type GetSdkTypesOutput struct {
19158	_ struct{} `type:"structure"`
19159
19160	// The current page of elements from this collection.
19161	Items []*SdkType `locationName:"item" type:"list"`
19162
19163	Position *string `locationName:"position" type:"string"`
19164}
19165
19166// String returns the string representation
19167func (s GetSdkTypesOutput) String() string {
19168	return awsutil.Prettify(s)
19169}
19170
19171// GoString returns the string representation
19172func (s GetSdkTypesOutput) GoString() string {
19173	return s.String()
19174}
19175
19176// SetItems sets the Items field's value.
19177func (s *GetSdkTypesOutput) SetItems(v []*SdkType) *GetSdkTypesOutput {
19178	s.Items = v
19179	return s
19180}
19181
19182// SetPosition sets the Position field's value.
19183func (s *GetSdkTypesOutput) SetPosition(v string) *GetSdkTypesOutput {
19184	s.Position = &v
19185	return s
19186}
19187
19188// Requests API Gateway to get information about a Stage resource.
19189type GetStageInput struct {
19190	_ struct{} `type:"structure"`
19191
19192	// [Required] The string identifier of the associated RestApi.
19193	//
19194	// RestApiId is a required field
19195	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19196
19197	// [Required] The name of the Stage resource to get information about.
19198	//
19199	// StageName is a required field
19200	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
19201}
19202
19203// String returns the string representation
19204func (s GetStageInput) String() string {
19205	return awsutil.Prettify(s)
19206}
19207
19208// GoString returns the string representation
19209func (s GetStageInput) GoString() string {
19210	return s.String()
19211}
19212
19213// Validate inspects the fields of the type to determine if they are valid.
19214func (s *GetStageInput) Validate() error {
19215	invalidParams := request.ErrInvalidParams{Context: "GetStageInput"}
19216	if s.RestApiId == nil {
19217		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19218	}
19219	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19220		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19221	}
19222	if s.StageName == nil {
19223		invalidParams.Add(request.NewErrParamRequired("StageName"))
19224	}
19225	if s.StageName != nil && len(*s.StageName) < 1 {
19226		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
19227	}
19228
19229	if invalidParams.Len() > 0 {
19230		return invalidParams
19231	}
19232	return nil
19233}
19234
19235// SetRestApiId sets the RestApiId field's value.
19236func (s *GetStageInput) SetRestApiId(v string) *GetStageInput {
19237	s.RestApiId = &v
19238	return s
19239}
19240
19241// SetStageName sets the StageName field's value.
19242func (s *GetStageInput) SetStageName(v string) *GetStageInput {
19243	s.StageName = &v
19244	return s
19245}
19246
19247// Requests API Gateway to get information about one or more Stage resources.
19248type GetStagesInput struct {
19249	_ struct{} `type:"structure"`
19250
19251	// The stages' deployment identifiers.
19252	DeploymentId *string `location:"querystring" locationName:"deploymentId" type:"string"`
19253
19254	// [Required] The string identifier of the associated RestApi.
19255	//
19256	// RestApiId is a required field
19257	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19258}
19259
19260// String returns the string representation
19261func (s GetStagesInput) String() string {
19262	return awsutil.Prettify(s)
19263}
19264
19265// GoString returns the string representation
19266func (s GetStagesInput) GoString() string {
19267	return s.String()
19268}
19269
19270// Validate inspects the fields of the type to determine if they are valid.
19271func (s *GetStagesInput) Validate() error {
19272	invalidParams := request.ErrInvalidParams{Context: "GetStagesInput"}
19273	if s.RestApiId == nil {
19274		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19275	}
19276	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19277		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19278	}
19279
19280	if invalidParams.Len() > 0 {
19281		return invalidParams
19282	}
19283	return nil
19284}
19285
19286// SetDeploymentId sets the DeploymentId field's value.
19287func (s *GetStagesInput) SetDeploymentId(v string) *GetStagesInput {
19288	s.DeploymentId = &v
19289	return s
19290}
19291
19292// SetRestApiId sets the RestApiId field's value.
19293func (s *GetStagesInput) SetRestApiId(v string) *GetStagesInput {
19294	s.RestApiId = &v
19295	return s
19296}
19297
19298// A list of Stage resources that are associated with the ApiKey resource.
19299//
19300// Deploying API in Stages (https://docs.aws.amazon.com/apigateway/latest/developerguide/stages.html)
19301type GetStagesOutput struct {
19302	_ struct{} `type:"structure"`
19303
19304	// The current page of elements from this collection.
19305	Item []*Stage `locationName:"item" type:"list"`
19306}
19307
19308// String returns the string representation
19309func (s GetStagesOutput) String() string {
19310	return awsutil.Prettify(s)
19311}
19312
19313// GoString returns the string representation
19314func (s GetStagesOutput) GoString() string {
19315	return s.String()
19316}
19317
19318// SetItem sets the Item field's value.
19319func (s *GetStagesOutput) SetItem(v []*Stage) *GetStagesOutput {
19320	s.Item = v
19321	return s
19322}
19323
19324// Gets the Tags collection for a given resource.
19325type GetTagsInput struct {
19326	_ struct{} `type:"structure"`
19327
19328	// (Not currently supported) The maximum number of returned results per page.
19329	// The default value is 25 and the maximum value is 500.
19330	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19331
19332	// (Not currently supported) The current pagination position in the paged result
19333	// set.
19334	Position *string `location:"querystring" locationName:"position" type:"string"`
19335
19336	// [Required] The ARN of a resource that can be tagged.
19337	//
19338	// ResourceArn is a required field
19339	ResourceArn *string `location:"uri" locationName:"resource_arn" type:"string" required:"true"`
19340}
19341
19342// String returns the string representation
19343func (s GetTagsInput) String() string {
19344	return awsutil.Prettify(s)
19345}
19346
19347// GoString returns the string representation
19348func (s GetTagsInput) GoString() string {
19349	return s.String()
19350}
19351
19352// Validate inspects the fields of the type to determine if they are valid.
19353func (s *GetTagsInput) Validate() error {
19354	invalidParams := request.ErrInvalidParams{Context: "GetTagsInput"}
19355	if s.ResourceArn == nil {
19356		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
19357	}
19358	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
19359		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
19360	}
19361
19362	if invalidParams.Len() > 0 {
19363		return invalidParams
19364	}
19365	return nil
19366}
19367
19368// SetLimit sets the Limit field's value.
19369func (s *GetTagsInput) SetLimit(v int64) *GetTagsInput {
19370	s.Limit = &v
19371	return s
19372}
19373
19374// SetPosition sets the Position field's value.
19375func (s *GetTagsInput) SetPosition(v string) *GetTagsInput {
19376	s.Position = &v
19377	return s
19378}
19379
19380// SetResourceArn sets the ResourceArn field's value.
19381func (s *GetTagsInput) SetResourceArn(v string) *GetTagsInput {
19382	s.ResourceArn = &v
19383	return s
19384}
19385
19386// The collection of tags. Each tag element is associated with a given resource.
19387type GetTagsOutput struct {
19388	_ struct{} `type:"structure"`
19389
19390	// The collection of tags. Each tag element is associated with a given resource.
19391	Tags map[string]*string `locationName:"tags" type:"map"`
19392}
19393
19394// String returns the string representation
19395func (s GetTagsOutput) String() string {
19396	return awsutil.Prettify(s)
19397}
19398
19399// GoString returns the string representation
19400func (s GetTagsOutput) GoString() string {
19401	return s.String()
19402}
19403
19404// SetTags sets the Tags field's value.
19405func (s *GetTagsOutput) SetTags(v map[string]*string) *GetTagsOutput {
19406	s.Tags = v
19407	return s
19408}
19409
19410// The GET request to get the usage data of a usage plan in a specified time
19411// interval.
19412type GetUsageInput struct {
19413	_ struct{} `type:"structure"`
19414
19415	// [Required] The ending date (e.g., 2016-12-31) of the usage data.
19416	//
19417	// EndDate is a required field
19418	EndDate *string `location:"querystring" locationName:"endDate" type:"string" required:"true"`
19419
19420	// The Id of the API key associated with the resultant usage data.
19421	KeyId *string `location:"querystring" locationName:"keyId" type:"string"`
19422
19423	// The maximum number of returned results per page. The default value is 25
19424	// and the maximum value is 500.
19425	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19426
19427	// The current pagination position in the paged result set.
19428	Position *string `location:"querystring" locationName:"position" type:"string"`
19429
19430	// [Required] The starting date (e.g., 2016-01-01) of the usage data.
19431	//
19432	// StartDate is a required field
19433	StartDate *string `location:"querystring" locationName:"startDate" type:"string" required:"true"`
19434
19435	// [Required] The Id of the usage plan associated with the usage data.
19436	//
19437	// UsagePlanId is a required field
19438	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
19439}
19440
19441// String returns the string representation
19442func (s GetUsageInput) String() string {
19443	return awsutil.Prettify(s)
19444}
19445
19446// GoString returns the string representation
19447func (s GetUsageInput) GoString() string {
19448	return s.String()
19449}
19450
19451// Validate inspects the fields of the type to determine if they are valid.
19452func (s *GetUsageInput) Validate() error {
19453	invalidParams := request.ErrInvalidParams{Context: "GetUsageInput"}
19454	if s.EndDate == nil {
19455		invalidParams.Add(request.NewErrParamRequired("EndDate"))
19456	}
19457	if s.StartDate == nil {
19458		invalidParams.Add(request.NewErrParamRequired("StartDate"))
19459	}
19460	if s.UsagePlanId == nil {
19461		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
19462	}
19463	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
19464		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
19465	}
19466
19467	if invalidParams.Len() > 0 {
19468		return invalidParams
19469	}
19470	return nil
19471}
19472
19473// SetEndDate sets the EndDate field's value.
19474func (s *GetUsageInput) SetEndDate(v string) *GetUsageInput {
19475	s.EndDate = &v
19476	return s
19477}
19478
19479// SetKeyId sets the KeyId field's value.
19480func (s *GetUsageInput) SetKeyId(v string) *GetUsageInput {
19481	s.KeyId = &v
19482	return s
19483}
19484
19485// SetLimit sets the Limit field's value.
19486func (s *GetUsageInput) SetLimit(v int64) *GetUsageInput {
19487	s.Limit = &v
19488	return s
19489}
19490
19491// SetPosition sets the Position field's value.
19492func (s *GetUsageInput) SetPosition(v string) *GetUsageInput {
19493	s.Position = &v
19494	return s
19495}
19496
19497// SetStartDate sets the StartDate field's value.
19498func (s *GetUsageInput) SetStartDate(v string) *GetUsageInput {
19499	s.StartDate = &v
19500	return s
19501}
19502
19503// SetUsagePlanId sets the UsagePlanId field's value.
19504func (s *GetUsageInput) SetUsagePlanId(v string) *GetUsageInput {
19505	s.UsagePlanId = &v
19506	return s
19507}
19508
19509// The GET request to get a usage plan of a given plan identifier.
19510type GetUsagePlanInput struct {
19511	_ struct{} `type:"structure"`
19512
19513	// [Required] The identifier of the UsagePlan resource to be retrieved.
19514	//
19515	// UsagePlanId is a required field
19516	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
19517}
19518
19519// String returns the string representation
19520func (s GetUsagePlanInput) String() string {
19521	return awsutil.Prettify(s)
19522}
19523
19524// GoString returns the string representation
19525func (s GetUsagePlanInput) GoString() string {
19526	return s.String()
19527}
19528
19529// Validate inspects the fields of the type to determine if they are valid.
19530func (s *GetUsagePlanInput) Validate() error {
19531	invalidParams := request.ErrInvalidParams{Context: "GetUsagePlanInput"}
19532	if s.UsagePlanId == nil {
19533		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
19534	}
19535	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
19536		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
19537	}
19538
19539	if invalidParams.Len() > 0 {
19540		return invalidParams
19541	}
19542	return nil
19543}
19544
19545// SetUsagePlanId sets the UsagePlanId field's value.
19546func (s *GetUsagePlanInput) SetUsagePlanId(v string) *GetUsagePlanInput {
19547	s.UsagePlanId = &v
19548	return s
19549}
19550
19551// The GET request to get a usage plan key of a given key identifier.
19552type GetUsagePlanKeyInput struct {
19553	_ struct{} `type:"structure"`
19554
19555	// [Required] The key Id of the to-be-retrieved UsagePlanKey resource representing
19556	// a plan customer.
19557	//
19558	// KeyId is a required field
19559	KeyId *string `location:"uri" locationName:"keyId" type:"string" required:"true"`
19560
19561	// [Required] The Id of the UsagePlan resource representing the usage plan containing
19562	// the to-be-retrieved UsagePlanKey resource representing a plan customer.
19563	//
19564	// UsagePlanId is a required field
19565	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
19566}
19567
19568// String returns the string representation
19569func (s GetUsagePlanKeyInput) String() string {
19570	return awsutil.Prettify(s)
19571}
19572
19573// GoString returns the string representation
19574func (s GetUsagePlanKeyInput) GoString() string {
19575	return s.String()
19576}
19577
19578// Validate inspects the fields of the type to determine if they are valid.
19579func (s *GetUsagePlanKeyInput) Validate() error {
19580	invalidParams := request.ErrInvalidParams{Context: "GetUsagePlanKeyInput"}
19581	if s.KeyId == nil {
19582		invalidParams.Add(request.NewErrParamRequired("KeyId"))
19583	}
19584	if s.KeyId != nil && len(*s.KeyId) < 1 {
19585		invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
19586	}
19587	if s.UsagePlanId == nil {
19588		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
19589	}
19590	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
19591		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
19592	}
19593
19594	if invalidParams.Len() > 0 {
19595		return invalidParams
19596	}
19597	return nil
19598}
19599
19600// SetKeyId sets the KeyId field's value.
19601func (s *GetUsagePlanKeyInput) SetKeyId(v string) *GetUsagePlanKeyInput {
19602	s.KeyId = &v
19603	return s
19604}
19605
19606// SetUsagePlanId sets the UsagePlanId field's value.
19607func (s *GetUsagePlanKeyInput) SetUsagePlanId(v string) *GetUsagePlanKeyInput {
19608	s.UsagePlanId = &v
19609	return s
19610}
19611
19612// The GET request to get all the usage plan keys representing the API keys
19613// added to a specified usage plan.
19614type GetUsagePlanKeysInput struct {
19615	_ struct{} `type:"structure"`
19616
19617	// The maximum number of returned results per page. The default value is 25
19618	// and the maximum value is 500.
19619	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19620
19621	// A query parameter specifying the name of the to-be-returned usage plan keys.
19622	NameQuery *string `location:"querystring" locationName:"name" type:"string"`
19623
19624	// The current pagination position in the paged result set.
19625	Position *string `location:"querystring" locationName:"position" type:"string"`
19626
19627	// [Required] The Id of the UsagePlan resource representing the usage plan containing
19628	// the to-be-retrieved UsagePlanKey resource representing a plan customer.
19629	//
19630	// UsagePlanId is a required field
19631	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
19632}
19633
19634// String returns the string representation
19635func (s GetUsagePlanKeysInput) String() string {
19636	return awsutil.Prettify(s)
19637}
19638
19639// GoString returns the string representation
19640func (s GetUsagePlanKeysInput) GoString() string {
19641	return s.String()
19642}
19643
19644// Validate inspects the fields of the type to determine if they are valid.
19645func (s *GetUsagePlanKeysInput) Validate() error {
19646	invalidParams := request.ErrInvalidParams{Context: "GetUsagePlanKeysInput"}
19647	if s.UsagePlanId == nil {
19648		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
19649	}
19650	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
19651		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
19652	}
19653
19654	if invalidParams.Len() > 0 {
19655		return invalidParams
19656	}
19657	return nil
19658}
19659
19660// SetLimit sets the Limit field's value.
19661func (s *GetUsagePlanKeysInput) SetLimit(v int64) *GetUsagePlanKeysInput {
19662	s.Limit = &v
19663	return s
19664}
19665
19666// SetNameQuery sets the NameQuery field's value.
19667func (s *GetUsagePlanKeysInput) SetNameQuery(v string) *GetUsagePlanKeysInput {
19668	s.NameQuery = &v
19669	return s
19670}
19671
19672// SetPosition sets the Position field's value.
19673func (s *GetUsagePlanKeysInput) SetPosition(v string) *GetUsagePlanKeysInput {
19674	s.Position = &v
19675	return s
19676}
19677
19678// SetUsagePlanId sets the UsagePlanId field's value.
19679func (s *GetUsagePlanKeysInput) SetUsagePlanId(v string) *GetUsagePlanKeysInput {
19680	s.UsagePlanId = &v
19681	return s
19682}
19683
19684// Represents the collection of usage plan keys added to usage plans for the
19685// associated API keys and, possibly, other types of keys.
19686//
19687// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
19688type GetUsagePlanKeysOutput struct {
19689	_ struct{} `type:"structure"`
19690
19691	// The current page of elements from this collection.
19692	Items []*UsagePlanKey `locationName:"item" type:"list"`
19693
19694	Position *string `locationName:"position" type:"string"`
19695}
19696
19697// String returns the string representation
19698func (s GetUsagePlanKeysOutput) String() string {
19699	return awsutil.Prettify(s)
19700}
19701
19702// GoString returns the string representation
19703func (s GetUsagePlanKeysOutput) GoString() string {
19704	return s.String()
19705}
19706
19707// SetItems sets the Items field's value.
19708func (s *GetUsagePlanKeysOutput) SetItems(v []*UsagePlanKey) *GetUsagePlanKeysOutput {
19709	s.Items = v
19710	return s
19711}
19712
19713// SetPosition sets the Position field's value.
19714func (s *GetUsagePlanKeysOutput) SetPosition(v string) *GetUsagePlanKeysOutput {
19715	s.Position = &v
19716	return s
19717}
19718
19719// The GET request to get all the usage plans of the caller's account.
19720type GetUsagePlansInput struct {
19721	_ struct{} `type:"structure"`
19722
19723	// The identifier of the API key associated with the usage plans.
19724	KeyId *string `location:"querystring" locationName:"keyId" type:"string"`
19725
19726	// The maximum number of returned results per page. The default value is 25
19727	// and the maximum value is 500.
19728	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19729
19730	// The current pagination position in the paged result set.
19731	Position *string `location:"querystring" locationName:"position" type:"string"`
19732}
19733
19734// String returns the string representation
19735func (s GetUsagePlansInput) String() string {
19736	return awsutil.Prettify(s)
19737}
19738
19739// GoString returns the string representation
19740func (s GetUsagePlansInput) GoString() string {
19741	return s.String()
19742}
19743
19744// SetKeyId sets the KeyId field's value.
19745func (s *GetUsagePlansInput) SetKeyId(v string) *GetUsagePlansInput {
19746	s.KeyId = &v
19747	return s
19748}
19749
19750// SetLimit sets the Limit field's value.
19751func (s *GetUsagePlansInput) SetLimit(v int64) *GetUsagePlansInput {
19752	s.Limit = &v
19753	return s
19754}
19755
19756// SetPosition sets the Position field's value.
19757func (s *GetUsagePlansInput) SetPosition(v string) *GetUsagePlansInput {
19758	s.Position = &v
19759	return s
19760}
19761
19762// Represents a collection of usage plans for an AWS account.
19763//
19764// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
19765type GetUsagePlansOutput struct {
19766	_ struct{} `type:"structure"`
19767
19768	// The current page of elements from this collection.
19769	Items []*UsagePlan `locationName:"item" type:"list"`
19770
19771	Position *string `locationName:"position" type:"string"`
19772}
19773
19774// String returns the string representation
19775func (s GetUsagePlansOutput) String() string {
19776	return awsutil.Prettify(s)
19777}
19778
19779// GoString returns the string representation
19780func (s GetUsagePlansOutput) GoString() string {
19781	return s.String()
19782}
19783
19784// SetItems sets the Items field's value.
19785func (s *GetUsagePlansOutput) SetItems(v []*UsagePlan) *GetUsagePlansOutput {
19786	s.Items = v
19787	return s
19788}
19789
19790// SetPosition sets the Position field's value.
19791func (s *GetUsagePlansOutput) SetPosition(v string) *GetUsagePlansOutput {
19792	s.Position = &v
19793	return s
19794}
19795
19796// Gets a specified VPC link under the caller's account in a region.
19797type GetVpcLinkInput struct {
19798	_ struct{} `type:"structure"`
19799
19800	// [Required] The identifier of the VpcLink. It is used in an Integration to
19801	// reference this VpcLink.
19802	//
19803	// VpcLinkId is a required field
19804	VpcLinkId *string `location:"uri" locationName:"vpclink_id" type:"string" required:"true"`
19805}
19806
19807// String returns the string representation
19808func (s GetVpcLinkInput) String() string {
19809	return awsutil.Prettify(s)
19810}
19811
19812// GoString returns the string representation
19813func (s GetVpcLinkInput) GoString() string {
19814	return s.String()
19815}
19816
19817// Validate inspects the fields of the type to determine if they are valid.
19818func (s *GetVpcLinkInput) Validate() error {
19819	invalidParams := request.ErrInvalidParams{Context: "GetVpcLinkInput"}
19820	if s.VpcLinkId == nil {
19821		invalidParams.Add(request.NewErrParamRequired("VpcLinkId"))
19822	}
19823	if s.VpcLinkId != nil && len(*s.VpcLinkId) < 1 {
19824		invalidParams.Add(request.NewErrParamMinLen("VpcLinkId", 1))
19825	}
19826
19827	if invalidParams.Len() > 0 {
19828		return invalidParams
19829	}
19830	return nil
19831}
19832
19833// SetVpcLinkId sets the VpcLinkId field's value.
19834func (s *GetVpcLinkInput) SetVpcLinkId(v string) *GetVpcLinkInput {
19835	s.VpcLinkId = &v
19836	return s
19837}
19838
19839// Gets the VpcLinks collection under the caller's account in a selected region.
19840type GetVpcLinksInput struct {
19841	_ struct{} `type:"structure"`
19842
19843	// The maximum number of returned results per page. The default value is 25
19844	// and the maximum value is 500.
19845	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19846
19847	// The current pagination position in the paged result set.
19848	Position *string `location:"querystring" locationName:"position" type:"string"`
19849}
19850
19851// String returns the string representation
19852func (s GetVpcLinksInput) String() string {
19853	return awsutil.Prettify(s)
19854}
19855
19856// GoString returns the string representation
19857func (s GetVpcLinksInput) GoString() string {
19858	return s.String()
19859}
19860
19861// SetLimit sets the Limit field's value.
19862func (s *GetVpcLinksInput) SetLimit(v int64) *GetVpcLinksInput {
19863	s.Limit = &v
19864	return s
19865}
19866
19867// SetPosition sets the Position field's value.
19868func (s *GetVpcLinksInput) SetPosition(v string) *GetVpcLinksInput {
19869	s.Position = &v
19870	return s
19871}
19872
19873// The collection of VPC links under the caller's account in a region.
19874//
19875// Getting Started with Private Integrations (https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-with-private-integration.html),
19876// Set up Private Integrations (https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-private-integration.html)
19877type GetVpcLinksOutput struct {
19878	_ struct{} `type:"structure"`
19879
19880	// The current page of elements from this collection.
19881	Items []*UpdateVpcLinkOutput `locationName:"item" type:"list"`
19882
19883	Position *string `locationName:"position" type:"string"`
19884}
19885
19886// String returns the string representation
19887func (s GetVpcLinksOutput) String() string {
19888	return awsutil.Prettify(s)
19889}
19890
19891// GoString returns the string representation
19892func (s GetVpcLinksOutput) GoString() string {
19893	return s.String()
19894}
19895
19896// SetItems sets the Items field's value.
19897func (s *GetVpcLinksOutput) SetItems(v []*UpdateVpcLinkOutput) *GetVpcLinksOutput {
19898	s.Items = v
19899	return s
19900}
19901
19902// SetPosition sets the Position field's value.
19903func (s *GetVpcLinksOutput) SetPosition(v string) *GetVpcLinksOutput {
19904	s.Position = &v
19905	return s
19906}
19907
19908// The POST request to import API keys from an external source, such as a CSV-formatted
19909// file.
19910type ImportApiKeysInput struct {
19911	_ struct{} `type:"structure" payload:"Body"`
19912
19913	// The payload of the POST request to import API keys. For the payload format,
19914	// see API Key File Format (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-key-file-format.html).
19915	//
19916	// Body is a required field
19917	Body []byte `locationName:"body" type:"blob" required:"true"`
19918
19919	// A query parameter to indicate whether to rollback ApiKey importation (true)
19920	// or not (false) when error is encountered.
19921	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
19922
19923	// A query parameter to specify the input format to imported API keys. Currently,
19924	// only the csv format is supported.
19925	//
19926	// Format is a required field
19927	Format *string `location:"querystring" locationName:"format" type:"string" required:"true" enum:"ApiKeysFormat"`
19928}
19929
19930// String returns the string representation
19931func (s ImportApiKeysInput) String() string {
19932	return awsutil.Prettify(s)
19933}
19934
19935// GoString returns the string representation
19936func (s ImportApiKeysInput) GoString() string {
19937	return s.String()
19938}
19939
19940// Validate inspects the fields of the type to determine if they are valid.
19941func (s *ImportApiKeysInput) Validate() error {
19942	invalidParams := request.ErrInvalidParams{Context: "ImportApiKeysInput"}
19943	if s.Body == nil {
19944		invalidParams.Add(request.NewErrParamRequired("Body"))
19945	}
19946	if s.Format == nil {
19947		invalidParams.Add(request.NewErrParamRequired("Format"))
19948	}
19949
19950	if invalidParams.Len() > 0 {
19951		return invalidParams
19952	}
19953	return nil
19954}
19955
19956// SetBody sets the Body field's value.
19957func (s *ImportApiKeysInput) SetBody(v []byte) *ImportApiKeysInput {
19958	s.Body = v
19959	return s
19960}
19961
19962// SetFailOnWarnings sets the FailOnWarnings field's value.
19963func (s *ImportApiKeysInput) SetFailOnWarnings(v bool) *ImportApiKeysInput {
19964	s.FailOnWarnings = &v
19965	return s
19966}
19967
19968// SetFormat sets the Format field's value.
19969func (s *ImportApiKeysInput) SetFormat(v string) *ImportApiKeysInput {
19970	s.Format = &v
19971	return s
19972}
19973
19974// The identifier of an ApiKey used in a UsagePlan.
19975type ImportApiKeysOutput struct {
19976	_ struct{} `type:"structure"`
19977
19978	// A list of all the ApiKey identifiers.
19979	Ids []*string `locationName:"ids" type:"list"`
19980
19981	// A list of warning messages.
19982	Warnings []*string `locationName:"warnings" type:"list"`
19983}
19984
19985// String returns the string representation
19986func (s ImportApiKeysOutput) String() string {
19987	return awsutil.Prettify(s)
19988}
19989
19990// GoString returns the string representation
19991func (s ImportApiKeysOutput) GoString() string {
19992	return s.String()
19993}
19994
19995// SetIds sets the Ids field's value.
19996func (s *ImportApiKeysOutput) SetIds(v []*string) *ImportApiKeysOutput {
19997	s.Ids = v
19998	return s
19999}
20000
20001// SetWarnings sets the Warnings field's value.
20002func (s *ImportApiKeysOutput) SetWarnings(v []*string) *ImportApiKeysOutput {
20003	s.Warnings = v
20004	return s
20005}
20006
20007// Import documentation parts from an external (e.g., OpenAPI) definition file.
20008type ImportDocumentationPartsInput struct {
20009	_ struct{} `type:"structure" payload:"Body"`
20010
20011	// [Required] Raw byte array representing the to-be-imported documentation parts.
20012	// To import from an OpenAPI file, this is a JSON object.
20013	//
20014	// Body is a required field
20015	Body []byte `locationName:"body" type:"blob" required:"true"`
20016
20017	// A query parameter to specify whether to rollback the documentation importation
20018	// (true) or not (false) when a warning is encountered. The default value is
20019	// false.
20020	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
20021
20022	// A query parameter to indicate whether to overwrite (OVERWRITE) any existing
20023	// DocumentationParts definition or to merge (MERGE) the new definition into
20024	// the existing one. The default value is MERGE.
20025	Mode *string `location:"querystring" locationName:"mode" type:"string" enum:"PutMode"`
20026
20027	// [Required] The string identifier of the associated RestApi.
20028	//
20029	// RestApiId is a required field
20030	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
20031}
20032
20033// String returns the string representation
20034func (s ImportDocumentationPartsInput) String() string {
20035	return awsutil.Prettify(s)
20036}
20037
20038// GoString returns the string representation
20039func (s ImportDocumentationPartsInput) GoString() string {
20040	return s.String()
20041}
20042
20043// Validate inspects the fields of the type to determine if they are valid.
20044func (s *ImportDocumentationPartsInput) Validate() error {
20045	invalidParams := request.ErrInvalidParams{Context: "ImportDocumentationPartsInput"}
20046	if s.Body == nil {
20047		invalidParams.Add(request.NewErrParamRequired("Body"))
20048	}
20049	if s.RestApiId == nil {
20050		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
20051	}
20052	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
20053		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
20054	}
20055
20056	if invalidParams.Len() > 0 {
20057		return invalidParams
20058	}
20059	return nil
20060}
20061
20062// SetBody sets the Body field's value.
20063func (s *ImportDocumentationPartsInput) SetBody(v []byte) *ImportDocumentationPartsInput {
20064	s.Body = v
20065	return s
20066}
20067
20068// SetFailOnWarnings sets the FailOnWarnings field's value.
20069func (s *ImportDocumentationPartsInput) SetFailOnWarnings(v bool) *ImportDocumentationPartsInput {
20070	s.FailOnWarnings = &v
20071	return s
20072}
20073
20074// SetMode sets the Mode field's value.
20075func (s *ImportDocumentationPartsInput) SetMode(v string) *ImportDocumentationPartsInput {
20076	s.Mode = &v
20077	return s
20078}
20079
20080// SetRestApiId sets the RestApiId field's value.
20081func (s *ImportDocumentationPartsInput) SetRestApiId(v string) *ImportDocumentationPartsInput {
20082	s.RestApiId = &v
20083	return s
20084}
20085
20086// A collection of the imported DocumentationPart identifiers.
20087//
20088// This is used to return the result when documentation parts in an external
20089// (e.g., OpenAPI) file are imported into API Gateway
20090//
20091// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
20092// documentationpart:import (https://docs.aws.amazon.com/apigateway/api-reference/link-relation/documentationpart-import/),
20093// DocumentationPart
20094type ImportDocumentationPartsOutput struct {
20095	_ struct{} `type:"structure"`
20096
20097	// A list of the returned documentation part identifiers.
20098	Ids []*string `locationName:"ids" type:"list"`
20099
20100	// A list of warning messages reported during import of documentation parts.
20101	Warnings []*string `locationName:"warnings" type:"list"`
20102}
20103
20104// String returns the string representation
20105func (s ImportDocumentationPartsOutput) String() string {
20106	return awsutil.Prettify(s)
20107}
20108
20109// GoString returns the string representation
20110func (s ImportDocumentationPartsOutput) GoString() string {
20111	return s.String()
20112}
20113
20114// SetIds sets the Ids field's value.
20115func (s *ImportDocumentationPartsOutput) SetIds(v []*string) *ImportDocumentationPartsOutput {
20116	s.Ids = v
20117	return s
20118}
20119
20120// SetWarnings sets the Warnings field's value.
20121func (s *ImportDocumentationPartsOutput) SetWarnings(v []*string) *ImportDocumentationPartsOutput {
20122	s.Warnings = v
20123	return s
20124}
20125
20126// A POST request to import an API to API Gateway using an input of an API definition
20127// file.
20128type ImportRestApiInput struct {
20129	_ struct{} `type:"structure" payload:"Body"`
20130
20131	// [Required] The POST request body containing external API definitions. Currently,
20132	// only OpenAPI definition JSON/YAML files are supported. The maximum size of
20133	// the API definition file is 6MB.
20134	//
20135	// Body is a required field
20136	Body []byte `locationName:"body" type:"blob" required:"true"`
20137
20138	// A query parameter to indicate whether to rollback the API creation (true)
20139	// or not (false) when a warning is encountered. The default value is false.
20140	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
20141
20142	// A key-value map of context-specific query string parameters specifying the
20143	// behavior of different API importing operations. The following shows operation-specific
20144	// parameters and their supported values.
20145	//
20146	// To exclude DocumentationParts from the import, set parameters as ignore=documentation.
20147	//
20148	// To configure the endpoint type, set parameters as endpointConfigurationTypes=EDGE,
20149	// endpointConfigurationTypes=REGIONAL, or endpointConfigurationTypes=PRIVATE.
20150	// The default endpoint type is EDGE.
20151	//
20152	// To handle imported basepath, set parameters as basepath=ignore, basepath=prepend
20153	// or basepath=split.
20154	//
20155	// For example, the AWS CLI command to exclude documentation from the imported
20156	// API is:
20157	//
20158	//    aws apigateway import-rest-api --parameters ignore=documentation --body
20159	//    'file:///path/to/imported-api-body.json'
20160	//
20161	// The AWS CLI command to set the regional endpoint on the imported API is:
20162	//
20163	//    aws apigateway import-rest-api --parameters endpointConfigurationTypes=REGIONAL
20164	//    --body 'file:///path/to/imported-api-body.json'
20165	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
20166}
20167
20168// String returns the string representation
20169func (s ImportRestApiInput) String() string {
20170	return awsutil.Prettify(s)
20171}
20172
20173// GoString returns the string representation
20174func (s ImportRestApiInput) GoString() string {
20175	return s.String()
20176}
20177
20178// Validate inspects the fields of the type to determine if they are valid.
20179func (s *ImportRestApiInput) Validate() error {
20180	invalidParams := request.ErrInvalidParams{Context: "ImportRestApiInput"}
20181	if s.Body == nil {
20182		invalidParams.Add(request.NewErrParamRequired("Body"))
20183	}
20184
20185	if invalidParams.Len() > 0 {
20186		return invalidParams
20187	}
20188	return nil
20189}
20190
20191// SetBody sets the Body field's value.
20192func (s *ImportRestApiInput) SetBody(v []byte) *ImportRestApiInput {
20193	s.Body = v
20194	return s
20195}
20196
20197// SetFailOnWarnings sets the FailOnWarnings field's value.
20198func (s *ImportRestApiInput) SetFailOnWarnings(v bool) *ImportRestApiInput {
20199	s.FailOnWarnings = &v
20200	return s
20201}
20202
20203// SetParameters sets the Parameters field's value.
20204func (s *ImportRestApiInput) SetParameters(v map[string]*string) *ImportRestApiInput {
20205	s.Parameters = v
20206	return s
20207}
20208
20209// Represents an HTTP, HTTP_PROXY, AWS, AWS_PROXY, or Mock integration.
20210//
20211// In the API Gateway console, the built-in Lambda integration is an AWS integration.
20212//
20213// Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
20214type Integration struct {
20215	_ struct{} `type:"structure"`
20216
20217	// A list of request parameters whose values API Gateway caches. To be valid
20218	// values for cacheKeyParameters, these parameters must also be specified for
20219	// Method requestParameters.
20220	CacheKeyParameters []*string `locationName:"cacheKeyParameters" type:"list"`
20221
20222	// Specifies a group of related cached parameters. By default, API Gateway uses
20223	// the resource ID as the cacheNamespace. You can specify the same cacheNamespace
20224	// across resources to return the same cached data for requests to different
20225	// resources.
20226	CacheNamespace *string `locationName:"cacheNamespace" type:"string"`
20227
20228	// The (id (https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id))
20229	// of the VpcLink used for the integration when connectionType=VPC_LINK and
20230	// undefined, otherwise.
20231	ConnectionId *string `locationName:"connectionId" type:"string"`
20232
20233	// The type of the network connection to the integration endpoint. The valid
20234	// value is INTERNET for connections through the public routable internet or
20235	// VPC_LINK for private connections between API Gateway and a network load balancer
20236	// in a VPC. The default value is INTERNET.
20237	ConnectionType *string `locationName:"connectionType" type:"string" enum:"ConnectionType"`
20238
20239	// Specifies how to handle request payload content type conversions. Supported
20240	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
20241	//
20242	//    * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded
20243	//    string to the corresponding binary blob.
20244	//
20245	//    * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a
20246	//    Base64-encoded string.
20247	//
20248	// If this property is not defined, the request payload will be passed through
20249	// from the method request to integration request without modification, provided
20250	// that the passthroughBehavior is configured to support payload pass-through.
20251	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
20252
20253	// Specifies the credentials required for the integration, if any. For AWS integrations,
20254	// three options are available. To specify an IAM Role for API Gateway to assume,
20255	// use the role's Amazon Resource Name (ARN). To require that the caller's identity
20256	// be passed through from the request, specify the string arn:aws:iam::\*:user/\*.
20257	// To use resource-based permissions on supported AWS services, specify null.
20258	Credentials *string `locationName:"credentials" type:"string"`
20259
20260	// Specifies the integration's HTTP method type.
20261	HttpMethod *string `locationName:"httpMethod" type:"string"`
20262
20263	// Specifies the integration's responses.
20264	//
20265	// Example: Get integration responses of a method
20266	//
20267	// Request
20268	//   GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200
20269	//   HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
20270	//   X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request,
20271	//   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
20272	// Response
20273	//
20274	// The successful response returns 200 OK status and a payload as follows:
20275	//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
20276	//  "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
20277	//  "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
20278	//  }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
20279	//  } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'"
20280	//  }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream
20281	//  in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n"
20282	//  }, "statusCode": "200" }
20283	//
20284	// Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
20285	IntegrationResponses map[string]*IntegrationResponse `locationName:"integrationResponses" type:"map"`
20286
20287	// Specifies how the method request body of an unmapped content type will be
20288	// passed through the integration request to the back end without transformation.
20289	// A content type is unmapped if no mapping template is defined in the integration
20290	// or the content type does not match any of the mapped content types, as specified
20291	// in requestTemplates. The valid value is one of the following:
20292	//
20293	//    * WHEN_NO_MATCH: passes the method request body through the integration
20294	//    request to the back end without transformation when the method request
20295	//    content type does not match any content type associated with the mapping
20296	//    templates defined in the integration request.
20297	//
20298	//    * WHEN_NO_TEMPLATES: passes the method request body through the integration
20299	//    request to the back end without transformation when no mapping template
20300	//    is defined in the integration request. If a template is defined when this
20301	//    option is selected, the method request of an unmapped content-type will
20302	//    be rejected with an HTTP 415 Unsupported Media Type response.
20303	//
20304	//    * NEVER: rejects the method request with an HTTP 415 Unsupported Media
20305	//    Type response when either the method request content type does not match
20306	//    any content type associated with the mapping templates defined in the
20307	//    integration request or no mapping template is defined in the integration
20308	//    request.
20309	PassthroughBehavior *string `locationName:"passthroughBehavior" type:"string"`
20310
20311	// A key-value map specifying request parameters that are passed from the method
20312	// request to the back end. The key is an integration request parameter name
20313	// and the associated value is a method request parameter value or static value
20314	// that must be enclosed within single quotes and pre-encoded as required by
20315	// the back end. The method request parameter value must match the pattern of
20316	// method.request.{location}.{name}, where location is querystring, path, or
20317	// header and name must be a valid and unique method request parameter name.
20318	RequestParameters map[string]*string `locationName:"requestParameters" type:"map"`
20319
20320	// Represents a map of Velocity templates that are applied on the request payload
20321	// based on the value of the Content-Type header sent by the client. The content
20322	// type value is the key in this map, and the template (as a String) is the
20323	// value.
20324	RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
20325
20326	// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000
20327	// milliseconds or 29 seconds.
20328	TimeoutInMillis *int64 `locationName:"timeoutInMillis" type:"integer"`
20329
20330	// Specifies the TLS configuration for an integration.
20331	TlsConfig *TlsConfig `locationName:"tlsConfig" type:"structure"`
20332
20333	// Specifies an API method integration type. The valid value is one of the following:
20334	//
20335	//    * AWS: for integrating the API method request with an AWS service action,
20336	//    including the Lambda function-invoking action. With the Lambda function-invoking
20337	//    action, this is referred to as the Lambda custom integration. With any
20338	//    other AWS service action, this is known as AWS integration.
20339	//
20340	//    * AWS_PROXY: for integrating the API method request with the Lambda function-invoking
20341	//    action with the client request passed through as-is. This integration
20342	//    is also referred to as the Lambda proxy integration.
20343	//
20344	//    * HTTP: for integrating the API method request with an HTTP endpoint,
20345	//    including a private HTTP endpoint within a VPC. This integration is also
20346	//    referred to as the HTTP custom integration.
20347	//
20348	//    * HTTP_PROXY: for integrating the API method request with an HTTP endpoint,
20349	//    including a private HTTP endpoint within a VPC, with the client request
20350	//    passed through as-is. This is also referred to as the HTTP proxy integration.
20351	//
20352	//    * MOCK: for integrating the API method request with API Gateway as a "loop-back"
20353	//    endpoint without invoking any backend.
20354	//
20355	// For the HTTP and HTTP proxy integrations, each integration can specify a
20356	// protocol (http/https), port and path. Standard 80 and 443 ports are supported
20357	// as well as custom ports above 1024. An HTTP or HTTP proxy integration with
20358	// a connectionType of VPC_LINK is referred to as a private integration and
20359	// uses a VpcLink to connect API Gateway to a network load balancer of a VPC.
20360	Type *string `locationName:"type" type:"string" enum:"IntegrationType"`
20361
20362	// Specifies Uniform Resource Identifier (URI) of the integration endpoint.
20363	//
20364	//    * For HTTP or HTTP_PROXY integrations, the URI must be a fully formed,
20365	//    encoded HTTP(S) URL according to the RFC-3986 specification (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier),
20366	//    for either standard integration, where connectionType is not VPC_LINK,
20367	//    or private integration, where connectionType is VPC_LINK. For a private
20368	//    HTTP integration, the URI is not used for routing.
20369	//
20370	//    * For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}.
20371	//    Here, {Region} is the API Gateway region (e.g., us-east-1); {service}
20372	//    is the name of the integrated AWS service (e.g., s3); and {subdomain}
20373	//    is a designated subdomain supported by certain AWS service for fast host-name
20374	//    lookup. action can be used for an AWS service action-based API, using
20375	//    an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api}
20376	//    refers to a supported action {name} plus any required input parameters.
20377	//    Alternatively, path can be used for an AWS service path-based API. The
20378	//    ensuing service_api refers to the path to an AWS service resource, including
20379	//    the region of the integrated AWS service, if applicable. For example,
20380	//    for integration with the S3 API of GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html),
20381	//    the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}
20382	//    or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}
20383	Uri *string `locationName:"uri" type:"string"`
20384}
20385
20386// String returns the string representation
20387func (s Integration) String() string {
20388	return awsutil.Prettify(s)
20389}
20390
20391// GoString returns the string representation
20392func (s Integration) GoString() string {
20393	return s.String()
20394}
20395
20396// SetCacheKeyParameters sets the CacheKeyParameters field's value.
20397func (s *Integration) SetCacheKeyParameters(v []*string) *Integration {
20398	s.CacheKeyParameters = v
20399	return s
20400}
20401
20402// SetCacheNamespace sets the CacheNamespace field's value.
20403func (s *Integration) SetCacheNamespace(v string) *Integration {
20404	s.CacheNamespace = &v
20405	return s
20406}
20407
20408// SetConnectionId sets the ConnectionId field's value.
20409func (s *Integration) SetConnectionId(v string) *Integration {
20410	s.ConnectionId = &v
20411	return s
20412}
20413
20414// SetConnectionType sets the ConnectionType field's value.
20415func (s *Integration) SetConnectionType(v string) *Integration {
20416	s.ConnectionType = &v
20417	return s
20418}
20419
20420// SetContentHandling sets the ContentHandling field's value.
20421func (s *Integration) SetContentHandling(v string) *Integration {
20422	s.ContentHandling = &v
20423	return s
20424}
20425
20426// SetCredentials sets the Credentials field's value.
20427func (s *Integration) SetCredentials(v string) *Integration {
20428	s.Credentials = &v
20429	return s
20430}
20431
20432// SetHttpMethod sets the HttpMethod field's value.
20433func (s *Integration) SetHttpMethod(v string) *Integration {
20434	s.HttpMethod = &v
20435	return s
20436}
20437
20438// SetIntegrationResponses sets the IntegrationResponses field's value.
20439func (s *Integration) SetIntegrationResponses(v map[string]*IntegrationResponse) *Integration {
20440	s.IntegrationResponses = v
20441	return s
20442}
20443
20444// SetPassthroughBehavior sets the PassthroughBehavior field's value.
20445func (s *Integration) SetPassthroughBehavior(v string) *Integration {
20446	s.PassthroughBehavior = &v
20447	return s
20448}
20449
20450// SetRequestParameters sets the RequestParameters field's value.
20451func (s *Integration) SetRequestParameters(v map[string]*string) *Integration {
20452	s.RequestParameters = v
20453	return s
20454}
20455
20456// SetRequestTemplates sets the RequestTemplates field's value.
20457func (s *Integration) SetRequestTemplates(v map[string]*string) *Integration {
20458	s.RequestTemplates = v
20459	return s
20460}
20461
20462// SetTimeoutInMillis sets the TimeoutInMillis field's value.
20463func (s *Integration) SetTimeoutInMillis(v int64) *Integration {
20464	s.TimeoutInMillis = &v
20465	return s
20466}
20467
20468// SetTlsConfig sets the TlsConfig field's value.
20469func (s *Integration) SetTlsConfig(v *TlsConfig) *Integration {
20470	s.TlsConfig = v
20471	return s
20472}
20473
20474// SetType sets the Type field's value.
20475func (s *Integration) SetType(v string) *Integration {
20476	s.Type = &v
20477	return s
20478}
20479
20480// SetUri sets the Uri field's value.
20481func (s *Integration) SetUri(v string) *Integration {
20482	s.Uri = &v
20483	return s
20484}
20485
20486// Represents an integration response. The status code must map to an existing
20487// MethodResponse, and parameters and templates can be used to transform the
20488// back-end response.
20489//
20490// Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
20491type IntegrationResponse struct {
20492	_ struct{} `type:"structure"`
20493
20494	// Specifies how to handle response payload content type conversions. Supported
20495	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
20496	//
20497	//    * CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded
20498	//    string to the corresponding binary blob.
20499	//
20500	//    * CONVERT_TO_TEXT: Converts a response payload from a binary blob to a
20501	//    Base64-encoded string.
20502	//
20503	// If this property is not defined, the response payload will be passed through
20504	// from the integration response to the method response without modification.
20505	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
20506
20507	// A key-value map specifying response parameters that are passed to the method
20508	// response from the back end. The key is a method response header parameter
20509	// name and the mapped value is an integration response header value, a static
20510	// value enclosed within a pair of single quotes, or a JSON expression from
20511	// the integration response body. The mapping key must match the pattern of
20512	// method.response.header.{name}, where name is a valid and unique header name.
20513	// The mapped non-static value must match the pattern of integration.response.header.{name}
20514	// or integration.response.body.{JSON-expression}, where name is a valid and
20515	// unique response header name and JSON-expression is a valid JSON expression
20516	// without the $ prefix.
20517	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
20518
20519	// Specifies the templates used to transform the integration response body.
20520	// Response templates are represented as a key/value map, with a content-type
20521	// as the key and a template as the value.
20522	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
20523
20524	// Specifies the regular expression (regex) pattern used to choose an integration
20525	// response based on the response from the back end. For example, if the success
20526	// response returns nothing and the error response returns some string, you
20527	// could use the .+ regex to match error response. However, make sure that the
20528	// error response does not contain any newline (\n) character in such cases.
20529	// If the back end is an AWS Lambda function, the AWS Lambda function error
20530	// header is matched. For all other HTTP and AWS back ends, the HTTP status
20531	// code is matched.
20532	SelectionPattern *string `locationName:"selectionPattern" type:"string"`
20533
20534	// Specifies the status code that is used to map the integration response to
20535	// an existing MethodResponse.
20536	StatusCode *string `locationName:"statusCode" type:"string"`
20537}
20538
20539// String returns the string representation
20540func (s IntegrationResponse) String() string {
20541	return awsutil.Prettify(s)
20542}
20543
20544// GoString returns the string representation
20545func (s IntegrationResponse) GoString() string {
20546	return s.String()
20547}
20548
20549// SetContentHandling sets the ContentHandling field's value.
20550func (s *IntegrationResponse) SetContentHandling(v string) *IntegrationResponse {
20551	s.ContentHandling = &v
20552	return s
20553}
20554
20555// SetResponseParameters sets the ResponseParameters field's value.
20556func (s *IntegrationResponse) SetResponseParameters(v map[string]*string) *IntegrationResponse {
20557	s.ResponseParameters = v
20558	return s
20559}
20560
20561// SetResponseTemplates sets the ResponseTemplates field's value.
20562func (s *IntegrationResponse) SetResponseTemplates(v map[string]*string) *IntegrationResponse {
20563	s.ResponseTemplates = v
20564	return s
20565}
20566
20567// SetSelectionPattern sets the SelectionPattern field's value.
20568func (s *IntegrationResponse) SetSelectionPattern(v string) *IntegrationResponse {
20569	s.SelectionPattern = &v
20570	return s
20571}
20572
20573// SetStatusCode sets the StatusCode field's value.
20574func (s *IntegrationResponse) SetStatusCode(v string) *IntegrationResponse {
20575	s.StatusCode = &v
20576	return s
20577}
20578
20579// The request exceeded the rate limit. Retry after the specified time period.
20580type LimitExceededException struct {
20581	_            struct{}                  `type:"structure"`
20582	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20583
20584	Message_ *string `locationName:"message" type:"string"`
20585
20586	RetryAfterSeconds *string `location:"header" locationName:"Retry-After" type:"string"`
20587}
20588
20589// String returns the string representation
20590func (s LimitExceededException) String() string {
20591	return awsutil.Prettify(s)
20592}
20593
20594// GoString returns the string representation
20595func (s LimitExceededException) GoString() string {
20596	return s.String()
20597}
20598
20599func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
20600	return &LimitExceededException{
20601		RespMetadata: v,
20602	}
20603}
20604
20605// Code returns the exception type name.
20606func (s *LimitExceededException) Code() string {
20607	return "LimitExceededException"
20608}
20609
20610// Message returns the exception's message.
20611func (s *LimitExceededException) Message() string {
20612	if s.Message_ != nil {
20613		return *s.Message_
20614	}
20615	return ""
20616}
20617
20618// OrigErr always returns nil, satisfies awserr.Error interface.
20619func (s *LimitExceededException) OrigErr() error {
20620	return nil
20621}
20622
20623func (s *LimitExceededException) Error() string {
20624	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
20625}
20626
20627// Status code returns the HTTP status code for the request's response error.
20628func (s *LimitExceededException) StatusCode() int {
20629	return s.RespMetadata.StatusCode
20630}
20631
20632// RequestID returns the service's response RequestID for request.
20633func (s *LimitExceededException) RequestID() string {
20634	return s.RespMetadata.RequestID
20635}
20636
20637// Represents a client-facing interface by which the client calls the API to
20638// access back-end resources. A Method resource is integrated with an Integration
20639// resource. Both consist of a request and one or more responses. The method
20640// request takes the client input that is passed to the back end through the
20641// integration request. A method response returns the output from the back end
20642// to the client through an integration response. A method request is embodied
20643// in a Method resource, whereas an integration request is embodied in an Integration
20644// resource. On the other hand, a method response is represented by a MethodResponse
20645// resource, whereas an integration response is represented by an IntegrationResponse
20646// resource.
20647//
20648// Example: Retrive the GET method on a specified resource
20649//
20650// Request
20651//
20652// The following example request retrieves the information about the GET method
20653// on an API resource (3kzxbg5sa2) of an API (fugvjdxtri).
20654//  GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET HTTP/1.1 Content-Type:
20655//  application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T210259Z
20656//  Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request,
20657//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
20658// Response
20659//
20660// The successful response returns a 200 OK status code and a payload similar
20661// to the following:
20662//  { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html",
20663//  "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
20664//  "name": "integrationresponse", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html",
20665//  "name": "method", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
20666//  "name": "methodresponse", "templated": true } ], "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET",
20667//  "name": "GET", "title": "GET" }, "integration:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
20668//  }, "method:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
20669//  }, "method:integration": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
20670//  }, "method:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
20671//  "name": "200", "title": "200" }, "method:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
20672//  }, "methodresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}",
20673//  "templated": true } }, "apiKeyRequired": true, "authorizationType": "NONE",
20674//  "httpMethod": "GET", "_embedded": { "method:integration": { "_links": {
20675//  "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
20676//  }, "integration:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
20677//  }, "integration:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
20678//  "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
20679//  }, "integrationresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}",
20680//  "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "3kzxbg5sa2",
20681//  "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod":
20682//  "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": { "integration.request.header.Content-Type":
20683//  "'application/x-amz-json-1.1'" }, "requestTemplates": { "application/json":
20684//  "{\n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams",
20685//  "_embedded": { "integration:responses": { "_links": { "self": { "href":
20686//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
20687//  "name": "200", "title": "200" }, "integrationresponse:delete": { "href":
20688//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
20689//  }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
20690//  } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'"
20691//  }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E\")"
20692//  }, "statusCode": "200" } } }, "method:responses": { "_links": { "self":
20693//  { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
20694//  "name": "200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
20695//  }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
20696//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
20697//  { "method.response.header.Content-Type": false }, "statusCode": "200" }
20698//  } }
20699// In the example above, the response template for the 200 OK response maps
20700// the JSON output from the ListStreams action in the back end to an XML output.
20701// The mapping template is URL-encoded as %3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E
20702// and the output is decoded using the $util.urlDecode() (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-templat-reference)
20703// helper function.
20704//
20705// MethodResponse, Integration, IntegrationResponse, Resource, Set up an API's
20706// method (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings.html)
20707type Method struct {
20708	_ struct{} `type:"structure"`
20709
20710	// A boolean flag specifying whether a valid ApiKey is required to invoke this
20711	// method.
20712	ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"`
20713
20714	// A list of authorization scopes configured on the method. The scopes are used
20715	// with a COGNITO_USER_POOLS authorizer to authorize the method invocation.
20716	// The authorization works by matching the method scopes against the scopes
20717	// parsed from the access token in the incoming request. The method invocation
20718	// is authorized if any method scopes matches a claimed scope in the access
20719	// token. Otherwise, the invocation is not authorized. When the method scope
20720	// is configured, the client must provide an access token instead of an identity
20721	// token for authorization purposes.
20722	AuthorizationScopes []*string `locationName:"authorizationScopes" type:"list"`
20723
20724	// The method's authorization type. Valid values are NONE for open access, AWS_IAM
20725	// for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS
20726	// for using a Cognito user pool.
20727	AuthorizationType *string `locationName:"authorizationType" type:"string"`
20728
20729	// The identifier of an Authorizer to use on this method. The authorizationType
20730	// must be CUSTOM.
20731	AuthorizerId *string `locationName:"authorizerId" type:"string"`
20732
20733	// The method's HTTP verb.
20734	HttpMethod *string `locationName:"httpMethod" type:"string"`
20735
20736	// Gets the method's integration responsible for passing the client-submitted
20737	// request to the back end and performing necessary transformations to make
20738	// the request compliant with the back end.
20739	//
20740	// Example:
20741	//
20742	// Request
20743	//   GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration HTTP/1.1
20744	//   Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
20745	//   Content-Length: 117 X-Amz-Date: 20160613T213210Z Authorization: AWS4-HMAC-SHA256
20746	//   Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request,
20747	//   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
20748	// Response
20749	//
20750	// The successful response returns a 200 OK status code and a payload similar
20751	// to the following:
20752	//  { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html",
20753	//  "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
20754	//  "name": "integrationresponse", "templated": true } ], "self": { "href":
20755	//  "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:delete":
20756	//  { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration"
20757	//  }, "integration:responses": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200",
20758	//  "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration"
20759	//  }, "integrationresponse:put": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/{status_code}",
20760	//  "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "0cjtch",
20761	//  "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod":
20762	//  "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestTemplates": { "application/json":
20763	//  "{\n \"a\": \"$input.params('operand1')\",\n \"b\": \"$input.params('operand2')\",
20764	//  \n \"op\": \"$input.params('operator')\" \n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-west-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:Calc/invocations",
20765	//  "_embedded": { "integration:responses": { "_links": { "self": { "href":
20766	//  "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200",
20767	//  "name": "200", "title": "200" }, "integrationresponse:delete": { "href":
20768	//  "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200"
20769	//  }, "integrationresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200"
20770	//  } }, "responseParameters": { "method.response.header.operator": "integration.response.body.op",
20771	//  "method.response.header.operand_2": "integration.response.body.b", "method.response.header.operand_1":
20772	//  "integration.response.body.a" }, "responseTemplates": { "application/json":
20773	//  "#set($res = $input.path('$'))\n{\n \"result\": \"$res.a, $res.b, $res.op
20774	//  => $res.c\",\n \"a\" : \"$res.a\",\n \"b\" : \"$res.b\",\n \"op\" : \"$res.op\",\n
20775	//  \"c\" : \"$res.c\"\n}" }, "selectionPattern": "", "statusCode": "200" }
20776	//  } }
20777	//
20778	// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-integration.html)
20779	MethodIntegration *Integration `locationName:"methodIntegration" type:"structure"`
20780
20781	// Gets a method response associated with a given HTTP status code.
20782	//
20783	// The collection of method responses are encapsulated in a key-value map, where
20784	// the key is a response's HTTP status code and the value is a MethodResponse
20785	// resource that specifies the response returned to the caller from the back
20786	// end through the integration response.
20787	//
20788	// Example: Get a 200 OK response of a GET method
20789	//
20790	// Request
20791	//   GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200 HTTP/1.1
20792	//   Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
20793	//   Content-Length: 117 X-Amz-Date: 20160613T215008Z Authorization: AWS4-HMAC-SHA256
20794	//   Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request,
20795	//   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
20796	// Response
20797	//
20798	// The successful response returns a 200 OK status code and a payload similar
20799	// to the following:
20800	//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
20801	//  "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200",
20802	//  "title": "200" }, "methodresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200"
20803	//  }, "methodresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200"
20804	//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
20805	//  { "method.response.header.operator": false, "method.response.header.operand_2":
20806	//  false, "method.response.header.operand_1": false }, "statusCode": "200"
20807	//  }
20808	//
20809	// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-method-response.html)
20810	MethodResponses map[string]*MethodResponse `locationName:"methodResponses" type:"map"`
20811
20812	// A human-friendly operation identifier for the method. For example, you can
20813	// assign the operationName of ListPets for the GET /pets method in the PetStore
20814	// example.
20815	OperationName *string `locationName:"operationName" type:"string"`
20816
20817	// A key-value map specifying data schemas, represented by Model resources,
20818	// (as the mapped value) of the request payloads of given content types (as
20819	// the mapping key).
20820	RequestModels map[string]*string `locationName:"requestModels" type:"map"`
20821
20822	// A key-value map defining required or optional method request parameters that
20823	// can be accepted by API Gateway. A key is a method request parameter name
20824	// matching the pattern of method.request.{location}.{name}, where location
20825	// is querystring, path, or header and name is a valid and unique parameter
20826	// name. The value associated with the key is a Boolean flag indicating whether
20827	// the parameter is required (true) or optional (false). The method request
20828	// parameter names defined here are available in Integration to be mapped to
20829	// integration request parameters or templates.
20830	RequestParameters map[string]*bool `locationName:"requestParameters" type:"map"`
20831
20832	// The identifier of a RequestValidator for request validation.
20833	RequestValidatorId *string `locationName:"requestValidatorId" type:"string"`
20834}
20835
20836// String returns the string representation
20837func (s Method) String() string {
20838	return awsutil.Prettify(s)
20839}
20840
20841// GoString returns the string representation
20842func (s Method) GoString() string {
20843	return s.String()
20844}
20845
20846// SetApiKeyRequired sets the ApiKeyRequired field's value.
20847func (s *Method) SetApiKeyRequired(v bool) *Method {
20848	s.ApiKeyRequired = &v
20849	return s
20850}
20851
20852// SetAuthorizationScopes sets the AuthorizationScopes field's value.
20853func (s *Method) SetAuthorizationScopes(v []*string) *Method {
20854	s.AuthorizationScopes = v
20855	return s
20856}
20857
20858// SetAuthorizationType sets the AuthorizationType field's value.
20859func (s *Method) SetAuthorizationType(v string) *Method {
20860	s.AuthorizationType = &v
20861	return s
20862}
20863
20864// SetAuthorizerId sets the AuthorizerId field's value.
20865func (s *Method) SetAuthorizerId(v string) *Method {
20866	s.AuthorizerId = &v
20867	return s
20868}
20869
20870// SetHttpMethod sets the HttpMethod field's value.
20871func (s *Method) SetHttpMethod(v string) *Method {
20872	s.HttpMethod = &v
20873	return s
20874}
20875
20876// SetMethodIntegration sets the MethodIntegration field's value.
20877func (s *Method) SetMethodIntegration(v *Integration) *Method {
20878	s.MethodIntegration = v
20879	return s
20880}
20881
20882// SetMethodResponses sets the MethodResponses field's value.
20883func (s *Method) SetMethodResponses(v map[string]*MethodResponse) *Method {
20884	s.MethodResponses = v
20885	return s
20886}
20887
20888// SetOperationName sets the OperationName field's value.
20889func (s *Method) SetOperationName(v string) *Method {
20890	s.OperationName = &v
20891	return s
20892}
20893
20894// SetRequestModels sets the RequestModels field's value.
20895func (s *Method) SetRequestModels(v map[string]*string) *Method {
20896	s.RequestModels = v
20897	return s
20898}
20899
20900// SetRequestParameters sets the RequestParameters field's value.
20901func (s *Method) SetRequestParameters(v map[string]*bool) *Method {
20902	s.RequestParameters = v
20903	return s
20904}
20905
20906// SetRequestValidatorId sets the RequestValidatorId field's value.
20907func (s *Method) SetRequestValidatorId(v string) *Method {
20908	s.RequestValidatorId = &v
20909	return s
20910}
20911
20912// Represents a method response of a given HTTP status code returned to the
20913// client. The method response is passed from the back end through the associated
20914// integration response that can be transformed using a mapping template.
20915//
20916// Example: A MethodResponse instance of an API
20917//
20918// Request
20919//
20920// The example request retrieves a MethodResponse of the 200 status code.
20921//  GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200
20922//  HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
20923//  X-Amz-Date: 20160603T222952Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request,
20924//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
20925// Response
20926//
20927// The successful response returns 200 OK status and a payload as follows:
20928//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
20929//  "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
20930//  "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
20931//  }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
20932//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
20933//  { "method.response.header.Content-Type": false }, "statusCode": "200" }
20934//
20935// Method, IntegrationResponse, Integration Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
20936type MethodResponse struct {
20937	_ struct{} `type:"structure"`
20938
20939	// Specifies the Model resources used for the response's content-type. Response
20940	// models are represented as a key/value map, with a content-type as the key
20941	// and a Model name as the value.
20942	ResponseModels map[string]*string `locationName:"responseModels" type:"map"`
20943
20944	// A key-value map specifying required or optional response parameters that
20945	// API Gateway can send back to the caller. A key defines a method response
20946	// header and the value specifies whether the associated method response header
20947	// is required or not. The expression of the key must match the pattern method.response.header.{name},
20948	// where name is a valid and unique header name. API Gateway passes certain
20949	// integration response data to the method response headers specified here according
20950	// to the mapping you prescribe in the API's IntegrationResponse. The integration
20951	// response data that can be mapped include an integration response header expressed
20952	// in integration.response.header.{name}, a static value enclosed within a pair
20953	// of single quotes (e.g., 'application/json'), or a JSON expression from the
20954	// back-end response payload in the form of integration.response.body.{JSON-expression},
20955	// where JSON-expression is a valid JSON expression without the $ prefix.)
20956	ResponseParameters map[string]*bool `locationName:"responseParameters" type:"map"`
20957
20958	// The method response's status code.
20959	StatusCode *string `locationName:"statusCode" type:"string"`
20960}
20961
20962// String returns the string representation
20963func (s MethodResponse) String() string {
20964	return awsutil.Prettify(s)
20965}
20966
20967// GoString returns the string representation
20968func (s MethodResponse) GoString() string {
20969	return s.String()
20970}
20971
20972// SetResponseModels sets the ResponseModels field's value.
20973func (s *MethodResponse) SetResponseModels(v map[string]*string) *MethodResponse {
20974	s.ResponseModels = v
20975	return s
20976}
20977
20978// SetResponseParameters sets the ResponseParameters field's value.
20979func (s *MethodResponse) SetResponseParameters(v map[string]*bool) *MethodResponse {
20980	s.ResponseParameters = v
20981	return s
20982}
20983
20984// SetStatusCode sets the StatusCode field's value.
20985func (s *MethodResponse) SetStatusCode(v string) *MethodResponse {
20986	s.StatusCode = &v
20987	return s
20988}
20989
20990// Specifies the method setting properties.
20991type MethodSetting struct {
20992	_ struct{} `type:"structure"`
20993
20994	// Specifies whether the cached responses are encrypted. The PATCH path for
20995	// this setting is /{method_setting_key}/caching/dataEncrypted, and the value
20996	// is a Boolean.
20997	CacheDataEncrypted *bool `locationName:"cacheDataEncrypted" type:"boolean"`
20998
20999	// Specifies the time to live (TTL), in seconds, for cached responses. The higher
21000	// the TTL, the longer the response will be cached. The PATCH path for this
21001	// setting is /{method_setting_key}/caching/ttlInSeconds, and the value is an
21002	// integer.
21003	CacheTtlInSeconds *int64 `locationName:"cacheTtlInSeconds" type:"integer"`
21004
21005	// Specifies whether responses should be cached and returned for requests. A
21006	// cache cluster must be enabled on the stage for responses to be cached. The
21007	// PATCH path for this setting is /{method_setting_key}/caching/enabled, and
21008	// the value is a Boolean.
21009	CachingEnabled *bool `locationName:"cachingEnabled" type:"boolean"`
21010
21011	// Specifies whether data trace logging is enabled for this method, which affects
21012	// the log entries pushed to Amazon CloudWatch Logs. The PATCH path for this
21013	// setting is /{method_setting_key}/logging/dataTrace, and the value is a Boolean.
21014	DataTraceEnabled *bool `locationName:"dataTraceEnabled" type:"boolean"`
21015
21016	// Specifies the logging level for this method, which affects the log entries
21017	// pushed to Amazon CloudWatch Logs. The PATCH path for this setting is /{method_setting_key}/logging/loglevel,
21018	// and the available levels are OFF, ERROR, and INFO. Choose ERROR to write
21019	// only error-level entries to CloudWatch Logs, or choose INFO to include all
21020	// ERROR events as well as extra informational events.
21021	LoggingLevel *string `locationName:"loggingLevel" type:"string"`
21022
21023	// Specifies whether Amazon CloudWatch metrics are enabled for this method.
21024	// The PATCH path for this setting is /{method_setting_key}/metrics/enabled,
21025	// and the value is a Boolean.
21026	MetricsEnabled *bool `locationName:"metricsEnabled" type:"boolean"`
21027
21028	// Specifies whether authorization is required for a cache invalidation request.
21029	// The PATCH path for this setting is /{method_setting_key}/caching/requireAuthorizationForCacheControl,
21030	// and the value is a Boolean.
21031	RequireAuthorizationForCacheControl *bool `locationName:"requireAuthorizationForCacheControl" type:"boolean"`
21032
21033	// Specifies the throttling burst limit. The PATCH path for this setting is
21034	// /{method_setting_key}/throttling/burstLimit, and the value is an integer.
21035	ThrottlingBurstLimit *int64 `locationName:"throttlingBurstLimit" type:"integer"`
21036
21037	// Specifies the throttling rate limit. The PATCH path for this setting is /{method_setting_key}/throttling/rateLimit,
21038	// and the value is a double.
21039	ThrottlingRateLimit *float64 `locationName:"throttlingRateLimit" type:"double"`
21040
21041	// Specifies how to handle unauthorized requests for cache invalidation. The
21042	// PATCH path for this setting is /{method_setting_key}/caching/unauthorizedCacheControlHeaderStrategy,
21043	// and the available values are FAIL_WITH_403, SUCCEED_WITH_RESPONSE_HEADER,
21044	// SUCCEED_WITHOUT_RESPONSE_HEADER.
21045	UnauthorizedCacheControlHeaderStrategy *string `locationName:"unauthorizedCacheControlHeaderStrategy" type:"string" enum:"UnauthorizedCacheControlHeaderStrategy"`
21046}
21047
21048// String returns the string representation
21049func (s MethodSetting) String() string {
21050	return awsutil.Prettify(s)
21051}
21052
21053// GoString returns the string representation
21054func (s MethodSetting) GoString() string {
21055	return s.String()
21056}
21057
21058// SetCacheDataEncrypted sets the CacheDataEncrypted field's value.
21059func (s *MethodSetting) SetCacheDataEncrypted(v bool) *MethodSetting {
21060	s.CacheDataEncrypted = &v
21061	return s
21062}
21063
21064// SetCacheTtlInSeconds sets the CacheTtlInSeconds field's value.
21065func (s *MethodSetting) SetCacheTtlInSeconds(v int64) *MethodSetting {
21066	s.CacheTtlInSeconds = &v
21067	return s
21068}
21069
21070// SetCachingEnabled sets the CachingEnabled field's value.
21071func (s *MethodSetting) SetCachingEnabled(v bool) *MethodSetting {
21072	s.CachingEnabled = &v
21073	return s
21074}
21075
21076// SetDataTraceEnabled sets the DataTraceEnabled field's value.
21077func (s *MethodSetting) SetDataTraceEnabled(v bool) *MethodSetting {
21078	s.DataTraceEnabled = &v
21079	return s
21080}
21081
21082// SetLoggingLevel sets the LoggingLevel field's value.
21083func (s *MethodSetting) SetLoggingLevel(v string) *MethodSetting {
21084	s.LoggingLevel = &v
21085	return s
21086}
21087
21088// SetMetricsEnabled sets the MetricsEnabled field's value.
21089func (s *MethodSetting) SetMetricsEnabled(v bool) *MethodSetting {
21090	s.MetricsEnabled = &v
21091	return s
21092}
21093
21094// SetRequireAuthorizationForCacheControl sets the RequireAuthorizationForCacheControl field's value.
21095func (s *MethodSetting) SetRequireAuthorizationForCacheControl(v bool) *MethodSetting {
21096	s.RequireAuthorizationForCacheControl = &v
21097	return s
21098}
21099
21100// SetThrottlingBurstLimit sets the ThrottlingBurstLimit field's value.
21101func (s *MethodSetting) SetThrottlingBurstLimit(v int64) *MethodSetting {
21102	s.ThrottlingBurstLimit = &v
21103	return s
21104}
21105
21106// SetThrottlingRateLimit sets the ThrottlingRateLimit field's value.
21107func (s *MethodSetting) SetThrottlingRateLimit(v float64) *MethodSetting {
21108	s.ThrottlingRateLimit = &v
21109	return s
21110}
21111
21112// SetUnauthorizedCacheControlHeaderStrategy sets the UnauthorizedCacheControlHeaderStrategy field's value.
21113func (s *MethodSetting) SetUnauthorizedCacheControlHeaderStrategy(v string) *MethodSetting {
21114	s.UnauthorizedCacheControlHeaderStrategy = &v
21115	return s
21116}
21117
21118// Represents a summary of a Method resource, given a particular date and time.
21119type MethodSnapshot struct {
21120	_ struct{} `type:"structure"`
21121
21122	// Specifies whether the method requires a valid ApiKey.
21123	ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"`
21124
21125	// The method's authorization type. Valid values are NONE for open access, AWS_IAM
21126	// for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS
21127	// for using a Cognito user pool.
21128	AuthorizationType *string `locationName:"authorizationType" type:"string"`
21129}
21130
21131// String returns the string representation
21132func (s MethodSnapshot) String() string {
21133	return awsutil.Prettify(s)
21134}
21135
21136// GoString returns the string representation
21137func (s MethodSnapshot) GoString() string {
21138	return s.String()
21139}
21140
21141// SetApiKeyRequired sets the ApiKeyRequired field's value.
21142func (s *MethodSnapshot) SetApiKeyRequired(v bool) *MethodSnapshot {
21143	s.ApiKeyRequired = &v
21144	return s
21145}
21146
21147// SetAuthorizationType sets the AuthorizationType field's value.
21148func (s *MethodSnapshot) SetAuthorizationType(v string) *MethodSnapshot {
21149	s.AuthorizationType = &v
21150	return s
21151}
21152
21153// Represents the data structure of a method's request or response payload.
21154//
21155// A request model defines the data structure of the client-supplied request
21156// payload. A response model defines the data structure of the response payload
21157// returned by the back end. Although not required, models are useful for mapping
21158// payloads between the front end and back end.
21159//
21160// A model is used for generating an API's SDK, validating the input request
21161// body, and creating a skeletal mapping template.
21162//
21163// Method, MethodResponse, Models and Mappings (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html)
21164type Model struct {
21165	_ struct{} `type:"structure"`
21166
21167	// The content-type for the model.
21168	ContentType *string `locationName:"contentType" type:"string"`
21169
21170	// The description of the model.
21171	Description *string `locationName:"description" type:"string"`
21172
21173	// The identifier for the model resource.
21174	Id *string `locationName:"id" type:"string"`
21175
21176	// The name of the model. Must be an alphanumeric string.
21177	Name *string `locationName:"name" type:"string"`
21178
21179	// The schema for the model. For application/json models, this should be JSON
21180	// schema draft 4 (https://tools.ietf.org/html/draft-zyp-json-schema-04) model.
21181	// Do not include "\*/" characters in the description of any properties because
21182	// such "\*/" characters may be interpreted as the closing marker for comments
21183	// in some languages, such as Java or JavaScript, causing the installation of
21184	// your API's SDK generated by API Gateway to fail.
21185	Schema *string `locationName:"schema" type:"string"`
21186}
21187
21188// String returns the string representation
21189func (s Model) String() string {
21190	return awsutil.Prettify(s)
21191}
21192
21193// GoString returns the string representation
21194func (s Model) GoString() string {
21195	return s.String()
21196}
21197
21198// SetContentType sets the ContentType field's value.
21199func (s *Model) SetContentType(v string) *Model {
21200	s.ContentType = &v
21201	return s
21202}
21203
21204// SetDescription sets the Description field's value.
21205func (s *Model) SetDescription(v string) *Model {
21206	s.Description = &v
21207	return s
21208}
21209
21210// SetId sets the Id field's value.
21211func (s *Model) SetId(v string) *Model {
21212	s.Id = &v
21213	return s
21214}
21215
21216// SetName sets the Name field's value.
21217func (s *Model) SetName(v string) *Model {
21218	s.Name = &v
21219	return s
21220}
21221
21222// SetSchema sets the Schema field's value.
21223func (s *Model) SetSchema(v string) *Model {
21224	s.Schema = &v
21225	return s
21226}
21227
21228// If specified, API Gateway performs two-way authentication between the client
21229// and the server. Clients must present a trusted certificate to access your
21230// custom domain name.
21231type MutualTlsAuthentication struct {
21232	_ struct{} `type:"structure"`
21233
21234	// An Amazon S3 URL that specifies the truststore for mutual TLS authentication,
21235	// for example s3://bucket-name/key-name. The truststore can contain certificates
21236	// from public or private certificate authorities. To update the truststore,
21237	// upload a new version to S3, and then update your custom domain name to use
21238	// the new version. To update the truststore, you must have permissions to access
21239	// the S3 object.
21240	TruststoreUri *string `locationName:"truststoreUri" type:"string"`
21241
21242	// The version of the S3 object that contains your truststore. To specify a
21243	// version, you must have versioning enabled for the S3 bucket.
21244	TruststoreVersion *string `locationName:"truststoreVersion" type:"string"`
21245
21246	// A list of warnings that API Gateway returns while processing your truststore.
21247	// Invalid certificates produce warnings. Mutual TLS is still enabled, but some
21248	// clients might not be able to access your API. To resolve warnings, upload
21249	// a new truststore to S3, and then update you domain name to use the new version.
21250	TruststoreWarnings []*string `locationName:"truststoreWarnings" type:"list"`
21251}
21252
21253// String returns the string representation
21254func (s MutualTlsAuthentication) String() string {
21255	return awsutil.Prettify(s)
21256}
21257
21258// GoString returns the string representation
21259func (s MutualTlsAuthentication) GoString() string {
21260	return s.String()
21261}
21262
21263// SetTruststoreUri sets the TruststoreUri field's value.
21264func (s *MutualTlsAuthentication) SetTruststoreUri(v string) *MutualTlsAuthentication {
21265	s.TruststoreUri = &v
21266	return s
21267}
21268
21269// SetTruststoreVersion sets the TruststoreVersion field's value.
21270func (s *MutualTlsAuthentication) SetTruststoreVersion(v string) *MutualTlsAuthentication {
21271	s.TruststoreVersion = &v
21272	return s
21273}
21274
21275// SetTruststoreWarnings sets the TruststoreWarnings field's value.
21276func (s *MutualTlsAuthentication) SetTruststoreWarnings(v []*string) *MutualTlsAuthentication {
21277	s.TruststoreWarnings = v
21278	return s
21279}
21280
21281// If specified, API Gateway performs two-way authentication between the client
21282// and the server. Clients must present a trusted certificate to access your
21283// custom domain name.
21284type MutualTlsAuthenticationInput struct {
21285	_ struct{} `type:"structure"`
21286
21287	// An Amazon S3 resource ARN that specifies the truststore for mutual TLS authentication,
21288	// for example, s3://bucket-name/key-name. The truststore can contain certificates
21289	// from public or private certificate authorities. To update the truststore,
21290	// upload a new version to S3, and then update your custom domain name to use
21291	// the new version. To update the truststore, you must have permissions to access
21292	// the S3 object.
21293	TruststoreUri *string `locationName:"truststoreUri" type:"string"`
21294
21295	// The version of the S3 object that contains your truststore. To specify a
21296	// version, you must have versioning enabled for the S3 bucket.
21297	TruststoreVersion *string `locationName:"truststoreVersion" type:"string"`
21298}
21299
21300// String returns the string representation
21301func (s MutualTlsAuthenticationInput) String() string {
21302	return awsutil.Prettify(s)
21303}
21304
21305// GoString returns the string representation
21306func (s MutualTlsAuthenticationInput) GoString() string {
21307	return s.String()
21308}
21309
21310// SetTruststoreUri sets the TruststoreUri field's value.
21311func (s *MutualTlsAuthenticationInput) SetTruststoreUri(v string) *MutualTlsAuthenticationInput {
21312	s.TruststoreUri = &v
21313	return s
21314}
21315
21316// SetTruststoreVersion sets the TruststoreVersion field's value.
21317func (s *MutualTlsAuthenticationInput) SetTruststoreVersion(v string) *MutualTlsAuthenticationInput {
21318	s.TruststoreVersion = &v
21319	return s
21320}
21321
21322// The requested resource is not found. Make sure that the request URI is correct.
21323type NotFoundException struct {
21324	_            struct{}                  `type:"structure"`
21325	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21326
21327	Message_ *string `locationName:"message" type:"string"`
21328}
21329
21330// String returns the string representation
21331func (s NotFoundException) String() string {
21332	return awsutil.Prettify(s)
21333}
21334
21335// GoString returns the string representation
21336func (s NotFoundException) GoString() string {
21337	return s.String()
21338}
21339
21340func newErrorNotFoundException(v protocol.ResponseMetadata) error {
21341	return &NotFoundException{
21342		RespMetadata: v,
21343	}
21344}
21345
21346// Code returns the exception type name.
21347func (s *NotFoundException) Code() string {
21348	return "NotFoundException"
21349}
21350
21351// Message returns the exception's message.
21352func (s *NotFoundException) Message() string {
21353	if s.Message_ != nil {
21354		return *s.Message_
21355	}
21356	return ""
21357}
21358
21359// OrigErr always returns nil, satisfies awserr.Error interface.
21360func (s *NotFoundException) OrigErr() error {
21361	return nil
21362}
21363
21364func (s *NotFoundException) Error() string {
21365	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
21366}
21367
21368// Status code returns the HTTP status code for the request's response error.
21369func (s *NotFoundException) StatusCode() int {
21370	return s.RespMetadata.StatusCode
21371}
21372
21373// RequestID returns the service's response RequestID for request.
21374func (s *NotFoundException) RequestID() string {
21375	return s.RespMetadata.RequestID
21376}
21377
21378// A single patch operation to apply to the specified resource. Please refer
21379// to http://tools.ietf.org/html/rfc6902#section-4 for an explanation of how
21380// each operation is used.
21381type PatchOperation struct {
21382	_ struct{} `type:"structure"`
21383
21384	// The copy update operation's source as identified by a JSON-Pointer value
21385	// referencing the location within the targeted resource to copy the value from.
21386	// For example, to promote a canary deployment, you copy the canary deployment
21387	// ID to the affiliated deployment ID by calling a PATCH request on a Stage
21388	// resource with "op":"copy", "from":"/canarySettings/deploymentId" and "path":"/deploymentId".
21389	From *string `locationName:"from" type:"string"`
21390
21391	// An update operation to be performed with this PATCH request. The valid value
21392	// can be add, remove, replace or copy. Not all valid operations are supported
21393	// for a given resource. Support of the operations depends on specific operational
21394	// contexts. Attempts to apply an unsupported operation on a resource will return
21395	// an error message.
21396	Op *string `locationName:"op" type:"string" enum:"Op"`
21397
21398	// The op operation's target, as identified by a JSON Pointer (https://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-08)
21399	// value that references a location within the targeted resource. For example,
21400	// if the target resource has an updateable property of {"name":"value"}, the
21401	// path for this property is /name. If the name property value is a JSON object
21402	// (e.g., {"name": {"child/name": "child-value"}}), the path for the child/name
21403	// property will be /name/child~1name. Any slash ("/") character appearing in
21404	// path names must be escaped with "~1", as shown in the example above. Each
21405	// op operation can have only one path associated with it.
21406	Path *string `locationName:"path" type:"string"`
21407
21408	// The new target value of the update operation. It is applicable for the add
21409	// or replace operation. When using AWS CLI to update a property of a JSON value,
21410	// enclose the JSON object with a pair of single quotes in a Linux shell, e.g.,
21411	// '{"a": ...}'. In a Windows shell, see Using JSON for Parameters (https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json).
21412	Value *string `locationName:"value" type:"string"`
21413}
21414
21415// String returns the string representation
21416func (s PatchOperation) String() string {
21417	return awsutil.Prettify(s)
21418}
21419
21420// GoString returns the string representation
21421func (s PatchOperation) GoString() string {
21422	return s.String()
21423}
21424
21425// SetFrom sets the From field's value.
21426func (s *PatchOperation) SetFrom(v string) *PatchOperation {
21427	s.From = &v
21428	return s
21429}
21430
21431// SetOp sets the Op field's value.
21432func (s *PatchOperation) SetOp(v string) *PatchOperation {
21433	s.Op = &v
21434	return s
21435}
21436
21437// SetPath sets the Path field's value.
21438func (s *PatchOperation) SetPath(v string) *PatchOperation {
21439	s.Path = &v
21440	return s
21441}
21442
21443// SetValue sets the Value field's value.
21444func (s *PatchOperation) SetValue(v string) *PatchOperation {
21445	s.Value = &v
21446	return s
21447}
21448
21449// Creates a customization of a GatewayResponse of a specified response type
21450// and status code on the given RestApi.
21451type PutGatewayResponseInput struct {
21452	_ struct{} `type:"structure"`
21453
21454	// Response parameters (paths, query strings and headers) of the GatewayResponse
21455	// as a string-to-string map of key-value pairs.
21456	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
21457
21458	// Response templates of the GatewayResponse as a string-to-string map of key-value
21459	// pairs.
21460	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
21461
21462	// [Required]
21463	// The response type of the associated GatewayResponse.
21464	//
21465	// ResponseType is a required field
21466	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
21467
21468	// [Required] The string identifier of the associated RestApi.
21469	//
21470	// RestApiId is a required field
21471	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
21472
21473	// The HTTP status code of the GatewayResponse.
21474	StatusCode *string `locationName:"statusCode" type:"string"`
21475}
21476
21477// String returns the string representation
21478func (s PutGatewayResponseInput) String() string {
21479	return awsutil.Prettify(s)
21480}
21481
21482// GoString returns the string representation
21483func (s PutGatewayResponseInput) GoString() string {
21484	return s.String()
21485}
21486
21487// Validate inspects the fields of the type to determine if they are valid.
21488func (s *PutGatewayResponseInput) Validate() error {
21489	invalidParams := request.ErrInvalidParams{Context: "PutGatewayResponseInput"}
21490	if s.ResponseType == nil {
21491		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
21492	}
21493	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
21494		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
21495	}
21496	if s.RestApiId == nil {
21497		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
21498	}
21499	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
21500		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
21501	}
21502
21503	if invalidParams.Len() > 0 {
21504		return invalidParams
21505	}
21506	return nil
21507}
21508
21509// SetResponseParameters sets the ResponseParameters field's value.
21510func (s *PutGatewayResponseInput) SetResponseParameters(v map[string]*string) *PutGatewayResponseInput {
21511	s.ResponseParameters = v
21512	return s
21513}
21514
21515// SetResponseTemplates sets the ResponseTemplates field's value.
21516func (s *PutGatewayResponseInput) SetResponseTemplates(v map[string]*string) *PutGatewayResponseInput {
21517	s.ResponseTemplates = v
21518	return s
21519}
21520
21521// SetResponseType sets the ResponseType field's value.
21522func (s *PutGatewayResponseInput) SetResponseType(v string) *PutGatewayResponseInput {
21523	s.ResponseType = &v
21524	return s
21525}
21526
21527// SetRestApiId sets the RestApiId field's value.
21528func (s *PutGatewayResponseInput) SetRestApiId(v string) *PutGatewayResponseInput {
21529	s.RestApiId = &v
21530	return s
21531}
21532
21533// SetStatusCode sets the StatusCode field's value.
21534func (s *PutGatewayResponseInput) SetStatusCode(v string) *PutGatewayResponseInput {
21535	s.StatusCode = &v
21536	return s
21537}
21538
21539// Sets up a method's integration.
21540type PutIntegrationInput struct {
21541	_ struct{} `type:"structure"`
21542
21543	// A list of request parameters whose values API Gateway caches. To be valid
21544	// values for cacheKeyParameters, these parameters must also be specified for
21545	// Method requestParameters.
21546	CacheKeyParameters []*string `locationName:"cacheKeyParameters" type:"list"`
21547
21548	// Specifies a group of related cached parameters. By default, API Gateway uses
21549	// the resource ID as the cacheNamespace. You can specify the same cacheNamespace
21550	// across resources to return the same cached data for requests to different
21551	// resources.
21552	CacheNamespace *string `locationName:"cacheNamespace" type:"string"`
21553
21554	// The (id (https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id))
21555	// of the VpcLink used for the integration when connectionType=VPC_LINK and
21556	// undefined, otherwise.
21557	ConnectionId *string `locationName:"connectionId" type:"string"`
21558
21559	// The type of the network connection to the integration endpoint. The valid
21560	// value is INTERNET for connections through the public routable internet or
21561	// VPC_LINK for private connections between API Gateway and a network load balancer
21562	// in a VPC. The default value is INTERNET.
21563	ConnectionType *string `locationName:"connectionType" type:"string" enum:"ConnectionType"`
21564
21565	// Specifies how to handle request payload content type conversions. Supported
21566	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
21567	//
21568	//    * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded
21569	//    string to the corresponding binary blob.
21570	//
21571	//    * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a
21572	//    Base64-encoded string.
21573	//
21574	// If this property is not defined, the request payload will be passed through
21575	// from the method request to integration request without modification, provided
21576	// that the passthroughBehavior is configured to support payload pass-through.
21577	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
21578
21579	// Specifies whether credentials are required for a put integration.
21580	Credentials *string `locationName:"credentials" type:"string"`
21581
21582	// [Required] Specifies a put integration request's HTTP method.
21583	//
21584	// HttpMethod is a required field
21585	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
21586
21587	// Specifies a put integration HTTP method. When the integration type is HTTP
21588	// or AWS, this field is required.
21589	IntegrationHttpMethod *string `locationName:"httpMethod" type:"string"`
21590
21591	// Specifies the pass-through behavior for incoming requests based on the Content-Type
21592	// header in the request, and the available mapping templates specified as the
21593	// requestTemplates property on the Integration resource. There are three valid
21594	// values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER.
21595	//
21596	//    * WHEN_NO_MATCH passes the request body for unmapped content types through
21597	//    to the integration back end without transformation.
21598	//
21599	//    * NEVER rejects unmapped content types with an HTTP 415 'Unsupported Media
21600	//    Type' response.
21601	//
21602	//    * WHEN_NO_TEMPLATES allows pass-through when the integration has NO content
21603	//    types mapped to templates. However if there is at least one content type
21604	//    defined, unmapped content types will be rejected with the same 415 response.
21605	PassthroughBehavior *string `locationName:"passthroughBehavior" type:"string"`
21606
21607	// A key-value map specifying request parameters that are passed from the method
21608	// request to the back end. The key is an integration request parameter name
21609	// and the associated value is a method request parameter value or static value
21610	// that must be enclosed within single quotes and pre-encoded as required by
21611	// the back end. The method request parameter value must match the pattern of
21612	// method.request.{location}.{name}, where location is querystring, path, or
21613	// header and name must be a valid and unique method request parameter name.
21614	RequestParameters map[string]*string `locationName:"requestParameters" type:"map"`
21615
21616	// Represents a map of Velocity templates that are applied on the request payload
21617	// based on the value of the Content-Type header sent by the client. The content
21618	// type value is the key in this map, and the template (as a String) is the
21619	// value.
21620	RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
21621
21622	// [Required] Specifies a put integration request's resource ID.
21623	//
21624	// ResourceId is a required field
21625	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
21626
21627	// [Required] The string identifier of the associated RestApi.
21628	//
21629	// RestApiId is a required field
21630	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
21631
21632	// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000
21633	// milliseconds or 29 seconds.
21634	TimeoutInMillis *int64 `locationName:"timeoutInMillis" type:"integer"`
21635
21636	TlsConfig *TlsConfig `locationName:"tlsConfig" type:"structure"`
21637
21638	// [Required] Specifies a put integration input's type.
21639	//
21640	// Type is a required field
21641	Type *string `locationName:"type" type:"string" required:"true" enum:"IntegrationType"`
21642
21643	// Specifies Uniform Resource Identifier (URI) of the integration endpoint.
21644	//
21645	//    * For HTTP or HTTP_PROXY integrations, the URI must be a fully formed,
21646	//    encoded HTTP(S) URL according to the RFC-3986 specification (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier),
21647	//    for either standard integration, where connectionType is not VPC_LINK,
21648	//    or private integration, where connectionType is VPC_LINK. For a private
21649	//    HTTP integration, the URI is not used for routing.
21650	//
21651	//    * For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}.
21652	//    Here, {Region} is the API Gateway region (e.g., us-east-1); {service}
21653	//    is the name of the integrated AWS service (e.g., s3); and {subdomain}
21654	//    is a designated subdomain supported by certain AWS service for fast host-name
21655	//    lookup. action can be used for an AWS service action-based API, using
21656	//    an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api}
21657	//    refers to a supported action {name} plus any required input parameters.
21658	//    Alternatively, path can be used for an AWS service path-based API. The
21659	//    ensuing service_api refers to the path to an AWS service resource, including
21660	//    the region of the integrated AWS service, if applicable. For example,
21661	//    for integration with the S3 API of GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html),
21662	//    the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}
21663	//    or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}
21664	Uri *string `locationName:"uri" type:"string"`
21665}
21666
21667// String returns the string representation
21668func (s PutIntegrationInput) String() string {
21669	return awsutil.Prettify(s)
21670}
21671
21672// GoString returns the string representation
21673func (s PutIntegrationInput) GoString() string {
21674	return s.String()
21675}
21676
21677// Validate inspects the fields of the type to determine if they are valid.
21678func (s *PutIntegrationInput) Validate() error {
21679	invalidParams := request.ErrInvalidParams{Context: "PutIntegrationInput"}
21680	if s.HttpMethod == nil {
21681		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
21682	}
21683	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
21684		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
21685	}
21686	if s.ResourceId == nil {
21687		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
21688	}
21689	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
21690		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
21691	}
21692	if s.RestApiId == nil {
21693		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
21694	}
21695	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
21696		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
21697	}
21698	if s.Type == nil {
21699		invalidParams.Add(request.NewErrParamRequired("Type"))
21700	}
21701
21702	if invalidParams.Len() > 0 {
21703		return invalidParams
21704	}
21705	return nil
21706}
21707
21708// SetCacheKeyParameters sets the CacheKeyParameters field's value.
21709func (s *PutIntegrationInput) SetCacheKeyParameters(v []*string) *PutIntegrationInput {
21710	s.CacheKeyParameters = v
21711	return s
21712}
21713
21714// SetCacheNamespace sets the CacheNamespace field's value.
21715func (s *PutIntegrationInput) SetCacheNamespace(v string) *PutIntegrationInput {
21716	s.CacheNamespace = &v
21717	return s
21718}
21719
21720// SetConnectionId sets the ConnectionId field's value.
21721func (s *PutIntegrationInput) SetConnectionId(v string) *PutIntegrationInput {
21722	s.ConnectionId = &v
21723	return s
21724}
21725
21726// SetConnectionType sets the ConnectionType field's value.
21727func (s *PutIntegrationInput) SetConnectionType(v string) *PutIntegrationInput {
21728	s.ConnectionType = &v
21729	return s
21730}
21731
21732// SetContentHandling sets the ContentHandling field's value.
21733func (s *PutIntegrationInput) SetContentHandling(v string) *PutIntegrationInput {
21734	s.ContentHandling = &v
21735	return s
21736}
21737
21738// SetCredentials sets the Credentials field's value.
21739func (s *PutIntegrationInput) SetCredentials(v string) *PutIntegrationInput {
21740	s.Credentials = &v
21741	return s
21742}
21743
21744// SetHttpMethod sets the HttpMethod field's value.
21745func (s *PutIntegrationInput) SetHttpMethod(v string) *PutIntegrationInput {
21746	s.HttpMethod = &v
21747	return s
21748}
21749
21750// SetIntegrationHttpMethod sets the IntegrationHttpMethod field's value.
21751func (s *PutIntegrationInput) SetIntegrationHttpMethod(v string) *PutIntegrationInput {
21752	s.IntegrationHttpMethod = &v
21753	return s
21754}
21755
21756// SetPassthroughBehavior sets the PassthroughBehavior field's value.
21757func (s *PutIntegrationInput) SetPassthroughBehavior(v string) *PutIntegrationInput {
21758	s.PassthroughBehavior = &v
21759	return s
21760}
21761
21762// SetRequestParameters sets the RequestParameters field's value.
21763func (s *PutIntegrationInput) SetRequestParameters(v map[string]*string) *PutIntegrationInput {
21764	s.RequestParameters = v
21765	return s
21766}
21767
21768// SetRequestTemplates sets the RequestTemplates field's value.
21769func (s *PutIntegrationInput) SetRequestTemplates(v map[string]*string) *PutIntegrationInput {
21770	s.RequestTemplates = v
21771	return s
21772}
21773
21774// SetResourceId sets the ResourceId field's value.
21775func (s *PutIntegrationInput) SetResourceId(v string) *PutIntegrationInput {
21776	s.ResourceId = &v
21777	return s
21778}
21779
21780// SetRestApiId sets the RestApiId field's value.
21781func (s *PutIntegrationInput) SetRestApiId(v string) *PutIntegrationInput {
21782	s.RestApiId = &v
21783	return s
21784}
21785
21786// SetTimeoutInMillis sets the TimeoutInMillis field's value.
21787func (s *PutIntegrationInput) SetTimeoutInMillis(v int64) *PutIntegrationInput {
21788	s.TimeoutInMillis = &v
21789	return s
21790}
21791
21792// SetTlsConfig sets the TlsConfig field's value.
21793func (s *PutIntegrationInput) SetTlsConfig(v *TlsConfig) *PutIntegrationInput {
21794	s.TlsConfig = v
21795	return s
21796}
21797
21798// SetType sets the Type field's value.
21799func (s *PutIntegrationInput) SetType(v string) *PutIntegrationInput {
21800	s.Type = &v
21801	return s
21802}
21803
21804// SetUri sets the Uri field's value.
21805func (s *PutIntegrationInput) SetUri(v string) *PutIntegrationInput {
21806	s.Uri = &v
21807	return s
21808}
21809
21810// Represents a put integration response request.
21811type PutIntegrationResponseInput struct {
21812	_ struct{} `type:"structure"`
21813
21814	// Specifies how to handle response payload content type conversions. Supported
21815	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
21816	//
21817	//    * CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded
21818	//    string to the corresponding binary blob.
21819	//
21820	//    * CONVERT_TO_TEXT: Converts a response payload from a binary blob to a
21821	//    Base64-encoded string.
21822	//
21823	// If this property is not defined, the response payload will be passed through
21824	// from the integration response to the method response without modification.
21825	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
21826
21827	// [Required] Specifies a put integration response request's HTTP method.
21828	//
21829	// HttpMethod is a required field
21830	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
21831
21832	// [Required] Specifies a put integration response request's resource identifier.
21833	//
21834	// ResourceId is a required field
21835	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
21836
21837	// A key-value map specifying response parameters that are passed to the method
21838	// response from the back end. The key is a method response header parameter
21839	// name and the mapped value is an integration response header value, a static
21840	// value enclosed within a pair of single quotes, or a JSON expression from
21841	// the integration response body. The mapping key must match the pattern of
21842	// method.response.header.{name}, where name is a valid and unique header name.
21843	// The mapped non-static value must match the pattern of integration.response.header.{name}
21844	// or integration.response.body.{JSON-expression}, where name must be a valid
21845	// and unique response header name and JSON-expression a valid JSON expression
21846	// without the $ prefix.
21847	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
21848
21849	// Specifies a put integration response's templates.
21850	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
21851
21852	// [Required] The string identifier of the associated RestApi.
21853	//
21854	// RestApiId is a required field
21855	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
21856
21857	// Specifies the selection pattern of a put integration response.
21858	SelectionPattern *string `locationName:"selectionPattern" type:"string"`
21859
21860	// [Required] Specifies the status code that is used to map the integration
21861	// response to an existing MethodResponse.
21862	//
21863	// StatusCode is a required field
21864	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
21865}
21866
21867// String returns the string representation
21868func (s PutIntegrationResponseInput) String() string {
21869	return awsutil.Prettify(s)
21870}
21871
21872// GoString returns the string representation
21873func (s PutIntegrationResponseInput) GoString() string {
21874	return s.String()
21875}
21876
21877// Validate inspects the fields of the type to determine if they are valid.
21878func (s *PutIntegrationResponseInput) Validate() error {
21879	invalidParams := request.ErrInvalidParams{Context: "PutIntegrationResponseInput"}
21880	if s.HttpMethod == nil {
21881		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
21882	}
21883	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
21884		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
21885	}
21886	if s.ResourceId == nil {
21887		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
21888	}
21889	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
21890		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
21891	}
21892	if s.RestApiId == nil {
21893		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
21894	}
21895	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
21896		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
21897	}
21898	if s.StatusCode == nil {
21899		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
21900	}
21901	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
21902		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
21903	}
21904
21905	if invalidParams.Len() > 0 {
21906		return invalidParams
21907	}
21908	return nil
21909}
21910
21911// SetContentHandling sets the ContentHandling field's value.
21912func (s *PutIntegrationResponseInput) SetContentHandling(v string) *PutIntegrationResponseInput {
21913	s.ContentHandling = &v
21914	return s
21915}
21916
21917// SetHttpMethod sets the HttpMethod field's value.
21918func (s *PutIntegrationResponseInput) SetHttpMethod(v string) *PutIntegrationResponseInput {
21919	s.HttpMethod = &v
21920	return s
21921}
21922
21923// SetResourceId sets the ResourceId field's value.
21924func (s *PutIntegrationResponseInput) SetResourceId(v string) *PutIntegrationResponseInput {
21925	s.ResourceId = &v
21926	return s
21927}
21928
21929// SetResponseParameters sets the ResponseParameters field's value.
21930func (s *PutIntegrationResponseInput) SetResponseParameters(v map[string]*string) *PutIntegrationResponseInput {
21931	s.ResponseParameters = v
21932	return s
21933}
21934
21935// SetResponseTemplates sets the ResponseTemplates field's value.
21936func (s *PutIntegrationResponseInput) SetResponseTemplates(v map[string]*string) *PutIntegrationResponseInput {
21937	s.ResponseTemplates = v
21938	return s
21939}
21940
21941// SetRestApiId sets the RestApiId field's value.
21942func (s *PutIntegrationResponseInput) SetRestApiId(v string) *PutIntegrationResponseInput {
21943	s.RestApiId = &v
21944	return s
21945}
21946
21947// SetSelectionPattern sets the SelectionPattern field's value.
21948func (s *PutIntegrationResponseInput) SetSelectionPattern(v string) *PutIntegrationResponseInput {
21949	s.SelectionPattern = &v
21950	return s
21951}
21952
21953// SetStatusCode sets the StatusCode field's value.
21954func (s *PutIntegrationResponseInput) SetStatusCode(v string) *PutIntegrationResponseInput {
21955	s.StatusCode = &v
21956	return s
21957}
21958
21959// Request to add a method to an existing Resource resource.
21960type PutMethodInput struct {
21961	_ struct{} `type:"structure"`
21962
21963	// Specifies whether the method required a valid ApiKey.
21964	ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"`
21965
21966	// A list of authorization scopes configured on the method. The scopes are used
21967	// with a COGNITO_USER_POOLS authorizer to authorize the method invocation.
21968	// The authorization works by matching the method scopes against the scopes
21969	// parsed from the access token in the incoming request. The method invocation
21970	// is authorized if any method scopes matches a claimed scope in the access
21971	// token. Otherwise, the invocation is not authorized. When the method scope
21972	// is configured, the client must provide an access token instead of an identity
21973	// token for authorization purposes.
21974	AuthorizationScopes []*string `locationName:"authorizationScopes" type:"list"`
21975
21976	// [Required] The method's authorization type. Valid values are NONE for open
21977	// access, AWS_IAM for using AWS IAM permissions, CUSTOM for using a custom
21978	// authorizer, or COGNITO_USER_POOLS for using a Cognito user pool.
21979	//
21980	// AuthorizationType is a required field
21981	AuthorizationType *string `locationName:"authorizationType" type:"string" required:"true"`
21982
21983	// Specifies the identifier of an Authorizer to use on this Method, if the type
21984	// is CUSTOM or COGNITO_USER_POOLS. The authorizer identifier is generated by
21985	// API Gateway when you created the authorizer.
21986	AuthorizerId *string `locationName:"authorizerId" type:"string"`
21987
21988	// [Required] Specifies the method request's HTTP method type.
21989	//
21990	// HttpMethod is a required field
21991	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
21992
21993	// A human-friendly operation identifier for the method. For example, you can
21994	// assign the operationName of ListPets for the GET /pets method in the PetStore
21995	// example.
21996	OperationName *string `locationName:"operationName" type:"string"`
21997
21998	// Specifies the Model resources used for the request's content type. Request
21999	// models are represented as a key/value map, with a content type as the key
22000	// and a Model name as the value.
22001	RequestModels map[string]*string `locationName:"requestModels" type:"map"`
22002
22003	// A key-value map defining required or optional method request parameters that
22004	// can be accepted by API Gateway. A key defines a method request parameter
22005	// name matching the pattern of method.request.{location}.{name}, where location
22006	// is querystring, path, or header and name is a valid and unique parameter
22007	// name. The value associated with the key is a Boolean flag indicating whether
22008	// the parameter is required (true) or optional (false). The method request
22009	// parameter names defined here are available in Integration to be mapped to
22010	// integration request parameters or body-mapping templates.
22011	RequestParameters map[string]*bool `locationName:"requestParameters" type:"map"`
22012
22013	// The identifier of a RequestValidator for validating the method request.
22014	RequestValidatorId *string `locationName:"requestValidatorId" type:"string"`
22015
22016	// [Required] The Resource identifier for the new Method resource.
22017	//
22018	// ResourceId is a required field
22019	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
22020
22021	// [Required] The string identifier of the associated RestApi.
22022	//
22023	// RestApiId is a required field
22024	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
22025}
22026
22027// String returns the string representation
22028func (s PutMethodInput) String() string {
22029	return awsutil.Prettify(s)
22030}
22031
22032// GoString returns the string representation
22033func (s PutMethodInput) GoString() string {
22034	return s.String()
22035}
22036
22037// Validate inspects the fields of the type to determine if they are valid.
22038func (s *PutMethodInput) Validate() error {
22039	invalidParams := request.ErrInvalidParams{Context: "PutMethodInput"}
22040	if s.AuthorizationType == nil {
22041		invalidParams.Add(request.NewErrParamRequired("AuthorizationType"))
22042	}
22043	if s.HttpMethod == nil {
22044		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
22045	}
22046	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
22047		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
22048	}
22049	if s.ResourceId == nil {
22050		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
22051	}
22052	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
22053		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
22054	}
22055	if s.RestApiId == nil {
22056		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
22057	}
22058	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
22059		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
22060	}
22061
22062	if invalidParams.Len() > 0 {
22063		return invalidParams
22064	}
22065	return nil
22066}
22067
22068// SetApiKeyRequired sets the ApiKeyRequired field's value.
22069func (s *PutMethodInput) SetApiKeyRequired(v bool) *PutMethodInput {
22070	s.ApiKeyRequired = &v
22071	return s
22072}
22073
22074// SetAuthorizationScopes sets the AuthorizationScopes field's value.
22075func (s *PutMethodInput) SetAuthorizationScopes(v []*string) *PutMethodInput {
22076	s.AuthorizationScopes = v
22077	return s
22078}
22079
22080// SetAuthorizationType sets the AuthorizationType field's value.
22081func (s *PutMethodInput) SetAuthorizationType(v string) *PutMethodInput {
22082	s.AuthorizationType = &v
22083	return s
22084}
22085
22086// SetAuthorizerId sets the AuthorizerId field's value.
22087func (s *PutMethodInput) SetAuthorizerId(v string) *PutMethodInput {
22088	s.AuthorizerId = &v
22089	return s
22090}
22091
22092// SetHttpMethod sets the HttpMethod field's value.
22093func (s *PutMethodInput) SetHttpMethod(v string) *PutMethodInput {
22094	s.HttpMethod = &v
22095	return s
22096}
22097
22098// SetOperationName sets the OperationName field's value.
22099func (s *PutMethodInput) SetOperationName(v string) *PutMethodInput {
22100	s.OperationName = &v
22101	return s
22102}
22103
22104// SetRequestModels sets the RequestModels field's value.
22105func (s *PutMethodInput) SetRequestModels(v map[string]*string) *PutMethodInput {
22106	s.RequestModels = v
22107	return s
22108}
22109
22110// SetRequestParameters sets the RequestParameters field's value.
22111func (s *PutMethodInput) SetRequestParameters(v map[string]*bool) *PutMethodInput {
22112	s.RequestParameters = v
22113	return s
22114}
22115
22116// SetRequestValidatorId sets the RequestValidatorId field's value.
22117func (s *PutMethodInput) SetRequestValidatorId(v string) *PutMethodInput {
22118	s.RequestValidatorId = &v
22119	return s
22120}
22121
22122// SetResourceId sets the ResourceId field's value.
22123func (s *PutMethodInput) SetResourceId(v string) *PutMethodInput {
22124	s.ResourceId = &v
22125	return s
22126}
22127
22128// SetRestApiId sets the RestApiId field's value.
22129func (s *PutMethodInput) SetRestApiId(v string) *PutMethodInput {
22130	s.RestApiId = &v
22131	return s
22132}
22133
22134// Request to add a MethodResponse to an existing Method resource.
22135type PutMethodResponseInput struct {
22136	_ struct{} `type:"structure"`
22137
22138	// [Required] The HTTP verb of the Method resource.
22139	//
22140	// HttpMethod is a required field
22141	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
22142
22143	// [Required] The Resource identifier for the Method resource.
22144	//
22145	// ResourceId is a required field
22146	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
22147
22148	// Specifies the Model resources used for the response's content type. Response
22149	// models are represented as a key/value map, with a content type as the key
22150	// and a Model name as the value.
22151	ResponseModels map[string]*string `locationName:"responseModels" type:"map"`
22152
22153	// A key-value map specifying required or optional response parameters that
22154	// API Gateway can send back to the caller. A key defines a method response
22155	// header name and the associated value is a Boolean flag indicating whether
22156	// the method response parameter is required or not. The method response header
22157	// names must match the pattern of method.response.header.{name}, where name
22158	// is a valid and unique header name. The response parameter names defined here
22159	// are available in the integration response to be mapped from an integration
22160	// response header expressed in integration.response.header.{name}, a static
22161	// value enclosed within a pair of single quotes (e.g., 'application/json'),
22162	// or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression},
22163	// where JSON-expression is a valid JSON expression without the $ prefix.)
22164	ResponseParameters map[string]*bool `locationName:"responseParameters" type:"map"`
22165
22166	// [Required] The string identifier of the associated RestApi.
22167	//
22168	// RestApiId is a required field
22169	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
22170
22171	// [Required] The method response's status code.
22172	//
22173	// StatusCode is a required field
22174	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
22175}
22176
22177// String returns the string representation
22178func (s PutMethodResponseInput) String() string {
22179	return awsutil.Prettify(s)
22180}
22181
22182// GoString returns the string representation
22183func (s PutMethodResponseInput) GoString() string {
22184	return s.String()
22185}
22186
22187// Validate inspects the fields of the type to determine if they are valid.
22188func (s *PutMethodResponseInput) Validate() error {
22189	invalidParams := request.ErrInvalidParams{Context: "PutMethodResponseInput"}
22190	if s.HttpMethod == nil {
22191		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
22192	}
22193	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
22194		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
22195	}
22196	if s.ResourceId == nil {
22197		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
22198	}
22199	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
22200		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
22201	}
22202	if s.RestApiId == nil {
22203		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
22204	}
22205	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
22206		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
22207	}
22208	if s.StatusCode == nil {
22209		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
22210	}
22211	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
22212		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
22213	}
22214
22215	if invalidParams.Len() > 0 {
22216		return invalidParams
22217	}
22218	return nil
22219}
22220
22221// SetHttpMethod sets the HttpMethod field's value.
22222func (s *PutMethodResponseInput) SetHttpMethod(v string) *PutMethodResponseInput {
22223	s.HttpMethod = &v
22224	return s
22225}
22226
22227// SetResourceId sets the ResourceId field's value.
22228func (s *PutMethodResponseInput) SetResourceId(v string) *PutMethodResponseInput {
22229	s.ResourceId = &v
22230	return s
22231}
22232
22233// SetResponseModels sets the ResponseModels field's value.
22234func (s *PutMethodResponseInput) SetResponseModels(v map[string]*string) *PutMethodResponseInput {
22235	s.ResponseModels = v
22236	return s
22237}
22238
22239// SetResponseParameters sets the ResponseParameters field's value.
22240func (s *PutMethodResponseInput) SetResponseParameters(v map[string]*bool) *PutMethodResponseInput {
22241	s.ResponseParameters = v
22242	return s
22243}
22244
22245// SetRestApiId sets the RestApiId field's value.
22246func (s *PutMethodResponseInput) SetRestApiId(v string) *PutMethodResponseInput {
22247	s.RestApiId = &v
22248	return s
22249}
22250
22251// SetStatusCode sets the StatusCode field's value.
22252func (s *PutMethodResponseInput) SetStatusCode(v string) *PutMethodResponseInput {
22253	s.StatusCode = &v
22254	return s
22255}
22256
22257// A PUT request to update an existing API, with external API definitions specified
22258// as the request body.
22259type PutRestApiInput struct {
22260	_ struct{} `type:"structure" payload:"Body"`
22261
22262	// [Required] The PUT request body containing external API definitions. Currently,
22263	// only OpenAPI definition JSON/YAML files are supported. The maximum size of
22264	// the API definition file is 6MB.
22265	//
22266	// Body is a required field
22267	Body []byte `locationName:"body" type:"blob" required:"true"`
22268
22269	// A query parameter to indicate whether to rollback the API update (true) or
22270	// not (false) when a warning is encountered. The default value is false.
22271	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
22272
22273	// The mode query parameter to specify the update mode. Valid values are "merge"
22274	// and "overwrite". By default, the update mode is "merge".
22275	Mode *string `location:"querystring" locationName:"mode" type:"string" enum:"PutMode"`
22276
22277	// Custom header parameters as part of the request. For example, to exclude
22278	// DocumentationParts from an imported API, set ignore=documentation as a parameters
22279	// value, as in the AWS CLI command of aws apigateway import-rest-api --parameters
22280	// ignore=documentation --body 'file:///path/to/imported-api-body.json'.
22281	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
22282
22283	// [Required] The string identifier of the associated RestApi.
22284	//
22285	// RestApiId is a required field
22286	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
22287}
22288
22289// String returns the string representation
22290func (s PutRestApiInput) String() string {
22291	return awsutil.Prettify(s)
22292}
22293
22294// GoString returns the string representation
22295func (s PutRestApiInput) GoString() string {
22296	return s.String()
22297}
22298
22299// Validate inspects the fields of the type to determine if they are valid.
22300func (s *PutRestApiInput) Validate() error {
22301	invalidParams := request.ErrInvalidParams{Context: "PutRestApiInput"}
22302	if s.Body == nil {
22303		invalidParams.Add(request.NewErrParamRequired("Body"))
22304	}
22305	if s.RestApiId == nil {
22306		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
22307	}
22308	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
22309		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
22310	}
22311
22312	if invalidParams.Len() > 0 {
22313		return invalidParams
22314	}
22315	return nil
22316}
22317
22318// SetBody sets the Body field's value.
22319func (s *PutRestApiInput) SetBody(v []byte) *PutRestApiInput {
22320	s.Body = v
22321	return s
22322}
22323
22324// SetFailOnWarnings sets the FailOnWarnings field's value.
22325func (s *PutRestApiInput) SetFailOnWarnings(v bool) *PutRestApiInput {
22326	s.FailOnWarnings = &v
22327	return s
22328}
22329
22330// SetMode sets the Mode field's value.
22331func (s *PutRestApiInput) SetMode(v string) *PutRestApiInput {
22332	s.Mode = &v
22333	return s
22334}
22335
22336// SetParameters sets the Parameters field's value.
22337func (s *PutRestApiInput) SetParameters(v map[string]*string) *PutRestApiInput {
22338	s.Parameters = v
22339	return s
22340}
22341
22342// SetRestApiId sets the RestApiId field's value.
22343func (s *PutRestApiInput) SetRestApiId(v string) *PutRestApiInput {
22344	s.RestApiId = &v
22345	return s
22346}
22347
22348// Quotas configured for a usage plan.
22349type QuotaSettings struct {
22350	_ struct{} `type:"structure"`
22351
22352	// The maximum number of requests that can be made in a given time period.
22353	Limit *int64 `locationName:"limit" type:"integer"`
22354
22355	// The day that a time period starts. For example, with a time period of WEEK,
22356	// an offset of 0 starts on Sunday, and an offset of 1 starts on Monday.
22357	Offset *int64 `locationName:"offset" type:"integer"`
22358
22359	// The time period in which the limit applies. Valid values are "DAY", "WEEK"
22360	// or "MONTH".
22361	Period *string `locationName:"period" type:"string" enum:"QuotaPeriodType"`
22362}
22363
22364// String returns the string representation
22365func (s QuotaSettings) String() string {
22366	return awsutil.Prettify(s)
22367}
22368
22369// GoString returns the string representation
22370func (s QuotaSettings) GoString() string {
22371	return s.String()
22372}
22373
22374// SetLimit sets the Limit field's value.
22375func (s *QuotaSettings) SetLimit(v int64) *QuotaSettings {
22376	s.Limit = &v
22377	return s
22378}
22379
22380// SetOffset sets the Offset field's value.
22381func (s *QuotaSettings) SetOffset(v int64) *QuotaSettings {
22382	s.Offset = &v
22383	return s
22384}
22385
22386// SetPeriod sets the Period field's value.
22387func (s *QuotaSettings) SetPeriod(v string) *QuotaSettings {
22388	s.Period = &v
22389	return s
22390}
22391
22392// Represents an API resource.
22393//
22394// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
22395type Resource struct {
22396	_ struct{} `type:"structure"`
22397
22398	// The resource's identifier.
22399	Id *string `locationName:"id" type:"string"`
22400
22401	// The parent resource's identifier.
22402	ParentId *string `locationName:"parentId" type:"string"`
22403
22404	// The full path for this resource.
22405	Path *string `locationName:"path" type:"string"`
22406
22407	// The last path segment for this resource.
22408	PathPart *string `locationName:"pathPart" type:"string"`
22409
22410	// Gets an API resource's method of a given HTTP verb.
22411	//
22412	// The resource methods are a map of methods indexed by methods' HTTP verbs
22413	// enabled on the resource. This method map is included in the 200 OK response
22414	// of the GET /restapis/{restapi_id}/resources/{resource_id} or GET /restapis/{restapi_id}/resources/{resource_id}?embed=methods
22415	// request.
22416	//
22417	// Example: Get the GET method of an API resource
22418	//
22419	// Request
22420	//  GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET HTTP/1.1 Content-Type:
22421	//  application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20170223T031827Z
22422	//  Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20170223/us-east-1/apigateway/aws4_request,
22423	//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
22424	// Response
22425	//  { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html",
22426	//  "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
22427	//  "name": "integrationresponse", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html",
22428	//  "name": "method", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
22429	//  "name": "methodresponse", "templated": true } ], "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET",
22430	//  "name": "GET", "title": "GET" }, "integration:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
22431	//  }, "method:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
22432	//  }, "method:integration": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
22433	//  }, "method:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
22434	//  "name": "200", "title": "200" }, "method:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
22435	//  }, "methodresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}",
22436	//  "templated": true } }, "apiKeyRequired": false, "authorizationType": "NONE",
22437	//  "httpMethod": "GET", "_embedded": { "method:integration": { "_links": {
22438	//  "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
22439	//  }, "integration:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
22440	//  }, "integration:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
22441	//  "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
22442	//  }, "integrationresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}",
22443	//  "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "3kzxbg5sa2",
22444	//  "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod":
22445	//  "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": { "integration.request.header.Content-Type":
22446	//  "'application/x-amz-json-1.1'" }, "requestTemplates": { "application/json":
22447	//  "{\n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams",
22448	//  "_embedded": { "integration:responses": { "_links": { "self": { "href":
22449	//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
22450	//  "name": "200", "title": "200" }, "integrationresponse:delete": { "href":
22451	//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
22452	//  }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
22453	//  } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'"
22454	//  }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream
22455	//  in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n"
22456	//  }, "statusCode": "200" } } }, "method:responses": { "_links": { "self":
22457	//  { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
22458	//  "name": "200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
22459	//  }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
22460	//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
22461	//  { "method.response.header.Content-Type": false }, "statusCode": "200" }
22462	//  } }
22463	// If the OPTIONS is enabled on the resource, you can follow the example here
22464	// to get that method. Just replace the GET of the last path segment in the
22465	// request URL with OPTIONS.
22466	ResourceMethods map[string]*Method `locationName:"resourceMethods" type:"map"`
22467}
22468
22469// String returns the string representation
22470func (s Resource) String() string {
22471	return awsutil.Prettify(s)
22472}
22473
22474// GoString returns the string representation
22475func (s Resource) GoString() string {
22476	return s.String()
22477}
22478
22479// SetId sets the Id field's value.
22480func (s *Resource) SetId(v string) *Resource {
22481	s.Id = &v
22482	return s
22483}
22484
22485// SetParentId sets the ParentId field's value.
22486func (s *Resource) SetParentId(v string) *Resource {
22487	s.ParentId = &v
22488	return s
22489}
22490
22491// SetPath sets the Path field's value.
22492func (s *Resource) SetPath(v string) *Resource {
22493	s.Path = &v
22494	return s
22495}
22496
22497// SetPathPart sets the PathPart field's value.
22498func (s *Resource) SetPathPart(v string) *Resource {
22499	s.PathPart = &v
22500	return s
22501}
22502
22503// SetResourceMethods sets the ResourceMethods field's value.
22504func (s *Resource) SetResourceMethods(v map[string]*Method) *Resource {
22505	s.ResourceMethods = v
22506	return s
22507}
22508
22509// Represents a REST API.
22510//
22511// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
22512type RestApi struct {
22513	_ struct{} `type:"structure"`
22514
22515	// The source of the API key for metering requests according to a usage plan.
22516	// Valid values are:
22517	//    * HEADER to read the API key from the X-API-Key header of a request.
22518	//
22519	//    * AUTHORIZER to read the API key from the UsageIdentifierKey from a custom
22520	//    authorizer.
22521	ApiKeySource *string `locationName:"apiKeySource" type:"string" enum:"ApiKeySourceType"`
22522
22523	// The list of binary media types supported by the RestApi. By default, the
22524	// RestApi supports only UTF-8-encoded text payloads.
22525	BinaryMediaTypes []*string `locationName:"binaryMediaTypes" type:"list"`
22526
22527	// The timestamp when the API was created.
22528	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
22529
22530	// The API's description.
22531	Description *string `locationName:"description" type:"string"`
22532
22533	// Specifies whether clients can invoke your API by using the default execute-api
22534	// endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com
22535	// endpoint. To require that clients use a custom domain name to invoke your
22536	// API, disable the default endpoint.
22537	DisableExecuteApiEndpoint *bool `locationName:"disableExecuteApiEndpoint" type:"boolean"`
22538
22539	// The endpoint configuration of this RestApi showing the endpoint types of
22540	// the API.
22541	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
22542
22543	// The API's identifier. This identifier is unique across all of your APIs in
22544	// API Gateway.
22545	Id *string `locationName:"id" type:"string"`
22546
22547	// A nullable integer that is used to enable compression (with non-negative
22548	// between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with
22549	// a null value) on an API. When compression is enabled, compression or decompression
22550	// is not applied on the payload if the payload size is smaller than this value.
22551	// Setting it to zero allows compression for any payload size.
22552	MinimumCompressionSize *int64 `locationName:"minimumCompressionSize" type:"integer"`
22553
22554	// The API's name.
22555	Name *string `locationName:"name" type:"string"`
22556
22557	// A stringified JSON policy document that applies to this RestApi regardless
22558	// of the caller and Method configuration.
22559	Policy *string `locationName:"policy" type:"string"`
22560
22561	// The collection of tags. Each tag element is associated with a given resource.
22562	Tags map[string]*string `locationName:"tags" type:"map"`
22563
22564	// A version identifier for the API.
22565	Version *string `locationName:"version" type:"string"`
22566
22567	// The warning messages reported when failonwarnings is turned on during API
22568	// import.
22569	Warnings []*string `locationName:"warnings" type:"list"`
22570}
22571
22572// String returns the string representation
22573func (s RestApi) String() string {
22574	return awsutil.Prettify(s)
22575}
22576
22577// GoString returns the string representation
22578func (s RestApi) GoString() string {
22579	return s.String()
22580}
22581
22582// SetApiKeySource sets the ApiKeySource field's value.
22583func (s *RestApi) SetApiKeySource(v string) *RestApi {
22584	s.ApiKeySource = &v
22585	return s
22586}
22587
22588// SetBinaryMediaTypes sets the BinaryMediaTypes field's value.
22589func (s *RestApi) SetBinaryMediaTypes(v []*string) *RestApi {
22590	s.BinaryMediaTypes = v
22591	return s
22592}
22593
22594// SetCreatedDate sets the CreatedDate field's value.
22595func (s *RestApi) SetCreatedDate(v time.Time) *RestApi {
22596	s.CreatedDate = &v
22597	return s
22598}
22599
22600// SetDescription sets the Description field's value.
22601func (s *RestApi) SetDescription(v string) *RestApi {
22602	s.Description = &v
22603	return s
22604}
22605
22606// SetDisableExecuteApiEndpoint sets the DisableExecuteApiEndpoint field's value.
22607func (s *RestApi) SetDisableExecuteApiEndpoint(v bool) *RestApi {
22608	s.DisableExecuteApiEndpoint = &v
22609	return s
22610}
22611
22612// SetEndpointConfiguration sets the EndpointConfiguration field's value.
22613func (s *RestApi) SetEndpointConfiguration(v *EndpointConfiguration) *RestApi {
22614	s.EndpointConfiguration = v
22615	return s
22616}
22617
22618// SetId sets the Id field's value.
22619func (s *RestApi) SetId(v string) *RestApi {
22620	s.Id = &v
22621	return s
22622}
22623
22624// SetMinimumCompressionSize sets the MinimumCompressionSize field's value.
22625func (s *RestApi) SetMinimumCompressionSize(v int64) *RestApi {
22626	s.MinimumCompressionSize = &v
22627	return s
22628}
22629
22630// SetName sets the Name field's value.
22631func (s *RestApi) SetName(v string) *RestApi {
22632	s.Name = &v
22633	return s
22634}
22635
22636// SetPolicy sets the Policy field's value.
22637func (s *RestApi) SetPolicy(v string) *RestApi {
22638	s.Policy = &v
22639	return s
22640}
22641
22642// SetTags sets the Tags field's value.
22643func (s *RestApi) SetTags(v map[string]*string) *RestApi {
22644	s.Tags = v
22645	return s
22646}
22647
22648// SetVersion sets the Version field's value.
22649func (s *RestApi) SetVersion(v string) *RestApi {
22650	s.Version = &v
22651	return s
22652}
22653
22654// SetWarnings sets the Warnings field's value.
22655func (s *RestApi) SetWarnings(v []*string) *RestApi {
22656	s.Warnings = v
22657	return s
22658}
22659
22660// A configuration property of an SDK type.
22661type SdkConfigurationProperty struct {
22662	_ struct{} `type:"structure"`
22663
22664	// The default value of an SdkType configuration property.
22665	DefaultValue *string `locationName:"defaultValue" type:"string"`
22666
22667	// The description of an SdkType configuration property.
22668	Description *string `locationName:"description" type:"string"`
22669
22670	// The user-friendly name of an SdkType configuration property.
22671	FriendlyName *string `locationName:"friendlyName" type:"string"`
22672
22673	// The name of a an SdkType configuration property.
22674	Name *string `locationName:"name" type:"string"`
22675
22676	// A boolean flag of an SdkType configuration property to indicate if the associated
22677	// SDK configuration property is required (true) or not (false).
22678	Required *bool `locationName:"required" type:"boolean"`
22679}
22680
22681// String returns the string representation
22682func (s SdkConfigurationProperty) String() string {
22683	return awsutil.Prettify(s)
22684}
22685
22686// GoString returns the string representation
22687func (s SdkConfigurationProperty) GoString() string {
22688	return s.String()
22689}
22690
22691// SetDefaultValue sets the DefaultValue field's value.
22692func (s *SdkConfigurationProperty) SetDefaultValue(v string) *SdkConfigurationProperty {
22693	s.DefaultValue = &v
22694	return s
22695}
22696
22697// SetDescription sets the Description field's value.
22698func (s *SdkConfigurationProperty) SetDescription(v string) *SdkConfigurationProperty {
22699	s.Description = &v
22700	return s
22701}
22702
22703// SetFriendlyName sets the FriendlyName field's value.
22704func (s *SdkConfigurationProperty) SetFriendlyName(v string) *SdkConfigurationProperty {
22705	s.FriendlyName = &v
22706	return s
22707}
22708
22709// SetName sets the Name field's value.
22710func (s *SdkConfigurationProperty) SetName(v string) *SdkConfigurationProperty {
22711	s.Name = &v
22712	return s
22713}
22714
22715// SetRequired sets the Required field's value.
22716func (s *SdkConfigurationProperty) SetRequired(v bool) *SdkConfigurationProperty {
22717	s.Required = &v
22718	return s
22719}
22720
22721// A type of SDK that API Gateway can generate.
22722type SdkType struct {
22723	_ struct{} `type:"structure"`
22724
22725	// A list of configuration properties of an SdkType.
22726	ConfigurationProperties []*SdkConfigurationProperty `locationName:"configurationProperties" type:"list"`
22727
22728	// The description of an SdkType.
22729	Description *string `locationName:"description" type:"string"`
22730
22731	// The user-friendly name of an SdkType instance.
22732	FriendlyName *string `locationName:"friendlyName" type:"string"`
22733
22734	// The identifier of an SdkType instance.
22735	Id *string `locationName:"id" type:"string"`
22736}
22737
22738// String returns the string representation
22739func (s SdkType) String() string {
22740	return awsutil.Prettify(s)
22741}
22742
22743// GoString returns the string representation
22744func (s SdkType) GoString() string {
22745	return s.String()
22746}
22747
22748// SetConfigurationProperties sets the ConfigurationProperties field's value.
22749func (s *SdkType) SetConfigurationProperties(v []*SdkConfigurationProperty) *SdkType {
22750	s.ConfigurationProperties = v
22751	return s
22752}
22753
22754// SetDescription sets the Description field's value.
22755func (s *SdkType) SetDescription(v string) *SdkType {
22756	s.Description = &v
22757	return s
22758}
22759
22760// SetFriendlyName sets the FriendlyName field's value.
22761func (s *SdkType) SetFriendlyName(v string) *SdkType {
22762	s.FriendlyName = &v
22763	return s
22764}
22765
22766// SetId sets the Id field's value.
22767func (s *SdkType) SetId(v string) *SdkType {
22768	s.Id = &v
22769	return s
22770}
22771
22772// The requested service is not available. For details see the accompanying
22773// error message. Retry after the specified time period.
22774type ServiceUnavailableException struct {
22775	_            struct{}                  `type:"structure"`
22776	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22777
22778	Message_ *string `locationName:"message" type:"string"`
22779
22780	RetryAfterSeconds *string `location:"header" locationName:"Retry-After" type:"string"`
22781}
22782
22783// String returns the string representation
22784func (s ServiceUnavailableException) String() string {
22785	return awsutil.Prettify(s)
22786}
22787
22788// GoString returns the string representation
22789func (s ServiceUnavailableException) GoString() string {
22790	return s.String()
22791}
22792
22793func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
22794	return &ServiceUnavailableException{
22795		RespMetadata: v,
22796	}
22797}
22798
22799// Code returns the exception type name.
22800func (s *ServiceUnavailableException) Code() string {
22801	return "ServiceUnavailableException"
22802}
22803
22804// Message returns the exception's message.
22805func (s *ServiceUnavailableException) Message() string {
22806	if s.Message_ != nil {
22807		return *s.Message_
22808	}
22809	return ""
22810}
22811
22812// OrigErr always returns nil, satisfies awserr.Error interface.
22813func (s *ServiceUnavailableException) OrigErr() error {
22814	return nil
22815}
22816
22817func (s *ServiceUnavailableException) Error() string {
22818	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
22819}
22820
22821// Status code returns the HTTP status code for the request's response error.
22822func (s *ServiceUnavailableException) StatusCode() int {
22823	return s.RespMetadata.StatusCode
22824}
22825
22826// RequestID returns the service's response RequestID for request.
22827func (s *ServiceUnavailableException) RequestID() string {
22828	return s.RespMetadata.RequestID
22829}
22830
22831// Represents a unique identifier for a version of a deployed RestApi that is
22832// callable by users.
22833//
22834// Deploy an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-deploy-api.html)
22835type Stage struct {
22836	_ struct{} `type:"structure"`
22837
22838	// Settings for logging access in this stage.
22839	AccessLogSettings *AccessLogSettings `locationName:"accessLogSettings" type:"structure"`
22840
22841	// Specifies whether a cache cluster is enabled for the stage.
22842	CacheClusterEnabled *bool `locationName:"cacheClusterEnabled" type:"boolean"`
22843
22844	// The size of the cache cluster for the stage, if enabled.
22845	CacheClusterSize *string `locationName:"cacheClusterSize" type:"string" enum:"CacheClusterSize"`
22846
22847	// The status of the cache cluster for the stage, if enabled.
22848	CacheClusterStatus *string `locationName:"cacheClusterStatus" type:"string" enum:"CacheClusterStatus"`
22849
22850	// Settings for the canary deployment in this stage.
22851	CanarySettings *CanarySettings `locationName:"canarySettings" type:"structure"`
22852
22853	// The identifier of a client certificate for an API stage.
22854	ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
22855
22856	// The timestamp when the stage was created.
22857	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
22858
22859	// The identifier of the Deployment that the stage points to.
22860	DeploymentId *string `locationName:"deploymentId" type:"string"`
22861
22862	// The stage's description.
22863	Description *string `locationName:"description" type:"string"`
22864
22865	// The version of the associated API documentation.
22866	DocumentationVersion *string `locationName:"documentationVersion" type:"string"`
22867
22868	// The timestamp when the stage last updated.
22869	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
22870
22871	// A map that defines the method settings for a Stage resource. Keys (designated
22872	// as /{method_setting_key below) are method paths defined as {resource_path}/{http_method}
22873	// for an individual method override, or /\*/\* for overriding all methods in
22874	// the stage.
22875	MethodSettings map[string]*MethodSetting `locationName:"methodSettings" type:"map"`
22876
22877	// The name of the stage is the first path segment in the Uniform Resource Identifier
22878	// (URI) of a call to API Gateway. Stage names can only contain alphanumeric
22879	// characters, hyphens, and underscores. Maximum length is 128 characters.
22880	StageName *string `locationName:"stageName" type:"string"`
22881
22882	// The collection of tags. Each tag element is associated with a given resource.
22883	Tags map[string]*string `locationName:"tags" type:"map"`
22884
22885	// Specifies whether active tracing with X-ray is enabled for the Stage.
22886	TracingEnabled *bool `locationName:"tracingEnabled" type:"boolean"`
22887
22888	// A map that defines the stage variables for a Stage resource. Variable names
22889	// can have alphanumeric and underscore characters, and the values must match
22890	// [A-Za-z0-9-._~:/?#&=,]+.
22891	Variables map[string]*string `locationName:"variables" type:"map"`
22892
22893	// The ARN of the WebAcl associated with the Stage.
22894	WebAclArn *string `locationName:"webAclArn" type:"string"`
22895}
22896
22897// String returns the string representation
22898func (s Stage) String() string {
22899	return awsutil.Prettify(s)
22900}
22901
22902// GoString returns the string representation
22903func (s Stage) GoString() string {
22904	return s.String()
22905}
22906
22907// SetAccessLogSettings sets the AccessLogSettings field's value.
22908func (s *Stage) SetAccessLogSettings(v *AccessLogSettings) *Stage {
22909	s.AccessLogSettings = v
22910	return s
22911}
22912
22913// SetCacheClusterEnabled sets the CacheClusterEnabled field's value.
22914func (s *Stage) SetCacheClusterEnabled(v bool) *Stage {
22915	s.CacheClusterEnabled = &v
22916	return s
22917}
22918
22919// SetCacheClusterSize sets the CacheClusterSize field's value.
22920func (s *Stage) SetCacheClusterSize(v string) *Stage {
22921	s.CacheClusterSize = &v
22922	return s
22923}
22924
22925// SetCacheClusterStatus sets the CacheClusterStatus field's value.
22926func (s *Stage) SetCacheClusterStatus(v string) *Stage {
22927	s.CacheClusterStatus = &v
22928	return s
22929}
22930
22931// SetCanarySettings sets the CanarySettings field's value.
22932func (s *Stage) SetCanarySettings(v *CanarySettings) *Stage {
22933	s.CanarySettings = v
22934	return s
22935}
22936
22937// SetClientCertificateId sets the ClientCertificateId field's value.
22938func (s *Stage) SetClientCertificateId(v string) *Stage {
22939	s.ClientCertificateId = &v
22940	return s
22941}
22942
22943// SetCreatedDate sets the CreatedDate field's value.
22944func (s *Stage) SetCreatedDate(v time.Time) *Stage {
22945	s.CreatedDate = &v
22946	return s
22947}
22948
22949// SetDeploymentId sets the DeploymentId field's value.
22950func (s *Stage) SetDeploymentId(v string) *Stage {
22951	s.DeploymentId = &v
22952	return s
22953}
22954
22955// SetDescription sets the Description field's value.
22956func (s *Stage) SetDescription(v string) *Stage {
22957	s.Description = &v
22958	return s
22959}
22960
22961// SetDocumentationVersion sets the DocumentationVersion field's value.
22962func (s *Stage) SetDocumentationVersion(v string) *Stage {
22963	s.DocumentationVersion = &v
22964	return s
22965}
22966
22967// SetLastUpdatedDate sets the LastUpdatedDate field's value.
22968func (s *Stage) SetLastUpdatedDate(v time.Time) *Stage {
22969	s.LastUpdatedDate = &v
22970	return s
22971}
22972
22973// SetMethodSettings sets the MethodSettings field's value.
22974func (s *Stage) SetMethodSettings(v map[string]*MethodSetting) *Stage {
22975	s.MethodSettings = v
22976	return s
22977}
22978
22979// SetStageName sets the StageName field's value.
22980func (s *Stage) SetStageName(v string) *Stage {
22981	s.StageName = &v
22982	return s
22983}
22984
22985// SetTags sets the Tags field's value.
22986func (s *Stage) SetTags(v map[string]*string) *Stage {
22987	s.Tags = v
22988	return s
22989}
22990
22991// SetTracingEnabled sets the TracingEnabled field's value.
22992func (s *Stage) SetTracingEnabled(v bool) *Stage {
22993	s.TracingEnabled = &v
22994	return s
22995}
22996
22997// SetVariables sets the Variables field's value.
22998func (s *Stage) SetVariables(v map[string]*string) *Stage {
22999	s.Variables = v
23000	return s
23001}
23002
23003// SetWebAclArn sets the WebAclArn field's value.
23004func (s *Stage) SetWebAclArn(v string) *Stage {
23005	s.WebAclArn = &v
23006	return s
23007}
23008
23009// A reference to a unique stage identified in the format {restApiId}/{stage}.
23010type StageKey struct {
23011	_ struct{} `type:"structure"`
23012
23013	// The string identifier of the associated RestApi.
23014	RestApiId *string `locationName:"restApiId" type:"string"`
23015
23016	// The stage name associated with the stage key.
23017	StageName *string `locationName:"stageName" type:"string"`
23018}
23019
23020// String returns the string representation
23021func (s StageKey) String() string {
23022	return awsutil.Prettify(s)
23023}
23024
23025// GoString returns the string representation
23026func (s StageKey) GoString() string {
23027	return s.String()
23028}
23029
23030// SetRestApiId sets the RestApiId field's value.
23031func (s *StageKey) SetRestApiId(v string) *StageKey {
23032	s.RestApiId = &v
23033	return s
23034}
23035
23036// SetStageName sets the StageName field's value.
23037func (s *StageKey) SetStageName(v string) *StageKey {
23038	s.StageName = &v
23039	return s
23040}
23041
23042// Adds or updates a tag on a given resource.
23043type TagResourceInput struct {
23044	_ struct{} `type:"structure"`
23045
23046	// [Required] The ARN of a resource that can be tagged.
23047	//
23048	// ResourceArn is a required field
23049	ResourceArn *string `location:"uri" locationName:"resource_arn" type:"string" required:"true"`
23050
23051	// [Required] The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
23052	// The tag key can be up to 128 characters and must not start with aws:. The
23053	// tag value can be up to 256 characters.
23054	//
23055	// Tags is a required field
23056	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
23057}
23058
23059// String returns the string representation
23060func (s TagResourceInput) String() string {
23061	return awsutil.Prettify(s)
23062}
23063
23064// GoString returns the string representation
23065func (s TagResourceInput) GoString() string {
23066	return s.String()
23067}
23068
23069// Validate inspects the fields of the type to determine if they are valid.
23070func (s *TagResourceInput) Validate() error {
23071	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
23072	if s.ResourceArn == nil {
23073		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
23074	}
23075	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
23076		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
23077	}
23078	if s.Tags == nil {
23079		invalidParams.Add(request.NewErrParamRequired("Tags"))
23080	}
23081
23082	if invalidParams.Len() > 0 {
23083		return invalidParams
23084	}
23085	return nil
23086}
23087
23088// SetResourceArn sets the ResourceArn field's value.
23089func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
23090	s.ResourceArn = &v
23091	return s
23092}
23093
23094// SetTags sets the Tags field's value.
23095func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
23096	s.Tags = v
23097	return s
23098}
23099
23100type TagResourceOutput struct {
23101	_ struct{} `type:"structure"`
23102}
23103
23104// String returns the string representation
23105func (s TagResourceOutput) String() string {
23106	return awsutil.Prettify(s)
23107}
23108
23109// GoString returns the string representation
23110func (s TagResourceOutput) GoString() string {
23111	return s.String()
23112}
23113
23114// Make a request to simulate the execution of an Authorizer.
23115type TestInvokeAuthorizerInput struct {
23116	_ struct{} `type:"structure"`
23117
23118	// [Optional] A key-value map of additional context variables.
23119	AdditionalContext map[string]*string `locationName:"additionalContext" type:"map"`
23120
23121	// [Required] Specifies a test invoke authorizer request's Authorizer ID.
23122	//
23123	// AuthorizerId is a required field
23124	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
23125
23126	// [Optional] The simulated request body of an incoming invocation request.
23127	Body *string `locationName:"body" type:"string"`
23128
23129	// [Required] A key-value map of headers to simulate an incoming invocation
23130	// request. This is where the incoming authorization token, or identity source,
23131	// should be specified.
23132	Headers map[string]*string `locationName:"headers" type:"map"`
23133
23134	// [Optional] The headers as a map from string to list of values to simulate
23135	// an incoming invocation request. This is where the incoming authorization
23136	// token, or identity source, may be specified.
23137	MultiValueHeaders map[string][]*string `locationName:"multiValueHeaders" type:"map"`
23138
23139	// [Optional] The URI path, including query string, of the simulated invocation
23140	// request. Use this to specify path parameters and query string parameters.
23141	PathWithQueryString *string `locationName:"pathWithQueryString" type:"string"`
23142
23143	// [Required] The string identifier of the associated RestApi.
23144	//
23145	// RestApiId is a required field
23146	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23147
23148	// A key-value map of stage variables to simulate an invocation on a deployed
23149	// Stage.
23150	StageVariables map[string]*string `locationName:"stageVariables" type:"map"`
23151}
23152
23153// String returns the string representation
23154func (s TestInvokeAuthorizerInput) String() string {
23155	return awsutil.Prettify(s)
23156}
23157
23158// GoString returns the string representation
23159func (s TestInvokeAuthorizerInput) GoString() string {
23160	return s.String()
23161}
23162
23163// Validate inspects the fields of the type to determine if they are valid.
23164func (s *TestInvokeAuthorizerInput) Validate() error {
23165	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
23166	if s.AuthorizerId == nil {
23167		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
23168	}
23169	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
23170		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
23171	}
23172	if s.RestApiId == nil {
23173		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23174	}
23175	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23176		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23177	}
23178
23179	if invalidParams.Len() > 0 {
23180		return invalidParams
23181	}
23182	return nil
23183}
23184
23185// SetAdditionalContext sets the AdditionalContext field's value.
23186func (s *TestInvokeAuthorizerInput) SetAdditionalContext(v map[string]*string) *TestInvokeAuthorizerInput {
23187	s.AdditionalContext = v
23188	return s
23189}
23190
23191// SetAuthorizerId sets the AuthorizerId field's value.
23192func (s *TestInvokeAuthorizerInput) SetAuthorizerId(v string) *TestInvokeAuthorizerInput {
23193	s.AuthorizerId = &v
23194	return s
23195}
23196
23197// SetBody sets the Body field's value.
23198func (s *TestInvokeAuthorizerInput) SetBody(v string) *TestInvokeAuthorizerInput {
23199	s.Body = &v
23200	return s
23201}
23202
23203// SetHeaders sets the Headers field's value.
23204func (s *TestInvokeAuthorizerInput) SetHeaders(v map[string]*string) *TestInvokeAuthorizerInput {
23205	s.Headers = v
23206	return s
23207}
23208
23209// SetMultiValueHeaders sets the MultiValueHeaders field's value.
23210func (s *TestInvokeAuthorizerInput) SetMultiValueHeaders(v map[string][]*string) *TestInvokeAuthorizerInput {
23211	s.MultiValueHeaders = v
23212	return s
23213}
23214
23215// SetPathWithQueryString sets the PathWithQueryString field's value.
23216func (s *TestInvokeAuthorizerInput) SetPathWithQueryString(v string) *TestInvokeAuthorizerInput {
23217	s.PathWithQueryString = &v
23218	return s
23219}
23220
23221// SetRestApiId sets the RestApiId field's value.
23222func (s *TestInvokeAuthorizerInput) SetRestApiId(v string) *TestInvokeAuthorizerInput {
23223	s.RestApiId = &v
23224	return s
23225}
23226
23227// SetStageVariables sets the StageVariables field's value.
23228func (s *TestInvokeAuthorizerInput) SetStageVariables(v map[string]*string) *TestInvokeAuthorizerInput {
23229	s.StageVariables = v
23230	return s
23231}
23232
23233// Represents the response of the test invoke request for a custom Authorizer
23234type TestInvokeAuthorizerOutput struct {
23235	_ struct{} `type:"structure"`
23236
23237	Authorization map[string][]*string `locationName:"authorization" type:"map"`
23238
23239	// The open identity claims (https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims),
23240	// with any supported custom attributes, returned from the Cognito Your User
23241	// Pool configured for the API.
23242	Claims map[string]*string `locationName:"claims" type:"map"`
23243
23244	// The HTTP status code that the client would have received. Value is 0 if the
23245	// authorizer succeeded.
23246	ClientStatus *int64 `locationName:"clientStatus" type:"integer"`
23247
23248	// The execution latency of the test authorizer request.
23249	Latency *int64 `locationName:"latency" type:"long"`
23250
23251	// The API Gateway execution log for the test authorizer request.
23252	Log *string `locationName:"log" type:"string"`
23253
23254	// The JSON policy document returned by the Authorizer
23255	Policy *string `locationName:"policy" type:"string"`
23256
23257	// The principal identity returned by the Authorizer
23258	PrincipalId *string `locationName:"principalId" type:"string"`
23259}
23260
23261// String returns the string representation
23262func (s TestInvokeAuthorizerOutput) String() string {
23263	return awsutil.Prettify(s)
23264}
23265
23266// GoString returns the string representation
23267func (s TestInvokeAuthorizerOutput) GoString() string {
23268	return s.String()
23269}
23270
23271// SetAuthorization sets the Authorization field's value.
23272func (s *TestInvokeAuthorizerOutput) SetAuthorization(v map[string][]*string) *TestInvokeAuthorizerOutput {
23273	s.Authorization = v
23274	return s
23275}
23276
23277// SetClaims sets the Claims field's value.
23278func (s *TestInvokeAuthorizerOutput) SetClaims(v map[string]*string) *TestInvokeAuthorizerOutput {
23279	s.Claims = v
23280	return s
23281}
23282
23283// SetClientStatus sets the ClientStatus field's value.
23284func (s *TestInvokeAuthorizerOutput) SetClientStatus(v int64) *TestInvokeAuthorizerOutput {
23285	s.ClientStatus = &v
23286	return s
23287}
23288
23289// SetLatency sets the Latency field's value.
23290func (s *TestInvokeAuthorizerOutput) SetLatency(v int64) *TestInvokeAuthorizerOutput {
23291	s.Latency = &v
23292	return s
23293}
23294
23295// SetLog sets the Log field's value.
23296func (s *TestInvokeAuthorizerOutput) SetLog(v string) *TestInvokeAuthorizerOutput {
23297	s.Log = &v
23298	return s
23299}
23300
23301// SetPolicy sets the Policy field's value.
23302func (s *TestInvokeAuthorizerOutput) SetPolicy(v string) *TestInvokeAuthorizerOutput {
23303	s.Policy = &v
23304	return s
23305}
23306
23307// SetPrincipalId sets the PrincipalId field's value.
23308func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
23309	s.PrincipalId = &v
23310	return s
23311}
23312
23313// Make a request to simulate the execution of a Method.
23314type TestInvokeMethodInput struct {
23315	_ struct{} `type:"structure"`
23316
23317	// The simulated request body of an incoming invocation request.
23318	Body *string `locationName:"body" type:"string"`
23319
23320	// A ClientCertificate identifier to use in the test invocation. API Gateway
23321	// will use the certificate when making the HTTPS request to the defined back-end
23322	// endpoint.
23323	ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
23324
23325	// A key-value map of headers to simulate an incoming invocation request.
23326	Headers map[string]*string `locationName:"headers" type:"map"`
23327
23328	// [Required] Specifies a test invoke method request's HTTP method.
23329	//
23330	// HttpMethod is a required field
23331	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
23332
23333	// The headers as a map from string to list of values to simulate an incoming
23334	// invocation request.
23335	MultiValueHeaders map[string][]*string `locationName:"multiValueHeaders" type:"map"`
23336
23337	// The URI path, including query string, of the simulated invocation request.
23338	// Use this to specify path parameters and query string parameters.
23339	PathWithQueryString *string `locationName:"pathWithQueryString" type:"string"`
23340
23341	// [Required] Specifies a test invoke method request's resource ID.
23342	//
23343	// ResourceId is a required field
23344	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
23345
23346	// [Required] The string identifier of the associated RestApi.
23347	//
23348	// RestApiId is a required field
23349	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23350
23351	// A key-value map of stage variables to simulate an invocation on a deployed
23352	// Stage.
23353	StageVariables map[string]*string `locationName:"stageVariables" type:"map"`
23354}
23355
23356// String returns the string representation
23357func (s TestInvokeMethodInput) String() string {
23358	return awsutil.Prettify(s)
23359}
23360
23361// GoString returns the string representation
23362func (s TestInvokeMethodInput) GoString() string {
23363	return s.String()
23364}
23365
23366// Validate inspects the fields of the type to determine if they are valid.
23367func (s *TestInvokeMethodInput) Validate() error {
23368	invalidParams := request.ErrInvalidParams{Context: "TestInvokeMethodInput"}
23369	if s.HttpMethod == nil {
23370		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
23371	}
23372	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
23373		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
23374	}
23375	if s.ResourceId == nil {
23376		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
23377	}
23378	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
23379		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
23380	}
23381	if s.RestApiId == nil {
23382		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23383	}
23384	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23385		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23386	}
23387
23388	if invalidParams.Len() > 0 {
23389		return invalidParams
23390	}
23391	return nil
23392}
23393
23394// SetBody sets the Body field's value.
23395func (s *TestInvokeMethodInput) SetBody(v string) *TestInvokeMethodInput {
23396	s.Body = &v
23397	return s
23398}
23399
23400// SetClientCertificateId sets the ClientCertificateId field's value.
23401func (s *TestInvokeMethodInput) SetClientCertificateId(v string) *TestInvokeMethodInput {
23402	s.ClientCertificateId = &v
23403	return s
23404}
23405
23406// SetHeaders sets the Headers field's value.
23407func (s *TestInvokeMethodInput) SetHeaders(v map[string]*string) *TestInvokeMethodInput {
23408	s.Headers = v
23409	return s
23410}
23411
23412// SetHttpMethod sets the HttpMethod field's value.
23413func (s *TestInvokeMethodInput) SetHttpMethod(v string) *TestInvokeMethodInput {
23414	s.HttpMethod = &v
23415	return s
23416}
23417
23418// SetMultiValueHeaders sets the MultiValueHeaders field's value.
23419func (s *TestInvokeMethodInput) SetMultiValueHeaders(v map[string][]*string) *TestInvokeMethodInput {
23420	s.MultiValueHeaders = v
23421	return s
23422}
23423
23424// SetPathWithQueryString sets the PathWithQueryString field's value.
23425func (s *TestInvokeMethodInput) SetPathWithQueryString(v string) *TestInvokeMethodInput {
23426	s.PathWithQueryString = &v
23427	return s
23428}
23429
23430// SetResourceId sets the ResourceId field's value.
23431func (s *TestInvokeMethodInput) SetResourceId(v string) *TestInvokeMethodInput {
23432	s.ResourceId = &v
23433	return s
23434}
23435
23436// SetRestApiId sets the RestApiId field's value.
23437func (s *TestInvokeMethodInput) SetRestApiId(v string) *TestInvokeMethodInput {
23438	s.RestApiId = &v
23439	return s
23440}
23441
23442// SetStageVariables sets the StageVariables field's value.
23443func (s *TestInvokeMethodInput) SetStageVariables(v map[string]*string) *TestInvokeMethodInput {
23444	s.StageVariables = v
23445	return s
23446}
23447
23448// Represents the response of the test invoke request in the HTTP method.
23449//
23450// Test API using the API Gateway console (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-test-method.html#how-to-test-method-console)
23451type TestInvokeMethodOutput struct {
23452	_ struct{} `type:"structure"`
23453
23454	// The body of the HTTP response.
23455	Body *string `locationName:"body" type:"string"`
23456
23457	// The headers of the HTTP response.
23458	Headers map[string]*string `locationName:"headers" type:"map"`
23459
23460	// The execution latency of the test invoke request.
23461	Latency *int64 `locationName:"latency" type:"long"`
23462
23463	// The API Gateway execution log for the test invoke request.
23464	Log *string `locationName:"log" type:"string"`
23465
23466	// The headers of the HTTP response as a map from string to list of values.
23467	MultiValueHeaders map[string][]*string `locationName:"multiValueHeaders" type:"map"`
23468
23469	// The HTTP status code.
23470	Status *int64 `locationName:"status" type:"integer"`
23471}
23472
23473// String returns the string representation
23474func (s TestInvokeMethodOutput) String() string {
23475	return awsutil.Prettify(s)
23476}
23477
23478// GoString returns the string representation
23479func (s TestInvokeMethodOutput) GoString() string {
23480	return s.String()
23481}
23482
23483// SetBody sets the Body field's value.
23484func (s *TestInvokeMethodOutput) SetBody(v string) *TestInvokeMethodOutput {
23485	s.Body = &v
23486	return s
23487}
23488
23489// SetHeaders sets the Headers field's value.
23490func (s *TestInvokeMethodOutput) SetHeaders(v map[string]*string) *TestInvokeMethodOutput {
23491	s.Headers = v
23492	return s
23493}
23494
23495// SetLatency sets the Latency field's value.
23496func (s *TestInvokeMethodOutput) SetLatency(v int64) *TestInvokeMethodOutput {
23497	s.Latency = &v
23498	return s
23499}
23500
23501// SetLog sets the Log field's value.
23502func (s *TestInvokeMethodOutput) SetLog(v string) *TestInvokeMethodOutput {
23503	s.Log = &v
23504	return s
23505}
23506
23507// SetMultiValueHeaders sets the MultiValueHeaders field's value.
23508func (s *TestInvokeMethodOutput) SetMultiValueHeaders(v map[string][]*string) *TestInvokeMethodOutput {
23509	s.MultiValueHeaders = v
23510	return s
23511}
23512
23513// SetStatus sets the Status field's value.
23514func (s *TestInvokeMethodOutput) SetStatus(v int64) *TestInvokeMethodOutput {
23515	s.Status = &v
23516	return s
23517}
23518
23519// The API request rate limits.
23520type ThrottleSettings struct {
23521	_ struct{} `type:"structure"`
23522
23523	// The API request burst limit, the maximum rate limit over a time ranging from
23524	// one to a few seconds, depending upon whether the underlying token bucket
23525	// is at its full capacity.
23526	BurstLimit *int64 `locationName:"burstLimit" type:"integer"`
23527
23528	// The API request steady-state rate limit.
23529	RateLimit *float64 `locationName:"rateLimit" type:"double"`
23530}
23531
23532// String returns the string representation
23533func (s ThrottleSettings) String() string {
23534	return awsutil.Prettify(s)
23535}
23536
23537// GoString returns the string representation
23538func (s ThrottleSettings) GoString() string {
23539	return s.String()
23540}
23541
23542// SetBurstLimit sets the BurstLimit field's value.
23543func (s *ThrottleSettings) SetBurstLimit(v int64) *ThrottleSettings {
23544	s.BurstLimit = &v
23545	return s
23546}
23547
23548// SetRateLimit sets the RateLimit field's value.
23549func (s *ThrottleSettings) SetRateLimit(v float64) *ThrottleSettings {
23550	s.RateLimit = &v
23551	return s
23552}
23553
23554type TlsConfig struct {
23555	_ struct{} `type:"structure"`
23556
23557	// Specifies whether or not API Gateway skips verification that the certificate
23558	// for an integration endpoint is issued by a supported certificate authority
23559	// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html).
23560	// This isn’t recommended, but it enables you to use certificates that are
23561	// signed by private certificate authorities, or certificates that are self-signed.
23562	// If enabled, API Gateway still performs basic certificate validation, which
23563	// includes checking the certificate's expiration date, hostname, and presence
23564	// of a root certificate authority. Supported only for HTTP and HTTP_PROXY integrations.
23565	InsecureSkipVerification *bool `locationName:"insecureSkipVerification" type:"boolean"`
23566}
23567
23568// String returns the string representation
23569func (s TlsConfig) String() string {
23570	return awsutil.Prettify(s)
23571}
23572
23573// GoString returns the string representation
23574func (s TlsConfig) GoString() string {
23575	return s.String()
23576}
23577
23578// SetInsecureSkipVerification sets the InsecureSkipVerification field's value.
23579func (s *TlsConfig) SetInsecureSkipVerification(v bool) *TlsConfig {
23580	s.InsecureSkipVerification = &v
23581	return s
23582}
23583
23584// The request has reached its throttling limit. Retry after the specified time
23585// period.
23586type TooManyRequestsException struct {
23587	_            struct{}                  `type:"structure"`
23588	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
23589
23590	Message_ *string `locationName:"message" type:"string"`
23591
23592	RetryAfterSeconds *string `location:"header" locationName:"Retry-After" type:"string"`
23593}
23594
23595// String returns the string representation
23596func (s TooManyRequestsException) String() string {
23597	return awsutil.Prettify(s)
23598}
23599
23600// GoString returns the string representation
23601func (s TooManyRequestsException) GoString() string {
23602	return s.String()
23603}
23604
23605func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
23606	return &TooManyRequestsException{
23607		RespMetadata: v,
23608	}
23609}
23610
23611// Code returns the exception type name.
23612func (s *TooManyRequestsException) Code() string {
23613	return "TooManyRequestsException"
23614}
23615
23616// Message returns the exception's message.
23617func (s *TooManyRequestsException) Message() string {
23618	if s.Message_ != nil {
23619		return *s.Message_
23620	}
23621	return ""
23622}
23623
23624// OrigErr always returns nil, satisfies awserr.Error interface.
23625func (s *TooManyRequestsException) OrigErr() error {
23626	return nil
23627}
23628
23629func (s *TooManyRequestsException) Error() string {
23630	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
23631}
23632
23633// Status code returns the HTTP status code for the request's response error.
23634func (s *TooManyRequestsException) StatusCode() int {
23635	return s.RespMetadata.StatusCode
23636}
23637
23638// RequestID returns the service's response RequestID for request.
23639func (s *TooManyRequestsException) RequestID() string {
23640	return s.RespMetadata.RequestID
23641}
23642
23643// The request is denied because the caller has insufficient permissions.
23644type UnauthorizedException struct {
23645	_            struct{}                  `type:"structure"`
23646	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
23647
23648	Message_ *string `locationName:"message" type:"string"`
23649}
23650
23651// String returns the string representation
23652func (s UnauthorizedException) String() string {
23653	return awsutil.Prettify(s)
23654}
23655
23656// GoString returns the string representation
23657func (s UnauthorizedException) GoString() string {
23658	return s.String()
23659}
23660
23661func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
23662	return &UnauthorizedException{
23663		RespMetadata: v,
23664	}
23665}
23666
23667// Code returns the exception type name.
23668func (s *UnauthorizedException) Code() string {
23669	return "UnauthorizedException"
23670}
23671
23672// Message returns the exception's message.
23673func (s *UnauthorizedException) Message() string {
23674	if s.Message_ != nil {
23675		return *s.Message_
23676	}
23677	return ""
23678}
23679
23680// OrigErr always returns nil, satisfies awserr.Error interface.
23681func (s *UnauthorizedException) OrigErr() error {
23682	return nil
23683}
23684
23685func (s *UnauthorizedException) Error() string {
23686	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
23687}
23688
23689// Status code returns the HTTP status code for the request's response error.
23690func (s *UnauthorizedException) StatusCode() int {
23691	return s.RespMetadata.StatusCode
23692}
23693
23694// RequestID returns the service's response RequestID for request.
23695func (s *UnauthorizedException) RequestID() string {
23696	return s.RespMetadata.RequestID
23697}
23698
23699// Removes a tag from a given resource.
23700type UntagResourceInput struct {
23701	_ struct{} `type:"structure"`
23702
23703	// [Required] The ARN of a resource that can be tagged.
23704	//
23705	// ResourceArn is a required field
23706	ResourceArn *string `location:"uri" locationName:"resource_arn" type:"string" required:"true"`
23707
23708	// [Required] The Tag keys to delete.
23709	//
23710	// TagKeys is a required field
23711	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
23712}
23713
23714// String returns the string representation
23715func (s UntagResourceInput) String() string {
23716	return awsutil.Prettify(s)
23717}
23718
23719// GoString returns the string representation
23720func (s UntagResourceInput) GoString() string {
23721	return s.String()
23722}
23723
23724// Validate inspects the fields of the type to determine if they are valid.
23725func (s *UntagResourceInput) Validate() error {
23726	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
23727	if s.ResourceArn == nil {
23728		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
23729	}
23730	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
23731		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
23732	}
23733	if s.TagKeys == nil {
23734		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
23735	}
23736
23737	if invalidParams.Len() > 0 {
23738		return invalidParams
23739	}
23740	return nil
23741}
23742
23743// SetResourceArn sets the ResourceArn field's value.
23744func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
23745	s.ResourceArn = &v
23746	return s
23747}
23748
23749// SetTagKeys sets the TagKeys field's value.
23750func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
23751	s.TagKeys = v
23752	return s
23753}
23754
23755type UntagResourceOutput struct {
23756	_ struct{} `type:"structure"`
23757}
23758
23759// String returns the string representation
23760func (s UntagResourceOutput) String() string {
23761	return awsutil.Prettify(s)
23762}
23763
23764// GoString returns the string representation
23765func (s UntagResourceOutput) GoString() string {
23766	return s.String()
23767}
23768
23769// Requests API Gateway to change information about the current Account resource.
23770type UpdateAccountInput struct {
23771	_ struct{} `type:"structure"`
23772
23773	// A list of update operations to be applied to the specified resource and in
23774	// the order specified in this list.
23775	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23776}
23777
23778// String returns the string representation
23779func (s UpdateAccountInput) String() string {
23780	return awsutil.Prettify(s)
23781}
23782
23783// GoString returns the string representation
23784func (s UpdateAccountInput) GoString() string {
23785	return s.String()
23786}
23787
23788// SetPatchOperations sets the PatchOperations field's value.
23789func (s *UpdateAccountInput) SetPatchOperations(v []*PatchOperation) *UpdateAccountInput {
23790	s.PatchOperations = v
23791	return s
23792}
23793
23794// A request to change information about an ApiKey resource.
23795type UpdateApiKeyInput struct {
23796	_ struct{} `type:"structure"`
23797
23798	// [Required] The identifier of the ApiKey resource to be updated.
23799	//
23800	// ApiKey is a required field
23801	ApiKey *string `location:"uri" locationName:"api_Key" type:"string" required:"true"`
23802
23803	// A list of update operations to be applied to the specified resource and in
23804	// the order specified in this list.
23805	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23806}
23807
23808// String returns the string representation
23809func (s UpdateApiKeyInput) String() string {
23810	return awsutil.Prettify(s)
23811}
23812
23813// GoString returns the string representation
23814func (s UpdateApiKeyInput) GoString() string {
23815	return s.String()
23816}
23817
23818// Validate inspects the fields of the type to determine if they are valid.
23819func (s *UpdateApiKeyInput) Validate() error {
23820	invalidParams := request.ErrInvalidParams{Context: "UpdateApiKeyInput"}
23821	if s.ApiKey == nil {
23822		invalidParams.Add(request.NewErrParamRequired("ApiKey"))
23823	}
23824	if s.ApiKey != nil && len(*s.ApiKey) < 1 {
23825		invalidParams.Add(request.NewErrParamMinLen("ApiKey", 1))
23826	}
23827
23828	if invalidParams.Len() > 0 {
23829		return invalidParams
23830	}
23831	return nil
23832}
23833
23834// SetApiKey sets the ApiKey field's value.
23835func (s *UpdateApiKeyInput) SetApiKey(v string) *UpdateApiKeyInput {
23836	s.ApiKey = &v
23837	return s
23838}
23839
23840// SetPatchOperations sets the PatchOperations field's value.
23841func (s *UpdateApiKeyInput) SetPatchOperations(v []*PatchOperation) *UpdateApiKeyInput {
23842	s.PatchOperations = v
23843	return s
23844}
23845
23846// Request to update an existing Authorizer resource.
23847type UpdateAuthorizerInput struct {
23848	_ struct{} `type:"structure"`
23849
23850	// [Required] The identifier of the Authorizer resource.
23851	//
23852	// AuthorizerId is a required field
23853	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
23854
23855	// A list of update operations to be applied to the specified resource and in
23856	// the order specified in this list.
23857	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23858
23859	// [Required] The string identifier of the associated RestApi.
23860	//
23861	// RestApiId is a required field
23862	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23863}
23864
23865// String returns the string representation
23866func (s UpdateAuthorizerInput) String() string {
23867	return awsutil.Prettify(s)
23868}
23869
23870// GoString returns the string representation
23871func (s UpdateAuthorizerInput) GoString() string {
23872	return s.String()
23873}
23874
23875// Validate inspects the fields of the type to determine if they are valid.
23876func (s *UpdateAuthorizerInput) Validate() error {
23877	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
23878	if s.AuthorizerId == nil {
23879		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
23880	}
23881	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
23882		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
23883	}
23884	if s.RestApiId == nil {
23885		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23886	}
23887	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23888		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23889	}
23890
23891	if invalidParams.Len() > 0 {
23892		return invalidParams
23893	}
23894	return nil
23895}
23896
23897// SetAuthorizerId sets the AuthorizerId field's value.
23898func (s *UpdateAuthorizerInput) SetAuthorizerId(v string) *UpdateAuthorizerInput {
23899	s.AuthorizerId = &v
23900	return s
23901}
23902
23903// SetPatchOperations sets the PatchOperations field's value.
23904func (s *UpdateAuthorizerInput) SetPatchOperations(v []*PatchOperation) *UpdateAuthorizerInput {
23905	s.PatchOperations = v
23906	return s
23907}
23908
23909// SetRestApiId sets the RestApiId field's value.
23910func (s *UpdateAuthorizerInput) SetRestApiId(v string) *UpdateAuthorizerInput {
23911	s.RestApiId = &v
23912	return s
23913}
23914
23915// A request to change information about the BasePathMapping resource.
23916type UpdateBasePathMappingInput struct {
23917	_ struct{} `type:"structure"`
23918
23919	// [Required] The base path of the BasePathMapping resource to change.
23920	//
23921	// To specify an empty base path, set this parameter to '(none)'.
23922	//
23923	// BasePath is a required field
23924	BasePath *string `location:"uri" locationName:"base_path" type:"string" required:"true"`
23925
23926	// [Required] The domain name of the BasePathMapping resource to change.
23927	//
23928	// DomainName is a required field
23929	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
23930
23931	// A list of update operations to be applied to the specified resource and in
23932	// the order specified in this list.
23933	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23934}
23935
23936// String returns the string representation
23937func (s UpdateBasePathMappingInput) String() string {
23938	return awsutil.Prettify(s)
23939}
23940
23941// GoString returns the string representation
23942func (s UpdateBasePathMappingInput) GoString() string {
23943	return s.String()
23944}
23945
23946// Validate inspects the fields of the type to determine if they are valid.
23947func (s *UpdateBasePathMappingInput) Validate() error {
23948	invalidParams := request.ErrInvalidParams{Context: "UpdateBasePathMappingInput"}
23949	if s.BasePath == nil {
23950		invalidParams.Add(request.NewErrParamRequired("BasePath"))
23951	}
23952	if s.BasePath != nil && len(*s.BasePath) < 1 {
23953		invalidParams.Add(request.NewErrParamMinLen("BasePath", 1))
23954	}
23955	if s.DomainName == nil {
23956		invalidParams.Add(request.NewErrParamRequired("DomainName"))
23957	}
23958	if s.DomainName != nil && len(*s.DomainName) < 1 {
23959		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
23960	}
23961
23962	if invalidParams.Len() > 0 {
23963		return invalidParams
23964	}
23965	return nil
23966}
23967
23968// SetBasePath sets the BasePath field's value.
23969func (s *UpdateBasePathMappingInput) SetBasePath(v string) *UpdateBasePathMappingInput {
23970	s.BasePath = &v
23971	return s
23972}
23973
23974// SetDomainName sets the DomainName field's value.
23975func (s *UpdateBasePathMappingInput) SetDomainName(v string) *UpdateBasePathMappingInput {
23976	s.DomainName = &v
23977	return s
23978}
23979
23980// SetPatchOperations sets the PatchOperations field's value.
23981func (s *UpdateBasePathMappingInput) SetPatchOperations(v []*PatchOperation) *UpdateBasePathMappingInput {
23982	s.PatchOperations = v
23983	return s
23984}
23985
23986// A request to change information about an ClientCertificate resource.
23987type UpdateClientCertificateInput struct {
23988	_ struct{} `type:"structure"`
23989
23990	// [Required] The identifier of the ClientCertificate resource to be updated.
23991	//
23992	// ClientCertificateId is a required field
23993	ClientCertificateId *string `location:"uri" locationName:"clientcertificate_id" type:"string" required:"true"`
23994
23995	// A list of update operations to be applied to the specified resource and in
23996	// the order specified in this list.
23997	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23998}
23999
24000// String returns the string representation
24001func (s UpdateClientCertificateInput) String() string {
24002	return awsutil.Prettify(s)
24003}
24004
24005// GoString returns the string representation
24006func (s UpdateClientCertificateInput) GoString() string {
24007	return s.String()
24008}
24009
24010// Validate inspects the fields of the type to determine if they are valid.
24011func (s *UpdateClientCertificateInput) Validate() error {
24012	invalidParams := request.ErrInvalidParams{Context: "UpdateClientCertificateInput"}
24013	if s.ClientCertificateId == nil {
24014		invalidParams.Add(request.NewErrParamRequired("ClientCertificateId"))
24015	}
24016	if s.ClientCertificateId != nil && len(*s.ClientCertificateId) < 1 {
24017		invalidParams.Add(request.NewErrParamMinLen("ClientCertificateId", 1))
24018	}
24019
24020	if invalidParams.Len() > 0 {
24021		return invalidParams
24022	}
24023	return nil
24024}
24025
24026// SetClientCertificateId sets the ClientCertificateId field's value.
24027func (s *UpdateClientCertificateInput) SetClientCertificateId(v string) *UpdateClientCertificateInput {
24028	s.ClientCertificateId = &v
24029	return s
24030}
24031
24032// SetPatchOperations sets the PatchOperations field's value.
24033func (s *UpdateClientCertificateInput) SetPatchOperations(v []*PatchOperation) *UpdateClientCertificateInput {
24034	s.PatchOperations = v
24035	return s
24036}
24037
24038// Requests API Gateway to change information about a Deployment resource.
24039type UpdateDeploymentInput struct {
24040	_ struct{} `type:"structure"`
24041
24042	// The replacement identifier for the Deployment resource to change information
24043	// about.
24044	//
24045	// DeploymentId is a required field
24046	DeploymentId *string `location:"uri" locationName:"deployment_id" type:"string" required:"true"`
24047
24048	// A list of update operations to be applied to the specified resource and in
24049	// the order specified in this list.
24050	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24051
24052	// [Required] The string identifier of the associated RestApi.
24053	//
24054	// RestApiId is a required field
24055	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24056}
24057
24058// String returns the string representation
24059func (s UpdateDeploymentInput) String() string {
24060	return awsutil.Prettify(s)
24061}
24062
24063// GoString returns the string representation
24064func (s UpdateDeploymentInput) GoString() string {
24065	return s.String()
24066}
24067
24068// Validate inspects the fields of the type to determine if they are valid.
24069func (s *UpdateDeploymentInput) Validate() error {
24070	invalidParams := request.ErrInvalidParams{Context: "UpdateDeploymentInput"}
24071	if s.DeploymentId == nil {
24072		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
24073	}
24074	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
24075		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
24076	}
24077	if s.RestApiId == nil {
24078		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24079	}
24080	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24081		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24082	}
24083
24084	if invalidParams.Len() > 0 {
24085		return invalidParams
24086	}
24087	return nil
24088}
24089
24090// SetDeploymentId sets the DeploymentId field's value.
24091func (s *UpdateDeploymentInput) SetDeploymentId(v string) *UpdateDeploymentInput {
24092	s.DeploymentId = &v
24093	return s
24094}
24095
24096// SetPatchOperations sets the PatchOperations field's value.
24097func (s *UpdateDeploymentInput) SetPatchOperations(v []*PatchOperation) *UpdateDeploymentInput {
24098	s.PatchOperations = v
24099	return s
24100}
24101
24102// SetRestApiId sets the RestApiId field's value.
24103func (s *UpdateDeploymentInput) SetRestApiId(v string) *UpdateDeploymentInput {
24104	s.RestApiId = &v
24105	return s
24106}
24107
24108// Updates an existing documentation part of a given API.
24109type UpdateDocumentationPartInput struct {
24110	_ struct{} `type:"structure"`
24111
24112	// [Required] The identifier of the to-be-updated documentation part.
24113	//
24114	// DocumentationPartId is a required field
24115	DocumentationPartId *string `location:"uri" locationName:"part_id" type:"string" required:"true"`
24116
24117	// A list of update operations to be applied to the specified resource and in
24118	// the order specified in this list.
24119	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24120
24121	// [Required] The string identifier of the associated RestApi.
24122	//
24123	// RestApiId is a required field
24124	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24125}
24126
24127// String returns the string representation
24128func (s UpdateDocumentationPartInput) String() string {
24129	return awsutil.Prettify(s)
24130}
24131
24132// GoString returns the string representation
24133func (s UpdateDocumentationPartInput) GoString() string {
24134	return s.String()
24135}
24136
24137// Validate inspects the fields of the type to determine if they are valid.
24138func (s *UpdateDocumentationPartInput) Validate() error {
24139	invalidParams := request.ErrInvalidParams{Context: "UpdateDocumentationPartInput"}
24140	if s.DocumentationPartId == nil {
24141		invalidParams.Add(request.NewErrParamRequired("DocumentationPartId"))
24142	}
24143	if s.DocumentationPartId != nil && len(*s.DocumentationPartId) < 1 {
24144		invalidParams.Add(request.NewErrParamMinLen("DocumentationPartId", 1))
24145	}
24146	if s.RestApiId == nil {
24147		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24148	}
24149	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24150		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24151	}
24152
24153	if invalidParams.Len() > 0 {
24154		return invalidParams
24155	}
24156	return nil
24157}
24158
24159// SetDocumentationPartId sets the DocumentationPartId field's value.
24160func (s *UpdateDocumentationPartInput) SetDocumentationPartId(v string) *UpdateDocumentationPartInput {
24161	s.DocumentationPartId = &v
24162	return s
24163}
24164
24165// SetPatchOperations sets the PatchOperations field's value.
24166func (s *UpdateDocumentationPartInput) SetPatchOperations(v []*PatchOperation) *UpdateDocumentationPartInput {
24167	s.PatchOperations = v
24168	return s
24169}
24170
24171// SetRestApiId sets the RestApiId field's value.
24172func (s *UpdateDocumentationPartInput) SetRestApiId(v string) *UpdateDocumentationPartInput {
24173	s.RestApiId = &v
24174	return s
24175}
24176
24177// Updates an existing documentation version of an API.
24178type UpdateDocumentationVersionInput struct {
24179	_ struct{} `type:"structure"`
24180
24181	// [Required] The version identifier of the to-be-updated documentation version.
24182	//
24183	// DocumentationVersion is a required field
24184	DocumentationVersion *string `location:"uri" locationName:"doc_version" type:"string" required:"true"`
24185
24186	// A list of update operations to be applied to the specified resource and in
24187	// the order specified in this list.
24188	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24189
24190	// [Required] The string identifier of the associated RestApi..
24191	//
24192	// RestApiId is a required field
24193	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24194}
24195
24196// String returns the string representation
24197func (s UpdateDocumentationVersionInput) String() string {
24198	return awsutil.Prettify(s)
24199}
24200
24201// GoString returns the string representation
24202func (s UpdateDocumentationVersionInput) GoString() string {
24203	return s.String()
24204}
24205
24206// Validate inspects the fields of the type to determine if they are valid.
24207func (s *UpdateDocumentationVersionInput) Validate() error {
24208	invalidParams := request.ErrInvalidParams{Context: "UpdateDocumentationVersionInput"}
24209	if s.DocumentationVersion == nil {
24210		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
24211	}
24212	if s.DocumentationVersion != nil && len(*s.DocumentationVersion) < 1 {
24213		invalidParams.Add(request.NewErrParamMinLen("DocumentationVersion", 1))
24214	}
24215	if s.RestApiId == nil {
24216		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24217	}
24218	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24219		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24220	}
24221
24222	if invalidParams.Len() > 0 {
24223		return invalidParams
24224	}
24225	return nil
24226}
24227
24228// SetDocumentationVersion sets the DocumentationVersion field's value.
24229func (s *UpdateDocumentationVersionInput) SetDocumentationVersion(v string) *UpdateDocumentationVersionInput {
24230	s.DocumentationVersion = &v
24231	return s
24232}
24233
24234// SetPatchOperations sets the PatchOperations field's value.
24235func (s *UpdateDocumentationVersionInput) SetPatchOperations(v []*PatchOperation) *UpdateDocumentationVersionInput {
24236	s.PatchOperations = v
24237	return s
24238}
24239
24240// SetRestApiId sets the RestApiId field's value.
24241func (s *UpdateDocumentationVersionInput) SetRestApiId(v string) *UpdateDocumentationVersionInput {
24242	s.RestApiId = &v
24243	return s
24244}
24245
24246// A request to change information about the DomainName resource.
24247type UpdateDomainNameInput struct {
24248	_ struct{} `type:"structure"`
24249
24250	// [Required] The name of the DomainName resource to be changed.
24251	//
24252	// DomainName is a required field
24253	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
24254
24255	// A list of update operations to be applied to the specified resource and in
24256	// the order specified in this list.
24257	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24258}
24259
24260// String returns the string representation
24261func (s UpdateDomainNameInput) String() string {
24262	return awsutil.Prettify(s)
24263}
24264
24265// GoString returns the string representation
24266func (s UpdateDomainNameInput) GoString() string {
24267	return s.String()
24268}
24269
24270// Validate inspects the fields of the type to determine if they are valid.
24271func (s *UpdateDomainNameInput) Validate() error {
24272	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainNameInput"}
24273	if s.DomainName == nil {
24274		invalidParams.Add(request.NewErrParamRequired("DomainName"))
24275	}
24276	if s.DomainName != nil && len(*s.DomainName) < 1 {
24277		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
24278	}
24279
24280	if invalidParams.Len() > 0 {
24281		return invalidParams
24282	}
24283	return nil
24284}
24285
24286// SetDomainName sets the DomainName field's value.
24287func (s *UpdateDomainNameInput) SetDomainName(v string) *UpdateDomainNameInput {
24288	s.DomainName = &v
24289	return s
24290}
24291
24292// SetPatchOperations sets the PatchOperations field's value.
24293func (s *UpdateDomainNameInput) SetPatchOperations(v []*PatchOperation) *UpdateDomainNameInput {
24294	s.PatchOperations = v
24295	return s
24296}
24297
24298// Updates a GatewayResponse of a specified response type on the given RestApi.
24299type UpdateGatewayResponseInput struct {
24300	_ struct{} `type:"structure"`
24301
24302	// A list of update operations to be applied to the specified resource and in
24303	// the order specified in this list.
24304	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24305
24306	// [Required]
24307	// The response type of the associated GatewayResponse.
24308	//
24309	// ResponseType is a required field
24310	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
24311
24312	// [Required] The string identifier of the associated RestApi.
24313	//
24314	// RestApiId is a required field
24315	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24316}
24317
24318// String returns the string representation
24319func (s UpdateGatewayResponseInput) String() string {
24320	return awsutil.Prettify(s)
24321}
24322
24323// GoString returns the string representation
24324func (s UpdateGatewayResponseInput) GoString() string {
24325	return s.String()
24326}
24327
24328// Validate inspects the fields of the type to determine if they are valid.
24329func (s *UpdateGatewayResponseInput) Validate() error {
24330	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewayResponseInput"}
24331	if s.ResponseType == nil {
24332		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
24333	}
24334	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
24335		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
24336	}
24337	if s.RestApiId == nil {
24338		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24339	}
24340	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24341		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24342	}
24343
24344	if invalidParams.Len() > 0 {
24345		return invalidParams
24346	}
24347	return nil
24348}
24349
24350// SetPatchOperations sets the PatchOperations field's value.
24351func (s *UpdateGatewayResponseInput) SetPatchOperations(v []*PatchOperation) *UpdateGatewayResponseInput {
24352	s.PatchOperations = v
24353	return s
24354}
24355
24356// SetResponseType sets the ResponseType field's value.
24357func (s *UpdateGatewayResponseInput) SetResponseType(v string) *UpdateGatewayResponseInput {
24358	s.ResponseType = &v
24359	return s
24360}
24361
24362// SetRestApiId sets the RestApiId field's value.
24363func (s *UpdateGatewayResponseInput) SetRestApiId(v string) *UpdateGatewayResponseInput {
24364	s.RestApiId = &v
24365	return s
24366}
24367
24368// A gateway response of a given response type and status code, with optional
24369// response parameters and mapping templates.
24370//
24371// For more information about valid gateway response types, see Gateway Response
24372// Types Supported by API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/supported-gateway-response-types.html)
24373//
24374// Example: Get a Gateway Response of a given response type
24375//
24376// Request
24377//
24378// This example shows how to get a gateway response of the MISSING_AUTHENTICATION_TOKEN
24379// type.
24380//  GET /restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN HTTP/1.1
24381//  Host: beta-apigateway.us-east-1.amazonaws.com Content-Type: application/json
24382//  X-Amz-Date: 20170503T202516Z Authorization: AWS4-HMAC-SHA256 Credential={access-key-id}/20170503/us-east-1/apigateway/aws4_request,
24383//  SignedHeaders=content-type;host;x-amz-date, Signature=1b52460e3159c1a26cff29093855d50ea141c1c5b937528fecaf60f51129697a
24384//  Cache-Control: no-cache Postman-Token: 3b2a1ce9-c848-2e26-2e2f-9c2caefbed45
24385// The response type is specified as a URL path.
24386//
24387// Response
24388//
24389// The successful operation returns the 200 OK status code and a payload similar
24390// to the following:
24391//  { "_links": { "curies": { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html",
24392//  "name": "gatewayresponse", "templated": true }, "self": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
24393//  }, "gatewayresponse:delete": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
24394//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
24395//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
24396//  } }, "defaultResponse": false, "responseParameters": { "gatewayresponse.header.x-request-path":
24397//  "method.request.path.petId", "gatewayresponse.header.Access-Control-Allow-Origin":
24398//  "'a.b.c'", "gatewayresponse.header.x-request-query": "method.request.querystring.q",
24399//  "gatewayresponse.header.x-request-header": "method.request.header.Accept"
24400//  }, "responseTemplates": { "application/json": "{\n \"message\": $context.error.messageString,\n
24401//  \"type\": \"$context.error.responseType\",\n \"stage\": \"$context.stage\",\n
24402//  \"resourcePath\": \"$context.resourcePath\",\n \"stageVariables.a\": \"$stageVariables.a\",\n
24403//  \"statusCode\": \"'404'\"\n}" }, "responseType": "MISSING_AUTHENTICATION_TOKEN",
24404//  "statusCode": "404" }
24405//
24406// Customize Gateway Responses (https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html)
24407type UpdateGatewayResponseOutput struct {
24408	_ struct{} `type:"structure"`
24409
24410	// A Boolean flag to indicate whether this GatewayResponse is the default gateway
24411	// response (true) or not (false). A default gateway response is one generated
24412	// by API Gateway without any customization by an API developer.
24413	DefaultResponse *bool `locationName:"defaultResponse" type:"boolean"`
24414
24415	// Response parameters (paths, query strings and headers) of the GatewayResponse
24416	// as a string-to-string map of key-value pairs.
24417	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
24418
24419	// Response templates of the GatewayResponse as a string-to-string map of key-value
24420	// pairs.
24421	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
24422
24423	// The response type of the associated GatewayResponse.
24424	ResponseType *string `locationName:"responseType" type:"string" enum:"GatewayResponseType"`
24425
24426	// The HTTP status code for this GatewayResponse.
24427	StatusCode *string `locationName:"statusCode" type:"string"`
24428}
24429
24430// String returns the string representation
24431func (s UpdateGatewayResponseOutput) String() string {
24432	return awsutil.Prettify(s)
24433}
24434
24435// GoString returns the string representation
24436func (s UpdateGatewayResponseOutput) GoString() string {
24437	return s.String()
24438}
24439
24440// SetDefaultResponse sets the DefaultResponse field's value.
24441func (s *UpdateGatewayResponseOutput) SetDefaultResponse(v bool) *UpdateGatewayResponseOutput {
24442	s.DefaultResponse = &v
24443	return s
24444}
24445
24446// SetResponseParameters sets the ResponseParameters field's value.
24447func (s *UpdateGatewayResponseOutput) SetResponseParameters(v map[string]*string) *UpdateGatewayResponseOutput {
24448	s.ResponseParameters = v
24449	return s
24450}
24451
24452// SetResponseTemplates sets the ResponseTemplates field's value.
24453func (s *UpdateGatewayResponseOutput) SetResponseTemplates(v map[string]*string) *UpdateGatewayResponseOutput {
24454	s.ResponseTemplates = v
24455	return s
24456}
24457
24458// SetResponseType sets the ResponseType field's value.
24459func (s *UpdateGatewayResponseOutput) SetResponseType(v string) *UpdateGatewayResponseOutput {
24460	s.ResponseType = &v
24461	return s
24462}
24463
24464// SetStatusCode sets the StatusCode field's value.
24465func (s *UpdateGatewayResponseOutput) SetStatusCode(v string) *UpdateGatewayResponseOutput {
24466	s.StatusCode = &v
24467	return s
24468}
24469
24470// Represents an update integration request.
24471type UpdateIntegrationInput struct {
24472	_ struct{} `type:"structure"`
24473
24474	// [Required] Represents an update integration request's HTTP method.
24475	//
24476	// HttpMethod is a required field
24477	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
24478
24479	// A list of update operations to be applied to the specified resource and in
24480	// the order specified in this list.
24481	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24482
24483	// [Required] Represents an update integration request's resource identifier.
24484	//
24485	// ResourceId is a required field
24486	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
24487
24488	// [Required] The string identifier of the associated RestApi.
24489	//
24490	// RestApiId is a required field
24491	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24492}
24493
24494// String returns the string representation
24495func (s UpdateIntegrationInput) String() string {
24496	return awsutil.Prettify(s)
24497}
24498
24499// GoString returns the string representation
24500func (s UpdateIntegrationInput) GoString() string {
24501	return s.String()
24502}
24503
24504// Validate inspects the fields of the type to determine if they are valid.
24505func (s *UpdateIntegrationInput) Validate() error {
24506	invalidParams := request.ErrInvalidParams{Context: "UpdateIntegrationInput"}
24507	if s.HttpMethod == nil {
24508		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
24509	}
24510	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
24511		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
24512	}
24513	if s.ResourceId == nil {
24514		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
24515	}
24516	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
24517		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
24518	}
24519	if s.RestApiId == nil {
24520		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24521	}
24522	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24523		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24524	}
24525
24526	if invalidParams.Len() > 0 {
24527		return invalidParams
24528	}
24529	return nil
24530}
24531
24532// SetHttpMethod sets the HttpMethod field's value.
24533func (s *UpdateIntegrationInput) SetHttpMethod(v string) *UpdateIntegrationInput {
24534	s.HttpMethod = &v
24535	return s
24536}
24537
24538// SetPatchOperations sets the PatchOperations field's value.
24539func (s *UpdateIntegrationInput) SetPatchOperations(v []*PatchOperation) *UpdateIntegrationInput {
24540	s.PatchOperations = v
24541	return s
24542}
24543
24544// SetResourceId sets the ResourceId field's value.
24545func (s *UpdateIntegrationInput) SetResourceId(v string) *UpdateIntegrationInput {
24546	s.ResourceId = &v
24547	return s
24548}
24549
24550// SetRestApiId sets the RestApiId field's value.
24551func (s *UpdateIntegrationInput) SetRestApiId(v string) *UpdateIntegrationInput {
24552	s.RestApiId = &v
24553	return s
24554}
24555
24556// Represents an update integration response request.
24557type UpdateIntegrationResponseInput struct {
24558	_ struct{} `type:"structure"`
24559
24560	// [Required] Specifies an update integration response request's HTTP method.
24561	//
24562	// HttpMethod is a required field
24563	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
24564
24565	// A list of update operations to be applied to the specified resource and in
24566	// the order specified in this list.
24567	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24568
24569	// [Required] Specifies an update integration response request's resource identifier.
24570	//
24571	// ResourceId is a required field
24572	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
24573
24574	// [Required] The string identifier of the associated RestApi.
24575	//
24576	// RestApiId is a required field
24577	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24578
24579	// [Required] Specifies an update integration response request's status code.
24580	//
24581	// StatusCode is a required field
24582	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
24583}
24584
24585// String returns the string representation
24586func (s UpdateIntegrationResponseInput) String() string {
24587	return awsutil.Prettify(s)
24588}
24589
24590// GoString returns the string representation
24591func (s UpdateIntegrationResponseInput) GoString() string {
24592	return s.String()
24593}
24594
24595// Validate inspects the fields of the type to determine if they are valid.
24596func (s *UpdateIntegrationResponseInput) Validate() error {
24597	invalidParams := request.ErrInvalidParams{Context: "UpdateIntegrationResponseInput"}
24598	if s.HttpMethod == nil {
24599		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
24600	}
24601	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
24602		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
24603	}
24604	if s.ResourceId == nil {
24605		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
24606	}
24607	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
24608		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
24609	}
24610	if s.RestApiId == nil {
24611		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24612	}
24613	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24614		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24615	}
24616	if s.StatusCode == nil {
24617		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
24618	}
24619	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
24620		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
24621	}
24622
24623	if invalidParams.Len() > 0 {
24624		return invalidParams
24625	}
24626	return nil
24627}
24628
24629// SetHttpMethod sets the HttpMethod field's value.
24630func (s *UpdateIntegrationResponseInput) SetHttpMethod(v string) *UpdateIntegrationResponseInput {
24631	s.HttpMethod = &v
24632	return s
24633}
24634
24635// SetPatchOperations sets the PatchOperations field's value.
24636func (s *UpdateIntegrationResponseInput) SetPatchOperations(v []*PatchOperation) *UpdateIntegrationResponseInput {
24637	s.PatchOperations = v
24638	return s
24639}
24640
24641// SetResourceId sets the ResourceId field's value.
24642func (s *UpdateIntegrationResponseInput) SetResourceId(v string) *UpdateIntegrationResponseInput {
24643	s.ResourceId = &v
24644	return s
24645}
24646
24647// SetRestApiId sets the RestApiId field's value.
24648func (s *UpdateIntegrationResponseInput) SetRestApiId(v string) *UpdateIntegrationResponseInput {
24649	s.RestApiId = &v
24650	return s
24651}
24652
24653// SetStatusCode sets the StatusCode field's value.
24654func (s *UpdateIntegrationResponseInput) SetStatusCode(v string) *UpdateIntegrationResponseInput {
24655	s.StatusCode = &v
24656	return s
24657}
24658
24659// Request to update an existing Method resource.
24660type UpdateMethodInput struct {
24661	_ struct{} `type:"structure"`
24662
24663	// [Required] The HTTP verb of the Method resource.
24664	//
24665	// HttpMethod is a required field
24666	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
24667
24668	// A list of update operations to be applied to the specified resource and in
24669	// the order specified in this list.
24670	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24671
24672	// [Required] The Resource identifier for the Method resource.
24673	//
24674	// ResourceId is a required field
24675	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
24676
24677	// [Required] The string identifier of the associated RestApi.
24678	//
24679	// RestApiId is a required field
24680	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24681}
24682
24683// String returns the string representation
24684func (s UpdateMethodInput) String() string {
24685	return awsutil.Prettify(s)
24686}
24687
24688// GoString returns the string representation
24689func (s UpdateMethodInput) GoString() string {
24690	return s.String()
24691}
24692
24693// Validate inspects the fields of the type to determine if they are valid.
24694func (s *UpdateMethodInput) Validate() error {
24695	invalidParams := request.ErrInvalidParams{Context: "UpdateMethodInput"}
24696	if s.HttpMethod == nil {
24697		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
24698	}
24699	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
24700		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
24701	}
24702	if s.ResourceId == nil {
24703		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
24704	}
24705	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
24706		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
24707	}
24708	if s.RestApiId == nil {
24709		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24710	}
24711	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24712		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24713	}
24714
24715	if invalidParams.Len() > 0 {
24716		return invalidParams
24717	}
24718	return nil
24719}
24720
24721// SetHttpMethod sets the HttpMethod field's value.
24722func (s *UpdateMethodInput) SetHttpMethod(v string) *UpdateMethodInput {
24723	s.HttpMethod = &v
24724	return s
24725}
24726
24727// SetPatchOperations sets the PatchOperations field's value.
24728func (s *UpdateMethodInput) SetPatchOperations(v []*PatchOperation) *UpdateMethodInput {
24729	s.PatchOperations = v
24730	return s
24731}
24732
24733// SetResourceId sets the ResourceId field's value.
24734func (s *UpdateMethodInput) SetResourceId(v string) *UpdateMethodInput {
24735	s.ResourceId = &v
24736	return s
24737}
24738
24739// SetRestApiId sets the RestApiId field's value.
24740func (s *UpdateMethodInput) SetRestApiId(v string) *UpdateMethodInput {
24741	s.RestApiId = &v
24742	return s
24743}
24744
24745// A request to update an existing MethodResponse resource.
24746type UpdateMethodResponseInput struct {
24747	_ struct{} `type:"structure"`
24748
24749	// [Required] The HTTP verb of the Method resource.
24750	//
24751	// HttpMethod is a required field
24752	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
24753
24754	// A list of update operations to be applied to the specified resource and in
24755	// the order specified in this list.
24756	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24757
24758	// [Required] The Resource identifier for the MethodResponse resource.
24759	//
24760	// ResourceId is a required field
24761	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
24762
24763	// [Required] The string identifier of the associated RestApi.
24764	//
24765	// RestApiId is a required field
24766	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24767
24768	// [Required] The status code for the MethodResponse resource.
24769	//
24770	// StatusCode is a required field
24771	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
24772}
24773
24774// String returns the string representation
24775func (s UpdateMethodResponseInput) String() string {
24776	return awsutil.Prettify(s)
24777}
24778
24779// GoString returns the string representation
24780func (s UpdateMethodResponseInput) GoString() string {
24781	return s.String()
24782}
24783
24784// Validate inspects the fields of the type to determine if they are valid.
24785func (s *UpdateMethodResponseInput) Validate() error {
24786	invalidParams := request.ErrInvalidParams{Context: "UpdateMethodResponseInput"}
24787	if s.HttpMethod == nil {
24788		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
24789	}
24790	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
24791		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
24792	}
24793	if s.ResourceId == nil {
24794		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
24795	}
24796	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
24797		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
24798	}
24799	if s.RestApiId == nil {
24800		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24801	}
24802	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24803		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24804	}
24805	if s.StatusCode == nil {
24806		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
24807	}
24808	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
24809		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
24810	}
24811
24812	if invalidParams.Len() > 0 {
24813		return invalidParams
24814	}
24815	return nil
24816}
24817
24818// SetHttpMethod sets the HttpMethod field's value.
24819func (s *UpdateMethodResponseInput) SetHttpMethod(v string) *UpdateMethodResponseInput {
24820	s.HttpMethod = &v
24821	return s
24822}
24823
24824// SetPatchOperations sets the PatchOperations field's value.
24825func (s *UpdateMethodResponseInput) SetPatchOperations(v []*PatchOperation) *UpdateMethodResponseInput {
24826	s.PatchOperations = v
24827	return s
24828}
24829
24830// SetResourceId sets the ResourceId field's value.
24831func (s *UpdateMethodResponseInput) SetResourceId(v string) *UpdateMethodResponseInput {
24832	s.ResourceId = &v
24833	return s
24834}
24835
24836// SetRestApiId sets the RestApiId field's value.
24837func (s *UpdateMethodResponseInput) SetRestApiId(v string) *UpdateMethodResponseInput {
24838	s.RestApiId = &v
24839	return s
24840}
24841
24842// SetStatusCode sets the StatusCode field's value.
24843func (s *UpdateMethodResponseInput) SetStatusCode(v string) *UpdateMethodResponseInput {
24844	s.StatusCode = &v
24845	return s
24846}
24847
24848// Request to update an existing model in an existing RestApi resource.
24849type UpdateModelInput struct {
24850	_ struct{} `type:"structure"`
24851
24852	// [Required] The name of the model to update.
24853	//
24854	// ModelName is a required field
24855	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
24856
24857	// A list of update operations to be applied to the specified resource and in
24858	// the order specified in this list.
24859	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24860
24861	// [Required] The string identifier of the associated RestApi.
24862	//
24863	// RestApiId is a required field
24864	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24865}
24866
24867// String returns the string representation
24868func (s UpdateModelInput) String() string {
24869	return awsutil.Prettify(s)
24870}
24871
24872// GoString returns the string representation
24873func (s UpdateModelInput) GoString() string {
24874	return s.String()
24875}
24876
24877// Validate inspects the fields of the type to determine if they are valid.
24878func (s *UpdateModelInput) Validate() error {
24879	invalidParams := request.ErrInvalidParams{Context: "UpdateModelInput"}
24880	if s.ModelName == nil {
24881		invalidParams.Add(request.NewErrParamRequired("ModelName"))
24882	}
24883	if s.ModelName != nil && len(*s.ModelName) < 1 {
24884		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
24885	}
24886	if s.RestApiId == nil {
24887		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24888	}
24889	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24890		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24891	}
24892
24893	if invalidParams.Len() > 0 {
24894		return invalidParams
24895	}
24896	return nil
24897}
24898
24899// SetModelName sets the ModelName field's value.
24900func (s *UpdateModelInput) SetModelName(v string) *UpdateModelInput {
24901	s.ModelName = &v
24902	return s
24903}
24904
24905// SetPatchOperations sets the PatchOperations field's value.
24906func (s *UpdateModelInput) SetPatchOperations(v []*PatchOperation) *UpdateModelInput {
24907	s.PatchOperations = v
24908	return s
24909}
24910
24911// SetRestApiId sets the RestApiId field's value.
24912func (s *UpdateModelInput) SetRestApiId(v string) *UpdateModelInput {
24913	s.RestApiId = &v
24914	return s
24915}
24916
24917// Updates a RequestValidator of a given RestApi.
24918type UpdateRequestValidatorInput struct {
24919	_ struct{} `type:"structure"`
24920
24921	// A list of update operations to be applied to the specified resource and in
24922	// the order specified in this list.
24923	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24924
24925	// [Required] The identifier of RequestValidator to be updated.
24926	//
24927	// RequestValidatorId is a required field
24928	RequestValidatorId *string `location:"uri" locationName:"requestvalidator_id" type:"string" required:"true"`
24929
24930	// [Required] The string identifier of the associated RestApi.
24931	//
24932	// RestApiId is a required field
24933	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24934}
24935
24936// String returns the string representation
24937func (s UpdateRequestValidatorInput) String() string {
24938	return awsutil.Prettify(s)
24939}
24940
24941// GoString returns the string representation
24942func (s UpdateRequestValidatorInput) GoString() string {
24943	return s.String()
24944}
24945
24946// Validate inspects the fields of the type to determine if they are valid.
24947func (s *UpdateRequestValidatorInput) Validate() error {
24948	invalidParams := request.ErrInvalidParams{Context: "UpdateRequestValidatorInput"}
24949	if s.RequestValidatorId == nil {
24950		invalidParams.Add(request.NewErrParamRequired("RequestValidatorId"))
24951	}
24952	if s.RequestValidatorId != nil && len(*s.RequestValidatorId) < 1 {
24953		invalidParams.Add(request.NewErrParamMinLen("RequestValidatorId", 1))
24954	}
24955	if s.RestApiId == nil {
24956		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24957	}
24958	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24959		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24960	}
24961
24962	if invalidParams.Len() > 0 {
24963		return invalidParams
24964	}
24965	return nil
24966}
24967
24968// SetPatchOperations sets the PatchOperations field's value.
24969func (s *UpdateRequestValidatorInput) SetPatchOperations(v []*PatchOperation) *UpdateRequestValidatorInput {
24970	s.PatchOperations = v
24971	return s
24972}
24973
24974// SetRequestValidatorId sets the RequestValidatorId field's value.
24975func (s *UpdateRequestValidatorInput) SetRequestValidatorId(v string) *UpdateRequestValidatorInput {
24976	s.RequestValidatorId = &v
24977	return s
24978}
24979
24980// SetRestApiId sets the RestApiId field's value.
24981func (s *UpdateRequestValidatorInput) SetRestApiId(v string) *UpdateRequestValidatorInput {
24982	s.RestApiId = &v
24983	return s
24984}
24985
24986// A set of validation rules for incoming Method requests.
24987//
24988// In OpenAPI, a RequestValidator of an API is defined by the x-amazon-apigateway-request-validators.requestValidator
24989// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html#api-gateway-swagger-extensions-request-validators.requestValidator.html)
24990// object. It the referenced using the x-amazon-apigateway-request-validator
24991// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html#api-gateway-swagger-extensions-request-validator)
24992// property.
24993//
24994// Enable Basic Request Validation in API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html)
24995type UpdateRequestValidatorOutput struct {
24996	_ struct{} `type:"structure"`
24997
24998	// The identifier of this RequestValidator.
24999	Id *string `locationName:"id" type:"string"`
25000
25001	// The name of this RequestValidator
25002	Name *string `locationName:"name" type:"string"`
25003
25004	// A Boolean flag to indicate whether to validate a request body according to
25005	// the configured Model schema.
25006	ValidateRequestBody *bool `locationName:"validateRequestBody" type:"boolean"`
25007
25008	// A Boolean flag to indicate whether to validate request parameters (true)
25009	// or not (false).
25010	ValidateRequestParameters *bool `locationName:"validateRequestParameters" type:"boolean"`
25011}
25012
25013// String returns the string representation
25014func (s UpdateRequestValidatorOutput) String() string {
25015	return awsutil.Prettify(s)
25016}
25017
25018// GoString returns the string representation
25019func (s UpdateRequestValidatorOutput) GoString() string {
25020	return s.String()
25021}
25022
25023// SetId sets the Id field's value.
25024func (s *UpdateRequestValidatorOutput) SetId(v string) *UpdateRequestValidatorOutput {
25025	s.Id = &v
25026	return s
25027}
25028
25029// SetName sets the Name field's value.
25030func (s *UpdateRequestValidatorOutput) SetName(v string) *UpdateRequestValidatorOutput {
25031	s.Name = &v
25032	return s
25033}
25034
25035// SetValidateRequestBody sets the ValidateRequestBody field's value.
25036func (s *UpdateRequestValidatorOutput) SetValidateRequestBody(v bool) *UpdateRequestValidatorOutput {
25037	s.ValidateRequestBody = &v
25038	return s
25039}
25040
25041// SetValidateRequestParameters sets the ValidateRequestParameters field's value.
25042func (s *UpdateRequestValidatorOutput) SetValidateRequestParameters(v bool) *UpdateRequestValidatorOutput {
25043	s.ValidateRequestParameters = &v
25044	return s
25045}
25046
25047// Request to change information about a Resource resource.
25048type UpdateResourceInput struct {
25049	_ struct{} `type:"structure"`
25050
25051	// A list of update operations to be applied to the specified resource and in
25052	// the order specified in this list.
25053	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25054
25055	// [Required] The identifier of the Resource resource.
25056	//
25057	// ResourceId is a required field
25058	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
25059
25060	// [Required] The string identifier of the associated RestApi.
25061	//
25062	// RestApiId is a required field
25063	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
25064}
25065
25066// String returns the string representation
25067func (s UpdateResourceInput) String() string {
25068	return awsutil.Prettify(s)
25069}
25070
25071// GoString returns the string representation
25072func (s UpdateResourceInput) GoString() string {
25073	return s.String()
25074}
25075
25076// Validate inspects the fields of the type to determine if they are valid.
25077func (s *UpdateResourceInput) Validate() error {
25078	invalidParams := request.ErrInvalidParams{Context: "UpdateResourceInput"}
25079	if s.ResourceId == nil {
25080		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
25081	}
25082	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
25083		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
25084	}
25085	if s.RestApiId == nil {
25086		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
25087	}
25088	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
25089		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
25090	}
25091
25092	if invalidParams.Len() > 0 {
25093		return invalidParams
25094	}
25095	return nil
25096}
25097
25098// SetPatchOperations sets the PatchOperations field's value.
25099func (s *UpdateResourceInput) SetPatchOperations(v []*PatchOperation) *UpdateResourceInput {
25100	s.PatchOperations = v
25101	return s
25102}
25103
25104// SetResourceId sets the ResourceId field's value.
25105func (s *UpdateResourceInput) SetResourceId(v string) *UpdateResourceInput {
25106	s.ResourceId = &v
25107	return s
25108}
25109
25110// SetRestApiId sets the RestApiId field's value.
25111func (s *UpdateResourceInput) SetRestApiId(v string) *UpdateResourceInput {
25112	s.RestApiId = &v
25113	return s
25114}
25115
25116// Request to update an existing RestApi resource in your collection.
25117type UpdateRestApiInput struct {
25118	_ struct{} `type:"structure"`
25119
25120	// A list of update operations to be applied to the specified resource and in
25121	// the order specified in this list.
25122	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25123
25124	// [Required] The string identifier of the associated RestApi.
25125	//
25126	// RestApiId is a required field
25127	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
25128}
25129
25130// String returns the string representation
25131func (s UpdateRestApiInput) String() string {
25132	return awsutil.Prettify(s)
25133}
25134
25135// GoString returns the string representation
25136func (s UpdateRestApiInput) GoString() string {
25137	return s.String()
25138}
25139
25140// Validate inspects the fields of the type to determine if they are valid.
25141func (s *UpdateRestApiInput) Validate() error {
25142	invalidParams := request.ErrInvalidParams{Context: "UpdateRestApiInput"}
25143	if s.RestApiId == nil {
25144		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
25145	}
25146	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
25147		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
25148	}
25149
25150	if invalidParams.Len() > 0 {
25151		return invalidParams
25152	}
25153	return nil
25154}
25155
25156// SetPatchOperations sets the PatchOperations field's value.
25157func (s *UpdateRestApiInput) SetPatchOperations(v []*PatchOperation) *UpdateRestApiInput {
25158	s.PatchOperations = v
25159	return s
25160}
25161
25162// SetRestApiId sets the RestApiId field's value.
25163func (s *UpdateRestApiInput) SetRestApiId(v string) *UpdateRestApiInput {
25164	s.RestApiId = &v
25165	return s
25166}
25167
25168// Requests API Gateway to change information about a Stage resource.
25169type UpdateStageInput struct {
25170	_ struct{} `type:"structure"`
25171
25172	// A list of update operations to be applied to the specified resource and in
25173	// the order specified in this list.
25174	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25175
25176	// [Required] The string identifier of the associated RestApi.
25177	//
25178	// RestApiId is a required field
25179	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
25180
25181	// [Required] The name of the Stage resource to change information about.
25182	//
25183	// StageName is a required field
25184	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
25185}
25186
25187// String returns the string representation
25188func (s UpdateStageInput) String() string {
25189	return awsutil.Prettify(s)
25190}
25191
25192// GoString returns the string representation
25193func (s UpdateStageInput) GoString() string {
25194	return s.String()
25195}
25196
25197// Validate inspects the fields of the type to determine if they are valid.
25198func (s *UpdateStageInput) Validate() error {
25199	invalidParams := request.ErrInvalidParams{Context: "UpdateStageInput"}
25200	if s.RestApiId == nil {
25201		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
25202	}
25203	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
25204		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
25205	}
25206	if s.StageName == nil {
25207		invalidParams.Add(request.NewErrParamRequired("StageName"))
25208	}
25209	if s.StageName != nil && len(*s.StageName) < 1 {
25210		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
25211	}
25212
25213	if invalidParams.Len() > 0 {
25214		return invalidParams
25215	}
25216	return nil
25217}
25218
25219// SetPatchOperations sets the PatchOperations field's value.
25220func (s *UpdateStageInput) SetPatchOperations(v []*PatchOperation) *UpdateStageInput {
25221	s.PatchOperations = v
25222	return s
25223}
25224
25225// SetRestApiId sets the RestApiId field's value.
25226func (s *UpdateStageInput) SetRestApiId(v string) *UpdateStageInput {
25227	s.RestApiId = &v
25228	return s
25229}
25230
25231// SetStageName sets the StageName field's value.
25232func (s *UpdateStageInput) SetStageName(v string) *UpdateStageInput {
25233	s.StageName = &v
25234	return s
25235}
25236
25237// The PATCH request to grant a temporary extension to the remaining quota of
25238// a usage plan associated with a specified API key.
25239type UpdateUsageInput struct {
25240	_ struct{} `type:"structure"`
25241
25242	// [Required] The identifier of the API key associated with the usage plan in
25243	// which a temporary extension is granted to the remaining quota.
25244	//
25245	// KeyId is a required field
25246	KeyId *string `location:"uri" locationName:"keyId" type:"string" required:"true"`
25247
25248	// A list of update operations to be applied to the specified resource and in
25249	// the order specified in this list.
25250	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25251
25252	// [Required] The Id of the usage plan associated with the usage data.
25253	//
25254	// UsagePlanId is a required field
25255	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
25256}
25257
25258// String returns the string representation
25259func (s UpdateUsageInput) String() string {
25260	return awsutil.Prettify(s)
25261}
25262
25263// GoString returns the string representation
25264func (s UpdateUsageInput) GoString() string {
25265	return s.String()
25266}
25267
25268// Validate inspects the fields of the type to determine if they are valid.
25269func (s *UpdateUsageInput) Validate() error {
25270	invalidParams := request.ErrInvalidParams{Context: "UpdateUsageInput"}
25271	if s.KeyId == nil {
25272		invalidParams.Add(request.NewErrParamRequired("KeyId"))
25273	}
25274	if s.KeyId != nil && len(*s.KeyId) < 1 {
25275		invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
25276	}
25277	if s.UsagePlanId == nil {
25278		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
25279	}
25280	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
25281		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
25282	}
25283
25284	if invalidParams.Len() > 0 {
25285		return invalidParams
25286	}
25287	return nil
25288}
25289
25290// SetKeyId sets the KeyId field's value.
25291func (s *UpdateUsageInput) SetKeyId(v string) *UpdateUsageInput {
25292	s.KeyId = &v
25293	return s
25294}
25295
25296// SetPatchOperations sets the PatchOperations field's value.
25297func (s *UpdateUsageInput) SetPatchOperations(v []*PatchOperation) *UpdateUsageInput {
25298	s.PatchOperations = v
25299	return s
25300}
25301
25302// SetUsagePlanId sets the UsagePlanId field's value.
25303func (s *UpdateUsageInput) SetUsagePlanId(v string) *UpdateUsageInput {
25304	s.UsagePlanId = &v
25305	return s
25306}
25307
25308// The PATCH request to update a usage plan of a given plan Id.
25309type UpdateUsagePlanInput struct {
25310	_ struct{} `type:"structure"`
25311
25312	// A list of update operations to be applied to the specified resource and in
25313	// the order specified in this list.
25314	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25315
25316	// [Required] The Id of the to-be-updated usage plan.
25317	//
25318	// UsagePlanId is a required field
25319	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
25320}
25321
25322// String returns the string representation
25323func (s UpdateUsagePlanInput) String() string {
25324	return awsutil.Prettify(s)
25325}
25326
25327// GoString returns the string representation
25328func (s UpdateUsagePlanInput) GoString() string {
25329	return s.String()
25330}
25331
25332// Validate inspects the fields of the type to determine if they are valid.
25333func (s *UpdateUsagePlanInput) Validate() error {
25334	invalidParams := request.ErrInvalidParams{Context: "UpdateUsagePlanInput"}
25335	if s.UsagePlanId == nil {
25336		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
25337	}
25338	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
25339		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
25340	}
25341
25342	if invalidParams.Len() > 0 {
25343		return invalidParams
25344	}
25345	return nil
25346}
25347
25348// SetPatchOperations sets the PatchOperations field's value.
25349func (s *UpdateUsagePlanInput) SetPatchOperations(v []*PatchOperation) *UpdateUsagePlanInput {
25350	s.PatchOperations = v
25351	return s
25352}
25353
25354// SetUsagePlanId sets the UsagePlanId field's value.
25355func (s *UpdateUsagePlanInput) SetUsagePlanId(v string) *UpdateUsagePlanInput {
25356	s.UsagePlanId = &v
25357	return s
25358}
25359
25360// Updates an existing VpcLink of a specified identifier.
25361type UpdateVpcLinkInput struct {
25362	_ struct{} `type:"structure"`
25363
25364	// A list of update operations to be applied to the specified resource and in
25365	// the order specified in this list.
25366	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25367
25368	// [Required] The identifier of the VpcLink. It is used in an Integration to
25369	// reference this VpcLink.
25370	//
25371	// VpcLinkId is a required field
25372	VpcLinkId *string `location:"uri" locationName:"vpclink_id" type:"string" required:"true"`
25373}
25374
25375// String returns the string representation
25376func (s UpdateVpcLinkInput) String() string {
25377	return awsutil.Prettify(s)
25378}
25379
25380// GoString returns the string representation
25381func (s UpdateVpcLinkInput) GoString() string {
25382	return s.String()
25383}
25384
25385// Validate inspects the fields of the type to determine if they are valid.
25386func (s *UpdateVpcLinkInput) Validate() error {
25387	invalidParams := request.ErrInvalidParams{Context: "UpdateVpcLinkInput"}
25388	if s.VpcLinkId == nil {
25389		invalidParams.Add(request.NewErrParamRequired("VpcLinkId"))
25390	}
25391	if s.VpcLinkId != nil && len(*s.VpcLinkId) < 1 {
25392		invalidParams.Add(request.NewErrParamMinLen("VpcLinkId", 1))
25393	}
25394
25395	if invalidParams.Len() > 0 {
25396		return invalidParams
25397	}
25398	return nil
25399}
25400
25401// SetPatchOperations sets the PatchOperations field's value.
25402func (s *UpdateVpcLinkInput) SetPatchOperations(v []*PatchOperation) *UpdateVpcLinkInput {
25403	s.PatchOperations = v
25404	return s
25405}
25406
25407// SetVpcLinkId sets the VpcLinkId field's value.
25408func (s *UpdateVpcLinkInput) SetVpcLinkId(v string) *UpdateVpcLinkInput {
25409	s.VpcLinkId = &v
25410	return s
25411}
25412
25413// An API Gateway VPC link for a RestApi to access resources in an Amazon Virtual
25414// Private Cloud (VPC).
25415//
25416// To enable access to a resource in an Amazon Virtual Private Cloud through
25417// Amazon API Gateway, you, as an API developer, create a VpcLink resource targeted
25418// for one or more network load balancers of the VPC and then integrate an API
25419// method with a private integration that uses the VpcLink. The private integration
25420// has an integration type of HTTP or HTTP_PROXY and has a connection type of
25421// VPC_LINK. The integration uses the connectionId property to identify the
25422// VpcLink used.
25423type UpdateVpcLinkOutput struct {
25424	_ struct{} `type:"structure"`
25425
25426	// The description of the VPC link.
25427	Description *string `locationName:"description" type:"string"`
25428
25429	// The identifier of the VpcLink. It is used in an Integration to reference
25430	// this VpcLink.
25431	Id *string `locationName:"id" type:"string"`
25432
25433	// The name used to label and identify the VPC link.
25434	Name *string `locationName:"name" type:"string"`
25435
25436	// The status of the VPC link. The valid values are AVAILABLE, PENDING, DELETING,
25437	// or FAILED. Deploying an API will wait if the status is PENDING and will fail
25438	// if the status is DELETING.
25439	Status *string `locationName:"status" type:"string" enum:"VpcLinkStatus"`
25440
25441	// A description about the VPC link status.
25442	StatusMessage *string `locationName:"statusMessage" type:"string"`
25443
25444	// The collection of tags. Each tag element is associated with a given resource.
25445	Tags map[string]*string `locationName:"tags" type:"map"`
25446
25447	// The ARN of the network load balancer of the VPC targeted by the VPC link.
25448	// The network load balancer must be owned by the same AWS account of the API
25449	// owner.
25450	TargetArns []*string `locationName:"targetArns" type:"list"`
25451}
25452
25453// String returns the string representation
25454func (s UpdateVpcLinkOutput) String() string {
25455	return awsutil.Prettify(s)
25456}
25457
25458// GoString returns the string representation
25459func (s UpdateVpcLinkOutput) GoString() string {
25460	return s.String()
25461}
25462
25463// SetDescription sets the Description field's value.
25464func (s *UpdateVpcLinkOutput) SetDescription(v string) *UpdateVpcLinkOutput {
25465	s.Description = &v
25466	return s
25467}
25468
25469// SetId sets the Id field's value.
25470func (s *UpdateVpcLinkOutput) SetId(v string) *UpdateVpcLinkOutput {
25471	s.Id = &v
25472	return s
25473}
25474
25475// SetName sets the Name field's value.
25476func (s *UpdateVpcLinkOutput) SetName(v string) *UpdateVpcLinkOutput {
25477	s.Name = &v
25478	return s
25479}
25480
25481// SetStatus sets the Status field's value.
25482func (s *UpdateVpcLinkOutput) SetStatus(v string) *UpdateVpcLinkOutput {
25483	s.Status = &v
25484	return s
25485}
25486
25487// SetStatusMessage sets the StatusMessage field's value.
25488func (s *UpdateVpcLinkOutput) SetStatusMessage(v string) *UpdateVpcLinkOutput {
25489	s.StatusMessage = &v
25490	return s
25491}
25492
25493// SetTags sets the Tags field's value.
25494func (s *UpdateVpcLinkOutput) SetTags(v map[string]*string) *UpdateVpcLinkOutput {
25495	s.Tags = v
25496	return s
25497}
25498
25499// SetTargetArns sets the TargetArns field's value.
25500func (s *UpdateVpcLinkOutput) SetTargetArns(v []*string) *UpdateVpcLinkOutput {
25501	s.TargetArns = v
25502	return s
25503}
25504
25505// Represents the usage data of a usage plan.
25506//
25507// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html),
25508// Manage Usage in a Usage Plan (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-usage-plans-with-console.html#api-gateway-usage-plan-manage-usage)
25509type Usage struct {
25510	_ struct{} `type:"structure"`
25511
25512	// The ending date of the usage data.
25513	EndDate *string `locationName:"endDate" type:"string"`
25514
25515	// The usage data, as daily logs of used and remaining quotas, over the specified
25516	// time interval indexed over the API keys in a usage plan. For example, {...,
25517	// "values" : { "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}, where {api_key}
25518	// stands for an API key value and the daily log entry is of the format [used
25519	// quota, remaining quota].
25520	Items map[string][][]*int64 `locationName:"values" type:"map"`
25521
25522	Position *string `locationName:"position" type:"string"`
25523
25524	// The starting date of the usage data.
25525	StartDate *string `locationName:"startDate" type:"string"`
25526
25527	// The plan Id associated with this usage data.
25528	UsagePlanId *string `locationName:"usagePlanId" type:"string"`
25529}
25530
25531// String returns the string representation
25532func (s Usage) String() string {
25533	return awsutil.Prettify(s)
25534}
25535
25536// GoString returns the string representation
25537func (s Usage) GoString() string {
25538	return s.String()
25539}
25540
25541// SetEndDate sets the EndDate field's value.
25542func (s *Usage) SetEndDate(v string) *Usage {
25543	s.EndDate = &v
25544	return s
25545}
25546
25547// SetItems sets the Items field's value.
25548func (s *Usage) SetItems(v map[string][][]*int64) *Usage {
25549	s.Items = v
25550	return s
25551}
25552
25553// SetPosition sets the Position field's value.
25554func (s *Usage) SetPosition(v string) *Usage {
25555	s.Position = &v
25556	return s
25557}
25558
25559// SetStartDate sets the StartDate field's value.
25560func (s *Usage) SetStartDate(v string) *Usage {
25561	s.StartDate = &v
25562	return s
25563}
25564
25565// SetUsagePlanId sets the UsagePlanId field's value.
25566func (s *Usage) SetUsagePlanId(v string) *Usage {
25567	s.UsagePlanId = &v
25568	return s
25569}
25570
25571// Represents a usage plan than can specify who can assess associated API stages
25572// with specified request limits and quotas.
25573//
25574// In a usage plan, you associate an API by specifying the API's Id and a stage
25575// name of the specified API. You add plan customers by adding API keys to the
25576// plan.
25577//
25578// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
25579type UsagePlan struct {
25580	_ struct{} `type:"structure"`
25581
25582	// The associated API stages of a usage plan.
25583	ApiStages []*ApiStage `locationName:"apiStages" type:"list"`
25584
25585	// The description of a usage plan.
25586	Description *string `locationName:"description" type:"string"`
25587
25588	// The identifier of a UsagePlan resource.
25589	Id *string `locationName:"id" type:"string"`
25590
25591	// The name of a usage plan.
25592	Name *string `locationName:"name" type:"string"`
25593
25594	// The AWS Markeplace product identifier to associate with the usage plan as
25595	// a SaaS product on AWS Marketplace.
25596	ProductCode *string `locationName:"productCode" type:"string"`
25597
25598	// The maximum number of permitted requests per a given unit time interval.
25599	Quota *QuotaSettings `locationName:"quota" type:"structure"`
25600
25601	// The collection of tags. Each tag element is associated with a given resource.
25602	Tags map[string]*string `locationName:"tags" type:"map"`
25603
25604	// The request throttle limits of a usage plan.
25605	Throttle *ThrottleSettings `locationName:"throttle" type:"structure"`
25606}
25607
25608// String returns the string representation
25609func (s UsagePlan) String() string {
25610	return awsutil.Prettify(s)
25611}
25612
25613// GoString returns the string representation
25614func (s UsagePlan) GoString() string {
25615	return s.String()
25616}
25617
25618// SetApiStages sets the ApiStages field's value.
25619func (s *UsagePlan) SetApiStages(v []*ApiStage) *UsagePlan {
25620	s.ApiStages = v
25621	return s
25622}
25623
25624// SetDescription sets the Description field's value.
25625func (s *UsagePlan) SetDescription(v string) *UsagePlan {
25626	s.Description = &v
25627	return s
25628}
25629
25630// SetId sets the Id field's value.
25631func (s *UsagePlan) SetId(v string) *UsagePlan {
25632	s.Id = &v
25633	return s
25634}
25635
25636// SetName sets the Name field's value.
25637func (s *UsagePlan) SetName(v string) *UsagePlan {
25638	s.Name = &v
25639	return s
25640}
25641
25642// SetProductCode sets the ProductCode field's value.
25643func (s *UsagePlan) SetProductCode(v string) *UsagePlan {
25644	s.ProductCode = &v
25645	return s
25646}
25647
25648// SetQuota sets the Quota field's value.
25649func (s *UsagePlan) SetQuota(v *QuotaSettings) *UsagePlan {
25650	s.Quota = v
25651	return s
25652}
25653
25654// SetTags sets the Tags field's value.
25655func (s *UsagePlan) SetTags(v map[string]*string) *UsagePlan {
25656	s.Tags = v
25657	return s
25658}
25659
25660// SetThrottle sets the Throttle field's value.
25661func (s *UsagePlan) SetThrottle(v *ThrottleSettings) *UsagePlan {
25662	s.Throttle = v
25663	return s
25664}
25665
25666// Represents a usage plan key to identify a plan customer.
25667//
25668// To associate an API stage with a selected API key in a usage plan, you must
25669// create a UsagePlanKey resource to represent the selected ApiKey.
25670//
25671// "
25672// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
25673type UsagePlanKey struct {
25674	_ struct{} `type:"structure"`
25675
25676	// The Id of a usage plan key.
25677	Id *string `locationName:"id" type:"string"`
25678
25679	// The name of a usage plan key.
25680	Name *string `locationName:"name" type:"string"`
25681
25682	// The type of a usage plan key. Currently, the valid key type is API_KEY.
25683	Type *string `locationName:"type" type:"string"`
25684
25685	// The value of a usage plan key.
25686	Value *string `locationName:"value" type:"string"`
25687}
25688
25689// String returns the string representation
25690func (s UsagePlanKey) String() string {
25691	return awsutil.Prettify(s)
25692}
25693
25694// GoString returns the string representation
25695func (s UsagePlanKey) GoString() string {
25696	return s.String()
25697}
25698
25699// SetId sets the Id field's value.
25700func (s *UsagePlanKey) SetId(v string) *UsagePlanKey {
25701	s.Id = &v
25702	return s
25703}
25704
25705// SetName sets the Name field's value.
25706func (s *UsagePlanKey) SetName(v string) *UsagePlanKey {
25707	s.Name = &v
25708	return s
25709}
25710
25711// SetType sets the Type field's value.
25712func (s *UsagePlanKey) SetType(v string) *UsagePlanKey {
25713	s.Type = &v
25714	return s
25715}
25716
25717// SetValue sets the Value field's value.
25718func (s *UsagePlanKey) SetValue(v string) *UsagePlanKey {
25719	s.Value = &v
25720	return s
25721}
25722
25723const (
25724	// ApiKeySourceTypeHeader is a ApiKeySourceType enum value
25725	ApiKeySourceTypeHeader = "HEADER"
25726
25727	// ApiKeySourceTypeAuthorizer is a ApiKeySourceType enum value
25728	ApiKeySourceTypeAuthorizer = "AUTHORIZER"
25729)
25730
25731// ApiKeySourceType_Values returns all elements of the ApiKeySourceType enum
25732func ApiKeySourceType_Values() []string {
25733	return []string{
25734		ApiKeySourceTypeHeader,
25735		ApiKeySourceTypeAuthorizer,
25736	}
25737}
25738
25739const (
25740	// ApiKeysFormatCsv is a ApiKeysFormat enum value
25741	ApiKeysFormatCsv = "csv"
25742)
25743
25744// ApiKeysFormat_Values returns all elements of the ApiKeysFormat enum
25745func ApiKeysFormat_Values() []string {
25746	return []string{
25747		ApiKeysFormatCsv,
25748	}
25749}
25750
25751// The authorizer type. Valid values are TOKEN for a Lambda function using a
25752// single authorization token submitted in a custom header, REQUEST for a Lambda
25753// function using incoming request parameters, and COGNITO_USER_POOLS for using
25754// an Amazon Cognito user pool.
25755const (
25756	// AuthorizerTypeToken is a AuthorizerType enum value
25757	AuthorizerTypeToken = "TOKEN"
25758
25759	// AuthorizerTypeRequest is a AuthorizerType enum value
25760	AuthorizerTypeRequest = "REQUEST"
25761
25762	// AuthorizerTypeCognitoUserPools is a AuthorizerType enum value
25763	AuthorizerTypeCognitoUserPools = "COGNITO_USER_POOLS"
25764)
25765
25766// AuthorizerType_Values returns all elements of the AuthorizerType enum
25767func AuthorizerType_Values() []string {
25768	return []string{
25769		AuthorizerTypeToken,
25770		AuthorizerTypeRequest,
25771		AuthorizerTypeCognitoUserPools,
25772	}
25773}
25774
25775// Returns the size of the CacheCluster.
25776const (
25777	// CacheClusterSize05 is a CacheClusterSize enum value
25778	CacheClusterSize05 = "0.5"
25779
25780	// CacheClusterSize16 is a CacheClusterSize enum value
25781	CacheClusterSize16 = "1.6"
25782
25783	// CacheClusterSize61 is a CacheClusterSize enum value
25784	CacheClusterSize61 = "6.1"
25785
25786	// CacheClusterSize135 is a CacheClusterSize enum value
25787	CacheClusterSize135 = "13.5"
25788
25789	// CacheClusterSize284 is a CacheClusterSize enum value
25790	CacheClusterSize284 = "28.4"
25791
25792	// CacheClusterSize582 is a CacheClusterSize enum value
25793	CacheClusterSize582 = "58.2"
25794
25795	// CacheClusterSize118 is a CacheClusterSize enum value
25796	CacheClusterSize118 = "118"
25797
25798	// CacheClusterSize237 is a CacheClusterSize enum value
25799	CacheClusterSize237 = "237"
25800)
25801
25802// CacheClusterSize_Values returns all elements of the CacheClusterSize enum
25803func CacheClusterSize_Values() []string {
25804	return []string{
25805		CacheClusterSize05,
25806		CacheClusterSize16,
25807		CacheClusterSize61,
25808		CacheClusterSize135,
25809		CacheClusterSize284,
25810		CacheClusterSize582,
25811		CacheClusterSize118,
25812		CacheClusterSize237,
25813	}
25814}
25815
25816// Returns the status of the CacheCluster.
25817const (
25818	// CacheClusterStatusCreateInProgress is a CacheClusterStatus enum value
25819	CacheClusterStatusCreateInProgress = "CREATE_IN_PROGRESS"
25820
25821	// CacheClusterStatusAvailable is a CacheClusterStatus enum value
25822	CacheClusterStatusAvailable = "AVAILABLE"
25823
25824	// CacheClusterStatusDeleteInProgress is a CacheClusterStatus enum value
25825	CacheClusterStatusDeleteInProgress = "DELETE_IN_PROGRESS"
25826
25827	// CacheClusterStatusNotAvailable is a CacheClusterStatus enum value
25828	CacheClusterStatusNotAvailable = "NOT_AVAILABLE"
25829
25830	// CacheClusterStatusFlushInProgress is a CacheClusterStatus enum value
25831	CacheClusterStatusFlushInProgress = "FLUSH_IN_PROGRESS"
25832)
25833
25834// CacheClusterStatus_Values returns all elements of the CacheClusterStatus enum
25835func CacheClusterStatus_Values() []string {
25836	return []string{
25837		CacheClusterStatusCreateInProgress,
25838		CacheClusterStatusAvailable,
25839		CacheClusterStatusDeleteInProgress,
25840		CacheClusterStatusNotAvailable,
25841		CacheClusterStatusFlushInProgress,
25842	}
25843}
25844
25845const (
25846	// ConnectionTypeInternet is a ConnectionType enum value
25847	ConnectionTypeInternet = "INTERNET"
25848
25849	// ConnectionTypeVpcLink is a ConnectionType enum value
25850	ConnectionTypeVpcLink = "VPC_LINK"
25851)
25852
25853// ConnectionType_Values returns all elements of the ConnectionType enum
25854func ConnectionType_Values() []string {
25855	return []string{
25856		ConnectionTypeInternet,
25857		ConnectionTypeVpcLink,
25858	}
25859}
25860
25861const (
25862	// ContentHandlingStrategyConvertToBinary is a ContentHandlingStrategy enum value
25863	ContentHandlingStrategyConvertToBinary = "CONVERT_TO_BINARY"
25864
25865	// ContentHandlingStrategyConvertToText is a ContentHandlingStrategy enum value
25866	ContentHandlingStrategyConvertToText = "CONVERT_TO_TEXT"
25867)
25868
25869// ContentHandlingStrategy_Values returns all elements of the ContentHandlingStrategy enum
25870func ContentHandlingStrategy_Values() []string {
25871	return []string{
25872		ContentHandlingStrategyConvertToBinary,
25873		ContentHandlingStrategyConvertToText,
25874	}
25875}
25876
25877const (
25878	// DocumentationPartTypeApi is a DocumentationPartType enum value
25879	DocumentationPartTypeApi = "API"
25880
25881	// DocumentationPartTypeAuthorizer is a DocumentationPartType enum value
25882	DocumentationPartTypeAuthorizer = "AUTHORIZER"
25883
25884	// DocumentationPartTypeModel is a DocumentationPartType enum value
25885	DocumentationPartTypeModel = "MODEL"
25886
25887	// DocumentationPartTypeResource is a DocumentationPartType enum value
25888	DocumentationPartTypeResource = "RESOURCE"
25889
25890	// DocumentationPartTypeMethod is a DocumentationPartType enum value
25891	DocumentationPartTypeMethod = "METHOD"
25892
25893	// DocumentationPartTypePathParameter is a DocumentationPartType enum value
25894	DocumentationPartTypePathParameter = "PATH_PARAMETER"
25895
25896	// DocumentationPartTypeQueryParameter is a DocumentationPartType enum value
25897	DocumentationPartTypeQueryParameter = "QUERY_PARAMETER"
25898
25899	// DocumentationPartTypeRequestHeader is a DocumentationPartType enum value
25900	DocumentationPartTypeRequestHeader = "REQUEST_HEADER"
25901
25902	// DocumentationPartTypeRequestBody is a DocumentationPartType enum value
25903	DocumentationPartTypeRequestBody = "REQUEST_BODY"
25904
25905	// DocumentationPartTypeResponse is a DocumentationPartType enum value
25906	DocumentationPartTypeResponse = "RESPONSE"
25907
25908	// DocumentationPartTypeResponseHeader is a DocumentationPartType enum value
25909	DocumentationPartTypeResponseHeader = "RESPONSE_HEADER"
25910
25911	// DocumentationPartTypeResponseBody is a DocumentationPartType enum value
25912	DocumentationPartTypeResponseBody = "RESPONSE_BODY"
25913)
25914
25915// DocumentationPartType_Values returns all elements of the DocumentationPartType enum
25916func DocumentationPartType_Values() []string {
25917	return []string{
25918		DocumentationPartTypeApi,
25919		DocumentationPartTypeAuthorizer,
25920		DocumentationPartTypeModel,
25921		DocumentationPartTypeResource,
25922		DocumentationPartTypeMethod,
25923		DocumentationPartTypePathParameter,
25924		DocumentationPartTypeQueryParameter,
25925		DocumentationPartTypeRequestHeader,
25926		DocumentationPartTypeRequestBody,
25927		DocumentationPartTypeResponse,
25928		DocumentationPartTypeResponseHeader,
25929		DocumentationPartTypeResponseBody,
25930	}
25931}
25932
25933const (
25934	// DomainNameStatusAvailable is a DomainNameStatus enum value
25935	DomainNameStatusAvailable = "AVAILABLE"
25936
25937	// DomainNameStatusUpdating is a DomainNameStatus enum value
25938	DomainNameStatusUpdating = "UPDATING"
25939
25940	// DomainNameStatusPending is a DomainNameStatus enum value
25941	DomainNameStatusPending = "PENDING"
25942
25943	// DomainNameStatusPendingCertificateReimport is a DomainNameStatus enum value
25944	DomainNameStatusPendingCertificateReimport = "PENDING_CERTIFICATE_REIMPORT"
25945
25946	// DomainNameStatusPendingOwnershipVerification is a DomainNameStatus enum value
25947	DomainNameStatusPendingOwnershipVerification = "PENDING_OWNERSHIP_VERIFICATION"
25948)
25949
25950// DomainNameStatus_Values returns all elements of the DomainNameStatus enum
25951func DomainNameStatus_Values() []string {
25952	return []string{
25953		DomainNameStatusAvailable,
25954		DomainNameStatusUpdating,
25955		DomainNameStatusPending,
25956		DomainNameStatusPendingCertificateReimport,
25957		DomainNameStatusPendingOwnershipVerification,
25958	}
25959}
25960
25961// The endpoint type. The valid values are EDGE for edge-optimized API setup,
25962// most suitable for mobile applications; REGIONAL for regional API endpoint
25963// setup, most suitable for calling from AWS Region; and PRIVATE for private
25964// APIs.
25965const (
25966	// EndpointTypeRegional is a EndpointType enum value
25967	EndpointTypeRegional = "REGIONAL"
25968
25969	// EndpointTypeEdge is a EndpointType enum value
25970	EndpointTypeEdge = "EDGE"
25971
25972	// EndpointTypePrivate is a EndpointType enum value
25973	EndpointTypePrivate = "PRIVATE"
25974)
25975
25976// EndpointType_Values returns all elements of the EndpointType enum
25977func EndpointType_Values() []string {
25978	return []string{
25979		EndpointTypeRegional,
25980		EndpointTypeEdge,
25981		EndpointTypePrivate,
25982	}
25983}
25984
25985const (
25986	// GatewayResponseTypeDefault4xx is a GatewayResponseType enum value
25987	GatewayResponseTypeDefault4xx = "DEFAULT_4XX"
25988
25989	// GatewayResponseTypeDefault5xx is a GatewayResponseType enum value
25990	GatewayResponseTypeDefault5xx = "DEFAULT_5XX"
25991
25992	// GatewayResponseTypeResourceNotFound is a GatewayResponseType enum value
25993	GatewayResponseTypeResourceNotFound = "RESOURCE_NOT_FOUND"
25994
25995	// GatewayResponseTypeUnauthorized is a GatewayResponseType enum value
25996	GatewayResponseTypeUnauthorized = "UNAUTHORIZED"
25997
25998	// GatewayResponseTypeInvalidApiKey is a GatewayResponseType enum value
25999	GatewayResponseTypeInvalidApiKey = "INVALID_API_KEY"
26000
26001	// GatewayResponseTypeAccessDenied is a GatewayResponseType enum value
26002	GatewayResponseTypeAccessDenied = "ACCESS_DENIED"
26003
26004	// GatewayResponseTypeAuthorizerFailure is a GatewayResponseType enum value
26005	GatewayResponseTypeAuthorizerFailure = "AUTHORIZER_FAILURE"
26006
26007	// GatewayResponseTypeAuthorizerConfigurationError is a GatewayResponseType enum value
26008	GatewayResponseTypeAuthorizerConfigurationError = "AUTHORIZER_CONFIGURATION_ERROR"
26009
26010	// GatewayResponseTypeInvalidSignature is a GatewayResponseType enum value
26011	GatewayResponseTypeInvalidSignature = "INVALID_SIGNATURE"
26012
26013	// GatewayResponseTypeExpiredToken is a GatewayResponseType enum value
26014	GatewayResponseTypeExpiredToken = "EXPIRED_TOKEN"
26015
26016	// GatewayResponseTypeMissingAuthenticationToken is a GatewayResponseType enum value
26017	GatewayResponseTypeMissingAuthenticationToken = "MISSING_AUTHENTICATION_TOKEN"
26018
26019	// GatewayResponseTypeIntegrationFailure is a GatewayResponseType enum value
26020	GatewayResponseTypeIntegrationFailure = "INTEGRATION_FAILURE"
26021
26022	// GatewayResponseTypeIntegrationTimeout is a GatewayResponseType enum value
26023	GatewayResponseTypeIntegrationTimeout = "INTEGRATION_TIMEOUT"
26024
26025	// GatewayResponseTypeApiConfigurationError is a GatewayResponseType enum value
26026	GatewayResponseTypeApiConfigurationError = "API_CONFIGURATION_ERROR"
26027
26028	// GatewayResponseTypeUnsupportedMediaType is a GatewayResponseType enum value
26029	GatewayResponseTypeUnsupportedMediaType = "UNSUPPORTED_MEDIA_TYPE"
26030
26031	// GatewayResponseTypeBadRequestParameters is a GatewayResponseType enum value
26032	GatewayResponseTypeBadRequestParameters = "BAD_REQUEST_PARAMETERS"
26033
26034	// GatewayResponseTypeBadRequestBody is a GatewayResponseType enum value
26035	GatewayResponseTypeBadRequestBody = "BAD_REQUEST_BODY"
26036
26037	// GatewayResponseTypeRequestTooLarge is a GatewayResponseType enum value
26038	GatewayResponseTypeRequestTooLarge = "REQUEST_TOO_LARGE"
26039
26040	// GatewayResponseTypeThrottled is a GatewayResponseType enum value
26041	GatewayResponseTypeThrottled = "THROTTLED"
26042
26043	// GatewayResponseTypeQuotaExceeded is a GatewayResponseType enum value
26044	GatewayResponseTypeQuotaExceeded = "QUOTA_EXCEEDED"
26045
26046	// GatewayResponseTypeWafFiltered is a GatewayResponseType enum value
26047	GatewayResponseTypeWafFiltered = "WAF_FILTERED"
26048)
26049
26050// GatewayResponseType_Values returns all elements of the GatewayResponseType enum
26051func GatewayResponseType_Values() []string {
26052	return []string{
26053		GatewayResponseTypeDefault4xx,
26054		GatewayResponseTypeDefault5xx,
26055		GatewayResponseTypeResourceNotFound,
26056		GatewayResponseTypeUnauthorized,
26057		GatewayResponseTypeInvalidApiKey,
26058		GatewayResponseTypeAccessDenied,
26059		GatewayResponseTypeAuthorizerFailure,
26060		GatewayResponseTypeAuthorizerConfigurationError,
26061		GatewayResponseTypeInvalidSignature,
26062		GatewayResponseTypeExpiredToken,
26063		GatewayResponseTypeMissingAuthenticationToken,
26064		GatewayResponseTypeIntegrationFailure,
26065		GatewayResponseTypeIntegrationTimeout,
26066		GatewayResponseTypeApiConfigurationError,
26067		GatewayResponseTypeUnsupportedMediaType,
26068		GatewayResponseTypeBadRequestParameters,
26069		GatewayResponseTypeBadRequestBody,
26070		GatewayResponseTypeRequestTooLarge,
26071		GatewayResponseTypeThrottled,
26072		GatewayResponseTypeQuotaExceeded,
26073		GatewayResponseTypeWafFiltered,
26074	}
26075}
26076
26077// The integration type. The valid value is HTTP for integrating an API method
26078// with an HTTP backend; AWS with any AWS service endpoints; MOCK for testing
26079// without actually invoking the backend; HTTP_PROXY for integrating with the
26080// HTTP proxy integration; AWS_PROXY for integrating with the Lambda proxy integration.
26081const (
26082	// IntegrationTypeHttp is a IntegrationType enum value
26083	IntegrationTypeHttp = "HTTP"
26084
26085	// IntegrationTypeAws is a IntegrationType enum value
26086	IntegrationTypeAws = "AWS"
26087
26088	// IntegrationTypeMock is a IntegrationType enum value
26089	IntegrationTypeMock = "MOCK"
26090
26091	// IntegrationTypeHttpProxy is a IntegrationType enum value
26092	IntegrationTypeHttpProxy = "HTTP_PROXY"
26093
26094	// IntegrationTypeAwsProxy is a IntegrationType enum value
26095	IntegrationTypeAwsProxy = "AWS_PROXY"
26096)
26097
26098// IntegrationType_Values returns all elements of the IntegrationType enum
26099func IntegrationType_Values() []string {
26100	return []string{
26101		IntegrationTypeHttp,
26102		IntegrationTypeAws,
26103		IntegrationTypeMock,
26104		IntegrationTypeHttpProxy,
26105		IntegrationTypeAwsProxy,
26106	}
26107}
26108
26109const (
26110	// LocationStatusTypeDocumented is a LocationStatusType enum value
26111	LocationStatusTypeDocumented = "DOCUMENTED"
26112
26113	// LocationStatusTypeUndocumented is a LocationStatusType enum value
26114	LocationStatusTypeUndocumented = "UNDOCUMENTED"
26115)
26116
26117// LocationStatusType_Values returns all elements of the LocationStatusType enum
26118func LocationStatusType_Values() []string {
26119	return []string{
26120		LocationStatusTypeDocumented,
26121		LocationStatusTypeUndocumented,
26122	}
26123}
26124
26125const (
26126	// OpAdd is a Op enum value
26127	OpAdd = "add"
26128
26129	// OpRemove is a Op enum value
26130	OpRemove = "remove"
26131
26132	// OpReplace is a Op enum value
26133	OpReplace = "replace"
26134
26135	// OpMove is a Op enum value
26136	OpMove = "move"
26137
26138	// OpCopy is a Op enum value
26139	OpCopy = "copy"
26140
26141	// OpTest is a Op enum value
26142	OpTest = "test"
26143)
26144
26145// Op_Values returns all elements of the Op enum
26146func Op_Values() []string {
26147	return []string{
26148		OpAdd,
26149		OpRemove,
26150		OpReplace,
26151		OpMove,
26152		OpCopy,
26153		OpTest,
26154	}
26155}
26156
26157const (
26158	// PutModeMerge is a PutMode enum value
26159	PutModeMerge = "merge"
26160
26161	// PutModeOverwrite is a PutMode enum value
26162	PutModeOverwrite = "overwrite"
26163)
26164
26165// PutMode_Values returns all elements of the PutMode enum
26166func PutMode_Values() []string {
26167	return []string{
26168		PutModeMerge,
26169		PutModeOverwrite,
26170	}
26171}
26172
26173const (
26174	// QuotaPeriodTypeDay is a QuotaPeriodType enum value
26175	QuotaPeriodTypeDay = "DAY"
26176
26177	// QuotaPeriodTypeWeek is a QuotaPeriodType enum value
26178	QuotaPeriodTypeWeek = "WEEK"
26179
26180	// QuotaPeriodTypeMonth is a QuotaPeriodType enum value
26181	QuotaPeriodTypeMonth = "MONTH"
26182)
26183
26184// QuotaPeriodType_Values returns all elements of the QuotaPeriodType enum
26185func QuotaPeriodType_Values() []string {
26186	return []string{
26187		QuotaPeriodTypeDay,
26188		QuotaPeriodTypeWeek,
26189		QuotaPeriodTypeMonth,
26190	}
26191}
26192
26193const (
26194	// SecurityPolicyTls10 is a SecurityPolicy enum value
26195	SecurityPolicyTls10 = "TLS_1_0"
26196
26197	// SecurityPolicyTls12 is a SecurityPolicy enum value
26198	SecurityPolicyTls12 = "TLS_1_2"
26199)
26200
26201// SecurityPolicy_Values returns all elements of the SecurityPolicy enum
26202func SecurityPolicy_Values() []string {
26203	return []string{
26204		SecurityPolicyTls10,
26205		SecurityPolicyTls12,
26206	}
26207}
26208
26209const (
26210	// UnauthorizedCacheControlHeaderStrategyFailWith403 is a UnauthorizedCacheControlHeaderStrategy enum value
26211	UnauthorizedCacheControlHeaderStrategyFailWith403 = "FAIL_WITH_403"
26212
26213	// UnauthorizedCacheControlHeaderStrategySucceedWithResponseHeader is a UnauthorizedCacheControlHeaderStrategy enum value
26214	UnauthorizedCacheControlHeaderStrategySucceedWithResponseHeader = "SUCCEED_WITH_RESPONSE_HEADER"
26215
26216	// UnauthorizedCacheControlHeaderStrategySucceedWithoutResponseHeader is a UnauthorizedCacheControlHeaderStrategy enum value
26217	UnauthorizedCacheControlHeaderStrategySucceedWithoutResponseHeader = "SUCCEED_WITHOUT_RESPONSE_HEADER"
26218)
26219
26220// UnauthorizedCacheControlHeaderStrategy_Values returns all elements of the UnauthorizedCacheControlHeaderStrategy enum
26221func UnauthorizedCacheControlHeaderStrategy_Values() []string {
26222	return []string{
26223		UnauthorizedCacheControlHeaderStrategyFailWith403,
26224		UnauthorizedCacheControlHeaderStrategySucceedWithResponseHeader,
26225		UnauthorizedCacheControlHeaderStrategySucceedWithoutResponseHeader,
26226	}
26227}
26228
26229const (
26230	// VpcLinkStatusAvailable is a VpcLinkStatus enum value
26231	VpcLinkStatusAvailable = "AVAILABLE"
26232
26233	// VpcLinkStatusPending is a VpcLinkStatus enum value
26234	VpcLinkStatusPending = "PENDING"
26235
26236	// VpcLinkStatusDeleting is a VpcLinkStatus enum value
26237	VpcLinkStatusDeleting = "DELETING"
26238
26239	// VpcLinkStatusFailed is a VpcLinkStatus enum value
26240	VpcLinkStatusFailed = "FAILED"
26241)
26242
26243// VpcLinkStatus_Values returns all elements of the VpcLinkStatus enum
26244func VpcLinkStatus_Values() []string {
26245	return []string{
26246		VpcLinkStatusAvailable,
26247		VpcLinkStatusPending,
26248		VpcLinkStatusDeleting,
26249		VpcLinkStatusFailed,
26250	}
26251}
26252