1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package apigateway
4
5import (
6	"time"
7
8	"github.com/aws/aws-sdk-go/aws"
9	"github.com/aws/aws-sdk-go/aws/awsutil"
10	"github.com/aws/aws-sdk-go/aws/request"
11	"github.com/aws/aws-sdk-go/private/protocol"
12	"github.com/aws/aws-sdk-go/private/protocol/restjson"
13)
14
15const opCreateApiKey = "CreateApiKey"
16
17// CreateApiKeyRequest generates a "aws/request.Request" representing the
18// client's request for the CreateApiKey operation. The "output" return
19// value will be populated with the request's response once the request completes
20// successfully.
21//
22// Use "Send" method on the returned Request to send the API call to the service.
23// the "output" return value is not valid until after Send returns without error.
24//
25// See CreateApiKey for more information on using the CreateApiKey
26// API call, and error handling.
27//
28// This method is useful when you want to inject custom logic or configuration
29// into the SDK's request lifecycle. Such as custom headers, or retry logic.
30//
31//
32//    // Example sending a request using the CreateApiKeyRequest method.
33//    req, resp := client.CreateApiKeyRequest(params)
34//
35//    err := req.Send()
36//    if err == nil { // resp is now filled
37//        fmt.Println(resp)
38//    }
39func (c *APIGateway) CreateApiKeyRequest(input *CreateApiKeyInput) (req *request.Request, output *ApiKey) {
40	op := &request.Operation{
41		Name:       opCreateApiKey,
42		HTTPMethod: "POST",
43		HTTPPath:   "/apikeys",
44	}
45
46	if input == nil {
47		input = &CreateApiKeyInput{}
48	}
49
50	output = &ApiKey{}
51	req = c.newRequest(op, input, output)
52	return
53}
54
55// CreateApiKey API operation for Amazon API Gateway.
56//
57// Create an ApiKey resource.
58//
59// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-api-key.html)
60//
61// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
62// with awserr.Error's Code and Message methods to get detailed information about
63// the error.
64//
65// See the AWS API reference guide for Amazon API Gateway's
66// API operation CreateApiKey for usage and error information.
67//
68// Returned Error Codes:
69//   * ErrCodeUnauthorizedException "UnauthorizedException"
70//   The request is denied because the caller has insufficient permissions.
71//
72//   * ErrCodeNotFoundException "NotFoundException"
73//   The requested resource is not found. Make sure that the request URI is correct.
74//
75//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
76//   The request has reached its throttling limit. Retry after the specified time
77//   period.
78//
79//   * ErrCodeLimitExceededException "LimitExceededException"
80//   The request exceeded the rate limit. Retry after the specified time period.
81//
82//   * ErrCodeBadRequestException "BadRequestException"
83//   The submitted request is not valid, for example, the input is incomplete
84//   or incorrect. See the accompanying error message for details.
85//
86//   * ErrCodeConflictException "ConflictException"
87//   The request configuration has conflicts. For details, see the accompanying
88//   error message.
89//
90func (c *APIGateway) CreateApiKey(input *CreateApiKeyInput) (*ApiKey, error) {
91	req, out := c.CreateApiKeyRequest(input)
92	return out, req.Send()
93}
94
95// CreateApiKeyWithContext is the same as CreateApiKey with the addition of
96// the ability to pass a context and additional request options.
97//
98// See CreateApiKey for details on how to use this API operation.
99//
100// The context must be non-nil and will be used for request cancellation. If
101// the context is nil a panic will occur. In the future the SDK may create
102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
103// for more information on using Contexts.
104func (c *APIGateway) CreateApiKeyWithContext(ctx aws.Context, input *CreateApiKeyInput, opts ...request.Option) (*ApiKey, error) {
105	req, out := c.CreateApiKeyRequest(input)
106	req.SetContext(ctx)
107	req.ApplyOptions(opts...)
108	return out, req.Send()
109}
110
111const opCreateAuthorizer = "CreateAuthorizer"
112
113// CreateAuthorizerRequest generates a "aws/request.Request" representing the
114// client's request for the CreateAuthorizer operation. The "output" return
115// value will be populated with the request's response once the request completes
116// successfully.
117//
118// Use "Send" method on the returned Request to send the API call to the service.
119// the "output" return value is not valid until after Send returns without error.
120//
121// See CreateAuthorizer for more information on using the CreateAuthorizer
122// API call, and error handling.
123//
124// This method is useful when you want to inject custom logic or configuration
125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
126//
127//
128//    // Example sending a request using the CreateAuthorizerRequest method.
129//    req, resp := client.CreateAuthorizerRequest(params)
130//
131//    err := req.Send()
132//    if err == nil { // resp is now filled
133//        fmt.Println(resp)
134//    }
135func (c *APIGateway) CreateAuthorizerRequest(input *CreateAuthorizerInput) (req *request.Request, output *Authorizer) {
136	op := &request.Operation{
137		Name:       opCreateAuthorizer,
138		HTTPMethod: "POST",
139		HTTPPath:   "/restapis/{restapi_id}/authorizers",
140	}
141
142	if input == nil {
143		input = &CreateAuthorizerInput{}
144	}
145
146	output = &Authorizer{}
147	req = c.newRequest(op, input, output)
148	return
149}
150
151// CreateAuthorizer API operation for Amazon API Gateway.
152//
153// Adds a new Authorizer resource to an existing RestApi resource.
154//
155// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html)
156//
157// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
158// with awserr.Error's Code and Message methods to get detailed information about
159// the error.
160//
161// See the AWS API reference guide for Amazon API Gateway's
162// API operation CreateAuthorizer for usage and error information.
163//
164// Returned Error Codes:
165//   * ErrCodeBadRequestException "BadRequestException"
166//   The submitted request is not valid, for example, the input is incomplete
167//   or incorrect. See the accompanying error message for details.
168//
169//   * ErrCodeUnauthorizedException "UnauthorizedException"
170//   The request is denied because the caller has insufficient permissions.
171//
172//   * ErrCodeNotFoundException "NotFoundException"
173//   The requested resource is not found. Make sure that the request URI is correct.
174//
175//   * ErrCodeLimitExceededException "LimitExceededException"
176//   The request exceeded the rate limit. Retry after the specified time period.
177//
178//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
179//   The request has reached its throttling limit. Retry after the specified time
180//   period.
181//
182func (c *APIGateway) CreateAuthorizer(input *CreateAuthorizerInput) (*Authorizer, error) {
183	req, out := c.CreateAuthorizerRequest(input)
184	return out, req.Send()
185}
186
187// CreateAuthorizerWithContext is the same as CreateAuthorizer with the addition of
188// the ability to pass a context and additional request options.
189//
190// See CreateAuthorizer for details on how to use this API operation.
191//
192// The context must be non-nil and will be used for request cancellation. If
193// the context is nil a panic will occur. In the future the SDK may create
194// sub-contexts for http.Requests. See https://golang.org/pkg/context/
195// for more information on using Contexts.
196func (c *APIGateway) CreateAuthorizerWithContext(ctx aws.Context, input *CreateAuthorizerInput, opts ...request.Option) (*Authorizer, error) {
197	req, out := c.CreateAuthorizerRequest(input)
198	req.SetContext(ctx)
199	req.ApplyOptions(opts...)
200	return out, req.Send()
201}
202
203const opCreateBasePathMapping = "CreateBasePathMapping"
204
205// CreateBasePathMappingRequest generates a "aws/request.Request" representing the
206// client's request for the CreateBasePathMapping operation. The "output" return
207// value will be populated with the request's response once the request completes
208// successfully.
209//
210// Use "Send" method on the returned Request to send the API call to the service.
211// the "output" return value is not valid until after Send returns without error.
212//
213// See CreateBasePathMapping for more information on using the CreateBasePathMapping
214// API call, and error handling.
215//
216// This method is useful when you want to inject custom logic or configuration
217// into the SDK's request lifecycle. Such as custom headers, or retry logic.
218//
219//
220//    // Example sending a request using the CreateBasePathMappingRequest method.
221//    req, resp := client.CreateBasePathMappingRequest(params)
222//
223//    err := req.Send()
224//    if err == nil { // resp is now filled
225//        fmt.Println(resp)
226//    }
227func (c *APIGateway) CreateBasePathMappingRequest(input *CreateBasePathMappingInput) (req *request.Request, output *BasePathMapping) {
228	op := &request.Operation{
229		Name:       opCreateBasePathMapping,
230		HTTPMethod: "POST",
231		HTTPPath:   "/domainnames/{domain_name}/basepathmappings",
232	}
233
234	if input == nil {
235		input = &CreateBasePathMappingInput{}
236	}
237
238	output = &BasePathMapping{}
239	req = c.newRequest(op, input, output)
240	return
241}
242
243// CreateBasePathMapping API operation for Amazon API Gateway.
244//
245// Creates a new BasePathMapping resource.
246//
247// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
248// with awserr.Error's Code and Message methods to get detailed information about
249// the error.
250//
251// See the AWS API reference guide for Amazon API Gateway's
252// API operation CreateBasePathMapping for usage and error information.
253//
254// Returned Error Codes:
255//   * ErrCodeUnauthorizedException "UnauthorizedException"
256//   The request is denied because the caller has insufficient permissions.
257//
258//   * ErrCodeConflictException "ConflictException"
259//   The request configuration has conflicts. For details, see the accompanying
260//   error message.
261//
262//   * ErrCodeBadRequestException "BadRequestException"
263//   The submitted request is not valid, for example, the input is incomplete
264//   or incorrect. See the accompanying error message for details.
265//
266//   * ErrCodeNotFoundException "NotFoundException"
267//   The requested resource is not found. Make sure that the request URI is correct.
268//
269//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
270//   The request has reached its throttling limit. Retry after the specified time
271//   period.
272//
273func (c *APIGateway) CreateBasePathMapping(input *CreateBasePathMappingInput) (*BasePathMapping, error) {
274	req, out := c.CreateBasePathMappingRequest(input)
275	return out, req.Send()
276}
277
278// CreateBasePathMappingWithContext is the same as CreateBasePathMapping with the addition of
279// the ability to pass a context and additional request options.
280//
281// See CreateBasePathMapping for details on how to use this API operation.
282//
283// The context must be non-nil and will be used for request cancellation. If
284// the context is nil a panic will occur. In the future the SDK may create
285// sub-contexts for http.Requests. See https://golang.org/pkg/context/
286// for more information on using Contexts.
287func (c *APIGateway) CreateBasePathMappingWithContext(ctx aws.Context, input *CreateBasePathMappingInput, opts ...request.Option) (*BasePathMapping, error) {
288	req, out := c.CreateBasePathMappingRequest(input)
289	req.SetContext(ctx)
290	req.ApplyOptions(opts...)
291	return out, req.Send()
292}
293
294const opCreateDeployment = "CreateDeployment"
295
296// CreateDeploymentRequest generates a "aws/request.Request" representing the
297// client's request for the CreateDeployment operation. The "output" return
298// value will be populated with the request's response once the request completes
299// successfully.
300//
301// Use "Send" method on the returned Request to send the API call to the service.
302// the "output" return value is not valid until after Send returns without error.
303//
304// See CreateDeployment for more information on using the CreateDeployment
305// API call, and error handling.
306//
307// This method is useful when you want to inject custom logic or configuration
308// into the SDK's request lifecycle. Such as custom headers, or retry logic.
309//
310//
311//    // Example sending a request using the CreateDeploymentRequest method.
312//    req, resp := client.CreateDeploymentRequest(params)
313//
314//    err := req.Send()
315//    if err == nil { // resp is now filled
316//        fmt.Println(resp)
317//    }
318func (c *APIGateway) CreateDeploymentRequest(input *CreateDeploymentInput) (req *request.Request, output *Deployment) {
319	op := &request.Operation{
320		Name:       opCreateDeployment,
321		HTTPMethod: "POST",
322		HTTPPath:   "/restapis/{restapi_id}/deployments",
323	}
324
325	if input == nil {
326		input = &CreateDeploymentInput{}
327	}
328
329	output = &Deployment{}
330	req = c.newRequest(op, input, output)
331	return
332}
333
334// CreateDeployment API operation for Amazon API Gateway.
335//
336// Creates a Deployment resource, which makes a specified RestApi callable over
337// the internet.
338//
339// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
340// with awserr.Error's Code and Message methods to get detailed information about
341// the error.
342//
343// See the AWS API reference guide for Amazon API Gateway's
344// API operation CreateDeployment for usage and error information.
345//
346// Returned Error Codes:
347//   * ErrCodeUnauthorizedException "UnauthorizedException"
348//   The request is denied because the caller has insufficient permissions.
349//
350//   * ErrCodeBadRequestException "BadRequestException"
351//   The submitted request is not valid, for example, the input is incomplete
352//   or incorrect. See the accompanying error message for details.
353//
354//   * ErrCodeNotFoundException "NotFoundException"
355//   The requested resource is not found. Make sure that the request URI is correct.
356//
357//   * ErrCodeConflictException "ConflictException"
358//   The request configuration has conflicts. For details, see the accompanying
359//   error message.
360//
361//   * ErrCodeLimitExceededException "LimitExceededException"
362//   The request exceeded the rate limit. Retry after the specified time period.
363//
364//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
365//   The request has reached its throttling limit. Retry after the specified time
366//   period.
367//
368//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
369//   The requested service is not available. For details see the accompanying
370//   error message. Retry after the specified time period.
371//
372func (c *APIGateway) CreateDeployment(input *CreateDeploymentInput) (*Deployment, error) {
373	req, out := c.CreateDeploymentRequest(input)
374	return out, req.Send()
375}
376
377// CreateDeploymentWithContext is the same as CreateDeployment with the addition of
378// the ability to pass a context and additional request options.
379//
380// See CreateDeployment for details on how to use this API operation.
381//
382// The context must be non-nil and will be used for request cancellation. If
383// the context is nil a panic will occur. In the future the SDK may create
384// sub-contexts for http.Requests. See https://golang.org/pkg/context/
385// for more information on using Contexts.
386func (c *APIGateway) CreateDeploymentWithContext(ctx aws.Context, input *CreateDeploymentInput, opts ...request.Option) (*Deployment, error) {
387	req, out := c.CreateDeploymentRequest(input)
388	req.SetContext(ctx)
389	req.ApplyOptions(opts...)
390	return out, req.Send()
391}
392
393const opCreateDocumentationPart = "CreateDocumentationPart"
394
395// CreateDocumentationPartRequest generates a "aws/request.Request" representing the
396// client's request for the CreateDocumentationPart operation. The "output" return
397// value will be populated with the request's response once the request completes
398// successfully.
399//
400// Use "Send" method on the returned Request to send the API call to the service.
401// the "output" return value is not valid until after Send returns without error.
402//
403// See CreateDocumentationPart for more information on using the CreateDocumentationPart
404// API call, and error handling.
405//
406// This method is useful when you want to inject custom logic or configuration
407// into the SDK's request lifecycle. Such as custom headers, or retry logic.
408//
409//
410//    // Example sending a request using the CreateDocumentationPartRequest method.
411//    req, resp := client.CreateDocumentationPartRequest(params)
412//
413//    err := req.Send()
414//    if err == nil { // resp is now filled
415//        fmt.Println(resp)
416//    }
417func (c *APIGateway) CreateDocumentationPartRequest(input *CreateDocumentationPartInput) (req *request.Request, output *DocumentationPart) {
418	op := &request.Operation{
419		Name:       opCreateDocumentationPart,
420		HTTPMethod: "POST",
421		HTTPPath:   "/restapis/{restapi_id}/documentation/parts",
422	}
423
424	if input == nil {
425		input = &CreateDocumentationPartInput{}
426	}
427
428	output = &DocumentationPart{}
429	req = c.newRequest(op, input, output)
430	return
431}
432
433// CreateDocumentationPart API operation for Amazon API Gateway.
434//
435// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
436// with awserr.Error's Code and Message methods to get detailed information about
437// the error.
438//
439// See the AWS API reference guide for Amazon API Gateway's
440// API operation CreateDocumentationPart for usage and error information.
441//
442// Returned Error Codes:
443//   * ErrCodeBadRequestException "BadRequestException"
444//   The submitted request is not valid, for example, the input is incomplete
445//   or incorrect. See the accompanying error message for details.
446//
447//   * ErrCodeConflictException "ConflictException"
448//   The request configuration has conflicts. For details, see the accompanying
449//   error message.
450//
451//   * ErrCodeUnauthorizedException "UnauthorizedException"
452//   The request is denied because the caller has insufficient permissions.
453//
454//   * ErrCodeNotFoundException "NotFoundException"
455//   The requested resource is not found. Make sure that the request URI is correct.
456//
457//   * ErrCodeLimitExceededException "LimitExceededException"
458//   The request exceeded the rate limit. Retry after the specified time period.
459//
460//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
461//   The request has reached its throttling limit. Retry after the specified time
462//   period.
463//
464func (c *APIGateway) CreateDocumentationPart(input *CreateDocumentationPartInput) (*DocumentationPart, error) {
465	req, out := c.CreateDocumentationPartRequest(input)
466	return out, req.Send()
467}
468
469// CreateDocumentationPartWithContext is the same as CreateDocumentationPart with the addition of
470// the ability to pass a context and additional request options.
471//
472// See CreateDocumentationPart for details on how to use this API operation.
473//
474// The context must be non-nil and will be used for request cancellation. If
475// the context is nil a panic will occur. In the future the SDK may create
476// sub-contexts for http.Requests. See https://golang.org/pkg/context/
477// for more information on using Contexts.
478func (c *APIGateway) CreateDocumentationPartWithContext(ctx aws.Context, input *CreateDocumentationPartInput, opts ...request.Option) (*DocumentationPart, error) {
479	req, out := c.CreateDocumentationPartRequest(input)
480	req.SetContext(ctx)
481	req.ApplyOptions(opts...)
482	return out, req.Send()
483}
484
485const opCreateDocumentationVersion = "CreateDocumentationVersion"
486
487// CreateDocumentationVersionRequest generates a "aws/request.Request" representing the
488// client's request for the CreateDocumentationVersion operation. The "output" return
489// value will be populated with the request's response once the request completes
490// successfully.
491//
492// Use "Send" method on the returned Request to send the API call to the service.
493// the "output" return value is not valid until after Send returns without error.
494//
495// See CreateDocumentationVersion for more information on using the CreateDocumentationVersion
496// API call, and error handling.
497//
498// This method is useful when you want to inject custom logic or configuration
499// into the SDK's request lifecycle. Such as custom headers, or retry logic.
500//
501//
502//    // Example sending a request using the CreateDocumentationVersionRequest method.
503//    req, resp := client.CreateDocumentationVersionRequest(params)
504//
505//    err := req.Send()
506//    if err == nil { // resp is now filled
507//        fmt.Println(resp)
508//    }
509func (c *APIGateway) CreateDocumentationVersionRequest(input *CreateDocumentationVersionInput) (req *request.Request, output *DocumentationVersion) {
510	op := &request.Operation{
511		Name:       opCreateDocumentationVersion,
512		HTTPMethod: "POST",
513		HTTPPath:   "/restapis/{restapi_id}/documentation/versions",
514	}
515
516	if input == nil {
517		input = &CreateDocumentationVersionInput{}
518	}
519
520	output = &DocumentationVersion{}
521	req = c.newRequest(op, input, output)
522	return
523}
524
525// CreateDocumentationVersion API operation for Amazon API Gateway.
526//
527// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
528// with awserr.Error's Code and Message methods to get detailed information about
529// the error.
530//
531// See the AWS API reference guide for Amazon API Gateway's
532// API operation CreateDocumentationVersion for usage and error information.
533//
534// Returned Error Codes:
535//   * ErrCodeBadRequestException "BadRequestException"
536//   The submitted request is not valid, for example, the input is incomplete
537//   or incorrect. See the accompanying error message for details.
538//
539//   * ErrCodeConflictException "ConflictException"
540//   The request configuration has conflicts. For details, see the accompanying
541//   error message.
542//
543//   * ErrCodeUnauthorizedException "UnauthorizedException"
544//   The request is denied because the caller has insufficient permissions.
545//
546//   * ErrCodeNotFoundException "NotFoundException"
547//   The requested resource is not found. Make sure that the request URI is correct.
548//
549//   * ErrCodeLimitExceededException "LimitExceededException"
550//   The request exceeded the rate limit. Retry after the specified time period.
551//
552//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
553//   The request has reached its throttling limit. Retry after the specified time
554//   period.
555//
556func (c *APIGateway) CreateDocumentationVersion(input *CreateDocumentationVersionInput) (*DocumentationVersion, error) {
557	req, out := c.CreateDocumentationVersionRequest(input)
558	return out, req.Send()
559}
560
561// CreateDocumentationVersionWithContext is the same as CreateDocumentationVersion with the addition of
562// the ability to pass a context and additional request options.
563//
564// See CreateDocumentationVersion for details on how to use this API operation.
565//
566// The context must be non-nil and will be used for request cancellation. If
567// the context is nil a panic will occur. In the future the SDK may create
568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
569// for more information on using Contexts.
570func (c *APIGateway) CreateDocumentationVersionWithContext(ctx aws.Context, input *CreateDocumentationVersionInput, opts ...request.Option) (*DocumentationVersion, error) {
571	req, out := c.CreateDocumentationVersionRequest(input)
572	req.SetContext(ctx)
573	req.ApplyOptions(opts...)
574	return out, req.Send()
575}
576
577const opCreateDomainName = "CreateDomainName"
578
579// CreateDomainNameRequest generates a "aws/request.Request" representing the
580// client's request for the CreateDomainName operation. The "output" return
581// value will be populated with the request's response once the request completes
582// successfully.
583//
584// Use "Send" method on the returned Request to send the API call to the service.
585// the "output" return value is not valid until after Send returns without error.
586//
587// See CreateDomainName for more information on using the CreateDomainName
588// API call, and error handling.
589//
590// This method is useful when you want to inject custom logic or configuration
591// into the SDK's request lifecycle. Such as custom headers, or retry logic.
592//
593//
594//    // Example sending a request using the CreateDomainNameRequest method.
595//    req, resp := client.CreateDomainNameRequest(params)
596//
597//    err := req.Send()
598//    if err == nil { // resp is now filled
599//        fmt.Println(resp)
600//    }
601func (c *APIGateway) CreateDomainNameRequest(input *CreateDomainNameInput) (req *request.Request, output *DomainName) {
602	op := &request.Operation{
603		Name:       opCreateDomainName,
604		HTTPMethod: "POST",
605		HTTPPath:   "/domainnames",
606	}
607
608	if input == nil {
609		input = &CreateDomainNameInput{}
610	}
611
612	output = &DomainName{}
613	req = c.newRequest(op, input, output)
614	return
615}
616
617// CreateDomainName API operation for Amazon API Gateway.
618//
619// Creates a new domain name.
620//
621// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
622// with awserr.Error's Code and Message methods to get detailed information about
623// the error.
624//
625// See the AWS API reference guide for Amazon API Gateway's
626// API operation CreateDomainName for usage and error information.
627//
628// Returned Error Codes:
629//   * ErrCodeUnauthorizedException "UnauthorizedException"
630//   The request is denied because the caller has insufficient permissions.
631//
632//   * ErrCodeBadRequestException "BadRequestException"
633//   The submitted request is not valid, for example, the input is incomplete
634//   or incorrect. See the accompanying error message for details.
635//
636//   * ErrCodeConflictException "ConflictException"
637//   The request configuration has conflicts. For details, see the accompanying
638//   error message.
639//
640//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
641//   The request has reached its throttling limit. Retry after the specified time
642//   period.
643//
644func (c *APIGateway) CreateDomainName(input *CreateDomainNameInput) (*DomainName, error) {
645	req, out := c.CreateDomainNameRequest(input)
646	return out, req.Send()
647}
648
649// CreateDomainNameWithContext is the same as CreateDomainName with the addition of
650// the ability to pass a context and additional request options.
651//
652// See CreateDomainName for details on how to use this API operation.
653//
654// The context must be non-nil and will be used for request cancellation. If
655// the context is nil a panic will occur. In the future the SDK may create
656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
657// for more information on using Contexts.
658func (c *APIGateway) CreateDomainNameWithContext(ctx aws.Context, input *CreateDomainNameInput, opts ...request.Option) (*DomainName, error) {
659	req, out := c.CreateDomainNameRequest(input)
660	req.SetContext(ctx)
661	req.ApplyOptions(opts...)
662	return out, req.Send()
663}
664
665const opCreateModel = "CreateModel"
666
667// CreateModelRequest generates a "aws/request.Request" representing the
668// client's request for the CreateModel operation. The "output" return
669// value will be populated with the request's response once the request completes
670// successfully.
671//
672// Use "Send" method on the returned Request to send the API call to the service.
673// the "output" return value is not valid until after Send returns without error.
674//
675// See CreateModel for more information on using the CreateModel
676// API call, and error handling.
677//
678// This method is useful when you want to inject custom logic or configuration
679// into the SDK's request lifecycle. Such as custom headers, or retry logic.
680//
681//
682//    // Example sending a request using the CreateModelRequest method.
683//    req, resp := client.CreateModelRequest(params)
684//
685//    err := req.Send()
686//    if err == nil { // resp is now filled
687//        fmt.Println(resp)
688//    }
689func (c *APIGateway) CreateModelRequest(input *CreateModelInput) (req *request.Request, output *Model) {
690	op := &request.Operation{
691		Name:       opCreateModel,
692		HTTPMethod: "POST",
693		HTTPPath:   "/restapis/{restapi_id}/models",
694	}
695
696	if input == nil {
697		input = &CreateModelInput{}
698	}
699
700	output = &Model{}
701	req = c.newRequest(op, input, output)
702	return
703}
704
705// CreateModel API operation for Amazon API Gateway.
706//
707// Adds a new Model resource to an existing RestApi resource.
708//
709// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
710// with awserr.Error's Code and Message methods to get detailed information about
711// the error.
712//
713// See the AWS API reference guide for Amazon API Gateway's
714// API operation CreateModel for usage and error information.
715//
716// Returned Error Codes:
717//   * ErrCodeBadRequestException "BadRequestException"
718//   The submitted request is not valid, for example, the input is incomplete
719//   or incorrect. See the accompanying error message for details.
720//
721//   * ErrCodeUnauthorizedException "UnauthorizedException"
722//   The request is denied because the caller has insufficient permissions.
723//
724//   * ErrCodeNotFoundException "NotFoundException"
725//   The requested resource is not found. Make sure that the request URI is correct.
726//
727//   * ErrCodeConflictException "ConflictException"
728//   The request configuration has conflicts. For details, see the accompanying
729//   error message.
730//
731//   * ErrCodeLimitExceededException "LimitExceededException"
732//   The request exceeded the rate limit. Retry after the specified time period.
733//
734//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
735//   The request has reached its throttling limit. Retry after the specified time
736//   period.
737//
738func (c *APIGateway) CreateModel(input *CreateModelInput) (*Model, error) {
739	req, out := c.CreateModelRequest(input)
740	return out, req.Send()
741}
742
743// CreateModelWithContext is the same as CreateModel with the addition of
744// the ability to pass a context and additional request options.
745//
746// See CreateModel for details on how to use this API operation.
747//
748// The context must be non-nil and will be used for request cancellation. If
749// the context is nil a panic will occur. In the future the SDK may create
750// sub-contexts for http.Requests. See https://golang.org/pkg/context/
751// for more information on using Contexts.
752func (c *APIGateway) CreateModelWithContext(ctx aws.Context, input *CreateModelInput, opts ...request.Option) (*Model, error) {
753	req, out := c.CreateModelRequest(input)
754	req.SetContext(ctx)
755	req.ApplyOptions(opts...)
756	return out, req.Send()
757}
758
759const opCreateRequestValidator = "CreateRequestValidator"
760
761// CreateRequestValidatorRequest generates a "aws/request.Request" representing the
762// client's request for the CreateRequestValidator operation. The "output" return
763// value will be populated with the request's response once the request completes
764// successfully.
765//
766// Use "Send" method on the returned Request to send the API call to the service.
767// the "output" return value is not valid until after Send returns without error.
768//
769// See CreateRequestValidator for more information on using the CreateRequestValidator
770// API call, and error handling.
771//
772// This method is useful when you want to inject custom logic or configuration
773// into the SDK's request lifecycle. Such as custom headers, or retry logic.
774//
775//
776//    // Example sending a request using the CreateRequestValidatorRequest method.
777//    req, resp := client.CreateRequestValidatorRequest(params)
778//
779//    err := req.Send()
780//    if err == nil { // resp is now filled
781//        fmt.Println(resp)
782//    }
783func (c *APIGateway) CreateRequestValidatorRequest(input *CreateRequestValidatorInput) (req *request.Request, output *UpdateRequestValidatorOutput) {
784	op := &request.Operation{
785		Name:       opCreateRequestValidator,
786		HTTPMethod: "POST",
787		HTTPPath:   "/restapis/{restapi_id}/requestvalidators",
788	}
789
790	if input == nil {
791		input = &CreateRequestValidatorInput{}
792	}
793
794	output = &UpdateRequestValidatorOutput{}
795	req = c.newRequest(op, input, output)
796	return
797}
798
799// CreateRequestValidator API operation for Amazon API Gateway.
800//
801// Creates a ReqeustValidator of a given RestApi.
802//
803// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
804// with awserr.Error's Code and Message methods to get detailed information about
805// the error.
806//
807// See the AWS API reference guide for Amazon API Gateway's
808// API operation CreateRequestValidator for usage and error information.
809//
810// Returned Error Codes:
811//   * ErrCodeBadRequestException "BadRequestException"
812//   The submitted request is not valid, for example, the input is incomplete
813//   or incorrect. See the accompanying error message for details.
814//
815//   * ErrCodeUnauthorizedException "UnauthorizedException"
816//   The request is denied because the caller has insufficient permissions.
817//
818//   * ErrCodeNotFoundException "NotFoundException"
819//   The requested resource is not found. Make sure that the request URI is correct.
820//
821//   * ErrCodeLimitExceededException "LimitExceededException"
822//   The request exceeded the rate limit. Retry after the specified time period.
823//
824//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
825//   The request has reached its throttling limit. Retry after the specified time
826//   period.
827//
828func (c *APIGateway) CreateRequestValidator(input *CreateRequestValidatorInput) (*UpdateRequestValidatorOutput, error) {
829	req, out := c.CreateRequestValidatorRequest(input)
830	return out, req.Send()
831}
832
833// CreateRequestValidatorWithContext is the same as CreateRequestValidator with the addition of
834// the ability to pass a context and additional request options.
835//
836// See CreateRequestValidator for details on how to use this API operation.
837//
838// The context must be non-nil and will be used for request cancellation. If
839// the context is nil a panic will occur. In the future the SDK may create
840// sub-contexts for http.Requests. See https://golang.org/pkg/context/
841// for more information on using Contexts.
842func (c *APIGateway) CreateRequestValidatorWithContext(ctx aws.Context, input *CreateRequestValidatorInput, opts ...request.Option) (*UpdateRequestValidatorOutput, error) {
843	req, out := c.CreateRequestValidatorRequest(input)
844	req.SetContext(ctx)
845	req.ApplyOptions(opts...)
846	return out, req.Send()
847}
848
849const opCreateResource = "CreateResource"
850
851// CreateResourceRequest generates a "aws/request.Request" representing the
852// client's request for the CreateResource operation. The "output" return
853// value will be populated with the request's response once the request completes
854// successfully.
855//
856// Use "Send" method on the returned Request to send the API call to the service.
857// the "output" return value is not valid until after Send returns without error.
858//
859// See CreateResource for more information on using the CreateResource
860// API call, and error handling.
861//
862// This method is useful when you want to inject custom logic or configuration
863// into the SDK's request lifecycle. Such as custom headers, or retry logic.
864//
865//
866//    // Example sending a request using the CreateResourceRequest method.
867//    req, resp := client.CreateResourceRequest(params)
868//
869//    err := req.Send()
870//    if err == nil { // resp is now filled
871//        fmt.Println(resp)
872//    }
873func (c *APIGateway) CreateResourceRequest(input *CreateResourceInput) (req *request.Request, output *Resource) {
874	op := &request.Operation{
875		Name:       opCreateResource,
876		HTTPMethod: "POST",
877		HTTPPath:   "/restapis/{restapi_id}/resources/{parent_id}",
878	}
879
880	if input == nil {
881		input = &CreateResourceInput{}
882	}
883
884	output = &Resource{}
885	req = c.newRequest(op, input, output)
886	return
887}
888
889// CreateResource API operation for Amazon API Gateway.
890//
891// Creates a Resource resource.
892//
893// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
894// with awserr.Error's Code and Message methods to get detailed information about
895// the error.
896//
897// See the AWS API reference guide for Amazon API Gateway's
898// API operation CreateResource for usage and error information.
899//
900// Returned Error Codes:
901//   * ErrCodeUnauthorizedException "UnauthorizedException"
902//   The request is denied because the caller has insufficient permissions.
903//
904//   * ErrCodeNotFoundException "NotFoundException"
905//   The requested resource is not found. Make sure that the request URI is correct.
906//
907//   * ErrCodeConflictException "ConflictException"
908//   The request configuration has conflicts. For details, see the accompanying
909//   error message.
910//
911//   * ErrCodeLimitExceededException "LimitExceededException"
912//   The request exceeded the rate limit. Retry after the specified time period.
913//
914//   * ErrCodeBadRequestException "BadRequestException"
915//   The submitted request is not valid, for example, the input is incomplete
916//   or incorrect. See the accompanying error message for details.
917//
918//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
919//   The request has reached its throttling limit. Retry after the specified time
920//   period.
921//
922func (c *APIGateway) CreateResource(input *CreateResourceInput) (*Resource, error) {
923	req, out := c.CreateResourceRequest(input)
924	return out, req.Send()
925}
926
927// CreateResourceWithContext is the same as CreateResource with the addition of
928// the ability to pass a context and additional request options.
929//
930// See CreateResource for details on how to use this API operation.
931//
932// The context must be non-nil and will be used for request cancellation. If
933// the context is nil a panic will occur. In the future the SDK may create
934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
935// for more information on using Contexts.
936func (c *APIGateway) CreateResourceWithContext(ctx aws.Context, input *CreateResourceInput, opts ...request.Option) (*Resource, error) {
937	req, out := c.CreateResourceRequest(input)
938	req.SetContext(ctx)
939	req.ApplyOptions(opts...)
940	return out, req.Send()
941}
942
943const opCreateRestApi = "CreateRestApi"
944
945// CreateRestApiRequest generates a "aws/request.Request" representing the
946// client's request for the CreateRestApi operation. The "output" return
947// value will be populated with the request's response once the request completes
948// successfully.
949//
950// Use "Send" method on the returned Request to send the API call to the service.
951// the "output" return value is not valid until after Send returns without error.
952//
953// See CreateRestApi for more information on using the CreateRestApi
954// API call, and error handling.
955//
956// This method is useful when you want to inject custom logic or configuration
957// into the SDK's request lifecycle. Such as custom headers, or retry logic.
958//
959//
960//    // Example sending a request using the CreateRestApiRequest method.
961//    req, resp := client.CreateRestApiRequest(params)
962//
963//    err := req.Send()
964//    if err == nil { // resp is now filled
965//        fmt.Println(resp)
966//    }
967func (c *APIGateway) CreateRestApiRequest(input *CreateRestApiInput) (req *request.Request, output *RestApi) {
968	op := &request.Operation{
969		Name:       opCreateRestApi,
970		HTTPMethod: "POST",
971		HTTPPath:   "/restapis",
972	}
973
974	if input == nil {
975		input = &CreateRestApiInput{}
976	}
977
978	output = &RestApi{}
979	req = c.newRequest(op, input, output)
980	return
981}
982
983// CreateRestApi API operation for Amazon API Gateway.
984//
985// Creates a new RestApi resource.
986//
987// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
988// with awserr.Error's Code and Message methods to get detailed information about
989// the error.
990//
991// See the AWS API reference guide for Amazon API Gateway's
992// API operation CreateRestApi for usage and error information.
993//
994// Returned Error Codes:
995//   * ErrCodeUnauthorizedException "UnauthorizedException"
996//   The request is denied because the caller has insufficient permissions.
997//
998//   * ErrCodeLimitExceededException "LimitExceededException"
999//   The request exceeded the rate limit. Retry after the specified time period.
1000//
1001//   * ErrCodeBadRequestException "BadRequestException"
1002//   The submitted request is not valid, for example, the input is incomplete
1003//   or incorrect. See the accompanying error message for details.
1004//
1005//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1006//   The request has reached its throttling limit. Retry after the specified time
1007//   period.
1008//
1009func (c *APIGateway) CreateRestApi(input *CreateRestApiInput) (*RestApi, error) {
1010	req, out := c.CreateRestApiRequest(input)
1011	return out, req.Send()
1012}
1013
1014// CreateRestApiWithContext is the same as CreateRestApi with the addition of
1015// the ability to pass a context and additional request options.
1016//
1017// See CreateRestApi for details on how to use this API operation.
1018//
1019// The context must be non-nil and will be used for request cancellation. If
1020// the context is nil a panic will occur. In the future the SDK may create
1021// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1022// for more information on using Contexts.
1023func (c *APIGateway) CreateRestApiWithContext(ctx aws.Context, input *CreateRestApiInput, opts ...request.Option) (*RestApi, error) {
1024	req, out := c.CreateRestApiRequest(input)
1025	req.SetContext(ctx)
1026	req.ApplyOptions(opts...)
1027	return out, req.Send()
1028}
1029
1030const opCreateStage = "CreateStage"
1031
1032// CreateStageRequest generates a "aws/request.Request" representing the
1033// client's request for the CreateStage operation. The "output" return
1034// value will be populated with the request's response once the request completes
1035// successfully.
1036//
1037// Use "Send" method on the returned Request to send the API call to the service.
1038// the "output" return value is not valid until after Send returns without error.
1039//
1040// See CreateStage for more information on using the CreateStage
1041// API call, and error handling.
1042//
1043// This method is useful when you want to inject custom logic or configuration
1044// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1045//
1046//
1047//    // Example sending a request using the CreateStageRequest method.
1048//    req, resp := client.CreateStageRequest(params)
1049//
1050//    err := req.Send()
1051//    if err == nil { // resp is now filled
1052//        fmt.Println(resp)
1053//    }
1054func (c *APIGateway) CreateStageRequest(input *CreateStageInput) (req *request.Request, output *Stage) {
1055	op := &request.Operation{
1056		Name:       opCreateStage,
1057		HTTPMethod: "POST",
1058		HTTPPath:   "/restapis/{restapi_id}/stages",
1059	}
1060
1061	if input == nil {
1062		input = &CreateStageInput{}
1063	}
1064
1065	output = &Stage{}
1066	req = c.newRequest(op, input, output)
1067	return
1068}
1069
1070// CreateStage API operation for Amazon API Gateway.
1071//
1072// Creates a new Stage resource that references a pre-existing Deployment for
1073// the API.
1074//
1075// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1076// with awserr.Error's Code and Message methods to get detailed information about
1077// the error.
1078//
1079// See the AWS API reference guide for Amazon API Gateway's
1080// API operation CreateStage for usage and error information.
1081//
1082// Returned Error Codes:
1083//   * ErrCodeUnauthorizedException "UnauthorizedException"
1084//   The request is denied because the caller has insufficient permissions.
1085//
1086//   * ErrCodeBadRequestException "BadRequestException"
1087//   The submitted request is not valid, for example, the input is incomplete
1088//   or incorrect. See the accompanying error message for details.
1089//
1090//   * ErrCodeNotFoundException "NotFoundException"
1091//   The requested resource is not found. Make sure that the request URI is correct.
1092//
1093//   * ErrCodeConflictException "ConflictException"
1094//   The request configuration has conflicts. For details, see the accompanying
1095//   error message.
1096//
1097//   * ErrCodeLimitExceededException "LimitExceededException"
1098//   The request exceeded the rate limit. Retry after the specified time period.
1099//
1100//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1101//   The request has reached its throttling limit. Retry after the specified time
1102//   period.
1103//
1104func (c *APIGateway) CreateStage(input *CreateStageInput) (*Stage, error) {
1105	req, out := c.CreateStageRequest(input)
1106	return out, req.Send()
1107}
1108
1109// CreateStageWithContext is the same as CreateStage with the addition of
1110// the ability to pass a context and additional request options.
1111//
1112// See CreateStage for details on how to use this API operation.
1113//
1114// The context must be non-nil and will be used for request cancellation. If
1115// the context is nil a panic will occur. In the future the SDK may create
1116// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1117// for more information on using Contexts.
1118func (c *APIGateway) CreateStageWithContext(ctx aws.Context, input *CreateStageInput, opts ...request.Option) (*Stage, error) {
1119	req, out := c.CreateStageRequest(input)
1120	req.SetContext(ctx)
1121	req.ApplyOptions(opts...)
1122	return out, req.Send()
1123}
1124
1125const opCreateUsagePlan = "CreateUsagePlan"
1126
1127// CreateUsagePlanRequest generates a "aws/request.Request" representing the
1128// client's request for the CreateUsagePlan operation. The "output" return
1129// value will be populated with the request's response once the request completes
1130// successfully.
1131//
1132// Use "Send" method on the returned Request to send the API call to the service.
1133// the "output" return value is not valid until after Send returns without error.
1134//
1135// See CreateUsagePlan for more information on using the CreateUsagePlan
1136// API call, and error handling.
1137//
1138// This method is useful when you want to inject custom logic or configuration
1139// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1140//
1141//
1142//    // Example sending a request using the CreateUsagePlanRequest method.
1143//    req, resp := client.CreateUsagePlanRequest(params)
1144//
1145//    err := req.Send()
1146//    if err == nil { // resp is now filled
1147//        fmt.Println(resp)
1148//    }
1149func (c *APIGateway) CreateUsagePlanRequest(input *CreateUsagePlanInput) (req *request.Request, output *UsagePlan) {
1150	op := &request.Operation{
1151		Name:       opCreateUsagePlan,
1152		HTTPMethod: "POST",
1153		HTTPPath:   "/usageplans",
1154	}
1155
1156	if input == nil {
1157		input = &CreateUsagePlanInput{}
1158	}
1159
1160	output = &UsagePlan{}
1161	req = c.newRequest(op, input, output)
1162	return
1163}
1164
1165// CreateUsagePlan API operation for Amazon API Gateway.
1166//
1167// Creates a usage plan with the throttle and quota limits, as well as the associated
1168// API stages, specified in the payload.
1169//
1170// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1171// with awserr.Error's Code and Message methods to get detailed information about
1172// the error.
1173//
1174// See the AWS API reference guide for Amazon API Gateway's
1175// API operation CreateUsagePlan for usage and error information.
1176//
1177// Returned Error Codes:
1178//   * ErrCodeBadRequestException "BadRequestException"
1179//   The submitted request is not valid, for example, the input is incomplete
1180//   or incorrect. See the accompanying error message for details.
1181//
1182//   * ErrCodeUnauthorizedException "UnauthorizedException"
1183//   The request is denied because the caller has insufficient permissions.
1184//
1185//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1186//   The request has reached its throttling limit. Retry after the specified time
1187//   period.
1188//
1189//   * ErrCodeLimitExceededException "LimitExceededException"
1190//   The request exceeded the rate limit. Retry after the specified time period.
1191//
1192//   * ErrCodeConflictException "ConflictException"
1193//   The request configuration has conflicts. For details, see the accompanying
1194//   error message.
1195//
1196//   * ErrCodeNotFoundException "NotFoundException"
1197//   The requested resource is not found. Make sure that the request URI is correct.
1198//
1199func (c *APIGateway) CreateUsagePlan(input *CreateUsagePlanInput) (*UsagePlan, error) {
1200	req, out := c.CreateUsagePlanRequest(input)
1201	return out, req.Send()
1202}
1203
1204// CreateUsagePlanWithContext is the same as CreateUsagePlan with the addition of
1205// the ability to pass a context and additional request options.
1206//
1207// See CreateUsagePlan for details on how to use this API operation.
1208//
1209// The context must be non-nil and will be used for request cancellation. If
1210// the context is nil a panic will occur. In the future the SDK may create
1211// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1212// for more information on using Contexts.
1213func (c *APIGateway) CreateUsagePlanWithContext(ctx aws.Context, input *CreateUsagePlanInput, opts ...request.Option) (*UsagePlan, error) {
1214	req, out := c.CreateUsagePlanRequest(input)
1215	req.SetContext(ctx)
1216	req.ApplyOptions(opts...)
1217	return out, req.Send()
1218}
1219
1220const opCreateUsagePlanKey = "CreateUsagePlanKey"
1221
1222// CreateUsagePlanKeyRequest generates a "aws/request.Request" representing the
1223// client's request for the CreateUsagePlanKey operation. The "output" return
1224// value will be populated with the request's response once the request completes
1225// successfully.
1226//
1227// Use "Send" method on the returned Request to send the API call to the service.
1228// the "output" return value is not valid until after Send returns without error.
1229//
1230// See CreateUsagePlanKey for more information on using the CreateUsagePlanKey
1231// API call, and error handling.
1232//
1233// This method is useful when you want to inject custom logic or configuration
1234// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1235//
1236//
1237//    // Example sending a request using the CreateUsagePlanKeyRequest method.
1238//    req, resp := client.CreateUsagePlanKeyRequest(params)
1239//
1240//    err := req.Send()
1241//    if err == nil { // resp is now filled
1242//        fmt.Println(resp)
1243//    }
1244func (c *APIGateway) CreateUsagePlanKeyRequest(input *CreateUsagePlanKeyInput) (req *request.Request, output *UsagePlanKey) {
1245	op := &request.Operation{
1246		Name:       opCreateUsagePlanKey,
1247		HTTPMethod: "POST",
1248		HTTPPath:   "/usageplans/{usageplanId}/keys",
1249	}
1250
1251	if input == nil {
1252		input = &CreateUsagePlanKeyInput{}
1253	}
1254
1255	output = &UsagePlanKey{}
1256	req = c.newRequest(op, input, output)
1257	return
1258}
1259
1260// CreateUsagePlanKey API operation for Amazon API Gateway.
1261//
1262// Creates a usage plan key for adding an existing API key to a usage plan.
1263//
1264// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1265// with awserr.Error's Code and Message methods to get detailed information about
1266// the error.
1267//
1268// See the AWS API reference guide for Amazon API Gateway's
1269// API operation CreateUsagePlanKey for usage and error information.
1270//
1271// Returned Error Codes:
1272//   * ErrCodeBadRequestException "BadRequestException"
1273//   The submitted request is not valid, for example, the input is incomplete
1274//   or incorrect. See the accompanying error message for details.
1275//
1276//   * ErrCodeConflictException "ConflictException"
1277//   The request configuration has conflicts. For details, see the accompanying
1278//   error message.
1279//
1280//   * ErrCodeUnauthorizedException "UnauthorizedException"
1281//   The request is denied because the caller has insufficient permissions.
1282//
1283//   * ErrCodeNotFoundException "NotFoundException"
1284//   The requested resource is not found. Make sure that the request URI is correct.
1285//
1286//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1287//   The request has reached its throttling limit. Retry after the specified time
1288//   period.
1289//
1290func (c *APIGateway) CreateUsagePlanKey(input *CreateUsagePlanKeyInput) (*UsagePlanKey, error) {
1291	req, out := c.CreateUsagePlanKeyRequest(input)
1292	return out, req.Send()
1293}
1294
1295// CreateUsagePlanKeyWithContext is the same as CreateUsagePlanKey with the addition of
1296// the ability to pass a context and additional request options.
1297//
1298// See CreateUsagePlanKey for details on how to use this API operation.
1299//
1300// The context must be non-nil and will be used for request cancellation. If
1301// the context is nil a panic will occur. In the future the SDK may create
1302// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1303// for more information on using Contexts.
1304func (c *APIGateway) CreateUsagePlanKeyWithContext(ctx aws.Context, input *CreateUsagePlanKeyInput, opts ...request.Option) (*UsagePlanKey, error) {
1305	req, out := c.CreateUsagePlanKeyRequest(input)
1306	req.SetContext(ctx)
1307	req.ApplyOptions(opts...)
1308	return out, req.Send()
1309}
1310
1311const opCreateVpcLink = "CreateVpcLink"
1312
1313// CreateVpcLinkRequest generates a "aws/request.Request" representing the
1314// client's request for the CreateVpcLink operation. The "output" return
1315// value will be populated with the request's response once the request completes
1316// successfully.
1317//
1318// Use "Send" method on the returned Request to send the API call to the service.
1319// the "output" return value is not valid until after Send returns without error.
1320//
1321// See CreateVpcLink for more information on using the CreateVpcLink
1322// API call, and error handling.
1323//
1324// This method is useful when you want to inject custom logic or configuration
1325// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1326//
1327//
1328//    // Example sending a request using the CreateVpcLinkRequest method.
1329//    req, resp := client.CreateVpcLinkRequest(params)
1330//
1331//    err := req.Send()
1332//    if err == nil { // resp is now filled
1333//        fmt.Println(resp)
1334//    }
1335func (c *APIGateway) CreateVpcLinkRequest(input *CreateVpcLinkInput) (req *request.Request, output *UpdateVpcLinkOutput) {
1336	op := &request.Operation{
1337		Name:       opCreateVpcLink,
1338		HTTPMethod: "POST",
1339		HTTPPath:   "/vpclinks",
1340	}
1341
1342	if input == nil {
1343		input = &CreateVpcLinkInput{}
1344	}
1345
1346	output = &UpdateVpcLinkOutput{}
1347	req = c.newRequest(op, input, output)
1348	return
1349}
1350
1351// CreateVpcLink API operation for Amazon API Gateway.
1352//
1353// Creates a VPC link, under the caller's account in a selected region, in an
1354// asynchronous operation that typically takes 2-4 minutes to complete and become
1355// operational. The caller must have permissions to create and update VPC Endpoint
1356// services.
1357//
1358// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1359// with awserr.Error's Code and Message methods to get detailed information about
1360// the error.
1361//
1362// See the AWS API reference guide for Amazon API Gateway's
1363// API operation CreateVpcLink for usage and error information.
1364//
1365// Returned Error Codes:
1366//   * ErrCodeUnauthorizedException "UnauthorizedException"
1367//   The request is denied because the caller has insufficient permissions.
1368//
1369//   * ErrCodeBadRequestException "BadRequestException"
1370//   The submitted request is not valid, for example, the input is incomplete
1371//   or incorrect. See the accompanying error message for details.
1372//
1373//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1374//   The request has reached its throttling limit. Retry after the specified time
1375//   period.
1376//
1377func (c *APIGateway) CreateVpcLink(input *CreateVpcLinkInput) (*UpdateVpcLinkOutput, error) {
1378	req, out := c.CreateVpcLinkRequest(input)
1379	return out, req.Send()
1380}
1381
1382// CreateVpcLinkWithContext is the same as CreateVpcLink with the addition of
1383// the ability to pass a context and additional request options.
1384//
1385// See CreateVpcLink for details on how to use this API operation.
1386//
1387// The context must be non-nil and will be used for request cancellation. If
1388// the context is nil a panic will occur. In the future the SDK may create
1389// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1390// for more information on using Contexts.
1391func (c *APIGateway) CreateVpcLinkWithContext(ctx aws.Context, input *CreateVpcLinkInput, opts ...request.Option) (*UpdateVpcLinkOutput, error) {
1392	req, out := c.CreateVpcLinkRequest(input)
1393	req.SetContext(ctx)
1394	req.ApplyOptions(opts...)
1395	return out, req.Send()
1396}
1397
1398const opDeleteApiKey = "DeleteApiKey"
1399
1400// DeleteApiKeyRequest generates a "aws/request.Request" representing the
1401// client's request for the DeleteApiKey operation. The "output" return
1402// value will be populated with the request's response once the request completes
1403// successfully.
1404//
1405// Use "Send" method on the returned Request to send the API call to the service.
1406// the "output" return value is not valid until after Send returns without error.
1407//
1408// See DeleteApiKey for more information on using the DeleteApiKey
1409// API call, and error handling.
1410//
1411// This method is useful when you want to inject custom logic or configuration
1412// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1413//
1414//
1415//    // Example sending a request using the DeleteApiKeyRequest method.
1416//    req, resp := client.DeleteApiKeyRequest(params)
1417//
1418//    err := req.Send()
1419//    if err == nil { // resp is now filled
1420//        fmt.Println(resp)
1421//    }
1422func (c *APIGateway) DeleteApiKeyRequest(input *DeleteApiKeyInput) (req *request.Request, output *DeleteApiKeyOutput) {
1423	op := &request.Operation{
1424		Name:       opDeleteApiKey,
1425		HTTPMethod: "DELETE",
1426		HTTPPath:   "/apikeys/{api_Key}",
1427	}
1428
1429	if input == nil {
1430		input = &DeleteApiKeyInput{}
1431	}
1432
1433	output = &DeleteApiKeyOutput{}
1434	req = c.newRequest(op, input, output)
1435	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1436	return
1437}
1438
1439// DeleteApiKey API operation for Amazon API Gateway.
1440//
1441// Deletes the ApiKey resource.
1442//
1443// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1444// with awserr.Error's Code and Message methods to get detailed information about
1445// the error.
1446//
1447// See the AWS API reference guide for Amazon API Gateway's
1448// API operation DeleteApiKey for usage and error information.
1449//
1450// Returned Error Codes:
1451//   * ErrCodeUnauthorizedException "UnauthorizedException"
1452//   The request is denied because the caller has insufficient permissions.
1453//
1454//   * ErrCodeNotFoundException "NotFoundException"
1455//   The requested resource is not found. Make sure that the request URI is correct.
1456//
1457//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1458//   The request has reached its throttling limit. Retry after the specified time
1459//   period.
1460//
1461func (c *APIGateway) DeleteApiKey(input *DeleteApiKeyInput) (*DeleteApiKeyOutput, error) {
1462	req, out := c.DeleteApiKeyRequest(input)
1463	return out, req.Send()
1464}
1465
1466// DeleteApiKeyWithContext is the same as DeleteApiKey with the addition of
1467// the ability to pass a context and additional request options.
1468//
1469// See DeleteApiKey for details on how to use this API operation.
1470//
1471// The context must be non-nil and will be used for request cancellation. If
1472// the context is nil a panic will occur. In the future the SDK may create
1473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1474// for more information on using Contexts.
1475func (c *APIGateway) DeleteApiKeyWithContext(ctx aws.Context, input *DeleteApiKeyInput, opts ...request.Option) (*DeleteApiKeyOutput, error) {
1476	req, out := c.DeleteApiKeyRequest(input)
1477	req.SetContext(ctx)
1478	req.ApplyOptions(opts...)
1479	return out, req.Send()
1480}
1481
1482const opDeleteAuthorizer = "DeleteAuthorizer"
1483
1484// DeleteAuthorizerRequest generates a "aws/request.Request" representing the
1485// client's request for the DeleteAuthorizer operation. The "output" return
1486// value will be populated with the request's response once the request completes
1487// successfully.
1488//
1489// Use "Send" method on the returned Request to send the API call to the service.
1490// the "output" return value is not valid until after Send returns without error.
1491//
1492// See DeleteAuthorizer for more information on using the DeleteAuthorizer
1493// API call, and error handling.
1494//
1495// This method is useful when you want to inject custom logic or configuration
1496// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1497//
1498//
1499//    // Example sending a request using the DeleteAuthorizerRequest method.
1500//    req, resp := client.DeleteAuthorizerRequest(params)
1501//
1502//    err := req.Send()
1503//    if err == nil { // resp is now filled
1504//        fmt.Println(resp)
1505//    }
1506func (c *APIGateway) DeleteAuthorizerRequest(input *DeleteAuthorizerInput) (req *request.Request, output *DeleteAuthorizerOutput) {
1507	op := &request.Operation{
1508		Name:       opDeleteAuthorizer,
1509		HTTPMethod: "DELETE",
1510		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
1511	}
1512
1513	if input == nil {
1514		input = &DeleteAuthorizerInput{}
1515	}
1516
1517	output = &DeleteAuthorizerOutput{}
1518	req = c.newRequest(op, input, output)
1519	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1520	return
1521}
1522
1523// DeleteAuthorizer API operation for Amazon API Gateway.
1524//
1525// Deletes an existing Authorizer resource.
1526//
1527// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/delete-authorizer.html)
1528//
1529// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1530// with awserr.Error's Code and Message methods to get detailed information about
1531// the error.
1532//
1533// See the AWS API reference guide for Amazon API Gateway's
1534// API operation DeleteAuthorizer for usage and error information.
1535//
1536// Returned Error Codes:
1537//   * ErrCodeUnauthorizedException "UnauthorizedException"
1538//   The request is denied because the caller has insufficient permissions.
1539//
1540//   * ErrCodeNotFoundException "NotFoundException"
1541//   The requested resource is not found. Make sure that the request URI is correct.
1542//
1543//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1544//   The request has reached its throttling limit. Retry after the specified time
1545//   period.
1546//
1547//   * ErrCodeBadRequestException "BadRequestException"
1548//   The submitted request is not valid, for example, the input is incomplete
1549//   or incorrect. See the accompanying error message for details.
1550//
1551//   * ErrCodeConflictException "ConflictException"
1552//   The request configuration has conflicts. For details, see the accompanying
1553//   error message.
1554//
1555func (c *APIGateway) DeleteAuthorizer(input *DeleteAuthorizerInput) (*DeleteAuthorizerOutput, error) {
1556	req, out := c.DeleteAuthorizerRequest(input)
1557	return out, req.Send()
1558}
1559
1560// DeleteAuthorizerWithContext is the same as DeleteAuthorizer with the addition of
1561// the ability to pass a context and additional request options.
1562//
1563// See DeleteAuthorizer for details on how to use this API operation.
1564//
1565// The context must be non-nil and will be used for request cancellation. If
1566// the context is nil a panic will occur. In the future the SDK may create
1567// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1568// for more information on using Contexts.
1569func (c *APIGateway) DeleteAuthorizerWithContext(ctx aws.Context, input *DeleteAuthorizerInput, opts ...request.Option) (*DeleteAuthorizerOutput, error) {
1570	req, out := c.DeleteAuthorizerRequest(input)
1571	req.SetContext(ctx)
1572	req.ApplyOptions(opts...)
1573	return out, req.Send()
1574}
1575
1576const opDeleteBasePathMapping = "DeleteBasePathMapping"
1577
1578// DeleteBasePathMappingRequest generates a "aws/request.Request" representing the
1579// client's request for the DeleteBasePathMapping operation. The "output" return
1580// value will be populated with the request's response once the request completes
1581// successfully.
1582//
1583// Use "Send" method on the returned Request to send the API call to the service.
1584// the "output" return value is not valid until after Send returns without error.
1585//
1586// See DeleteBasePathMapping for more information on using the DeleteBasePathMapping
1587// API call, and error handling.
1588//
1589// This method is useful when you want to inject custom logic or configuration
1590// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1591//
1592//
1593//    // Example sending a request using the DeleteBasePathMappingRequest method.
1594//    req, resp := client.DeleteBasePathMappingRequest(params)
1595//
1596//    err := req.Send()
1597//    if err == nil { // resp is now filled
1598//        fmt.Println(resp)
1599//    }
1600func (c *APIGateway) DeleteBasePathMappingRequest(input *DeleteBasePathMappingInput) (req *request.Request, output *DeleteBasePathMappingOutput) {
1601	op := &request.Operation{
1602		Name:       opDeleteBasePathMapping,
1603		HTTPMethod: "DELETE",
1604		HTTPPath:   "/domainnames/{domain_name}/basepathmappings/{base_path}",
1605	}
1606
1607	if input == nil {
1608		input = &DeleteBasePathMappingInput{}
1609	}
1610
1611	output = &DeleteBasePathMappingOutput{}
1612	req = c.newRequest(op, input, output)
1613	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1614	return
1615}
1616
1617// DeleteBasePathMapping API operation for Amazon API Gateway.
1618//
1619// Deletes the BasePathMapping resource.
1620//
1621// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1622// with awserr.Error's Code and Message methods to get detailed information about
1623// the error.
1624//
1625// See the AWS API reference guide for Amazon API Gateway's
1626// API operation DeleteBasePathMapping for usage and error information.
1627//
1628// Returned Error Codes:
1629//   * ErrCodeUnauthorizedException "UnauthorizedException"
1630//   The request is denied because the caller has insufficient permissions.
1631//
1632//   * ErrCodeNotFoundException "NotFoundException"
1633//   The requested resource is not found. Make sure that the request URI is correct.
1634//
1635//   * ErrCodeConflictException "ConflictException"
1636//   The request configuration has conflicts. For details, see the accompanying
1637//   error message.
1638//
1639//   * ErrCodeBadRequestException "BadRequestException"
1640//   The submitted request is not valid, for example, the input is incomplete
1641//   or incorrect. See the accompanying error message for details.
1642//
1643//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1644//   The request has reached its throttling limit. Retry after the specified time
1645//   period.
1646//
1647func (c *APIGateway) DeleteBasePathMapping(input *DeleteBasePathMappingInput) (*DeleteBasePathMappingOutput, error) {
1648	req, out := c.DeleteBasePathMappingRequest(input)
1649	return out, req.Send()
1650}
1651
1652// DeleteBasePathMappingWithContext is the same as DeleteBasePathMapping with the addition of
1653// the ability to pass a context and additional request options.
1654//
1655// See DeleteBasePathMapping for details on how to use this API operation.
1656//
1657// The context must be non-nil and will be used for request cancellation. If
1658// the context is nil a panic will occur. In the future the SDK may create
1659// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1660// for more information on using Contexts.
1661func (c *APIGateway) DeleteBasePathMappingWithContext(ctx aws.Context, input *DeleteBasePathMappingInput, opts ...request.Option) (*DeleteBasePathMappingOutput, error) {
1662	req, out := c.DeleteBasePathMappingRequest(input)
1663	req.SetContext(ctx)
1664	req.ApplyOptions(opts...)
1665	return out, req.Send()
1666}
1667
1668const opDeleteClientCertificate = "DeleteClientCertificate"
1669
1670// DeleteClientCertificateRequest generates a "aws/request.Request" representing the
1671// client's request for the DeleteClientCertificate operation. The "output" return
1672// value will be populated with the request's response once the request completes
1673// successfully.
1674//
1675// Use "Send" method on the returned Request to send the API call to the service.
1676// the "output" return value is not valid until after Send returns without error.
1677//
1678// See DeleteClientCertificate for more information on using the DeleteClientCertificate
1679// API call, and error handling.
1680//
1681// This method is useful when you want to inject custom logic or configuration
1682// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1683//
1684//
1685//    // Example sending a request using the DeleteClientCertificateRequest method.
1686//    req, resp := client.DeleteClientCertificateRequest(params)
1687//
1688//    err := req.Send()
1689//    if err == nil { // resp is now filled
1690//        fmt.Println(resp)
1691//    }
1692func (c *APIGateway) DeleteClientCertificateRequest(input *DeleteClientCertificateInput) (req *request.Request, output *DeleteClientCertificateOutput) {
1693	op := &request.Operation{
1694		Name:       opDeleteClientCertificate,
1695		HTTPMethod: "DELETE",
1696		HTTPPath:   "/clientcertificates/{clientcertificate_id}",
1697	}
1698
1699	if input == nil {
1700		input = &DeleteClientCertificateInput{}
1701	}
1702
1703	output = &DeleteClientCertificateOutput{}
1704	req = c.newRequest(op, input, output)
1705	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1706	return
1707}
1708
1709// DeleteClientCertificate API operation for Amazon API Gateway.
1710//
1711// Deletes the ClientCertificate resource.
1712//
1713// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1714// with awserr.Error's Code and Message methods to get detailed information about
1715// the error.
1716//
1717// See the AWS API reference guide for Amazon API Gateway's
1718// API operation DeleteClientCertificate for usage and error information.
1719//
1720// Returned Error Codes:
1721//   * ErrCodeUnauthorizedException "UnauthorizedException"
1722//   The request is denied because the caller has insufficient permissions.
1723//
1724//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1725//   The request has reached its throttling limit. Retry after the specified time
1726//   period.
1727//
1728//   * ErrCodeBadRequestException "BadRequestException"
1729//   The submitted request is not valid, for example, the input is incomplete
1730//   or incorrect. See the accompanying error message for details.
1731//
1732//   * ErrCodeNotFoundException "NotFoundException"
1733//   The requested resource is not found. Make sure that the request URI is correct.
1734//
1735func (c *APIGateway) DeleteClientCertificate(input *DeleteClientCertificateInput) (*DeleteClientCertificateOutput, error) {
1736	req, out := c.DeleteClientCertificateRequest(input)
1737	return out, req.Send()
1738}
1739
1740// DeleteClientCertificateWithContext is the same as DeleteClientCertificate with the addition of
1741// the ability to pass a context and additional request options.
1742//
1743// See DeleteClientCertificate for details on how to use this API operation.
1744//
1745// The context must be non-nil and will be used for request cancellation. If
1746// the context is nil a panic will occur. In the future the SDK may create
1747// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1748// for more information on using Contexts.
1749func (c *APIGateway) DeleteClientCertificateWithContext(ctx aws.Context, input *DeleteClientCertificateInput, opts ...request.Option) (*DeleteClientCertificateOutput, error) {
1750	req, out := c.DeleteClientCertificateRequest(input)
1751	req.SetContext(ctx)
1752	req.ApplyOptions(opts...)
1753	return out, req.Send()
1754}
1755
1756const opDeleteDeployment = "DeleteDeployment"
1757
1758// DeleteDeploymentRequest generates a "aws/request.Request" representing the
1759// client's request for the DeleteDeployment operation. The "output" return
1760// value will be populated with the request's response once the request completes
1761// successfully.
1762//
1763// Use "Send" method on the returned Request to send the API call to the service.
1764// the "output" return value is not valid until after Send returns without error.
1765//
1766// See DeleteDeployment for more information on using the DeleteDeployment
1767// API call, and error handling.
1768//
1769// This method is useful when you want to inject custom logic or configuration
1770// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1771//
1772//
1773//    // Example sending a request using the DeleteDeploymentRequest method.
1774//    req, resp := client.DeleteDeploymentRequest(params)
1775//
1776//    err := req.Send()
1777//    if err == nil { // resp is now filled
1778//        fmt.Println(resp)
1779//    }
1780func (c *APIGateway) DeleteDeploymentRequest(input *DeleteDeploymentInput) (req *request.Request, output *DeleteDeploymentOutput) {
1781	op := &request.Operation{
1782		Name:       opDeleteDeployment,
1783		HTTPMethod: "DELETE",
1784		HTTPPath:   "/restapis/{restapi_id}/deployments/{deployment_id}",
1785	}
1786
1787	if input == nil {
1788		input = &DeleteDeploymentInput{}
1789	}
1790
1791	output = &DeleteDeploymentOutput{}
1792	req = c.newRequest(op, input, output)
1793	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1794	return
1795}
1796
1797// DeleteDeployment API operation for Amazon API Gateway.
1798//
1799// Deletes a Deployment resource. Deleting a deployment will only succeed if
1800// there are no Stage resources associated with it.
1801//
1802// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1803// with awserr.Error's Code and Message methods to get detailed information about
1804// the error.
1805//
1806// See the AWS API reference guide for Amazon API Gateway's
1807// API operation DeleteDeployment for usage and error information.
1808//
1809// Returned Error Codes:
1810//   * ErrCodeUnauthorizedException "UnauthorizedException"
1811//   The request is denied because the caller has insufficient permissions.
1812//
1813//   * ErrCodeNotFoundException "NotFoundException"
1814//   The requested resource is not found. Make sure that the request URI is correct.
1815//
1816//   * ErrCodeBadRequestException "BadRequestException"
1817//   The submitted request is not valid, for example, the input is incomplete
1818//   or incorrect. See the accompanying error message for details.
1819//
1820//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1821//   The request has reached its throttling limit. Retry after the specified time
1822//   period.
1823//
1824func (c *APIGateway) DeleteDeployment(input *DeleteDeploymentInput) (*DeleteDeploymentOutput, error) {
1825	req, out := c.DeleteDeploymentRequest(input)
1826	return out, req.Send()
1827}
1828
1829// DeleteDeploymentWithContext is the same as DeleteDeployment with the addition of
1830// the ability to pass a context and additional request options.
1831//
1832// See DeleteDeployment for details on how to use this API operation.
1833//
1834// The context must be non-nil and will be used for request cancellation. If
1835// the context is nil a panic will occur. In the future the SDK may create
1836// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1837// for more information on using Contexts.
1838func (c *APIGateway) DeleteDeploymentWithContext(ctx aws.Context, input *DeleteDeploymentInput, opts ...request.Option) (*DeleteDeploymentOutput, error) {
1839	req, out := c.DeleteDeploymentRequest(input)
1840	req.SetContext(ctx)
1841	req.ApplyOptions(opts...)
1842	return out, req.Send()
1843}
1844
1845const opDeleteDocumentationPart = "DeleteDocumentationPart"
1846
1847// DeleteDocumentationPartRequest generates a "aws/request.Request" representing the
1848// client's request for the DeleteDocumentationPart operation. The "output" return
1849// value will be populated with the request's response once the request completes
1850// successfully.
1851//
1852// Use "Send" method on the returned Request to send the API call to the service.
1853// the "output" return value is not valid until after Send returns without error.
1854//
1855// See DeleteDocumentationPart for more information on using the DeleteDocumentationPart
1856// API call, and error handling.
1857//
1858// This method is useful when you want to inject custom logic or configuration
1859// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1860//
1861//
1862//    // Example sending a request using the DeleteDocumentationPartRequest method.
1863//    req, resp := client.DeleteDocumentationPartRequest(params)
1864//
1865//    err := req.Send()
1866//    if err == nil { // resp is now filled
1867//        fmt.Println(resp)
1868//    }
1869func (c *APIGateway) DeleteDocumentationPartRequest(input *DeleteDocumentationPartInput) (req *request.Request, output *DeleteDocumentationPartOutput) {
1870	op := &request.Operation{
1871		Name:       opDeleteDocumentationPart,
1872		HTTPMethod: "DELETE",
1873		HTTPPath:   "/restapis/{restapi_id}/documentation/parts/{part_id}",
1874	}
1875
1876	if input == nil {
1877		input = &DeleteDocumentationPartInput{}
1878	}
1879
1880	output = &DeleteDocumentationPartOutput{}
1881	req = c.newRequest(op, input, output)
1882	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1883	return
1884}
1885
1886// DeleteDocumentationPart API operation for Amazon API Gateway.
1887//
1888// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1889// with awserr.Error's Code and Message methods to get detailed information about
1890// the error.
1891//
1892// See the AWS API reference guide for Amazon API Gateway's
1893// API operation DeleteDocumentationPart for usage and error information.
1894//
1895// Returned Error Codes:
1896//   * ErrCodeUnauthorizedException "UnauthorizedException"
1897//   The request is denied because the caller has insufficient permissions.
1898//
1899//   * ErrCodeNotFoundException "NotFoundException"
1900//   The requested resource is not found. Make sure that the request URI is correct.
1901//
1902//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1903//   The request has reached its throttling limit. Retry after the specified time
1904//   period.
1905//
1906//   * ErrCodeConflictException "ConflictException"
1907//   The request configuration has conflicts. For details, see the accompanying
1908//   error message.
1909//
1910//   * ErrCodeBadRequestException "BadRequestException"
1911//   The submitted request is not valid, for example, the input is incomplete
1912//   or incorrect. See the accompanying error message for details.
1913//
1914func (c *APIGateway) DeleteDocumentationPart(input *DeleteDocumentationPartInput) (*DeleteDocumentationPartOutput, error) {
1915	req, out := c.DeleteDocumentationPartRequest(input)
1916	return out, req.Send()
1917}
1918
1919// DeleteDocumentationPartWithContext is the same as DeleteDocumentationPart with the addition of
1920// the ability to pass a context and additional request options.
1921//
1922// See DeleteDocumentationPart for details on how to use this API operation.
1923//
1924// The context must be non-nil and will be used for request cancellation. If
1925// the context is nil a panic will occur. In the future the SDK may create
1926// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1927// for more information on using Contexts.
1928func (c *APIGateway) DeleteDocumentationPartWithContext(ctx aws.Context, input *DeleteDocumentationPartInput, opts ...request.Option) (*DeleteDocumentationPartOutput, error) {
1929	req, out := c.DeleteDocumentationPartRequest(input)
1930	req.SetContext(ctx)
1931	req.ApplyOptions(opts...)
1932	return out, req.Send()
1933}
1934
1935const opDeleteDocumentationVersion = "DeleteDocumentationVersion"
1936
1937// DeleteDocumentationVersionRequest generates a "aws/request.Request" representing the
1938// client's request for the DeleteDocumentationVersion operation. The "output" return
1939// value will be populated with the request's response once the request completes
1940// successfully.
1941//
1942// Use "Send" method on the returned Request to send the API call to the service.
1943// the "output" return value is not valid until after Send returns without error.
1944//
1945// See DeleteDocumentationVersion for more information on using the DeleteDocumentationVersion
1946// API call, and error handling.
1947//
1948// This method is useful when you want to inject custom logic or configuration
1949// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1950//
1951//
1952//    // Example sending a request using the DeleteDocumentationVersionRequest method.
1953//    req, resp := client.DeleteDocumentationVersionRequest(params)
1954//
1955//    err := req.Send()
1956//    if err == nil { // resp is now filled
1957//        fmt.Println(resp)
1958//    }
1959func (c *APIGateway) DeleteDocumentationVersionRequest(input *DeleteDocumentationVersionInput) (req *request.Request, output *DeleteDocumentationVersionOutput) {
1960	op := &request.Operation{
1961		Name:       opDeleteDocumentationVersion,
1962		HTTPMethod: "DELETE",
1963		HTTPPath:   "/restapis/{restapi_id}/documentation/versions/{doc_version}",
1964	}
1965
1966	if input == nil {
1967		input = &DeleteDocumentationVersionInput{}
1968	}
1969
1970	output = &DeleteDocumentationVersionOutput{}
1971	req = c.newRequest(op, input, output)
1972	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1973	return
1974}
1975
1976// DeleteDocumentationVersion API operation for Amazon API Gateway.
1977//
1978// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1979// with awserr.Error's Code and Message methods to get detailed information about
1980// the error.
1981//
1982// See the AWS API reference guide for Amazon API Gateway's
1983// API operation DeleteDocumentationVersion for usage and error information.
1984//
1985// Returned Error Codes:
1986//   * ErrCodeUnauthorizedException "UnauthorizedException"
1987//   The request is denied because the caller has insufficient permissions.
1988//
1989//   * ErrCodeNotFoundException "NotFoundException"
1990//   The requested resource is not found. Make sure that the request URI is correct.
1991//
1992//   * ErrCodeBadRequestException "BadRequestException"
1993//   The submitted request is not valid, for example, the input is incomplete
1994//   or incorrect. See the accompanying error message for details.
1995//
1996//   * ErrCodeConflictException "ConflictException"
1997//   The request configuration has conflicts. For details, see the accompanying
1998//   error message.
1999//
2000//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2001//   The request has reached its throttling limit. Retry after the specified time
2002//   period.
2003//
2004func (c *APIGateway) DeleteDocumentationVersion(input *DeleteDocumentationVersionInput) (*DeleteDocumentationVersionOutput, error) {
2005	req, out := c.DeleteDocumentationVersionRequest(input)
2006	return out, req.Send()
2007}
2008
2009// DeleteDocumentationVersionWithContext is the same as DeleteDocumentationVersion with the addition of
2010// the ability to pass a context and additional request options.
2011//
2012// See DeleteDocumentationVersion for details on how to use this API operation.
2013//
2014// The context must be non-nil and will be used for request cancellation. If
2015// the context is nil a panic will occur. In the future the SDK may create
2016// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2017// for more information on using Contexts.
2018func (c *APIGateway) DeleteDocumentationVersionWithContext(ctx aws.Context, input *DeleteDocumentationVersionInput, opts ...request.Option) (*DeleteDocumentationVersionOutput, error) {
2019	req, out := c.DeleteDocumentationVersionRequest(input)
2020	req.SetContext(ctx)
2021	req.ApplyOptions(opts...)
2022	return out, req.Send()
2023}
2024
2025const opDeleteDomainName = "DeleteDomainName"
2026
2027// DeleteDomainNameRequest generates a "aws/request.Request" representing the
2028// client's request for the DeleteDomainName operation. The "output" return
2029// value will be populated with the request's response once the request completes
2030// successfully.
2031//
2032// Use "Send" method on the returned Request to send the API call to the service.
2033// the "output" return value is not valid until after Send returns without error.
2034//
2035// See DeleteDomainName for more information on using the DeleteDomainName
2036// API call, and error handling.
2037//
2038// This method is useful when you want to inject custom logic or configuration
2039// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2040//
2041//
2042//    // Example sending a request using the DeleteDomainNameRequest method.
2043//    req, resp := client.DeleteDomainNameRequest(params)
2044//
2045//    err := req.Send()
2046//    if err == nil { // resp is now filled
2047//        fmt.Println(resp)
2048//    }
2049func (c *APIGateway) DeleteDomainNameRequest(input *DeleteDomainNameInput) (req *request.Request, output *DeleteDomainNameOutput) {
2050	op := &request.Operation{
2051		Name:       opDeleteDomainName,
2052		HTTPMethod: "DELETE",
2053		HTTPPath:   "/domainnames/{domain_name}",
2054	}
2055
2056	if input == nil {
2057		input = &DeleteDomainNameInput{}
2058	}
2059
2060	output = &DeleteDomainNameOutput{}
2061	req = c.newRequest(op, input, output)
2062	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2063	return
2064}
2065
2066// DeleteDomainName API operation for Amazon API Gateway.
2067//
2068// Deletes the DomainName resource.
2069//
2070// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2071// with awserr.Error's Code and Message methods to get detailed information about
2072// the error.
2073//
2074// See the AWS API reference guide for Amazon API Gateway's
2075// API operation DeleteDomainName for usage and error information.
2076//
2077// Returned Error Codes:
2078//   * ErrCodeUnauthorizedException "UnauthorizedException"
2079//   The request is denied because the caller has insufficient permissions.
2080//
2081//   * ErrCodeNotFoundException "NotFoundException"
2082//   The requested resource is not found. Make sure that the request URI is correct.
2083//
2084//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2085//   The request has reached its throttling limit. Retry after the specified time
2086//   period.
2087//
2088//   * ErrCodeBadRequestException "BadRequestException"
2089//   The submitted request is not valid, for example, the input is incomplete
2090//   or incorrect. See the accompanying error message for details.
2091//
2092func (c *APIGateway) DeleteDomainName(input *DeleteDomainNameInput) (*DeleteDomainNameOutput, error) {
2093	req, out := c.DeleteDomainNameRequest(input)
2094	return out, req.Send()
2095}
2096
2097// DeleteDomainNameWithContext is the same as DeleteDomainName with the addition of
2098// the ability to pass a context and additional request options.
2099//
2100// See DeleteDomainName for details on how to use this API operation.
2101//
2102// The context must be non-nil and will be used for request cancellation. If
2103// the context is nil a panic will occur. In the future the SDK may create
2104// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2105// for more information on using Contexts.
2106func (c *APIGateway) DeleteDomainNameWithContext(ctx aws.Context, input *DeleteDomainNameInput, opts ...request.Option) (*DeleteDomainNameOutput, error) {
2107	req, out := c.DeleteDomainNameRequest(input)
2108	req.SetContext(ctx)
2109	req.ApplyOptions(opts...)
2110	return out, req.Send()
2111}
2112
2113const opDeleteGatewayResponse = "DeleteGatewayResponse"
2114
2115// DeleteGatewayResponseRequest generates a "aws/request.Request" representing the
2116// client's request for the DeleteGatewayResponse operation. The "output" return
2117// value will be populated with the request's response once the request completes
2118// successfully.
2119//
2120// Use "Send" method on the returned Request to send the API call to the service.
2121// the "output" return value is not valid until after Send returns without error.
2122//
2123// See DeleteGatewayResponse for more information on using the DeleteGatewayResponse
2124// API call, and error handling.
2125//
2126// This method is useful when you want to inject custom logic or configuration
2127// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2128//
2129//
2130//    // Example sending a request using the DeleteGatewayResponseRequest method.
2131//    req, resp := client.DeleteGatewayResponseRequest(params)
2132//
2133//    err := req.Send()
2134//    if err == nil { // resp is now filled
2135//        fmt.Println(resp)
2136//    }
2137func (c *APIGateway) DeleteGatewayResponseRequest(input *DeleteGatewayResponseInput) (req *request.Request, output *DeleteGatewayResponseOutput) {
2138	op := &request.Operation{
2139		Name:       opDeleteGatewayResponse,
2140		HTTPMethod: "DELETE",
2141		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
2142	}
2143
2144	if input == nil {
2145		input = &DeleteGatewayResponseInput{}
2146	}
2147
2148	output = &DeleteGatewayResponseOutput{}
2149	req = c.newRequest(op, input, output)
2150	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2151	return
2152}
2153
2154// DeleteGatewayResponse API operation for Amazon API Gateway.
2155//
2156// Clears any customization of a GatewayResponse of a specified response type
2157// on the given RestApi and resets it with the default settings.
2158//
2159// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2160// with awserr.Error's Code and Message methods to get detailed information about
2161// the error.
2162//
2163// See the AWS API reference guide for Amazon API Gateway's
2164// API operation DeleteGatewayResponse for usage and error information.
2165//
2166// Returned Error Codes:
2167//   * ErrCodeUnauthorizedException "UnauthorizedException"
2168//   The request is denied because the caller has insufficient permissions.
2169//
2170//   * ErrCodeNotFoundException "NotFoundException"
2171//   The requested resource is not found. Make sure that the request URI is correct.
2172//
2173//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2174//   The request has reached its throttling limit. Retry after the specified time
2175//   period.
2176//
2177//   * ErrCodeBadRequestException "BadRequestException"
2178//   The submitted request is not valid, for example, the input is incomplete
2179//   or incorrect. See the accompanying error message for details.
2180//
2181//   * ErrCodeConflictException "ConflictException"
2182//   The request configuration has conflicts. For details, see the accompanying
2183//   error message.
2184//
2185func (c *APIGateway) DeleteGatewayResponse(input *DeleteGatewayResponseInput) (*DeleteGatewayResponseOutput, error) {
2186	req, out := c.DeleteGatewayResponseRequest(input)
2187	return out, req.Send()
2188}
2189
2190// DeleteGatewayResponseWithContext is the same as DeleteGatewayResponse with the addition of
2191// the ability to pass a context and additional request options.
2192//
2193// See DeleteGatewayResponse for details on how to use this API operation.
2194//
2195// The context must be non-nil and will be used for request cancellation. If
2196// the context is nil a panic will occur. In the future the SDK may create
2197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2198// for more information on using Contexts.
2199func (c *APIGateway) DeleteGatewayResponseWithContext(ctx aws.Context, input *DeleteGatewayResponseInput, opts ...request.Option) (*DeleteGatewayResponseOutput, error) {
2200	req, out := c.DeleteGatewayResponseRequest(input)
2201	req.SetContext(ctx)
2202	req.ApplyOptions(opts...)
2203	return out, req.Send()
2204}
2205
2206const opDeleteIntegration = "DeleteIntegration"
2207
2208// DeleteIntegrationRequest generates a "aws/request.Request" representing the
2209// client's request for the DeleteIntegration operation. The "output" return
2210// value will be populated with the request's response once the request completes
2211// successfully.
2212//
2213// Use "Send" method on the returned Request to send the API call to the service.
2214// the "output" return value is not valid until after Send returns without error.
2215//
2216// See DeleteIntegration for more information on using the DeleteIntegration
2217// API call, and error handling.
2218//
2219// This method is useful when you want to inject custom logic or configuration
2220// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2221//
2222//
2223//    // Example sending a request using the DeleteIntegrationRequest method.
2224//    req, resp := client.DeleteIntegrationRequest(params)
2225//
2226//    err := req.Send()
2227//    if err == nil { // resp is now filled
2228//        fmt.Println(resp)
2229//    }
2230func (c *APIGateway) DeleteIntegrationRequest(input *DeleteIntegrationInput) (req *request.Request, output *DeleteIntegrationOutput) {
2231	op := &request.Operation{
2232		Name:       opDeleteIntegration,
2233		HTTPMethod: "DELETE",
2234		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
2235	}
2236
2237	if input == nil {
2238		input = &DeleteIntegrationInput{}
2239	}
2240
2241	output = &DeleteIntegrationOutput{}
2242	req = c.newRequest(op, input, output)
2243	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2244	return
2245}
2246
2247// DeleteIntegration API operation for Amazon API Gateway.
2248//
2249// Represents a delete integration.
2250//
2251// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2252// with awserr.Error's Code and Message methods to get detailed information about
2253// the error.
2254//
2255// See the AWS API reference guide for Amazon API Gateway's
2256// API operation DeleteIntegration for usage and error information.
2257//
2258// Returned Error Codes:
2259//   * ErrCodeUnauthorizedException "UnauthorizedException"
2260//   The request is denied because the caller has insufficient permissions.
2261//
2262//   * ErrCodeNotFoundException "NotFoundException"
2263//   The requested resource is not found. Make sure that the request URI is correct.
2264//
2265//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2266//   The request has reached its throttling limit. Retry after the specified time
2267//   period.
2268//
2269//   * ErrCodeConflictException "ConflictException"
2270//   The request configuration has conflicts. For details, see the accompanying
2271//   error message.
2272//
2273func (c *APIGateway) DeleteIntegration(input *DeleteIntegrationInput) (*DeleteIntegrationOutput, error) {
2274	req, out := c.DeleteIntegrationRequest(input)
2275	return out, req.Send()
2276}
2277
2278// DeleteIntegrationWithContext is the same as DeleteIntegration with the addition of
2279// the ability to pass a context and additional request options.
2280//
2281// See DeleteIntegration for details on how to use this API operation.
2282//
2283// The context must be non-nil and will be used for request cancellation. If
2284// the context is nil a panic will occur. In the future the SDK may create
2285// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2286// for more information on using Contexts.
2287func (c *APIGateway) DeleteIntegrationWithContext(ctx aws.Context, input *DeleteIntegrationInput, opts ...request.Option) (*DeleteIntegrationOutput, error) {
2288	req, out := c.DeleteIntegrationRequest(input)
2289	req.SetContext(ctx)
2290	req.ApplyOptions(opts...)
2291	return out, req.Send()
2292}
2293
2294const opDeleteIntegrationResponse = "DeleteIntegrationResponse"
2295
2296// DeleteIntegrationResponseRequest generates a "aws/request.Request" representing the
2297// client's request for the DeleteIntegrationResponse operation. The "output" return
2298// value will be populated with the request's response once the request completes
2299// successfully.
2300//
2301// Use "Send" method on the returned Request to send the API call to the service.
2302// the "output" return value is not valid until after Send returns without error.
2303//
2304// See DeleteIntegrationResponse for more information on using the DeleteIntegrationResponse
2305// API call, and error handling.
2306//
2307// This method is useful when you want to inject custom logic or configuration
2308// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2309//
2310//
2311//    // Example sending a request using the DeleteIntegrationResponseRequest method.
2312//    req, resp := client.DeleteIntegrationResponseRequest(params)
2313//
2314//    err := req.Send()
2315//    if err == nil { // resp is now filled
2316//        fmt.Println(resp)
2317//    }
2318func (c *APIGateway) DeleteIntegrationResponseRequest(input *DeleteIntegrationResponseInput) (req *request.Request, output *DeleteIntegrationResponseOutput) {
2319	op := &request.Operation{
2320		Name:       opDeleteIntegrationResponse,
2321		HTTPMethod: "DELETE",
2322		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
2323	}
2324
2325	if input == nil {
2326		input = &DeleteIntegrationResponseInput{}
2327	}
2328
2329	output = &DeleteIntegrationResponseOutput{}
2330	req = c.newRequest(op, input, output)
2331	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2332	return
2333}
2334
2335// DeleteIntegrationResponse API operation for Amazon API Gateway.
2336//
2337// Represents a delete integration response.
2338//
2339// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2340// with awserr.Error's Code and Message methods to get detailed information about
2341// the error.
2342//
2343// See the AWS API reference guide for Amazon API Gateway's
2344// API operation DeleteIntegrationResponse for usage and error information.
2345//
2346// Returned Error Codes:
2347//   * ErrCodeUnauthorizedException "UnauthorizedException"
2348//   The request is denied because the caller has insufficient permissions.
2349//
2350//   * ErrCodeNotFoundException "NotFoundException"
2351//   The requested resource is not found. Make sure that the request URI is correct.
2352//
2353//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2354//   The request has reached its throttling limit. Retry after the specified time
2355//   period.
2356//
2357//   * ErrCodeBadRequestException "BadRequestException"
2358//   The submitted request is not valid, for example, the input is incomplete
2359//   or incorrect. See the accompanying error message for details.
2360//
2361//   * ErrCodeConflictException "ConflictException"
2362//   The request configuration has conflicts. For details, see the accompanying
2363//   error message.
2364//
2365func (c *APIGateway) DeleteIntegrationResponse(input *DeleteIntegrationResponseInput) (*DeleteIntegrationResponseOutput, error) {
2366	req, out := c.DeleteIntegrationResponseRequest(input)
2367	return out, req.Send()
2368}
2369
2370// DeleteIntegrationResponseWithContext is the same as DeleteIntegrationResponse with the addition of
2371// the ability to pass a context and additional request options.
2372//
2373// See DeleteIntegrationResponse for details on how to use this API operation.
2374//
2375// The context must be non-nil and will be used for request cancellation. If
2376// the context is nil a panic will occur. In the future the SDK may create
2377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2378// for more information on using Contexts.
2379func (c *APIGateway) DeleteIntegrationResponseWithContext(ctx aws.Context, input *DeleteIntegrationResponseInput, opts ...request.Option) (*DeleteIntegrationResponseOutput, error) {
2380	req, out := c.DeleteIntegrationResponseRequest(input)
2381	req.SetContext(ctx)
2382	req.ApplyOptions(opts...)
2383	return out, req.Send()
2384}
2385
2386const opDeleteMethod = "DeleteMethod"
2387
2388// DeleteMethodRequest generates a "aws/request.Request" representing the
2389// client's request for the DeleteMethod operation. The "output" return
2390// value will be populated with the request's response once the request completes
2391// successfully.
2392//
2393// Use "Send" method on the returned Request to send the API call to the service.
2394// the "output" return value is not valid until after Send returns without error.
2395//
2396// See DeleteMethod for more information on using the DeleteMethod
2397// API call, and error handling.
2398//
2399// This method is useful when you want to inject custom logic or configuration
2400// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2401//
2402//
2403//    // Example sending a request using the DeleteMethodRequest method.
2404//    req, resp := client.DeleteMethodRequest(params)
2405//
2406//    err := req.Send()
2407//    if err == nil { // resp is now filled
2408//        fmt.Println(resp)
2409//    }
2410func (c *APIGateway) DeleteMethodRequest(input *DeleteMethodInput) (req *request.Request, output *DeleteMethodOutput) {
2411	op := &request.Operation{
2412		Name:       opDeleteMethod,
2413		HTTPMethod: "DELETE",
2414		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
2415	}
2416
2417	if input == nil {
2418		input = &DeleteMethodInput{}
2419	}
2420
2421	output = &DeleteMethodOutput{}
2422	req = c.newRequest(op, input, output)
2423	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2424	return
2425}
2426
2427// DeleteMethod API operation for Amazon API Gateway.
2428//
2429// Deletes an existing Method resource.
2430//
2431// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2432// with awserr.Error's Code and Message methods to get detailed information about
2433// the error.
2434//
2435// See the AWS API reference guide for Amazon API Gateway's
2436// API operation DeleteMethod for usage and error information.
2437//
2438// Returned Error Codes:
2439//   * ErrCodeUnauthorizedException "UnauthorizedException"
2440//   The request is denied because the caller has insufficient permissions.
2441//
2442//   * ErrCodeNotFoundException "NotFoundException"
2443//   The requested resource is not found. Make sure that the request URI is correct.
2444//
2445//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2446//   The request has reached its throttling limit. Retry after the specified time
2447//   period.
2448//
2449//   * ErrCodeConflictException "ConflictException"
2450//   The request configuration has conflicts. For details, see the accompanying
2451//   error message.
2452//
2453func (c *APIGateway) DeleteMethod(input *DeleteMethodInput) (*DeleteMethodOutput, error) {
2454	req, out := c.DeleteMethodRequest(input)
2455	return out, req.Send()
2456}
2457
2458// DeleteMethodWithContext is the same as DeleteMethod with the addition of
2459// the ability to pass a context and additional request options.
2460//
2461// See DeleteMethod for details on how to use this API operation.
2462//
2463// The context must be non-nil and will be used for request cancellation. If
2464// the context is nil a panic will occur. In the future the SDK may create
2465// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2466// for more information on using Contexts.
2467func (c *APIGateway) DeleteMethodWithContext(ctx aws.Context, input *DeleteMethodInput, opts ...request.Option) (*DeleteMethodOutput, error) {
2468	req, out := c.DeleteMethodRequest(input)
2469	req.SetContext(ctx)
2470	req.ApplyOptions(opts...)
2471	return out, req.Send()
2472}
2473
2474const opDeleteMethodResponse = "DeleteMethodResponse"
2475
2476// DeleteMethodResponseRequest generates a "aws/request.Request" representing the
2477// client's request for the DeleteMethodResponse operation. The "output" return
2478// value will be populated with the request's response once the request completes
2479// successfully.
2480//
2481// Use "Send" method on the returned Request to send the API call to the service.
2482// the "output" return value is not valid until after Send returns without error.
2483//
2484// See DeleteMethodResponse for more information on using the DeleteMethodResponse
2485// API call, and error handling.
2486//
2487// This method is useful when you want to inject custom logic or configuration
2488// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2489//
2490//
2491//    // Example sending a request using the DeleteMethodResponseRequest method.
2492//    req, resp := client.DeleteMethodResponseRequest(params)
2493//
2494//    err := req.Send()
2495//    if err == nil { // resp is now filled
2496//        fmt.Println(resp)
2497//    }
2498func (c *APIGateway) DeleteMethodResponseRequest(input *DeleteMethodResponseInput) (req *request.Request, output *DeleteMethodResponseOutput) {
2499	op := &request.Operation{
2500		Name:       opDeleteMethodResponse,
2501		HTTPMethod: "DELETE",
2502		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
2503	}
2504
2505	if input == nil {
2506		input = &DeleteMethodResponseInput{}
2507	}
2508
2509	output = &DeleteMethodResponseOutput{}
2510	req = c.newRequest(op, input, output)
2511	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2512	return
2513}
2514
2515// DeleteMethodResponse API operation for Amazon API Gateway.
2516//
2517// Deletes an existing MethodResponse resource.
2518//
2519// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2520// with awserr.Error's Code and Message methods to get detailed information about
2521// the error.
2522//
2523// See the AWS API reference guide for Amazon API Gateway's
2524// API operation DeleteMethodResponse for usage and error information.
2525//
2526// Returned Error Codes:
2527//   * ErrCodeUnauthorizedException "UnauthorizedException"
2528//   The request is denied because the caller has insufficient permissions.
2529//
2530//   * ErrCodeNotFoundException "NotFoundException"
2531//   The requested resource is not found. Make sure that the request URI is correct.
2532//
2533//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2534//   The request has reached its throttling limit. Retry after the specified time
2535//   period.
2536//
2537//   * ErrCodeBadRequestException "BadRequestException"
2538//   The submitted request is not valid, for example, the input is incomplete
2539//   or incorrect. See the accompanying error message for details.
2540//
2541//   * ErrCodeConflictException "ConflictException"
2542//   The request configuration has conflicts. For details, see the accompanying
2543//   error message.
2544//
2545func (c *APIGateway) DeleteMethodResponse(input *DeleteMethodResponseInput) (*DeleteMethodResponseOutput, error) {
2546	req, out := c.DeleteMethodResponseRequest(input)
2547	return out, req.Send()
2548}
2549
2550// DeleteMethodResponseWithContext is the same as DeleteMethodResponse with the addition of
2551// the ability to pass a context and additional request options.
2552//
2553// See DeleteMethodResponse for details on how to use this API operation.
2554//
2555// The context must be non-nil and will be used for request cancellation. If
2556// the context is nil a panic will occur. In the future the SDK may create
2557// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2558// for more information on using Contexts.
2559func (c *APIGateway) DeleteMethodResponseWithContext(ctx aws.Context, input *DeleteMethodResponseInput, opts ...request.Option) (*DeleteMethodResponseOutput, error) {
2560	req, out := c.DeleteMethodResponseRequest(input)
2561	req.SetContext(ctx)
2562	req.ApplyOptions(opts...)
2563	return out, req.Send()
2564}
2565
2566const opDeleteModel = "DeleteModel"
2567
2568// DeleteModelRequest generates a "aws/request.Request" representing the
2569// client's request for the DeleteModel operation. The "output" return
2570// value will be populated with the request's response once the request completes
2571// successfully.
2572//
2573// Use "Send" method on the returned Request to send the API call to the service.
2574// the "output" return value is not valid until after Send returns without error.
2575//
2576// See DeleteModel for more information on using the DeleteModel
2577// API call, and error handling.
2578//
2579// This method is useful when you want to inject custom logic or configuration
2580// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2581//
2582//
2583//    // Example sending a request using the DeleteModelRequest method.
2584//    req, resp := client.DeleteModelRequest(params)
2585//
2586//    err := req.Send()
2587//    if err == nil { // resp is now filled
2588//        fmt.Println(resp)
2589//    }
2590func (c *APIGateway) DeleteModelRequest(input *DeleteModelInput) (req *request.Request, output *DeleteModelOutput) {
2591	op := &request.Operation{
2592		Name:       opDeleteModel,
2593		HTTPMethod: "DELETE",
2594		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}",
2595	}
2596
2597	if input == nil {
2598		input = &DeleteModelInput{}
2599	}
2600
2601	output = &DeleteModelOutput{}
2602	req = c.newRequest(op, input, output)
2603	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2604	return
2605}
2606
2607// DeleteModel API operation for Amazon API Gateway.
2608//
2609// Deletes a model.
2610//
2611// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2612// with awserr.Error's Code and Message methods to get detailed information about
2613// the error.
2614//
2615// See the AWS API reference guide for Amazon API Gateway's
2616// API operation DeleteModel for usage and error information.
2617//
2618// Returned Error Codes:
2619//   * ErrCodeUnauthorizedException "UnauthorizedException"
2620//   The request is denied because the caller has insufficient permissions.
2621//
2622//   * ErrCodeNotFoundException "NotFoundException"
2623//   The requested resource is not found. Make sure that the request URI is correct.
2624//
2625//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2626//   The request has reached its throttling limit. Retry after the specified time
2627//   period.
2628//
2629//   * ErrCodeBadRequestException "BadRequestException"
2630//   The submitted request is not valid, for example, the input is incomplete
2631//   or incorrect. See the accompanying error message for details.
2632//
2633//   * ErrCodeConflictException "ConflictException"
2634//   The request configuration has conflicts. For details, see the accompanying
2635//   error message.
2636//
2637func (c *APIGateway) DeleteModel(input *DeleteModelInput) (*DeleteModelOutput, error) {
2638	req, out := c.DeleteModelRequest(input)
2639	return out, req.Send()
2640}
2641
2642// DeleteModelWithContext is the same as DeleteModel with the addition of
2643// the ability to pass a context and additional request options.
2644//
2645// See DeleteModel for details on how to use this API operation.
2646//
2647// The context must be non-nil and will be used for request cancellation. If
2648// the context is nil a panic will occur. In the future the SDK may create
2649// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2650// for more information on using Contexts.
2651func (c *APIGateway) DeleteModelWithContext(ctx aws.Context, input *DeleteModelInput, opts ...request.Option) (*DeleteModelOutput, error) {
2652	req, out := c.DeleteModelRequest(input)
2653	req.SetContext(ctx)
2654	req.ApplyOptions(opts...)
2655	return out, req.Send()
2656}
2657
2658const opDeleteRequestValidator = "DeleteRequestValidator"
2659
2660// DeleteRequestValidatorRequest generates a "aws/request.Request" representing the
2661// client's request for the DeleteRequestValidator operation. The "output" return
2662// value will be populated with the request's response once the request completes
2663// successfully.
2664//
2665// Use "Send" method on the returned Request to send the API call to the service.
2666// the "output" return value is not valid until after Send returns without error.
2667//
2668// See DeleteRequestValidator for more information on using the DeleteRequestValidator
2669// API call, and error handling.
2670//
2671// This method is useful when you want to inject custom logic or configuration
2672// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2673//
2674//
2675//    // Example sending a request using the DeleteRequestValidatorRequest method.
2676//    req, resp := client.DeleteRequestValidatorRequest(params)
2677//
2678//    err := req.Send()
2679//    if err == nil { // resp is now filled
2680//        fmt.Println(resp)
2681//    }
2682func (c *APIGateway) DeleteRequestValidatorRequest(input *DeleteRequestValidatorInput) (req *request.Request, output *DeleteRequestValidatorOutput) {
2683	op := &request.Operation{
2684		Name:       opDeleteRequestValidator,
2685		HTTPMethod: "DELETE",
2686		HTTPPath:   "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}",
2687	}
2688
2689	if input == nil {
2690		input = &DeleteRequestValidatorInput{}
2691	}
2692
2693	output = &DeleteRequestValidatorOutput{}
2694	req = c.newRequest(op, input, output)
2695	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2696	return
2697}
2698
2699// DeleteRequestValidator API operation for Amazon API Gateway.
2700//
2701// Deletes a RequestValidator of a given RestApi.
2702//
2703// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2704// with awserr.Error's Code and Message methods to get detailed information about
2705// the error.
2706//
2707// See the AWS API reference guide for Amazon API Gateway's
2708// API operation DeleteRequestValidator for usage and error information.
2709//
2710// Returned Error Codes:
2711//   * ErrCodeUnauthorizedException "UnauthorizedException"
2712//   The request is denied because the caller has insufficient permissions.
2713//
2714//   * ErrCodeNotFoundException "NotFoundException"
2715//   The requested resource is not found. Make sure that the request URI is correct.
2716//
2717//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2718//   The request has reached its throttling limit. Retry after the specified time
2719//   period.
2720//
2721//   * ErrCodeBadRequestException "BadRequestException"
2722//   The submitted request is not valid, for example, the input is incomplete
2723//   or incorrect. See the accompanying error message for details.
2724//
2725//   * ErrCodeConflictException "ConflictException"
2726//   The request configuration has conflicts. For details, see the accompanying
2727//   error message.
2728//
2729func (c *APIGateway) DeleteRequestValidator(input *DeleteRequestValidatorInput) (*DeleteRequestValidatorOutput, error) {
2730	req, out := c.DeleteRequestValidatorRequest(input)
2731	return out, req.Send()
2732}
2733
2734// DeleteRequestValidatorWithContext is the same as DeleteRequestValidator with the addition of
2735// the ability to pass a context and additional request options.
2736//
2737// See DeleteRequestValidator for details on how to use this API operation.
2738//
2739// The context must be non-nil and will be used for request cancellation. If
2740// the context is nil a panic will occur. In the future the SDK may create
2741// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2742// for more information on using Contexts.
2743func (c *APIGateway) DeleteRequestValidatorWithContext(ctx aws.Context, input *DeleteRequestValidatorInput, opts ...request.Option) (*DeleteRequestValidatorOutput, error) {
2744	req, out := c.DeleteRequestValidatorRequest(input)
2745	req.SetContext(ctx)
2746	req.ApplyOptions(opts...)
2747	return out, req.Send()
2748}
2749
2750const opDeleteResource = "DeleteResource"
2751
2752// DeleteResourceRequest generates a "aws/request.Request" representing the
2753// client's request for the DeleteResource operation. The "output" return
2754// value will be populated with the request's response once the request completes
2755// successfully.
2756//
2757// Use "Send" method on the returned Request to send the API call to the service.
2758// the "output" return value is not valid until after Send returns without error.
2759//
2760// See DeleteResource for more information on using the DeleteResource
2761// API call, and error handling.
2762//
2763// This method is useful when you want to inject custom logic or configuration
2764// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2765//
2766//
2767//    // Example sending a request using the DeleteResourceRequest method.
2768//    req, resp := client.DeleteResourceRequest(params)
2769//
2770//    err := req.Send()
2771//    if err == nil { // resp is now filled
2772//        fmt.Println(resp)
2773//    }
2774func (c *APIGateway) DeleteResourceRequest(input *DeleteResourceInput) (req *request.Request, output *DeleteResourceOutput) {
2775	op := &request.Operation{
2776		Name:       opDeleteResource,
2777		HTTPMethod: "DELETE",
2778		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}",
2779	}
2780
2781	if input == nil {
2782		input = &DeleteResourceInput{}
2783	}
2784
2785	output = &DeleteResourceOutput{}
2786	req = c.newRequest(op, input, output)
2787	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2788	return
2789}
2790
2791// DeleteResource API operation for Amazon API Gateway.
2792//
2793// Deletes a Resource resource.
2794//
2795// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2796// with awserr.Error's Code and Message methods to get detailed information about
2797// the error.
2798//
2799// See the AWS API reference guide for Amazon API Gateway's
2800// API operation DeleteResource for usage and error information.
2801//
2802// Returned Error Codes:
2803//   * ErrCodeUnauthorizedException "UnauthorizedException"
2804//   The request is denied because the caller has insufficient permissions.
2805//
2806//   * ErrCodeNotFoundException "NotFoundException"
2807//   The requested resource is not found. Make sure that the request URI is correct.
2808//
2809//   * ErrCodeBadRequestException "BadRequestException"
2810//   The submitted request is not valid, for example, the input is incomplete
2811//   or incorrect. See the accompanying error message for details.
2812//
2813//   * ErrCodeConflictException "ConflictException"
2814//   The request configuration has conflicts. For details, see the accompanying
2815//   error message.
2816//
2817//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2818//   The request has reached its throttling limit. Retry after the specified time
2819//   period.
2820//
2821func (c *APIGateway) DeleteResource(input *DeleteResourceInput) (*DeleteResourceOutput, error) {
2822	req, out := c.DeleteResourceRequest(input)
2823	return out, req.Send()
2824}
2825
2826// DeleteResourceWithContext is the same as DeleteResource with the addition of
2827// the ability to pass a context and additional request options.
2828//
2829// See DeleteResource for details on how to use this API operation.
2830//
2831// The context must be non-nil and will be used for request cancellation. If
2832// the context is nil a panic will occur. In the future the SDK may create
2833// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2834// for more information on using Contexts.
2835func (c *APIGateway) DeleteResourceWithContext(ctx aws.Context, input *DeleteResourceInput, opts ...request.Option) (*DeleteResourceOutput, error) {
2836	req, out := c.DeleteResourceRequest(input)
2837	req.SetContext(ctx)
2838	req.ApplyOptions(opts...)
2839	return out, req.Send()
2840}
2841
2842const opDeleteRestApi = "DeleteRestApi"
2843
2844// DeleteRestApiRequest generates a "aws/request.Request" representing the
2845// client's request for the DeleteRestApi operation. The "output" return
2846// value will be populated with the request's response once the request completes
2847// successfully.
2848//
2849// Use "Send" method on the returned Request to send the API call to the service.
2850// the "output" return value is not valid until after Send returns without error.
2851//
2852// See DeleteRestApi for more information on using the DeleteRestApi
2853// API call, and error handling.
2854//
2855// This method is useful when you want to inject custom logic or configuration
2856// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2857//
2858//
2859//    // Example sending a request using the DeleteRestApiRequest method.
2860//    req, resp := client.DeleteRestApiRequest(params)
2861//
2862//    err := req.Send()
2863//    if err == nil { // resp is now filled
2864//        fmt.Println(resp)
2865//    }
2866func (c *APIGateway) DeleteRestApiRequest(input *DeleteRestApiInput) (req *request.Request, output *DeleteRestApiOutput) {
2867	op := &request.Operation{
2868		Name:       opDeleteRestApi,
2869		HTTPMethod: "DELETE",
2870		HTTPPath:   "/restapis/{restapi_id}",
2871	}
2872
2873	if input == nil {
2874		input = &DeleteRestApiInput{}
2875	}
2876
2877	output = &DeleteRestApiOutput{}
2878	req = c.newRequest(op, input, output)
2879	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2880	return
2881}
2882
2883// DeleteRestApi API operation for Amazon API Gateway.
2884//
2885// Deletes the specified API.
2886//
2887// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2888// with awserr.Error's Code and Message methods to get detailed information about
2889// the error.
2890//
2891// See the AWS API reference guide for Amazon API Gateway's
2892// API operation DeleteRestApi for usage and error information.
2893//
2894// Returned Error Codes:
2895//   * ErrCodeUnauthorizedException "UnauthorizedException"
2896//   The request is denied because the caller has insufficient permissions.
2897//
2898//   * ErrCodeNotFoundException "NotFoundException"
2899//   The requested resource is not found. Make sure that the request URI is correct.
2900//
2901//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2902//   The request has reached its throttling limit. Retry after the specified time
2903//   period.
2904//
2905//   * ErrCodeBadRequestException "BadRequestException"
2906//   The submitted request is not valid, for example, the input is incomplete
2907//   or incorrect. See the accompanying error message for details.
2908//
2909func (c *APIGateway) DeleteRestApi(input *DeleteRestApiInput) (*DeleteRestApiOutput, error) {
2910	req, out := c.DeleteRestApiRequest(input)
2911	return out, req.Send()
2912}
2913
2914// DeleteRestApiWithContext is the same as DeleteRestApi with the addition of
2915// the ability to pass a context and additional request options.
2916//
2917// See DeleteRestApi for details on how to use this API operation.
2918//
2919// The context must be non-nil and will be used for request cancellation. If
2920// the context is nil a panic will occur. In the future the SDK may create
2921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2922// for more information on using Contexts.
2923func (c *APIGateway) DeleteRestApiWithContext(ctx aws.Context, input *DeleteRestApiInput, opts ...request.Option) (*DeleteRestApiOutput, error) {
2924	req, out := c.DeleteRestApiRequest(input)
2925	req.SetContext(ctx)
2926	req.ApplyOptions(opts...)
2927	return out, req.Send()
2928}
2929
2930const opDeleteStage = "DeleteStage"
2931
2932// DeleteStageRequest generates a "aws/request.Request" representing the
2933// client's request for the DeleteStage operation. The "output" return
2934// value will be populated with the request's response once the request completes
2935// successfully.
2936//
2937// Use "Send" method on the returned Request to send the API call to the service.
2938// the "output" return value is not valid until after Send returns without error.
2939//
2940// See DeleteStage for more information on using the DeleteStage
2941// API call, and error handling.
2942//
2943// This method is useful when you want to inject custom logic or configuration
2944// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2945//
2946//
2947//    // Example sending a request using the DeleteStageRequest method.
2948//    req, resp := client.DeleteStageRequest(params)
2949//
2950//    err := req.Send()
2951//    if err == nil { // resp is now filled
2952//        fmt.Println(resp)
2953//    }
2954func (c *APIGateway) DeleteStageRequest(input *DeleteStageInput) (req *request.Request, output *DeleteStageOutput) {
2955	op := &request.Operation{
2956		Name:       opDeleteStage,
2957		HTTPMethod: "DELETE",
2958		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}",
2959	}
2960
2961	if input == nil {
2962		input = &DeleteStageInput{}
2963	}
2964
2965	output = &DeleteStageOutput{}
2966	req = c.newRequest(op, input, output)
2967	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2968	return
2969}
2970
2971// DeleteStage API operation for Amazon API Gateway.
2972//
2973// Deletes a Stage resource.
2974//
2975// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2976// with awserr.Error's Code and Message methods to get detailed information about
2977// the error.
2978//
2979// See the AWS API reference guide for Amazon API Gateway's
2980// API operation DeleteStage for usage and error information.
2981//
2982// Returned Error Codes:
2983//   * ErrCodeUnauthorizedException "UnauthorizedException"
2984//   The request is denied because the caller has insufficient permissions.
2985//
2986//   * ErrCodeNotFoundException "NotFoundException"
2987//   The requested resource is not found. Make sure that the request URI is correct.
2988//
2989//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2990//   The request has reached its throttling limit. Retry after the specified time
2991//   period.
2992//
2993//   * ErrCodeBadRequestException "BadRequestException"
2994//   The submitted request is not valid, for example, the input is incomplete
2995//   or incorrect. See the accompanying error message for details.
2996//
2997func (c *APIGateway) DeleteStage(input *DeleteStageInput) (*DeleteStageOutput, error) {
2998	req, out := c.DeleteStageRequest(input)
2999	return out, req.Send()
3000}
3001
3002// DeleteStageWithContext is the same as DeleteStage with the addition of
3003// the ability to pass a context and additional request options.
3004//
3005// See DeleteStage for details on how to use this API operation.
3006//
3007// The context must be non-nil and will be used for request cancellation. If
3008// the context is nil a panic will occur. In the future the SDK may create
3009// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3010// for more information on using Contexts.
3011func (c *APIGateway) DeleteStageWithContext(ctx aws.Context, input *DeleteStageInput, opts ...request.Option) (*DeleteStageOutput, error) {
3012	req, out := c.DeleteStageRequest(input)
3013	req.SetContext(ctx)
3014	req.ApplyOptions(opts...)
3015	return out, req.Send()
3016}
3017
3018const opDeleteUsagePlan = "DeleteUsagePlan"
3019
3020// DeleteUsagePlanRequest generates a "aws/request.Request" representing the
3021// client's request for the DeleteUsagePlan operation. The "output" return
3022// value will be populated with the request's response once the request completes
3023// successfully.
3024//
3025// Use "Send" method on the returned Request to send the API call to the service.
3026// the "output" return value is not valid until after Send returns without error.
3027//
3028// See DeleteUsagePlan for more information on using the DeleteUsagePlan
3029// API call, and error handling.
3030//
3031// This method is useful when you want to inject custom logic or configuration
3032// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3033//
3034//
3035//    // Example sending a request using the DeleteUsagePlanRequest method.
3036//    req, resp := client.DeleteUsagePlanRequest(params)
3037//
3038//    err := req.Send()
3039//    if err == nil { // resp is now filled
3040//        fmt.Println(resp)
3041//    }
3042func (c *APIGateway) DeleteUsagePlanRequest(input *DeleteUsagePlanInput) (req *request.Request, output *DeleteUsagePlanOutput) {
3043	op := &request.Operation{
3044		Name:       opDeleteUsagePlan,
3045		HTTPMethod: "DELETE",
3046		HTTPPath:   "/usageplans/{usageplanId}",
3047	}
3048
3049	if input == nil {
3050		input = &DeleteUsagePlanInput{}
3051	}
3052
3053	output = &DeleteUsagePlanOutput{}
3054	req = c.newRequest(op, input, output)
3055	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3056	return
3057}
3058
3059// DeleteUsagePlan API operation for Amazon API Gateway.
3060//
3061// Deletes a usage plan of a given plan Id.
3062//
3063// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3064// with awserr.Error's Code and Message methods to get detailed information about
3065// the error.
3066//
3067// See the AWS API reference guide for Amazon API Gateway's
3068// API operation DeleteUsagePlan for usage and error information.
3069//
3070// Returned Error Codes:
3071//   * ErrCodeUnauthorizedException "UnauthorizedException"
3072//   The request is denied because the caller has insufficient permissions.
3073//
3074//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3075//   The request has reached its throttling limit. Retry after the specified time
3076//   period.
3077//
3078//   * ErrCodeBadRequestException "BadRequestException"
3079//   The submitted request is not valid, for example, the input is incomplete
3080//   or incorrect. See the accompanying error message for details.
3081//
3082//   * ErrCodeNotFoundException "NotFoundException"
3083//   The requested resource is not found. Make sure that the request URI is correct.
3084//
3085func (c *APIGateway) DeleteUsagePlan(input *DeleteUsagePlanInput) (*DeleteUsagePlanOutput, error) {
3086	req, out := c.DeleteUsagePlanRequest(input)
3087	return out, req.Send()
3088}
3089
3090// DeleteUsagePlanWithContext is the same as DeleteUsagePlan with the addition of
3091// the ability to pass a context and additional request options.
3092//
3093// See DeleteUsagePlan for details on how to use this API operation.
3094//
3095// The context must be non-nil and will be used for request cancellation. If
3096// the context is nil a panic will occur. In the future the SDK may create
3097// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3098// for more information on using Contexts.
3099func (c *APIGateway) DeleteUsagePlanWithContext(ctx aws.Context, input *DeleteUsagePlanInput, opts ...request.Option) (*DeleteUsagePlanOutput, error) {
3100	req, out := c.DeleteUsagePlanRequest(input)
3101	req.SetContext(ctx)
3102	req.ApplyOptions(opts...)
3103	return out, req.Send()
3104}
3105
3106const opDeleteUsagePlanKey = "DeleteUsagePlanKey"
3107
3108// DeleteUsagePlanKeyRequest generates a "aws/request.Request" representing the
3109// client's request for the DeleteUsagePlanKey operation. The "output" return
3110// value will be populated with the request's response once the request completes
3111// successfully.
3112//
3113// Use "Send" method on the returned Request to send the API call to the service.
3114// the "output" return value is not valid until after Send returns without error.
3115//
3116// See DeleteUsagePlanKey for more information on using the DeleteUsagePlanKey
3117// API call, and error handling.
3118//
3119// This method is useful when you want to inject custom logic or configuration
3120// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3121//
3122//
3123//    // Example sending a request using the DeleteUsagePlanKeyRequest method.
3124//    req, resp := client.DeleteUsagePlanKeyRequest(params)
3125//
3126//    err := req.Send()
3127//    if err == nil { // resp is now filled
3128//        fmt.Println(resp)
3129//    }
3130func (c *APIGateway) DeleteUsagePlanKeyRequest(input *DeleteUsagePlanKeyInput) (req *request.Request, output *DeleteUsagePlanKeyOutput) {
3131	op := &request.Operation{
3132		Name:       opDeleteUsagePlanKey,
3133		HTTPMethod: "DELETE",
3134		HTTPPath:   "/usageplans/{usageplanId}/keys/{keyId}",
3135	}
3136
3137	if input == nil {
3138		input = &DeleteUsagePlanKeyInput{}
3139	}
3140
3141	output = &DeleteUsagePlanKeyOutput{}
3142	req = c.newRequest(op, input, output)
3143	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3144	return
3145}
3146
3147// DeleteUsagePlanKey API operation for Amazon API Gateway.
3148//
3149// Deletes a usage plan key and remove the underlying API key from the associated
3150// usage plan.
3151//
3152// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3153// with awserr.Error's Code and Message methods to get detailed information about
3154// the error.
3155//
3156// See the AWS API reference guide for Amazon API Gateway's
3157// API operation DeleteUsagePlanKey for usage and error information.
3158//
3159// Returned Error Codes:
3160//   * ErrCodeBadRequestException "BadRequestException"
3161//   The submitted request is not valid, for example, the input is incomplete
3162//   or incorrect. See the accompanying error message for details.
3163//
3164//   * ErrCodeConflictException "ConflictException"
3165//   The request configuration has conflicts. For details, see the accompanying
3166//   error message.
3167//
3168//   * ErrCodeUnauthorizedException "UnauthorizedException"
3169//   The request is denied because the caller has insufficient permissions.
3170//
3171//   * ErrCodeNotFoundException "NotFoundException"
3172//   The requested resource is not found. Make sure that the request URI is correct.
3173//
3174//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3175//   The request has reached its throttling limit. Retry after the specified time
3176//   period.
3177//
3178func (c *APIGateway) DeleteUsagePlanKey(input *DeleteUsagePlanKeyInput) (*DeleteUsagePlanKeyOutput, error) {
3179	req, out := c.DeleteUsagePlanKeyRequest(input)
3180	return out, req.Send()
3181}
3182
3183// DeleteUsagePlanKeyWithContext is the same as DeleteUsagePlanKey with the addition of
3184// the ability to pass a context and additional request options.
3185//
3186// See DeleteUsagePlanKey for details on how to use this API operation.
3187//
3188// The context must be non-nil and will be used for request cancellation. If
3189// the context is nil a panic will occur. In the future the SDK may create
3190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3191// for more information on using Contexts.
3192func (c *APIGateway) DeleteUsagePlanKeyWithContext(ctx aws.Context, input *DeleteUsagePlanKeyInput, opts ...request.Option) (*DeleteUsagePlanKeyOutput, error) {
3193	req, out := c.DeleteUsagePlanKeyRequest(input)
3194	req.SetContext(ctx)
3195	req.ApplyOptions(opts...)
3196	return out, req.Send()
3197}
3198
3199const opDeleteVpcLink = "DeleteVpcLink"
3200
3201// DeleteVpcLinkRequest generates a "aws/request.Request" representing the
3202// client's request for the DeleteVpcLink operation. The "output" return
3203// value will be populated with the request's response once the request completes
3204// successfully.
3205//
3206// Use "Send" method on the returned Request to send the API call to the service.
3207// the "output" return value is not valid until after Send returns without error.
3208//
3209// See DeleteVpcLink for more information on using the DeleteVpcLink
3210// API call, and error handling.
3211//
3212// This method is useful when you want to inject custom logic or configuration
3213// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3214//
3215//
3216//    // Example sending a request using the DeleteVpcLinkRequest method.
3217//    req, resp := client.DeleteVpcLinkRequest(params)
3218//
3219//    err := req.Send()
3220//    if err == nil { // resp is now filled
3221//        fmt.Println(resp)
3222//    }
3223func (c *APIGateway) DeleteVpcLinkRequest(input *DeleteVpcLinkInput) (req *request.Request, output *DeleteVpcLinkOutput) {
3224	op := &request.Operation{
3225		Name:       opDeleteVpcLink,
3226		HTTPMethod: "DELETE",
3227		HTTPPath:   "/vpclinks/{vpclink_id}",
3228	}
3229
3230	if input == nil {
3231		input = &DeleteVpcLinkInput{}
3232	}
3233
3234	output = &DeleteVpcLinkOutput{}
3235	req = c.newRequest(op, input, output)
3236	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3237	return
3238}
3239
3240// DeleteVpcLink API operation for Amazon API Gateway.
3241//
3242// Deletes an existing VpcLink of a specified identifier.
3243//
3244// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3245// with awserr.Error's Code and Message methods to get detailed information about
3246// the error.
3247//
3248// See the AWS API reference guide for Amazon API Gateway's
3249// API operation DeleteVpcLink for usage and error information.
3250//
3251// Returned Error Codes:
3252//   * ErrCodeUnauthorizedException "UnauthorizedException"
3253//   The request is denied because the caller has insufficient permissions.
3254//
3255//   * ErrCodeNotFoundException "NotFoundException"
3256//   The requested resource is not found. Make sure that the request URI is correct.
3257//
3258//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3259//   The request has reached its throttling limit. Retry after the specified time
3260//   period.
3261//
3262//   * ErrCodeBadRequestException "BadRequestException"
3263//   The submitted request is not valid, for example, the input is incomplete
3264//   or incorrect. See the accompanying error message for details.
3265//
3266func (c *APIGateway) DeleteVpcLink(input *DeleteVpcLinkInput) (*DeleteVpcLinkOutput, error) {
3267	req, out := c.DeleteVpcLinkRequest(input)
3268	return out, req.Send()
3269}
3270
3271// DeleteVpcLinkWithContext is the same as DeleteVpcLink with the addition of
3272// the ability to pass a context and additional request options.
3273//
3274// See DeleteVpcLink for details on how to use this API operation.
3275//
3276// The context must be non-nil and will be used for request cancellation. If
3277// the context is nil a panic will occur. In the future the SDK may create
3278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3279// for more information on using Contexts.
3280func (c *APIGateway) DeleteVpcLinkWithContext(ctx aws.Context, input *DeleteVpcLinkInput, opts ...request.Option) (*DeleteVpcLinkOutput, error) {
3281	req, out := c.DeleteVpcLinkRequest(input)
3282	req.SetContext(ctx)
3283	req.ApplyOptions(opts...)
3284	return out, req.Send()
3285}
3286
3287const opFlushStageAuthorizersCache = "FlushStageAuthorizersCache"
3288
3289// FlushStageAuthorizersCacheRequest generates a "aws/request.Request" representing the
3290// client's request for the FlushStageAuthorizersCache operation. The "output" return
3291// value will be populated with the request's response once the request completes
3292// successfully.
3293//
3294// Use "Send" method on the returned Request to send the API call to the service.
3295// the "output" return value is not valid until after Send returns without error.
3296//
3297// See FlushStageAuthorizersCache for more information on using the FlushStageAuthorizersCache
3298// API call, and error handling.
3299//
3300// This method is useful when you want to inject custom logic or configuration
3301// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3302//
3303//
3304//    // Example sending a request using the FlushStageAuthorizersCacheRequest method.
3305//    req, resp := client.FlushStageAuthorizersCacheRequest(params)
3306//
3307//    err := req.Send()
3308//    if err == nil { // resp is now filled
3309//        fmt.Println(resp)
3310//    }
3311func (c *APIGateway) FlushStageAuthorizersCacheRequest(input *FlushStageAuthorizersCacheInput) (req *request.Request, output *FlushStageAuthorizersCacheOutput) {
3312	op := &request.Operation{
3313		Name:       opFlushStageAuthorizersCache,
3314		HTTPMethod: "DELETE",
3315		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/cache/authorizers",
3316	}
3317
3318	if input == nil {
3319		input = &FlushStageAuthorizersCacheInput{}
3320	}
3321
3322	output = &FlushStageAuthorizersCacheOutput{}
3323	req = c.newRequest(op, input, output)
3324	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3325	return
3326}
3327
3328// FlushStageAuthorizersCache API operation for Amazon API Gateway.
3329//
3330// Flushes all authorizer cache entries on a stage.
3331//
3332// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3333// with awserr.Error's Code and Message methods to get detailed information about
3334// the error.
3335//
3336// See the AWS API reference guide for Amazon API Gateway's
3337// API operation FlushStageAuthorizersCache for usage and error information.
3338//
3339// Returned Error Codes:
3340//   * ErrCodeUnauthorizedException "UnauthorizedException"
3341//   The request is denied because the caller has insufficient permissions.
3342//
3343//   * ErrCodeNotFoundException "NotFoundException"
3344//   The requested resource is not found. Make sure that the request URI is correct.
3345//
3346//   * ErrCodeBadRequestException "BadRequestException"
3347//   The submitted request is not valid, for example, the input is incomplete
3348//   or incorrect. See the accompanying error message for details.
3349//
3350//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3351//   The request has reached its throttling limit. Retry after the specified time
3352//   period.
3353//
3354func (c *APIGateway) FlushStageAuthorizersCache(input *FlushStageAuthorizersCacheInput) (*FlushStageAuthorizersCacheOutput, error) {
3355	req, out := c.FlushStageAuthorizersCacheRequest(input)
3356	return out, req.Send()
3357}
3358
3359// FlushStageAuthorizersCacheWithContext is the same as FlushStageAuthorizersCache with the addition of
3360// the ability to pass a context and additional request options.
3361//
3362// See FlushStageAuthorizersCache for details on how to use this API operation.
3363//
3364// The context must be non-nil and will be used for request cancellation. If
3365// the context is nil a panic will occur. In the future the SDK may create
3366// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3367// for more information on using Contexts.
3368func (c *APIGateway) FlushStageAuthorizersCacheWithContext(ctx aws.Context, input *FlushStageAuthorizersCacheInput, opts ...request.Option) (*FlushStageAuthorizersCacheOutput, error) {
3369	req, out := c.FlushStageAuthorizersCacheRequest(input)
3370	req.SetContext(ctx)
3371	req.ApplyOptions(opts...)
3372	return out, req.Send()
3373}
3374
3375const opFlushStageCache = "FlushStageCache"
3376
3377// FlushStageCacheRequest generates a "aws/request.Request" representing the
3378// client's request for the FlushStageCache operation. The "output" return
3379// value will be populated with the request's response once the request completes
3380// successfully.
3381//
3382// Use "Send" method on the returned Request to send the API call to the service.
3383// the "output" return value is not valid until after Send returns without error.
3384//
3385// See FlushStageCache for more information on using the FlushStageCache
3386// API call, and error handling.
3387//
3388// This method is useful when you want to inject custom logic or configuration
3389// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3390//
3391//
3392//    // Example sending a request using the FlushStageCacheRequest method.
3393//    req, resp := client.FlushStageCacheRequest(params)
3394//
3395//    err := req.Send()
3396//    if err == nil { // resp is now filled
3397//        fmt.Println(resp)
3398//    }
3399func (c *APIGateway) FlushStageCacheRequest(input *FlushStageCacheInput) (req *request.Request, output *FlushStageCacheOutput) {
3400	op := &request.Operation{
3401		Name:       opFlushStageCache,
3402		HTTPMethod: "DELETE",
3403		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/cache/data",
3404	}
3405
3406	if input == nil {
3407		input = &FlushStageCacheInput{}
3408	}
3409
3410	output = &FlushStageCacheOutput{}
3411	req = c.newRequest(op, input, output)
3412	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3413	return
3414}
3415
3416// FlushStageCache API operation for Amazon API Gateway.
3417//
3418// Flushes a stage's cache.
3419//
3420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3421// with awserr.Error's Code and Message methods to get detailed information about
3422// the error.
3423//
3424// See the AWS API reference guide for Amazon API Gateway's
3425// API operation FlushStageCache for usage and error information.
3426//
3427// Returned Error Codes:
3428//   * ErrCodeUnauthorizedException "UnauthorizedException"
3429//   The request is denied because the caller has insufficient permissions.
3430//
3431//   * ErrCodeNotFoundException "NotFoundException"
3432//   The requested resource is not found. Make sure that the request URI is correct.
3433//
3434//   * ErrCodeBadRequestException "BadRequestException"
3435//   The submitted request is not valid, for example, the input is incomplete
3436//   or incorrect. See the accompanying error message for details.
3437//
3438//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3439//   The request has reached its throttling limit. Retry after the specified time
3440//   period.
3441//
3442func (c *APIGateway) FlushStageCache(input *FlushStageCacheInput) (*FlushStageCacheOutput, error) {
3443	req, out := c.FlushStageCacheRequest(input)
3444	return out, req.Send()
3445}
3446
3447// FlushStageCacheWithContext is the same as FlushStageCache with the addition of
3448// the ability to pass a context and additional request options.
3449//
3450// See FlushStageCache for details on how to use this API operation.
3451//
3452// The context must be non-nil and will be used for request cancellation. If
3453// the context is nil a panic will occur. In the future the SDK may create
3454// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3455// for more information on using Contexts.
3456func (c *APIGateway) FlushStageCacheWithContext(ctx aws.Context, input *FlushStageCacheInput, opts ...request.Option) (*FlushStageCacheOutput, error) {
3457	req, out := c.FlushStageCacheRequest(input)
3458	req.SetContext(ctx)
3459	req.ApplyOptions(opts...)
3460	return out, req.Send()
3461}
3462
3463const opGenerateClientCertificate = "GenerateClientCertificate"
3464
3465// GenerateClientCertificateRequest generates a "aws/request.Request" representing the
3466// client's request for the GenerateClientCertificate operation. The "output" return
3467// value will be populated with the request's response once the request completes
3468// successfully.
3469//
3470// Use "Send" method on the returned Request to send the API call to the service.
3471// the "output" return value is not valid until after Send returns without error.
3472//
3473// See GenerateClientCertificate for more information on using the GenerateClientCertificate
3474// API call, and error handling.
3475//
3476// This method is useful when you want to inject custom logic or configuration
3477// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3478//
3479//
3480//    // Example sending a request using the GenerateClientCertificateRequest method.
3481//    req, resp := client.GenerateClientCertificateRequest(params)
3482//
3483//    err := req.Send()
3484//    if err == nil { // resp is now filled
3485//        fmt.Println(resp)
3486//    }
3487func (c *APIGateway) GenerateClientCertificateRequest(input *GenerateClientCertificateInput) (req *request.Request, output *ClientCertificate) {
3488	op := &request.Operation{
3489		Name:       opGenerateClientCertificate,
3490		HTTPMethod: "POST",
3491		HTTPPath:   "/clientcertificates",
3492	}
3493
3494	if input == nil {
3495		input = &GenerateClientCertificateInput{}
3496	}
3497
3498	output = &ClientCertificate{}
3499	req = c.newRequest(op, input, output)
3500	return
3501}
3502
3503// GenerateClientCertificate API operation for Amazon API Gateway.
3504//
3505// Generates a ClientCertificate resource.
3506//
3507// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3508// with awserr.Error's Code and Message methods to get detailed information about
3509// the error.
3510//
3511// See the AWS API reference guide for Amazon API Gateway's
3512// API operation GenerateClientCertificate for usage and error information.
3513//
3514// Returned Error Codes:
3515//   * ErrCodeUnauthorizedException "UnauthorizedException"
3516//   The request is denied because the caller has insufficient permissions.
3517//
3518//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3519//   The request has reached its throttling limit. Retry after the specified time
3520//   period.
3521//
3522//   * ErrCodeLimitExceededException "LimitExceededException"
3523//   The request exceeded the rate limit. Retry after the specified time period.
3524//
3525func (c *APIGateway) GenerateClientCertificate(input *GenerateClientCertificateInput) (*ClientCertificate, error) {
3526	req, out := c.GenerateClientCertificateRequest(input)
3527	return out, req.Send()
3528}
3529
3530// GenerateClientCertificateWithContext is the same as GenerateClientCertificate with the addition of
3531// the ability to pass a context and additional request options.
3532//
3533// See GenerateClientCertificate for details on how to use this API operation.
3534//
3535// The context must be non-nil and will be used for request cancellation. If
3536// the context is nil a panic will occur. In the future the SDK may create
3537// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3538// for more information on using Contexts.
3539func (c *APIGateway) GenerateClientCertificateWithContext(ctx aws.Context, input *GenerateClientCertificateInput, opts ...request.Option) (*ClientCertificate, error) {
3540	req, out := c.GenerateClientCertificateRequest(input)
3541	req.SetContext(ctx)
3542	req.ApplyOptions(opts...)
3543	return out, req.Send()
3544}
3545
3546const opGetAccount = "GetAccount"
3547
3548// GetAccountRequest generates a "aws/request.Request" representing the
3549// client's request for the GetAccount operation. The "output" return
3550// value will be populated with the request's response once the request completes
3551// successfully.
3552//
3553// Use "Send" method on the returned Request to send the API call to the service.
3554// the "output" return value is not valid until after Send returns without error.
3555//
3556// See GetAccount for more information on using the GetAccount
3557// API call, and error handling.
3558//
3559// This method is useful when you want to inject custom logic or configuration
3560// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3561//
3562//
3563//    // Example sending a request using the GetAccountRequest method.
3564//    req, resp := client.GetAccountRequest(params)
3565//
3566//    err := req.Send()
3567//    if err == nil { // resp is now filled
3568//        fmt.Println(resp)
3569//    }
3570func (c *APIGateway) GetAccountRequest(input *GetAccountInput) (req *request.Request, output *Account) {
3571	op := &request.Operation{
3572		Name:       opGetAccount,
3573		HTTPMethod: "GET",
3574		HTTPPath:   "/account",
3575	}
3576
3577	if input == nil {
3578		input = &GetAccountInput{}
3579	}
3580
3581	output = &Account{}
3582	req = c.newRequest(op, input, output)
3583	return
3584}
3585
3586// GetAccount API operation for Amazon API Gateway.
3587//
3588// Gets information about the current Account resource.
3589//
3590// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3591// with awserr.Error's Code and Message methods to get detailed information about
3592// the error.
3593//
3594// See the AWS API reference guide for Amazon API Gateway's
3595// API operation GetAccount for usage and error information.
3596//
3597// Returned Error Codes:
3598//   * ErrCodeUnauthorizedException "UnauthorizedException"
3599//   The request is denied because the caller has insufficient permissions.
3600//
3601//   * ErrCodeNotFoundException "NotFoundException"
3602//   The requested resource is not found. Make sure that the request URI is correct.
3603//
3604//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3605//   The request has reached its throttling limit. Retry after the specified time
3606//   period.
3607//
3608func (c *APIGateway) GetAccount(input *GetAccountInput) (*Account, error) {
3609	req, out := c.GetAccountRequest(input)
3610	return out, req.Send()
3611}
3612
3613// GetAccountWithContext is the same as GetAccount with the addition of
3614// the ability to pass a context and additional request options.
3615//
3616// See GetAccount for details on how to use this API operation.
3617//
3618// The context must be non-nil and will be used for request cancellation. If
3619// the context is nil a panic will occur. In the future the SDK may create
3620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3621// for more information on using Contexts.
3622func (c *APIGateway) GetAccountWithContext(ctx aws.Context, input *GetAccountInput, opts ...request.Option) (*Account, error) {
3623	req, out := c.GetAccountRequest(input)
3624	req.SetContext(ctx)
3625	req.ApplyOptions(opts...)
3626	return out, req.Send()
3627}
3628
3629const opGetApiKey = "GetApiKey"
3630
3631// GetApiKeyRequest generates a "aws/request.Request" representing the
3632// client's request for the GetApiKey operation. The "output" return
3633// value will be populated with the request's response once the request completes
3634// successfully.
3635//
3636// Use "Send" method on the returned Request to send the API call to the service.
3637// the "output" return value is not valid until after Send returns without error.
3638//
3639// See GetApiKey for more information on using the GetApiKey
3640// API call, and error handling.
3641//
3642// This method is useful when you want to inject custom logic or configuration
3643// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3644//
3645//
3646//    // Example sending a request using the GetApiKeyRequest method.
3647//    req, resp := client.GetApiKeyRequest(params)
3648//
3649//    err := req.Send()
3650//    if err == nil { // resp is now filled
3651//        fmt.Println(resp)
3652//    }
3653func (c *APIGateway) GetApiKeyRequest(input *GetApiKeyInput) (req *request.Request, output *ApiKey) {
3654	op := &request.Operation{
3655		Name:       opGetApiKey,
3656		HTTPMethod: "GET",
3657		HTTPPath:   "/apikeys/{api_Key}",
3658	}
3659
3660	if input == nil {
3661		input = &GetApiKeyInput{}
3662	}
3663
3664	output = &ApiKey{}
3665	req = c.newRequest(op, input, output)
3666	return
3667}
3668
3669// GetApiKey API operation for Amazon API Gateway.
3670//
3671// Gets information about the current ApiKey resource.
3672//
3673// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3674// with awserr.Error's Code and Message methods to get detailed information about
3675// the error.
3676//
3677// See the AWS API reference guide for Amazon API Gateway's
3678// API operation GetApiKey for usage and error information.
3679//
3680// Returned Error Codes:
3681//   * ErrCodeUnauthorizedException "UnauthorizedException"
3682//   The request is denied because the caller has insufficient permissions.
3683//
3684//   * ErrCodeNotFoundException "NotFoundException"
3685//   The requested resource is not found. Make sure that the request URI is correct.
3686//
3687//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3688//   The request has reached its throttling limit. Retry after the specified time
3689//   period.
3690//
3691func (c *APIGateway) GetApiKey(input *GetApiKeyInput) (*ApiKey, error) {
3692	req, out := c.GetApiKeyRequest(input)
3693	return out, req.Send()
3694}
3695
3696// GetApiKeyWithContext is the same as GetApiKey with the addition of
3697// the ability to pass a context and additional request options.
3698//
3699// See GetApiKey for details on how to use this API operation.
3700//
3701// The context must be non-nil and will be used for request cancellation. If
3702// the context is nil a panic will occur. In the future the SDK may create
3703// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3704// for more information on using Contexts.
3705func (c *APIGateway) GetApiKeyWithContext(ctx aws.Context, input *GetApiKeyInput, opts ...request.Option) (*ApiKey, error) {
3706	req, out := c.GetApiKeyRequest(input)
3707	req.SetContext(ctx)
3708	req.ApplyOptions(opts...)
3709	return out, req.Send()
3710}
3711
3712const opGetApiKeys = "GetApiKeys"
3713
3714// GetApiKeysRequest generates a "aws/request.Request" representing the
3715// client's request for the GetApiKeys operation. The "output" return
3716// value will be populated with the request's response once the request completes
3717// successfully.
3718//
3719// Use "Send" method on the returned Request to send the API call to the service.
3720// the "output" return value is not valid until after Send returns without error.
3721//
3722// See GetApiKeys for more information on using the GetApiKeys
3723// API call, and error handling.
3724//
3725// This method is useful when you want to inject custom logic or configuration
3726// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3727//
3728//
3729//    // Example sending a request using the GetApiKeysRequest method.
3730//    req, resp := client.GetApiKeysRequest(params)
3731//
3732//    err := req.Send()
3733//    if err == nil { // resp is now filled
3734//        fmt.Println(resp)
3735//    }
3736func (c *APIGateway) GetApiKeysRequest(input *GetApiKeysInput) (req *request.Request, output *GetApiKeysOutput) {
3737	op := &request.Operation{
3738		Name:       opGetApiKeys,
3739		HTTPMethod: "GET",
3740		HTTPPath:   "/apikeys",
3741		Paginator: &request.Paginator{
3742			InputTokens:     []string{"position"},
3743			OutputTokens:    []string{"position"},
3744			LimitToken:      "limit",
3745			TruncationToken: "",
3746		},
3747	}
3748
3749	if input == nil {
3750		input = &GetApiKeysInput{}
3751	}
3752
3753	output = &GetApiKeysOutput{}
3754	req = c.newRequest(op, input, output)
3755	return
3756}
3757
3758// GetApiKeys API operation for Amazon API Gateway.
3759//
3760// Gets information about the current ApiKeys resource.
3761//
3762// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3763// with awserr.Error's Code and Message methods to get detailed information about
3764// the error.
3765//
3766// See the AWS API reference guide for Amazon API Gateway's
3767// API operation GetApiKeys for usage and error information.
3768//
3769// Returned Error Codes:
3770//   * ErrCodeBadRequestException "BadRequestException"
3771//   The submitted request is not valid, for example, the input is incomplete
3772//   or incorrect. See the accompanying error message for details.
3773//
3774//   * ErrCodeUnauthorizedException "UnauthorizedException"
3775//   The request is denied because the caller has insufficient permissions.
3776//
3777//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3778//   The request has reached its throttling limit. Retry after the specified time
3779//   period.
3780//
3781func (c *APIGateway) GetApiKeys(input *GetApiKeysInput) (*GetApiKeysOutput, error) {
3782	req, out := c.GetApiKeysRequest(input)
3783	return out, req.Send()
3784}
3785
3786// GetApiKeysWithContext is the same as GetApiKeys with the addition of
3787// the ability to pass a context and additional request options.
3788//
3789// See GetApiKeys for details on how to use this API operation.
3790//
3791// The context must be non-nil and will be used for request cancellation. If
3792// the context is nil a panic will occur. In the future the SDK may create
3793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3794// for more information on using Contexts.
3795func (c *APIGateway) GetApiKeysWithContext(ctx aws.Context, input *GetApiKeysInput, opts ...request.Option) (*GetApiKeysOutput, error) {
3796	req, out := c.GetApiKeysRequest(input)
3797	req.SetContext(ctx)
3798	req.ApplyOptions(opts...)
3799	return out, req.Send()
3800}
3801
3802// GetApiKeysPages iterates over the pages of a GetApiKeys operation,
3803// calling the "fn" function with the response data for each page. To stop
3804// iterating, return false from the fn function.
3805//
3806// See GetApiKeys method for more information on how to use this operation.
3807//
3808// Note: This operation can generate multiple requests to a service.
3809//
3810//    // Example iterating over at most 3 pages of a GetApiKeys operation.
3811//    pageNum := 0
3812//    err := client.GetApiKeysPages(params,
3813//        func(page *apigateway.GetApiKeysOutput, lastPage bool) bool {
3814//            pageNum++
3815//            fmt.Println(page)
3816//            return pageNum <= 3
3817//        })
3818//
3819func (c *APIGateway) GetApiKeysPages(input *GetApiKeysInput, fn func(*GetApiKeysOutput, bool) bool) error {
3820	return c.GetApiKeysPagesWithContext(aws.BackgroundContext(), input, fn)
3821}
3822
3823// GetApiKeysPagesWithContext same as GetApiKeysPages except
3824// it takes a Context and allows setting request options on the pages.
3825//
3826// The context must be non-nil and will be used for request cancellation. If
3827// the context is nil a panic will occur. In the future the SDK may create
3828// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3829// for more information on using Contexts.
3830func (c *APIGateway) GetApiKeysPagesWithContext(ctx aws.Context, input *GetApiKeysInput, fn func(*GetApiKeysOutput, bool) bool, opts ...request.Option) error {
3831	p := request.Pagination{
3832		NewRequest: func() (*request.Request, error) {
3833			var inCpy *GetApiKeysInput
3834			if input != nil {
3835				tmp := *input
3836				inCpy = &tmp
3837			}
3838			req, _ := c.GetApiKeysRequest(inCpy)
3839			req.SetContext(ctx)
3840			req.ApplyOptions(opts...)
3841			return req, nil
3842		},
3843	}
3844
3845	for p.Next() {
3846		if !fn(p.Page().(*GetApiKeysOutput), !p.HasNextPage()) {
3847			break
3848		}
3849	}
3850
3851	return p.Err()
3852}
3853
3854const opGetAuthorizer = "GetAuthorizer"
3855
3856// GetAuthorizerRequest generates a "aws/request.Request" representing the
3857// client's request for the GetAuthorizer operation. The "output" return
3858// value will be populated with the request's response once the request completes
3859// successfully.
3860//
3861// Use "Send" method on the returned Request to send the API call to the service.
3862// the "output" return value is not valid until after Send returns without error.
3863//
3864// See GetAuthorizer for more information on using the GetAuthorizer
3865// API call, and error handling.
3866//
3867// This method is useful when you want to inject custom logic or configuration
3868// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3869//
3870//
3871//    // Example sending a request using the GetAuthorizerRequest method.
3872//    req, resp := client.GetAuthorizerRequest(params)
3873//
3874//    err := req.Send()
3875//    if err == nil { // resp is now filled
3876//        fmt.Println(resp)
3877//    }
3878func (c *APIGateway) GetAuthorizerRequest(input *GetAuthorizerInput) (req *request.Request, output *Authorizer) {
3879	op := &request.Operation{
3880		Name:       opGetAuthorizer,
3881		HTTPMethod: "GET",
3882		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
3883	}
3884
3885	if input == nil {
3886		input = &GetAuthorizerInput{}
3887	}
3888
3889	output = &Authorizer{}
3890	req = c.newRequest(op, input, output)
3891	return
3892}
3893
3894// GetAuthorizer API operation for Amazon API Gateway.
3895//
3896// Describe an existing Authorizer resource.
3897//
3898// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-authorizer.html)
3899//
3900// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3901// with awserr.Error's Code and Message methods to get detailed information about
3902// the error.
3903//
3904// See the AWS API reference guide for Amazon API Gateway's
3905// API operation GetAuthorizer for usage and error information.
3906//
3907// Returned Error Codes:
3908//   * ErrCodeUnauthorizedException "UnauthorizedException"
3909//   The request is denied because the caller has insufficient permissions.
3910//
3911//   * ErrCodeNotFoundException "NotFoundException"
3912//   The requested resource is not found. Make sure that the request URI is correct.
3913//
3914//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3915//   The request has reached its throttling limit. Retry after the specified time
3916//   period.
3917//
3918func (c *APIGateway) GetAuthorizer(input *GetAuthorizerInput) (*Authorizer, error) {
3919	req, out := c.GetAuthorizerRequest(input)
3920	return out, req.Send()
3921}
3922
3923// GetAuthorizerWithContext is the same as GetAuthorizer with the addition of
3924// the ability to pass a context and additional request options.
3925//
3926// See GetAuthorizer for details on how to use this API operation.
3927//
3928// The context must be non-nil and will be used for request cancellation. If
3929// the context is nil a panic will occur. In the future the SDK may create
3930// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3931// for more information on using Contexts.
3932func (c *APIGateway) GetAuthorizerWithContext(ctx aws.Context, input *GetAuthorizerInput, opts ...request.Option) (*Authorizer, error) {
3933	req, out := c.GetAuthorizerRequest(input)
3934	req.SetContext(ctx)
3935	req.ApplyOptions(opts...)
3936	return out, req.Send()
3937}
3938
3939const opGetAuthorizers = "GetAuthorizers"
3940
3941// GetAuthorizersRequest generates a "aws/request.Request" representing the
3942// client's request for the GetAuthorizers operation. The "output" return
3943// value will be populated with the request's response once the request completes
3944// successfully.
3945//
3946// Use "Send" method on the returned Request to send the API call to the service.
3947// the "output" return value is not valid until after Send returns without error.
3948//
3949// See GetAuthorizers for more information on using the GetAuthorizers
3950// API call, and error handling.
3951//
3952// This method is useful when you want to inject custom logic or configuration
3953// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3954//
3955//
3956//    // Example sending a request using the GetAuthorizersRequest method.
3957//    req, resp := client.GetAuthorizersRequest(params)
3958//
3959//    err := req.Send()
3960//    if err == nil { // resp is now filled
3961//        fmt.Println(resp)
3962//    }
3963func (c *APIGateway) GetAuthorizersRequest(input *GetAuthorizersInput) (req *request.Request, output *GetAuthorizersOutput) {
3964	op := &request.Operation{
3965		Name:       opGetAuthorizers,
3966		HTTPMethod: "GET",
3967		HTTPPath:   "/restapis/{restapi_id}/authorizers",
3968	}
3969
3970	if input == nil {
3971		input = &GetAuthorizersInput{}
3972	}
3973
3974	output = &GetAuthorizersOutput{}
3975	req = c.newRequest(op, input, output)
3976	return
3977}
3978
3979// GetAuthorizers API operation for Amazon API Gateway.
3980//
3981// Describe an existing Authorizers resource.
3982//
3983// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-authorizers.html)
3984//
3985// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3986// with awserr.Error's Code and Message methods to get detailed information about
3987// the error.
3988//
3989// See the AWS API reference guide for Amazon API Gateway's
3990// API operation GetAuthorizers for usage and error information.
3991//
3992// Returned Error Codes:
3993//   * ErrCodeBadRequestException "BadRequestException"
3994//   The submitted request is not valid, for example, the input is incomplete
3995//   or incorrect. See the accompanying error message for details.
3996//
3997//   * ErrCodeUnauthorizedException "UnauthorizedException"
3998//   The request is denied because the caller has insufficient permissions.
3999//
4000//   * ErrCodeNotFoundException "NotFoundException"
4001//   The requested resource is not found. Make sure that the request URI is correct.
4002//
4003//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4004//   The request has reached its throttling limit. Retry after the specified time
4005//   period.
4006//
4007func (c *APIGateway) GetAuthorizers(input *GetAuthorizersInput) (*GetAuthorizersOutput, error) {
4008	req, out := c.GetAuthorizersRequest(input)
4009	return out, req.Send()
4010}
4011
4012// GetAuthorizersWithContext is the same as GetAuthorizers with the addition of
4013// the ability to pass a context and additional request options.
4014//
4015// See GetAuthorizers for details on how to use this API operation.
4016//
4017// The context must be non-nil and will be used for request cancellation. If
4018// the context is nil a panic will occur. In the future the SDK may create
4019// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4020// for more information on using Contexts.
4021func (c *APIGateway) GetAuthorizersWithContext(ctx aws.Context, input *GetAuthorizersInput, opts ...request.Option) (*GetAuthorizersOutput, error) {
4022	req, out := c.GetAuthorizersRequest(input)
4023	req.SetContext(ctx)
4024	req.ApplyOptions(opts...)
4025	return out, req.Send()
4026}
4027
4028const opGetBasePathMapping = "GetBasePathMapping"
4029
4030// GetBasePathMappingRequest generates a "aws/request.Request" representing the
4031// client's request for the GetBasePathMapping operation. The "output" return
4032// value will be populated with the request's response once the request completes
4033// successfully.
4034//
4035// Use "Send" method on the returned Request to send the API call to the service.
4036// the "output" return value is not valid until after Send returns without error.
4037//
4038// See GetBasePathMapping for more information on using the GetBasePathMapping
4039// API call, and error handling.
4040//
4041// This method is useful when you want to inject custom logic or configuration
4042// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4043//
4044//
4045//    // Example sending a request using the GetBasePathMappingRequest method.
4046//    req, resp := client.GetBasePathMappingRequest(params)
4047//
4048//    err := req.Send()
4049//    if err == nil { // resp is now filled
4050//        fmt.Println(resp)
4051//    }
4052func (c *APIGateway) GetBasePathMappingRequest(input *GetBasePathMappingInput) (req *request.Request, output *BasePathMapping) {
4053	op := &request.Operation{
4054		Name:       opGetBasePathMapping,
4055		HTTPMethod: "GET",
4056		HTTPPath:   "/domainnames/{domain_name}/basepathmappings/{base_path}",
4057	}
4058
4059	if input == nil {
4060		input = &GetBasePathMappingInput{}
4061	}
4062
4063	output = &BasePathMapping{}
4064	req = c.newRequest(op, input, output)
4065	return
4066}
4067
4068// GetBasePathMapping API operation for Amazon API Gateway.
4069//
4070// Describe a BasePathMapping resource.
4071//
4072// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4073// with awserr.Error's Code and Message methods to get detailed information about
4074// the error.
4075//
4076// See the AWS API reference guide for Amazon API Gateway's
4077// API operation GetBasePathMapping for usage and error information.
4078//
4079// Returned Error Codes:
4080//   * ErrCodeUnauthorizedException "UnauthorizedException"
4081//   The request is denied because the caller has insufficient permissions.
4082//
4083//   * ErrCodeNotFoundException "NotFoundException"
4084//   The requested resource is not found. Make sure that the request URI is correct.
4085//
4086//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4087//   The request has reached its throttling limit. Retry after the specified time
4088//   period.
4089//
4090func (c *APIGateway) GetBasePathMapping(input *GetBasePathMappingInput) (*BasePathMapping, error) {
4091	req, out := c.GetBasePathMappingRequest(input)
4092	return out, req.Send()
4093}
4094
4095// GetBasePathMappingWithContext is the same as GetBasePathMapping with the addition of
4096// the ability to pass a context and additional request options.
4097//
4098// See GetBasePathMapping for details on how to use this API operation.
4099//
4100// The context must be non-nil and will be used for request cancellation. If
4101// the context is nil a panic will occur. In the future the SDK may create
4102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4103// for more information on using Contexts.
4104func (c *APIGateway) GetBasePathMappingWithContext(ctx aws.Context, input *GetBasePathMappingInput, opts ...request.Option) (*BasePathMapping, error) {
4105	req, out := c.GetBasePathMappingRequest(input)
4106	req.SetContext(ctx)
4107	req.ApplyOptions(opts...)
4108	return out, req.Send()
4109}
4110
4111const opGetBasePathMappings = "GetBasePathMappings"
4112
4113// GetBasePathMappingsRequest generates a "aws/request.Request" representing the
4114// client's request for the GetBasePathMappings operation. The "output" return
4115// value will be populated with the request's response once the request completes
4116// successfully.
4117//
4118// Use "Send" method on the returned Request to send the API call to the service.
4119// the "output" return value is not valid until after Send returns without error.
4120//
4121// See GetBasePathMappings for more information on using the GetBasePathMappings
4122// API call, and error handling.
4123//
4124// This method is useful when you want to inject custom logic or configuration
4125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4126//
4127//
4128//    // Example sending a request using the GetBasePathMappingsRequest method.
4129//    req, resp := client.GetBasePathMappingsRequest(params)
4130//
4131//    err := req.Send()
4132//    if err == nil { // resp is now filled
4133//        fmt.Println(resp)
4134//    }
4135func (c *APIGateway) GetBasePathMappingsRequest(input *GetBasePathMappingsInput) (req *request.Request, output *GetBasePathMappingsOutput) {
4136	op := &request.Operation{
4137		Name:       opGetBasePathMappings,
4138		HTTPMethod: "GET",
4139		HTTPPath:   "/domainnames/{domain_name}/basepathmappings",
4140		Paginator: &request.Paginator{
4141			InputTokens:     []string{"position"},
4142			OutputTokens:    []string{"position"},
4143			LimitToken:      "limit",
4144			TruncationToken: "",
4145		},
4146	}
4147
4148	if input == nil {
4149		input = &GetBasePathMappingsInput{}
4150	}
4151
4152	output = &GetBasePathMappingsOutput{}
4153	req = c.newRequest(op, input, output)
4154	return
4155}
4156
4157// GetBasePathMappings API operation for Amazon API Gateway.
4158//
4159// Represents a collection of BasePathMapping resources.
4160//
4161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4162// with awserr.Error's Code and Message methods to get detailed information about
4163// the error.
4164//
4165// See the AWS API reference guide for Amazon API Gateway's
4166// API operation GetBasePathMappings for usage and error information.
4167//
4168// Returned Error Codes:
4169//   * ErrCodeUnauthorizedException "UnauthorizedException"
4170//   The request is denied because the caller has insufficient permissions.
4171//
4172//   * ErrCodeNotFoundException "NotFoundException"
4173//   The requested resource is not found. Make sure that the request URI is correct.
4174//
4175//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4176//   The request has reached its throttling limit. Retry after the specified time
4177//   period.
4178//
4179func (c *APIGateway) GetBasePathMappings(input *GetBasePathMappingsInput) (*GetBasePathMappingsOutput, error) {
4180	req, out := c.GetBasePathMappingsRequest(input)
4181	return out, req.Send()
4182}
4183
4184// GetBasePathMappingsWithContext is the same as GetBasePathMappings with the addition of
4185// the ability to pass a context and additional request options.
4186//
4187// See GetBasePathMappings for details on how to use this API operation.
4188//
4189// The context must be non-nil and will be used for request cancellation. If
4190// the context is nil a panic will occur. In the future the SDK may create
4191// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4192// for more information on using Contexts.
4193func (c *APIGateway) GetBasePathMappingsWithContext(ctx aws.Context, input *GetBasePathMappingsInput, opts ...request.Option) (*GetBasePathMappingsOutput, error) {
4194	req, out := c.GetBasePathMappingsRequest(input)
4195	req.SetContext(ctx)
4196	req.ApplyOptions(opts...)
4197	return out, req.Send()
4198}
4199
4200// GetBasePathMappingsPages iterates over the pages of a GetBasePathMappings operation,
4201// calling the "fn" function with the response data for each page. To stop
4202// iterating, return false from the fn function.
4203//
4204// See GetBasePathMappings method for more information on how to use this operation.
4205//
4206// Note: This operation can generate multiple requests to a service.
4207//
4208//    // Example iterating over at most 3 pages of a GetBasePathMappings operation.
4209//    pageNum := 0
4210//    err := client.GetBasePathMappingsPages(params,
4211//        func(page *apigateway.GetBasePathMappingsOutput, lastPage bool) bool {
4212//            pageNum++
4213//            fmt.Println(page)
4214//            return pageNum <= 3
4215//        })
4216//
4217func (c *APIGateway) GetBasePathMappingsPages(input *GetBasePathMappingsInput, fn func(*GetBasePathMappingsOutput, bool) bool) error {
4218	return c.GetBasePathMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
4219}
4220
4221// GetBasePathMappingsPagesWithContext same as GetBasePathMappingsPages except
4222// it takes a Context and allows setting request options on the pages.
4223//
4224// The context must be non-nil and will be used for request cancellation. If
4225// the context is nil a panic will occur. In the future the SDK may create
4226// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4227// for more information on using Contexts.
4228func (c *APIGateway) GetBasePathMappingsPagesWithContext(ctx aws.Context, input *GetBasePathMappingsInput, fn func(*GetBasePathMappingsOutput, bool) bool, opts ...request.Option) error {
4229	p := request.Pagination{
4230		NewRequest: func() (*request.Request, error) {
4231			var inCpy *GetBasePathMappingsInput
4232			if input != nil {
4233				tmp := *input
4234				inCpy = &tmp
4235			}
4236			req, _ := c.GetBasePathMappingsRequest(inCpy)
4237			req.SetContext(ctx)
4238			req.ApplyOptions(opts...)
4239			return req, nil
4240		},
4241	}
4242
4243	for p.Next() {
4244		if !fn(p.Page().(*GetBasePathMappingsOutput), !p.HasNextPage()) {
4245			break
4246		}
4247	}
4248
4249	return p.Err()
4250}
4251
4252const opGetClientCertificate = "GetClientCertificate"
4253
4254// GetClientCertificateRequest generates a "aws/request.Request" representing the
4255// client's request for the GetClientCertificate operation. The "output" return
4256// value will be populated with the request's response once the request completes
4257// successfully.
4258//
4259// Use "Send" method on the returned Request to send the API call to the service.
4260// the "output" return value is not valid until after Send returns without error.
4261//
4262// See GetClientCertificate for more information on using the GetClientCertificate
4263// API call, and error handling.
4264//
4265// This method is useful when you want to inject custom logic or configuration
4266// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4267//
4268//
4269//    // Example sending a request using the GetClientCertificateRequest method.
4270//    req, resp := client.GetClientCertificateRequest(params)
4271//
4272//    err := req.Send()
4273//    if err == nil { // resp is now filled
4274//        fmt.Println(resp)
4275//    }
4276func (c *APIGateway) GetClientCertificateRequest(input *GetClientCertificateInput) (req *request.Request, output *ClientCertificate) {
4277	op := &request.Operation{
4278		Name:       opGetClientCertificate,
4279		HTTPMethod: "GET",
4280		HTTPPath:   "/clientcertificates/{clientcertificate_id}",
4281	}
4282
4283	if input == nil {
4284		input = &GetClientCertificateInput{}
4285	}
4286
4287	output = &ClientCertificate{}
4288	req = c.newRequest(op, input, output)
4289	return
4290}
4291
4292// GetClientCertificate API operation for Amazon API Gateway.
4293//
4294// Gets information about the current ClientCertificate resource.
4295//
4296// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4297// with awserr.Error's Code and Message methods to get detailed information about
4298// the error.
4299//
4300// See the AWS API reference guide for Amazon API Gateway's
4301// API operation GetClientCertificate for usage and error information.
4302//
4303// Returned Error Codes:
4304//   * ErrCodeUnauthorizedException "UnauthorizedException"
4305//   The request is denied because the caller has insufficient permissions.
4306//
4307//   * ErrCodeNotFoundException "NotFoundException"
4308//   The requested resource is not found. Make sure that the request URI is correct.
4309//
4310//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4311//   The request has reached its throttling limit. Retry after the specified time
4312//   period.
4313//
4314func (c *APIGateway) GetClientCertificate(input *GetClientCertificateInput) (*ClientCertificate, error) {
4315	req, out := c.GetClientCertificateRequest(input)
4316	return out, req.Send()
4317}
4318
4319// GetClientCertificateWithContext is the same as GetClientCertificate with the addition of
4320// the ability to pass a context and additional request options.
4321//
4322// See GetClientCertificate for details on how to use this API operation.
4323//
4324// The context must be non-nil and will be used for request cancellation. If
4325// the context is nil a panic will occur. In the future the SDK may create
4326// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4327// for more information on using Contexts.
4328func (c *APIGateway) GetClientCertificateWithContext(ctx aws.Context, input *GetClientCertificateInput, opts ...request.Option) (*ClientCertificate, error) {
4329	req, out := c.GetClientCertificateRequest(input)
4330	req.SetContext(ctx)
4331	req.ApplyOptions(opts...)
4332	return out, req.Send()
4333}
4334
4335const opGetClientCertificates = "GetClientCertificates"
4336
4337// GetClientCertificatesRequest generates a "aws/request.Request" representing the
4338// client's request for the GetClientCertificates operation. The "output" return
4339// value will be populated with the request's response once the request completes
4340// successfully.
4341//
4342// Use "Send" method on the returned Request to send the API call to the service.
4343// the "output" return value is not valid until after Send returns without error.
4344//
4345// See GetClientCertificates for more information on using the GetClientCertificates
4346// API call, and error handling.
4347//
4348// This method is useful when you want to inject custom logic or configuration
4349// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4350//
4351//
4352//    // Example sending a request using the GetClientCertificatesRequest method.
4353//    req, resp := client.GetClientCertificatesRequest(params)
4354//
4355//    err := req.Send()
4356//    if err == nil { // resp is now filled
4357//        fmt.Println(resp)
4358//    }
4359func (c *APIGateway) GetClientCertificatesRequest(input *GetClientCertificatesInput) (req *request.Request, output *GetClientCertificatesOutput) {
4360	op := &request.Operation{
4361		Name:       opGetClientCertificates,
4362		HTTPMethod: "GET",
4363		HTTPPath:   "/clientcertificates",
4364		Paginator: &request.Paginator{
4365			InputTokens:     []string{"position"},
4366			OutputTokens:    []string{"position"},
4367			LimitToken:      "limit",
4368			TruncationToken: "",
4369		},
4370	}
4371
4372	if input == nil {
4373		input = &GetClientCertificatesInput{}
4374	}
4375
4376	output = &GetClientCertificatesOutput{}
4377	req = c.newRequest(op, input, output)
4378	return
4379}
4380
4381// GetClientCertificates API operation for Amazon API Gateway.
4382//
4383// Gets a collection of ClientCertificate resources.
4384//
4385// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4386// with awserr.Error's Code and Message methods to get detailed information about
4387// the error.
4388//
4389// See the AWS API reference guide for Amazon API Gateway's
4390// API operation GetClientCertificates for usage and error information.
4391//
4392// Returned Error Codes:
4393//   * ErrCodeBadRequestException "BadRequestException"
4394//   The submitted request is not valid, for example, the input is incomplete
4395//   or incorrect. See the accompanying error message for details.
4396//
4397//   * ErrCodeUnauthorizedException "UnauthorizedException"
4398//   The request is denied because the caller has insufficient permissions.
4399//
4400//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4401//   The request has reached its throttling limit. Retry after the specified time
4402//   period.
4403//
4404func (c *APIGateway) GetClientCertificates(input *GetClientCertificatesInput) (*GetClientCertificatesOutput, error) {
4405	req, out := c.GetClientCertificatesRequest(input)
4406	return out, req.Send()
4407}
4408
4409// GetClientCertificatesWithContext is the same as GetClientCertificates with the addition of
4410// the ability to pass a context and additional request options.
4411//
4412// See GetClientCertificates for details on how to use this API operation.
4413//
4414// The context must be non-nil and will be used for request cancellation. If
4415// the context is nil a panic will occur. In the future the SDK may create
4416// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4417// for more information on using Contexts.
4418func (c *APIGateway) GetClientCertificatesWithContext(ctx aws.Context, input *GetClientCertificatesInput, opts ...request.Option) (*GetClientCertificatesOutput, error) {
4419	req, out := c.GetClientCertificatesRequest(input)
4420	req.SetContext(ctx)
4421	req.ApplyOptions(opts...)
4422	return out, req.Send()
4423}
4424
4425// GetClientCertificatesPages iterates over the pages of a GetClientCertificates operation,
4426// calling the "fn" function with the response data for each page. To stop
4427// iterating, return false from the fn function.
4428//
4429// See GetClientCertificates method for more information on how to use this operation.
4430//
4431// Note: This operation can generate multiple requests to a service.
4432//
4433//    // Example iterating over at most 3 pages of a GetClientCertificates operation.
4434//    pageNum := 0
4435//    err := client.GetClientCertificatesPages(params,
4436//        func(page *apigateway.GetClientCertificatesOutput, lastPage bool) bool {
4437//            pageNum++
4438//            fmt.Println(page)
4439//            return pageNum <= 3
4440//        })
4441//
4442func (c *APIGateway) GetClientCertificatesPages(input *GetClientCertificatesInput, fn func(*GetClientCertificatesOutput, bool) bool) error {
4443	return c.GetClientCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
4444}
4445
4446// GetClientCertificatesPagesWithContext same as GetClientCertificatesPages except
4447// it takes a Context and allows setting request options on the pages.
4448//
4449// The context must be non-nil and will be used for request cancellation. If
4450// the context is nil a panic will occur. In the future the SDK may create
4451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4452// for more information on using Contexts.
4453func (c *APIGateway) GetClientCertificatesPagesWithContext(ctx aws.Context, input *GetClientCertificatesInput, fn func(*GetClientCertificatesOutput, bool) bool, opts ...request.Option) error {
4454	p := request.Pagination{
4455		NewRequest: func() (*request.Request, error) {
4456			var inCpy *GetClientCertificatesInput
4457			if input != nil {
4458				tmp := *input
4459				inCpy = &tmp
4460			}
4461			req, _ := c.GetClientCertificatesRequest(inCpy)
4462			req.SetContext(ctx)
4463			req.ApplyOptions(opts...)
4464			return req, nil
4465		},
4466	}
4467
4468	for p.Next() {
4469		if !fn(p.Page().(*GetClientCertificatesOutput), !p.HasNextPage()) {
4470			break
4471		}
4472	}
4473
4474	return p.Err()
4475}
4476
4477const opGetDeployment = "GetDeployment"
4478
4479// GetDeploymentRequest generates a "aws/request.Request" representing the
4480// client's request for the GetDeployment operation. The "output" return
4481// value will be populated with the request's response once the request completes
4482// successfully.
4483//
4484// Use "Send" method on the returned Request to send the API call to the service.
4485// the "output" return value is not valid until after Send returns without error.
4486//
4487// See GetDeployment for more information on using the GetDeployment
4488// API call, and error handling.
4489//
4490// This method is useful when you want to inject custom logic or configuration
4491// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4492//
4493//
4494//    // Example sending a request using the GetDeploymentRequest method.
4495//    req, resp := client.GetDeploymentRequest(params)
4496//
4497//    err := req.Send()
4498//    if err == nil { // resp is now filled
4499//        fmt.Println(resp)
4500//    }
4501func (c *APIGateway) GetDeploymentRequest(input *GetDeploymentInput) (req *request.Request, output *Deployment) {
4502	op := &request.Operation{
4503		Name:       opGetDeployment,
4504		HTTPMethod: "GET",
4505		HTTPPath:   "/restapis/{restapi_id}/deployments/{deployment_id}",
4506	}
4507
4508	if input == nil {
4509		input = &GetDeploymentInput{}
4510	}
4511
4512	output = &Deployment{}
4513	req = c.newRequest(op, input, output)
4514	return
4515}
4516
4517// GetDeployment API operation for Amazon API Gateway.
4518//
4519// Gets information about a Deployment resource.
4520//
4521// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4522// with awserr.Error's Code and Message methods to get detailed information about
4523// the error.
4524//
4525// See the AWS API reference guide for Amazon API Gateway's
4526// API operation GetDeployment for usage and error information.
4527//
4528// Returned Error Codes:
4529//   * ErrCodeUnauthorizedException "UnauthorizedException"
4530//   The request is denied because the caller has insufficient permissions.
4531//
4532//   * ErrCodeNotFoundException "NotFoundException"
4533//   The requested resource is not found. Make sure that the request URI is correct.
4534//
4535//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4536//   The request has reached its throttling limit. Retry after the specified time
4537//   period.
4538//
4539//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
4540//   The requested service is not available. For details see the accompanying
4541//   error message. Retry after the specified time period.
4542//
4543func (c *APIGateway) GetDeployment(input *GetDeploymentInput) (*Deployment, error) {
4544	req, out := c.GetDeploymentRequest(input)
4545	return out, req.Send()
4546}
4547
4548// GetDeploymentWithContext is the same as GetDeployment with the addition of
4549// the ability to pass a context and additional request options.
4550//
4551// See GetDeployment for details on how to use this API operation.
4552//
4553// The context must be non-nil and will be used for request cancellation. If
4554// the context is nil a panic will occur. In the future the SDK may create
4555// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4556// for more information on using Contexts.
4557func (c *APIGateway) GetDeploymentWithContext(ctx aws.Context, input *GetDeploymentInput, opts ...request.Option) (*Deployment, error) {
4558	req, out := c.GetDeploymentRequest(input)
4559	req.SetContext(ctx)
4560	req.ApplyOptions(opts...)
4561	return out, req.Send()
4562}
4563
4564const opGetDeployments = "GetDeployments"
4565
4566// GetDeploymentsRequest generates a "aws/request.Request" representing the
4567// client's request for the GetDeployments operation. The "output" return
4568// value will be populated with the request's response once the request completes
4569// successfully.
4570//
4571// Use "Send" method on the returned Request to send the API call to the service.
4572// the "output" return value is not valid until after Send returns without error.
4573//
4574// See GetDeployments for more information on using the GetDeployments
4575// API call, and error handling.
4576//
4577// This method is useful when you want to inject custom logic or configuration
4578// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4579//
4580//
4581//    // Example sending a request using the GetDeploymentsRequest method.
4582//    req, resp := client.GetDeploymentsRequest(params)
4583//
4584//    err := req.Send()
4585//    if err == nil { // resp is now filled
4586//        fmt.Println(resp)
4587//    }
4588func (c *APIGateway) GetDeploymentsRequest(input *GetDeploymentsInput) (req *request.Request, output *GetDeploymentsOutput) {
4589	op := &request.Operation{
4590		Name:       opGetDeployments,
4591		HTTPMethod: "GET",
4592		HTTPPath:   "/restapis/{restapi_id}/deployments",
4593		Paginator: &request.Paginator{
4594			InputTokens:     []string{"position"},
4595			OutputTokens:    []string{"position"},
4596			LimitToken:      "limit",
4597			TruncationToken: "",
4598		},
4599	}
4600
4601	if input == nil {
4602		input = &GetDeploymentsInput{}
4603	}
4604
4605	output = &GetDeploymentsOutput{}
4606	req = c.newRequest(op, input, output)
4607	return
4608}
4609
4610// GetDeployments API operation for Amazon API Gateway.
4611//
4612// Gets information about a Deployments collection.
4613//
4614// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4615// with awserr.Error's Code and Message methods to get detailed information about
4616// the error.
4617//
4618// See the AWS API reference guide for Amazon API Gateway's
4619// API operation GetDeployments for usage and error information.
4620//
4621// Returned Error Codes:
4622//   * ErrCodeBadRequestException "BadRequestException"
4623//   The submitted request is not valid, for example, the input is incomplete
4624//   or incorrect. See the accompanying error message for details.
4625//
4626//   * ErrCodeUnauthorizedException "UnauthorizedException"
4627//   The request is denied because the caller has insufficient permissions.
4628//
4629//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4630//   The request has reached its throttling limit. Retry after the specified time
4631//   period.
4632//
4633//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
4634//   The requested service is not available. For details see the accompanying
4635//   error message. Retry after the specified time period.
4636//
4637func (c *APIGateway) GetDeployments(input *GetDeploymentsInput) (*GetDeploymentsOutput, error) {
4638	req, out := c.GetDeploymentsRequest(input)
4639	return out, req.Send()
4640}
4641
4642// GetDeploymentsWithContext is the same as GetDeployments with the addition of
4643// the ability to pass a context and additional request options.
4644//
4645// See GetDeployments for details on how to use this API operation.
4646//
4647// The context must be non-nil and will be used for request cancellation. If
4648// the context is nil a panic will occur. In the future the SDK may create
4649// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4650// for more information on using Contexts.
4651func (c *APIGateway) GetDeploymentsWithContext(ctx aws.Context, input *GetDeploymentsInput, opts ...request.Option) (*GetDeploymentsOutput, error) {
4652	req, out := c.GetDeploymentsRequest(input)
4653	req.SetContext(ctx)
4654	req.ApplyOptions(opts...)
4655	return out, req.Send()
4656}
4657
4658// GetDeploymentsPages iterates over the pages of a GetDeployments operation,
4659// calling the "fn" function with the response data for each page. To stop
4660// iterating, return false from the fn function.
4661//
4662// See GetDeployments method for more information on how to use this operation.
4663//
4664// Note: This operation can generate multiple requests to a service.
4665//
4666//    // Example iterating over at most 3 pages of a GetDeployments operation.
4667//    pageNum := 0
4668//    err := client.GetDeploymentsPages(params,
4669//        func(page *apigateway.GetDeploymentsOutput, lastPage bool) bool {
4670//            pageNum++
4671//            fmt.Println(page)
4672//            return pageNum <= 3
4673//        })
4674//
4675func (c *APIGateway) GetDeploymentsPages(input *GetDeploymentsInput, fn func(*GetDeploymentsOutput, bool) bool) error {
4676	return c.GetDeploymentsPagesWithContext(aws.BackgroundContext(), input, fn)
4677}
4678
4679// GetDeploymentsPagesWithContext same as GetDeploymentsPages except
4680// it takes a Context and allows setting request options on the pages.
4681//
4682// The context must be non-nil and will be used for request cancellation. If
4683// the context is nil a panic will occur. In the future the SDK may create
4684// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4685// for more information on using Contexts.
4686func (c *APIGateway) GetDeploymentsPagesWithContext(ctx aws.Context, input *GetDeploymentsInput, fn func(*GetDeploymentsOutput, bool) bool, opts ...request.Option) error {
4687	p := request.Pagination{
4688		NewRequest: func() (*request.Request, error) {
4689			var inCpy *GetDeploymentsInput
4690			if input != nil {
4691				tmp := *input
4692				inCpy = &tmp
4693			}
4694			req, _ := c.GetDeploymentsRequest(inCpy)
4695			req.SetContext(ctx)
4696			req.ApplyOptions(opts...)
4697			return req, nil
4698		},
4699	}
4700
4701	for p.Next() {
4702		if !fn(p.Page().(*GetDeploymentsOutput), !p.HasNextPage()) {
4703			break
4704		}
4705	}
4706
4707	return p.Err()
4708}
4709
4710const opGetDocumentationPart = "GetDocumentationPart"
4711
4712// GetDocumentationPartRequest generates a "aws/request.Request" representing the
4713// client's request for the GetDocumentationPart operation. The "output" return
4714// value will be populated with the request's response once the request completes
4715// successfully.
4716//
4717// Use "Send" method on the returned Request to send the API call to the service.
4718// the "output" return value is not valid until after Send returns without error.
4719//
4720// See GetDocumentationPart for more information on using the GetDocumentationPart
4721// API call, and error handling.
4722//
4723// This method is useful when you want to inject custom logic or configuration
4724// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4725//
4726//
4727//    // Example sending a request using the GetDocumentationPartRequest method.
4728//    req, resp := client.GetDocumentationPartRequest(params)
4729//
4730//    err := req.Send()
4731//    if err == nil { // resp is now filled
4732//        fmt.Println(resp)
4733//    }
4734func (c *APIGateway) GetDocumentationPartRequest(input *GetDocumentationPartInput) (req *request.Request, output *DocumentationPart) {
4735	op := &request.Operation{
4736		Name:       opGetDocumentationPart,
4737		HTTPMethod: "GET",
4738		HTTPPath:   "/restapis/{restapi_id}/documentation/parts/{part_id}",
4739	}
4740
4741	if input == nil {
4742		input = &GetDocumentationPartInput{}
4743	}
4744
4745	output = &DocumentationPart{}
4746	req = c.newRequest(op, input, output)
4747	return
4748}
4749
4750// GetDocumentationPart API operation for Amazon API Gateway.
4751//
4752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4753// with awserr.Error's Code and Message methods to get detailed information about
4754// the error.
4755//
4756// See the AWS API reference guide for Amazon API Gateway's
4757// API operation GetDocumentationPart for usage and error information.
4758//
4759// Returned Error Codes:
4760//   * ErrCodeUnauthorizedException "UnauthorizedException"
4761//   The request is denied because the caller has insufficient permissions.
4762//
4763//   * ErrCodeNotFoundException "NotFoundException"
4764//   The requested resource is not found. Make sure that the request URI is correct.
4765//
4766//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4767//   The request has reached its throttling limit. Retry after the specified time
4768//   period.
4769//
4770func (c *APIGateway) GetDocumentationPart(input *GetDocumentationPartInput) (*DocumentationPart, error) {
4771	req, out := c.GetDocumentationPartRequest(input)
4772	return out, req.Send()
4773}
4774
4775// GetDocumentationPartWithContext is the same as GetDocumentationPart with the addition of
4776// the ability to pass a context and additional request options.
4777//
4778// See GetDocumentationPart for details on how to use this API operation.
4779//
4780// The context must be non-nil and will be used for request cancellation. If
4781// the context is nil a panic will occur. In the future the SDK may create
4782// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4783// for more information on using Contexts.
4784func (c *APIGateway) GetDocumentationPartWithContext(ctx aws.Context, input *GetDocumentationPartInput, opts ...request.Option) (*DocumentationPart, error) {
4785	req, out := c.GetDocumentationPartRequest(input)
4786	req.SetContext(ctx)
4787	req.ApplyOptions(opts...)
4788	return out, req.Send()
4789}
4790
4791const opGetDocumentationParts = "GetDocumentationParts"
4792
4793// GetDocumentationPartsRequest generates a "aws/request.Request" representing the
4794// client's request for the GetDocumentationParts operation. The "output" return
4795// value will be populated with the request's response once the request completes
4796// successfully.
4797//
4798// Use "Send" method on the returned Request to send the API call to the service.
4799// the "output" return value is not valid until after Send returns without error.
4800//
4801// See GetDocumentationParts for more information on using the GetDocumentationParts
4802// API call, and error handling.
4803//
4804// This method is useful when you want to inject custom logic or configuration
4805// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4806//
4807//
4808//    // Example sending a request using the GetDocumentationPartsRequest method.
4809//    req, resp := client.GetDocumentationPartsRequest(params)
4810//
4811//    err := req.Send()
4812//    if err == nil { // resp is now filled
4813//        fmt.Println(resp)
4814//    }
4815func (c *APIGateway) GetDocumentationPartsRequest(input *GetDocumentationPartsInput) (req *request.Request, output *GetDocumentationPartsOutput) {
4816	op := &request.Operation{
4817		Name:       opGetDocumentationParts,
4818		HTTPMethod: "GET",
4819		HTTPPath:   "/restapis/{restapi_id}/documentation/parts",
4820	}
4821
4822	if input == nil {
4823		input = &GetDocumentationPartsInput{}
4824	}
4825
4826	output = &GetDocumentationPartsOutput{}
4827	req = c.newRequest(op, input, output)
4828	return
4829}
4830
4831// GetDocumentationParts API operation for Amazon API Gateway.
4832//
4833// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4834// with awserr.Error's Code and Message methods to get detailed information about
4835// the error.
4836//
4837// See the AWS API reference guide for Amazon API Gateway's
4838// API operation GetDocumentationParts for usage and error information.
4839//
4840// Returned Error Codes:
4841//   * ErrCodeBadRequestException "BadRequestException"
4842//   The submitted request is not valid, for example, the input is incomplete
4843//   or incorrect. See the accompanying error message for details.
4844//
4845//   * ErrCodeUnauthorizedException "UnauthorizedException"
4846//   The request is denied because the caller has insufficient permissions.
4847//
4848//   * ErrCodeNotFoundException "NotFoundException"
4849//   The requested resource is not found. Make sure that the request URI is correct.
4850//
4851//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4852//   The request has reached its throttling limit. Retry after the specified time
4853//   period.
4854//
4855func (c *APIGateway) GetDocumentationParts(input *GetDocumentationPartsInput) (*GetDocumentationPartsOutput, error) {
4856	req, out := c.GetDocumentationPartsRequest(input)
4857	return out, req.Send()
4858}
4859
4860// GetDocumentationPartsWithContext is the same as GetDocumentationParts with the addition of
4861// the ability to pass a context and additional request options.
4862//
4863// See GetDocumentationParts for details on how to use this API operation.
4864//
4865// The context must be non-nil and will be used for request cancellation. If
4866// the context is nil a panic will occur. In the future the SDK may create
4867// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4868// for more information on using Contexts.
4869func (c *APIGateway) GetDocumentationPartsWithContext(ctx aws.Context, input *GetDocumentationPartsInput, opts ...request.Option) (*GetDocumentationPartsOutput, error) {
4870	req, out := c.GetDocumentationPartsRequest(input)
4871	req.SetContext(ctx)
4872	req.ApplyOptions(opts...)
4873	return out, req.Send()
4874}
4875
4876const opGetDocumentationVersion = "GetDocumentationVersion"
4877
4878// GetDocumentationVersionRequest generates a "aws/request.Request" representing the
4879// client's request for the GetDocumentationVersion operation. The "output" return
4880// value will be populated with the request's response once the request completes
4881// successfully.
4882//
4883// Use "Send" method on the returned Request to send the API call to the service.
4884// the "output" return value is not valid until after Send returns without error.
4885//
4886// See GetDocumentationVersion for more information on using the GetDocumentationVersion
4887// API call, and error handling.
4888//
4889// This method is useful when you want to inject custom logic or configuration
4890// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4891//
4892//
4893//    // Example sending a request using the GetDocumentationVersionRequest method.
4894//    req, resp := client.GetDocumentationVersionRequest(params)
4895//
4896//    err := req.Send()
4897//    if err == nil { // resp is now filled
4898//        fmt.Println(resp)
4899//    }
4900func (c *APIGateway) GetDocumentationVersionRequest(input *GetDocumentationVersionInput) (req *request.Request, output *DocumentationVersion) {
4901	op := &request.Operation{
4902		Name:       opGetDocumentationVersion,
4903		HTTPMethod: "GET",
4904		HTTPPath:   "/restapis/{restapi_id}/documentation/versions/{doc_version}",
4905	}
4906
4907	if input == nil {
4908		input = &GetDocumentationVersionInput{}
4909	}
4910
4911	output = &DocumentationVersion{}
4912	req = c.newRequest(op, input, output)
4913	return
4914}
4915
4916// GetDocumentationVersion API operation for Amazon API Gateway.
4917//
4918// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4919// with awserr.Error's Code and Message methods to get detailed information about
4920// the error.
4921//
4922// See the AWS API reference guide for Amazon API Gateway's
4923// API operation GetDocumentationVersion for usage and error information.
4924//
4925// Returned Error Codes:
4926//   * ErrCodeUnauthorizedException "UnauthorizedException"
4927//   The request is denied because the caller has insufficient permissions.
4928//
4929//   * ErrCodeNotFoundException "NotFoundException"
4930//   The requested resource is not found. Make sure that the request URI is correct.
4931//
4932//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4933//   The request has reached its throttling limit. Retry after the specified time
4934//   period.
4935//
4936func (c *APIGateway) GetDocumentationVersion(input *GetDocumentationVersionInput) (*DocumentationVersion, error) {
4937	req, out := c.GetDocumentationVersionRequest(input)
4938	return out, req.Send()
4939}
4940
4941// GetDocumentationVersionWithContext is the same as GetDocumentationVersion with the addition of
4942// the ability to pass a context and additional request options.
4943//
4944// See GetDocumentationVersion for details on how to use this API operation.
4945//
4946// The context must be non-nil and will be used for request cancellation. If
4947// the context is nil a panic will occur. In the future the SDK may create
4948// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4949// for more information on using Contexts.
4950func (c *APIGateway) GetDocumentationVersionWithContext(ctx aws.Context, input *GetDocumentationVersionInput, opts ...request.Option) (*DocumentationVersion, error) {
4951	req, out := c.GetDocumentationVersionRequest(input)
4952	req.SetContext(ctx)
4953	req.ApplyOptions(opts...)
4954	return out, req.Send()
4955}
4956
4957const opGetDocumentationVersions = "GetDocumentationVersions"
4958
4959// GetDocumentationVersionsRequest generates a "aws/request.Request" representing the
4960// client's request for the GetDocumentationVersions operation. The "output" return
4961// value will be populated with the request's response once the request completes
4962// successfully.
4963//
4964// Use "Send" method on the returned Request to send the API call to the service.
4965// the "output" return value is not valid until after Send returns without error.
4966//
4967// See GetDocumentationVersions for more information on using the GetDocumentationVersions
4968// API call, and error handling.
4969//
4970// This method is useful when you want to inject custom logic or configuration
4971// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4972//
4973//
4974//    // Example sending a request using the GetDocumentationVersionsRequest method.
4975//    req, resp := client.GetDocumentationVersionsRequest(params)
4976//
4977//    err := req.Send()
4978//    if err == nil { // resp is now filled
4979//        fmt.Println(resp)
4980//    }
4981func (c *APIGateway) GetDocumentationVersionsRequest(input *GetDocumentationVersionsInput) (req *request.Request, output *GetDocumentationVersionsOutput) {
4982	op := &request.Operation{
4983		Name:       opGetDocumentationVersions,
4984		HTTPMethod: "GET",
4985		HTTPPath:   "/restapis/{restapi_id}/documentation/versions",
4986	}
4987
4988	if input == nil {
4989		input = &GetDocumentationVersionsInput{}
4990	}
4991
4992	output = &GetDocumentationVersionsOutput{}
4993	req = c.newRequest(op, input, output)
4994	return
4995}
4996
4997// GetDocumentationVersions API operation for Amazon API Gateway.
4998//
4999// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5000// with awserr.Error's Code and Message methods to get detailed information about
5001// the error.
5002//
5003// See the AWS API reference guide for Amazon API Gateway's
5004// API operation GetDocumentationVersions for usage and error information.
5005//
5006// Returned Error Codes:
5007//   * ErrCodeBadRequestException "BadRequestException"
5008//   The submitted request is not valid, for example, the input is incomplete
5009//   or incorrect. See the accompanying error message for details.
5010//
5011//   * ErrCodeUnauthorizedException "UnauthorizedException"
5012//   The request is denied because the caller has insufficient permissions.
5013//
5014//   * ErrCodeNotFoundException "NotFoundException"
5015//   The requested resource is not found. Make sure that the request URI is correct.
5016//
5017//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5018//   The request has reached its throttling limit. Retry after the specified time
5019//   period.
5020//
5021func (c *APIGateway) GetDocumentationVersions(input *GetDocumentationVersionsInput) (*GetDocumentationVersionsOutput, error) {
5022	req, out := c.GetDocumentationVersionsRequest(input)
5023	return out, req.Send()
5024}
5025
5026// GetDocumentationVersionsWithContext is the same as GetDocumentationVersions with the addition of
5027// the ability to pass a context and additional request options.
5028//
5029// See GetDocumentationVersions for details on how to use this API operation.
5030//
5031// The context must be non-nil and will be used for request cancellation. If
5032// the context is nil a panic will occur. In the future the SDK may create
5033// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5034// for more information on using Contexts.
5035func (c *APIGateway) GetDocumentationVersionsWithContext(ctx aws.Context, input *GetDocumentationVersionsInput, opts ...request.Option) (*GetDocumentationVersionsOutput, error) {
5036	req, out := c.GetDocumentationVersionsRequest(input)
5037	req.SetContext(ctx)
5038	req.ApplyOptions(opts...)
5039	return out, req.Send()
5040}
5041
5042const opGetDomainName = "GetDomainName"
5043
5044// GetDomainNameRequest generates a "aws/request.Request" representing the
5045// client's request for the GetDomainName operation. The "output" return
5046// value will be populated with the request's response once the request completes
5047// successfully.
5048//
5049// Use "Send" method on the returned Request to send the API call to the service.
5050// the "output" return value is not valid until after Send returns without error.
5051//
5052// See GetDomainName for more information on using the GetDomainName
5053// API call, and error handling.
5054//
5055// This method is useful when you want to inject custom logic or configuration
5056// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5057//
5058//
5059//    // Example sending a request using the GetDomainNameRequest method.
5060//    req, resp := client.GetDomainNameRequest(params)
5061//
5062//    err := req.Send()
5063//    if err == nil { // resp is now filled
5064//        fmt.Println(resp)
5065//    }
5066func (c *APIGateway) GetDomainNameRequest(input *GetDomainNameInput) (req *request.Request, output *DomainName) {
5067	op := &request.Operation{
5068		Name:       opGetDomainName,
5069		HTTPMethod: "GET",
5070		HTTPPath:   "/domainnames/{domain_name}",
5071	}
5072
5073	if input == nil {
5074		input = &GetDomainNameInput{}
5075	}
5076
5077	output = &DomainName{}
5078	req = c.newRequest(op, input, output)
5079	return
5080}
5081
5082// GetDomainName API operation for Amazon API Gateway.
5083//
5084// Represents a domain name that is contained in a simpler, more intuitive URL
5085// that can be called.
5086//
5087// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5088// with awserr.Error's Code and Message methods to get detailed information about
5089// the error.
5090//
5091// See the AWS API reference guide for Amazon API Gateway's
5092// API operation GetDomainName for usage and error information.
5093//
5094// Returned Error Codes:
5095//   * ErrCodeUnauthorizedException "UnauthorizedException"
5096//   The request is denied because the caller has insufficient permissions.
5097//
5098//   * ErrCodeNotFoundException "NotFoundException"
5099//   The requested resource is not found. Make sure that the request URI is correct.
5100//
5101//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
5102//   The requested service is not available. For details see the accompanying
5103//   error message. Retry after the specified time period.
5104//
5105//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5106//   The request has reached its throttling limit. Retry after the specified time
5107//   period.
5108//
5109func (c *APIGateway) GetDomainName(input *GetDomainNameInput) (*DomainName, error) {
5110	req, out := c.GetDomainNameRequest(input)
5111	return out, req.Send()
5112}
5113
5114// GetDomainNameWithContext is the same as GetDomainName with the addition of
5115// the ability to pass a context and additional request options.
5116//
5117// See GetDomainName for details on how to use this API operation.
5118//
5119// The context must be non-nil and will be used for request cancellation. If
5120// the context is nil a panic will occur. In the future the SDK may create
5121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5122// for more information on using Contexts.
5123func (c *APIGateway) GetDomainNameWithContext(ctx aws.Context, input *GetDomainNameInput, opts ...request.Option) (*DomainName, error) {
5124	req, out := c.GetDomainNameRequest(input)
5125	req.SetContext(ctx)
5126	req.ApplyOptions(opts...)
5127	return out, req.Send()
5128}
5129
5130const opGetDomainNames = "GetDomainNames"
5131
5132// GetDomainNamesRequest generates a "aws/request.Request" representing the
5133// client's request for the GetDomainNames operation. The "output" return
5134// value will be populated with the request's response once the request completes
5135// successfully.
5136//
5137// Use "Send" method on the returned Request to send the API call to the service.
5138// the "output" return value is not valid until after Send returns without error.
5139//
5140// See GetDomainNames for more information on using the GetDomainNames
5141// API call, and error handling.
5142//
5143// This method is useful when you want to inject custom logic or configuration
5144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5145//
5146//
5147//    // Example sending a request using the GetDomainNamesRequest method.
5148//    req, resp := client.GetDomainNamesRequest(params)
5149//
5150//    err := req.Send()
5151//    if err == nil { // resp is now filled
5152//        fmt.Println(resp)
5153//    }
5154func (c *APIGateway) GetDomainNamesRequest(input *GetDomainNamesInput) (req *request.Request, output *GetDomainNamesOutput) {
5155	op := &request.Operation{
5156		Name:       opGetDomainNames,
5157		HTTPMethod: "GET",
5158		HTTPPath:   "/domainnames",
5159		Paginator: &request.Paginator{
5160			InputTokens:     []string{"position"},
5161			OutputTokens:    []string{"position"},
5162			LimitToken:      "limit",
5163			TruncationToken: "",
5164		},
5165	}
5166
5167	if input == nil {
5168		input = &GetDomainNamesInput{}
5169	}
5170
5171	output = &GetDomainNamesOutput{}
5172	req = c.newRequest(op, input, output)
5173	return
5174}
5175
5176// GetDomainNames API operation for Amazon API Gateway.
5177//
5178// Represents a collection of DomainName resources.
5179//
5180// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5181// with awserr.Error's Code and Message methods to get detailed information about
5182// the error.
5183//
5184// See the AWS API reference guide for Amazon API Gateway's
5185// API operation GetDomainNames for usage and error information.
5186//
5187// Returned Error Codes:
5188//   * ErrCodeBadRequestException "BadRequestException"
5189//   The submitted request is not valid, for example, the input is incomplete
5190//   or incorrect. See the accompanying error message for details.
5191//
5192//   * ErrCodeUnauthorizedException "UnauthorizedException"
5193//   The request is denied because the caller has insufficient permissions.
5194//
5195//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5196//   The request has reached its throttling limit. Retry after the specified time
5197//   period.
5198//
5199func (c *APIGateway) GetDomainNames(input *GetDomainNamesInput) (*GetDomainNamesOutput, error) {
5200	req, out := c.GetDomainNamesRequest(input)
5201	return out, req.Send()
5202}
5203
5204// GetDomainNamesWithContext is the same as GetDomainNames with the addition of
5205// the ability to pass a context and additional request options.
5206//
5207// See GetDomainNames for details on how to use this API operation.
5208//
5209// The context must be non-nil and will be used for request cancellation. If
5210// the context is nil a panic will occur. In the future the SDK may create
5211// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5212// for more information on using Contexts.
5213func (c *APIGateway) GetDomainNamesWithContext(ctx aws.Context, input *GetDomainNamesInput, opts ...request.Option) (*GetDomainNamesOutput, error) {
5214	req, out := c.GetDomainNamesRequest(input)
5215	req.SetContext(ctx)
5216	req.ApplyOptions(opts...)
5217	return out, req.Send()
5218}
5219
5220// GetDomainNamesPages iterates over the pages of a GetDomainNames operation,
5221// calling the "fn" function with the response data for each page. To stop
5222// iterating, return false from the fn function.
5223//
5224// See GetDomainNames method for more information on how to use this operation.
5225//
5226// Note: This operation can generate multiple requests to a service.
5227//
5228//    // Example iterating over at most 3 pages of a GetDomainNames operation.
5229//    pageNum := 0
5230//    err := client.GetDomainNamesPages(params,
5231//        func(page *apigateway.GetDomainNamesOutput, lastPage bool) bool {
5232//            pageNum++
5233//            fmt.Println(page)
5234//            return pageNum <= 3
5235//        })
5236//
5237func (c *APIGateway) GetDomainNamesPages(input *GetDomainNamesInput, fn func(*GetDomainNamesOutput, bool) bool) error {
5238	return c.GetDomainNamesPagesWithContext(aws.BackgroundContext(), input, fn)
5239}
5240
5241// GetDomainNamesPagesWithContext same as GetDomainNamesPages except
5242// it takes a Context and allows setting request options on the pages.
5243//
5244// The context must be non-nil and will be used for request cancellation. If
5245// the context is nil a panic will occur. In the future the SDK may create
5246// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5247// for more information on using Contexts.
5248func (c *APIGateway) GetDomainNamesPagesWithContext(ctx aws.Context, input *GetDomainNamesInput, fn func(*GetDomainNamesOutput, bool) bool, opts ...request.Option) error {
5249	p := request.Pagination{
5250		NewRequest: func() (*request.Request, error) {
5251			var inCpy *GetDomainNamesInput
5252			if input != nil {
5253				tmp := *input
5254				inCpy = &tmp
5255			}
5256			req, _ := c.GetDomainNamesRequest(inCpy)
5257			req.SetContext(ctx)
5258			req.ApplyOptions(opts...)
5259			return req, nil
5260		},
5261	}
5262
5263	for p.Next() {
5264		if !fn(p.Page().(*GetDomainNamesOutput), !p.HasNextPage()) {
5265			break
5266		}
5267	}
5268
5269	return p.Err()
5270}
5271
5272const opGetExport = "GetExport"
5273
5274// GetExportRequest generates a "aws/request.Request" representing the
5275// client's request for the GetExport operation. The "output" return
5276// value will be populated with the request's response once the request completes
5277// successfully.
5278//
5279// Use "Send" method on the returned Request to send the API call to the service.
5280// the "output" return value is not valid until after Send returns without error.
5281//
5282// See GetExport for more information on using the GetExport
5283// API call, and error handling.
5284//
5285// This method is useful when you want to inject custom logic or configuration
5286// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5287//
5288//
5289//    // Example sending a request using the GetExportRequest method.
5290//    req, resp := client.GetExportRequest(params)
5291//
5292//    err := req.Send()
5293//    if err == nil { // resp is now filled
5294//        fmt.Println(resp)
5295//    }
5296func (c *APIGateway) GetExportRequest(input *GetExportInput) (req *request.Request, output *GetExportOutput) {
5297	op := &request.Operation{
5298		Name:       opGetExport,
5299		HTTPMethod: "GET",
5300		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/exports/{export_type}",
5301	}
5302
5303	if input == nil {
5304		input = &GetExportInput{}
5305	}
5306
5307	output = &GetExportOutput{}
5308	req = c.newRequest(op, input, output)
5309	return
5310}
5311
5312// GetExport API operation for Amazon API Gateway.
5313//
5314// Exports a deployed version of a RestApi in a specified format.
5315//
5316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5317// with awserr.Error's Code and Message methods to get detailed information about
5318// the error.
5319//
5320// See the AWS API reference guide for Amazon API Gateway's
5321// API operation GetExport for usage and error information.
5322//
5323// Returned Error Codes:
5324//   * ErrCodeUnauthorizedException "UnauthorizedException"
5325//   The request is denied because the caller has insufficient permissions.
5326//
5327//   * ErrCodeNotFoundException "NotFoundException"
5328//   The requested resource is not found. Make sure that the request URI is correct.
5329//
5330//   * ErrCodeBadRequestException "BadRequestException"
5331//   The submitted request is not valid, for example, the input is incomplete
5332//   or incorrect. See the accompanying error message for details.
5333//
5334//   * ErrCodeConflictException "ConflictException"
5335//   The request configuration has conflicts. For details, see the accompanying
5336//   error message.
5337//
5338//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5339//   The request has reached its throttling limit. Retry after the specified time
5340//   period.
5341//
5342func (c *APIGateway) GetExport(input *GetExportInput) (*GetExportOutput, error) {
5343	req, out := c.GetExportRequest(input)
5344	return out, req.Send()
5345}
5346
5347// GetExportWithContext is the same as GetExport with the addition of
5348// the ability to pass a context and additional request options.
5349//
5350// See GetExport for details on how to use this API operation.
5351//
5352// The context must be non-nil and will be used for request cancellation. If
5353// the context is nil a panic will occur. In the future the SDK may create
5354// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5355// for more information on using Contexts.
5356func (c *APIGateway) GetExportWithContext(ctx aws.Context, input *GetExportInput, opts ...request.Option) (*GetExportOutput, error) {
5357	req, out := c.GetExportRequest(input)
5358	req.SetContext(ctx)
5359	req.ApplyOptions(opts...)
5360	return out, req.Send()
5361}
5362
5363const opGetGatewayResponse = "GetGatewayResponse"
5364
5365// GetGatewayResponseRequest generates a "aws/request.Request" representing the
5366// client's request for the GetGatewayResponse operation. The "output" return
5367// value will be populated with the request's response once the request completes
5368// successfully.
5369//
5370// Use "Send" method on the returned Request to send the API call to the service.
5371// the "output" return value is not valid until after Send returns without error.
5372//
5373// See GetGatewayResponse for more information on using the GetGatewayResponse
5374// API call, and error handling.
5375//
5376// This method is useful when you want to inject custom logic or configuration
5377// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5378//
5379//
5380//    // Example sending a request using the GetGatewayResponseRequest method.
5381//    req, resp := client.GetGatewayResponseRequest(params)
5382//
5383//    err := req.Send()
5384//    if err == nil { // resp is now filled
5385//        fmt.Println(resp)
5386//    }
5387func (c *APIGateway) GetGatewayResponseRequest(input *GetGatewayResponseInput) (req *request.Request, output *UpdateGatewayResponseOutput) {
5388	op := &request.Operation{
5389		Name:       opGetGatewayResponse,
5390		HTTPMethod: "GET",
5391		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
5392	}
5393
5394	if input == nil {
5395		input = &GetGatewayResponseInput{}
5396	}
5397
5398	output = &UpdateGatewayResponseOutput{}
5399	req = c.newRequest(op, input, output)
5400	return
5401}
5402
5403// GetGatewayResponse API operation for Amazon API Gateway.
5404//
5405// Gets a GatewayResponse of a specified response type on the given RestApi.
5406//
5407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5408// with awserr.Error's Code and Message methods to get detailed information about
5409// the error.
5410//
5411// See the AWS API reference guide for Amazon API Gateway's
5412// API operation GetGatewayResponse for usage and error information.
5413//
5414// Returned Error Codes:
5415//   * ErrCodeUnauthorizedException "UnauthorizedException"
5416//   The request is denied because the caller has insufficient permissions.
5417//
5418//   * ErrCodeNotFoundException "NotFoundException"
5419//   The requested resource is not found. Make sure that the request URI is correct.
5420//
5421//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5422//   The request has reached its throttling limit. Retry after the specified time
5423//   period.
5424//
5425func (c *APIGateway) GetGatewayResponse(input *GetGatewayResponseInput) (*UpdateGatewayResponseOutput, error) {
5426	req, out := c.GetGatewayResponseRequest(input)
5427	return out, req.Send()
5428}
5429
5430// GetGatewayResponseWithContext is the same as GetGatewayResponse with the addition of
5431// the ability to pass a context and additional request options.
5432//
5433// See GetGatewayResponse for details on how to use this API operation.
5434//
5435// The context must be non-nil and will be used for request cancellation. If
5436// the context is nil a panic will occur. In the future the SDK may create
5437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5438// for more information on using Contexts.
5439func (c *APIGateway) GetGatewayResponseWithContext(ctx aws.Context, input *GetGatewayResponseInput, opts ...request.Option) (*UpdateGatewayResponseOutput, error) {
5440	req, out := c.GetGatewayResponseRequest(input)
5441	req.SetContext(ctx)
5442	req.ApplyOptions(opts...)
5443	return out, req.Send()
5444}
5445
5446const opGetGatewayResponses = "GetGatewayResponses"
5447
5448// GetGatewayResponsesRequest generates a "aws/request.Request" representing the
5449// client's request for the GetGatewayResponses operation. The "output" return
5450// value will be populated with the request's response once the request completes
5451// successfully.
5452//
5453// Use "Send" method on the returned Request to send the API call to the service.
5454// the "output" return value is not valid until after Send returns without error.
5455//
5456// See GetGatewayResponses for more information on using the GetGatewayResponses
5457// API call, and error handling.
5458//
5459// This method is useful when you want to inject custom logic or configuration
5460// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5461//
5462//
5463//    // Example sending a request using the GetGatewayResponsesRequest method.
5464//    req, resp := client.GetGatewayResponsesRequest(params)
5465//
5466//    err := req.Send()
5467//    if err == nil { // resp is now filled
5468//        fmt.Println(resp)
5469//    }
5470func (c *APIGateway) GetGatewayResponsesRequest(input *GetGatewayResponsesInput) (req *request.Request, output *GetGatewayResponsesOutput) {
5471	op := &request.Operation{
5472		Name:       opGetGatewayResponses,
5473		HTTPMethod: "GET",
5474		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses",
5475	}
5476
5477	if input == nil {
5478		input = &GetGatewayResponsesInput{}
5479	}
5480
5481	output = &GetGatewayResponsesOutput{}
5482	req = c.newRequest(op, input, output)
5483	return
5484}
5485
5486// GetGatewayResponses API operation for Amazon API Gateway.
5487//
5488// Gets the GatewayResponses collection on the given RestApi. If an API developer
5489// has not added any definitions for gateway responses, the result will be the
5490// API Gateway-generated default GatewayResponses collection for the supported
5491// response types.
5492//
5493// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5494// with awserr.Error's Code and Message methods to get detailed information about
5495// the error.
5496//
5497// See the AWS API reference guide for Amazon API Gateway's
5498// API operation GetGatewayResponses for usage and error information.
5499//
5500// Returned Error Codes:
5501//   * ErrCodeBadRequestException "BadRequestException"
5502//   The submitted request is not valid, for example, the input is incomplete
5503//   or incorrect. See the accompanying error message for details.
5504//
5505//   * ErrCodeUnauthorizedException "UnauthorizedException"
5506//   The request is denied because the caller has insufficient permissions.
5507//
5508//   * ErrCodeNotFoundException "NotFoundException"
5509//   The requested resource is not found. Make sure that the request URI is correct.
5510//
5511//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5512//   The request has reached its throttling limit. Retry after the specified time
5513//   period.
5514//
5515func (c *APIGateway) GetGatewayResponses(input *GetGatewayResponsesInput) (*GetGatewayResponsesOutput, error) {
5516	req, out := c.GetGatewayResponsesRequest(input)
5517	return out, req.Send()
5518}
5519
5520// GetGatewayResponsesWithContext is the same as GetGatewayResponses with the addition of
5521// the ability to pass a context and additional request options.
5522//
5523// See GetGatewayResponses for details on how to use this API operation.
5524//
5525// The context must be non-nil and will be used for request cancellation. If
5526// the context is nil a panic will occur. In the future the SDK may create
5527// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5528// for more information on using Contexts.
5529func (c *APIGateway) GetGatewayResponsesWithContext(ctx aws.Context, input *GetGatewayResponsesInput, opts ...request.Option) (*GetGatewayResponsesOutput, error) {
5530	req, out := c.GetGatewayResponsesRequest(input)
5531	req.SetContext(ctx)
5532	req.ApplyOptions(opts...)
5533	return out, req.Send()
5534}
5535
5536const opGetIntegration = "GetIntegration"
5537
5538// GetIntegrationRequest generates a "aws/request.Request" representing the
5539// client's request for the GetIntegration operation. The "output" return
5540// value will be populated with the request's response once the request completes
5541// successfully.
5542//
5543// Use "Send" method on the returned Request to send the API call to the service.
5544// the "output" return value is not valid until after Send returns without error.
5545//
5546// See GetIntegration for more information on using the GetIntegration
5547// API call, and error handling.
5548//
5549// This method is useful when you want to inject custom logic or configuration
5550// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5551//
5552//
5553//    // Example sending a request using the GetIntegrationRequest method.
5554//    req, resp := client.GetIntegrationRequest(params)
5555//
5556//    err := req.Send()
5557//    if err == nil { // resp is now filled
5558//        fmt.Println(resp)
5559//    }
5560func (c *APIGateway) GetIntegrationRequest(input *GetIntegrationInput) (req *request.Request, output *Integration) {
5561	op := &request.Operation{
5562		Name:       opGetIntegration,
5563		HTTPMethod: "GET",
5564		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
5565	}
5566
5567	if input == nil {
5568		input = &GetIntegrationInput{}
5569	}
5570
5571	output = &Integration{}
5572	req = c.newRequest(op, input, output)
5573	return
5574}
5575
5576// GetIntegration API operation for Amazon API Gateway.
5577//
5578// Get the integration settings.
5579//
5580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5581// with awserr.Error's Code and Message methods to get detailed information about
5582// the error.
5583//
5584// See the AWS API reference guide for Amazon API Gateway's
5585// API operation GetIntegration for usage and error information.
5586//
5587// Returned Error Codes:
5588//   * ErrCodeUnauthorizedException "UnauthorizedException"
5589//   The request is denied because the caller has insufficient permissions.
5590//
5591//   * ErrCodeNotFoundException "NotFoundException"
5592//   The requested resource is not found. Make sure that the request URI is correct.
5593//
5594//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5595//   The request has reached its throttling limit. Retry after the specified time
5596//   period.
5597//
5598func (c *APIGateway) GetIntegration(input *GetIntegrationInput) (*Integration, error) {
5599	req, out := c.GetIntegrationRequest(input)
5600	return out, req.Send()
5601}
5602
5603// GetIntegrationWithContext is the same as GetIntegration with the addition of
5604// the ability to pass a context and additional request options.
5605//
5606// See GetIntegration for details on how to use this API operation.
5607//
5608// The context must be non-nil and will be used for request cancellation. If
5609// the context is nil a panic will occur. In the future the SDK may create
5610// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5611// for more information on using Contexts.
5612func (c *APIGateway) GetIntegrationWithContext(ctx aws.Context, input *GetIntegrationInput, opts ...request.Option) (*Integration, error) {
5613	req, out := c.GetIntegrationRequest(input)
5614	req.SetContext(ctx)
5615	req.ApplyOptions(opts...)
5616	return out, req.Send()
5617}
5618
5619const opGetIntegrationResponse = "GetIntegrationResponse"
5620
5621// GetIntegrationResponseRequest generates a "aws/request.Request" representing the
5622// client's request for the GetIntegrationResponse operation. The "output" return
5623// value will be populated with the request's response once the request completes
5624// successfully.
5625//
5626// Use "Send" method on the returned Request to send the API call to the service.
5627// the "output" return value is not valid until after Send returns without error.
5628//
5629// See GetIntegrationResponse for more information on using the GetIntegrationResponse
5630// API call, and error handling.
5631//
5632// This method is useful when you want to inject custom logic or configuration
5633// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5634//
5635//
5636//    // Example sending a request using the GetIntegrationResponseRequest method.
5637//    req, resp := client.GetIntegrationResponseRequest(params)
5638//
5639//    err := req.Send()
5640//    if err == nil { // resp is now filled
5641//        fmt.Println(resp)
5642//    }
5643func (c *APIGateway) GetIntegrationResponseRequest(input *GetIntegrationResponseInput) (req *request.Request, output *IntegrationResponse) {
5644	op := &request.Operation{
5645		Name:       opGetIntegrationResponse,
5646		HTTPMethod: "GET",
5647		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
5648	}
5649
5650	if input == nil {
5651		input = &GetIntegrationResponseInput{}
5652	}
5653
5654	output = &IntegrationResponse{}
5655	req = c.newRequest(op, input, output)
5656	return
5657}
5658
5659// GetIntegrationResponse API operation for Amazon API Gateway.
5660//
5661// Represents a get integration response.
5662//
5663// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5664// with awserr.Error's Code and Message methods to get detailed information about
5665// the error.
5666//
5667// See the AWS API reference guide for Amazon API Gateway's
5668// API operation GetIntegrationResponse for usage and error information.
5669//
5670// Returned Error Codes:
5671//   * ErrCodeUnauthorizedException "UnauthorizedException"
5672//   The request is denied because the caller has insufficient permissions.
5673//
5674//   * ErrCodeNotFoundException "NotFoundException"
5675//   The requested resource is not found. Make sure that the request URI is correct.
5676//
5677//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5678//   The request has reached its throttling limit. Retry after the specified time
5679//   period.
5680//
5681func (c *APIGateway) GetIntegrationResponse(input *GetIntegrationResponseInput) (*IntegrationResponse, error) {
5682	req, out := c.GetIntegrationResponseRequest(input)
5683	return out, req.Send()
5684}
5685
5686// GetIntegrationResponseWithContext is the same as GetIntegrationResponse with the addition of
5687// the ability to pass a context and additional request options.
5688//
5689// See GetIntegrationResponse for details on how to use this API operation.
5690//
5691// The context must be non-nil and will be used for request cancellation. If
5692// the context is nil a panic will occur. In the future the SDK may create
5693// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5694// for more information on using Contexts.
5695func (c *APIGateway) GetIntegrationResponseWithContext(ctx aws.Context, input *GetIntegrationResponseInput, opts ...request.Option) (*IntegrationResponse, error) {
5696	req, out := c.GetIntegrationResponseRequest(input)
5697	req.SetContext(ctx)
5698	req.ApplyOptions(opts...)
5699	return out, req.Send()
5700}
5701
5702const opGetMethod = "GetMethod"
5703
5704// GetMethodRequest generates a "aws/request.Request" representing the
5705// client's request for the GetMethod operation. The "output" return
5706// value will be populated with the request's response once the request completes
5707// successfully.
5708//
5709// Use "Send" method on the returned Request to send the API call to the service.
5710// the "output" return value is not valid until after Send returns without error.
5711//
5712// See GetMethod for more information on using the GetMethod
5713// API call, and error handling.
5714//
5715// This method is useful when you want to inject custom logic or configuration
5716// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5717//
5718//
5719//    // Example sending a request using the GetMethodRequest method.
5720//    req, resp := client.GetMethodRequest(params)
5721//
5722//    err := req.Send()
5723//    if err == nil { // resp is now filled
5724//        fmt.Println(resp)
5725//    }
5726func (c *APIGateway) GetMethodRequest(input *GetMethodInput) (req *request.Request, output *Method) {
5727	op := &request.Operation{
5728		Name:       opGetMethod,
5729		HTTPMethod: "GET",
5730		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
5731	}
5732
5733	if input == nil {
5734		input = &GetMethodInput{}
5735	}
5736
5737	output = &Method{}
5738	req = c.newRequest(op, input, output)
5739	return
5740}
5741
5742// GetMethod API operation for Amazon API Gateway.
5743//
5744// Describe an existing Method resource.
5745//
5746// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5747// with awserr.Error's Code and Message methods to get detailed information about
5748// the error.
5749//
5750// See the AWS API reference guide for Amazon API Gateway's
5751// API operation GetMethod for usage and error information.
5752//
5753// Returned Error Codes:
5754//   * ErrCodeUnauthorizedException "UnauthorizedException"
5755//   The request is denied because the caller has insufficient permissions.
5756//
5757//   * ErrCodeNotFoundException "NotFoundException"
5758//   The requested resource is not found. Make sure that the request URI is correct.
5759//
5760//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5761//   The request has reached its throttling limit. Retry after the specified time
5762//   period.
5763//
5764func (c *APIGateway) GetMethod(input *GetMethodInput) (*Method, error) {
5765	req, out := c.GetMethodRequest(input)
5766	return out, req.Send()
5767}
5768
5769// GetMethodWithContext is the same as GetMethod with the addition of
5770// the ability to pass a context and additional request options.
5771//
5772// See GetMethod for details on how to use this API operation.
5773//
5774// The context must be non-nil and will be used for request cancellation. If
5775// the context is nil a panic will occur. In the future the SDK may create
5776// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5777// for more information on using Contexts.
5778func (c *APIGateway) GetMethodWithContext(ctx aws.Context, input *GetMethodInput, opts ...request.Option) (*Method, error) {
5779	req, out := c.GetMethodRequest(input)
5780	req.SetContext(ctx)
5781	req.ApplyOptions(opts...)
5782	return out, req.Send()
5783}
5784
5785const opGetMethodResponse = "GetMethodResponse"
5786
5787// GetMethodResponseRequest generates a "aws/request.Request" representing the
5788// client's request for the GetMethodResponse operation. The "output" return
5789// value will be populated with the request's response once the request completes
5790// successfully.
5791//
5792// Use "Send" method on the returned Request to send the API call to the service.
5793// the "output" return value is not valid until after Send returns without error.
5794//
5795// See GetMethodResponse for more information on using the GetMethodResponse
5796// API call, and error handling.
5797//
5798// This method is useful when you want to inject custom logic or configuration
5799// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5800//
5801//
5802//    // Example sending a request using the GetMethodResponseRequest method.
5803//    req, resp := client.GetMethodResponseRequest(params)
5804//
5805//    err := req.Send()
5806//    if err == nil { // resp is now filled
5807//        fmt.Println(resp)
5808//    }
5809func (c *APIGateway) GetMethodResponseRequest(input *GetMethodResponseInput) (req *request.Request, output *MethodResponse) {
5810	op := &request.Operation{
5811		Name:       opGetMethodResponse,
5812		HTTPMethod: "GET",
5813		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
5814	}
5815
5816	if input == nil {
5817		input = &GetMethodResponseInput{}
5818	}
5819
5820	output = &MethodResponse{}
5821	req = c.newRequest(op, input, output)
5822	return
5823}
5824
5825// GetMethodResponse API operation for Amazon API Gateway.
5826//
5827// Describes a MethodResponse resource.
5828//
5829// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5830// with awserr.Error's Code and Message methods to get detailed information about
5831// the error.
5832//
5833// See the AWS API reference guide for Amazon API Gateway's
5834// API operation GetMethodResponse for usage and error information.
5835//
5836// Returned Error Codes:
5837//   * ErrCodeUnauthorizedException "UnauthorizedException"
5838//   The request is denied because the caller has insufficient permissions.
5839//
5840//   * ErrCodeNotFoundException "NotFoundException"
5841//   The requested resource is not found. Make sure that the request URI is correct.
5842//
5843//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5844//   The request has reached its throttling limit. Retry after the specified time
5845//   period.
5846//
5847func (c *APIGateway) GetMethodResponse(input *GetMethodResponseInput) (*MethodResponse, error) {
5848	req, out := c.GetMethodResponseRequest(input)
5849	return out, req.Send()
5850}
5851
5852// GetMethodResponseWithContext is the same as GetMethodResponse with the addition of
5853// the ability to pass a context and additional request options.
5854//
5855// See GetMethodResponse for details on how to use this API operation.
5856//
5857// The context must be non-nil and will be used for request cancellation. If
5858// the context is nil a panic will occur. In the future the SDK may create
5859// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5860// for more information on using Contexts.
5861func (c *APIGateway) GetMethodResponseWithContext(ctx aws.Context, input *GetMethodResponseInput, opts ...request.Option) (*MethodResponse, error) {
5862	req, out := c.GetMethodResponseRequest(input)
5863	req.SetContext(ctx)
5864	req.ApplyOptions(opts...)
5865	return out, req.Send()
5866}
5867
5868const opGetModel = "GetModel"
5869
5870// GetModelRequest generates a "aws/request.Request" representing the
5871// client's request for the GetModel operation. The "output" return
5872// value will be populated with the request's response once the request completes
5873// successfully.
5874//
5875// Use "Send" method on the returned Request to send the API call to the service.
5876// the "output" return value is not valid until after Send returns without error.
5877//
5878// See GetModel for more information on using the GetModel
5879// API call, and error handling.
5880//
5881// This method is useful when you want to inject custom logic or configuration
5882// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5883//
5884//
5885//    // Example sending a request using the GetModelRequest method.
5886//    req, resp := client.GetModelRequest(params)
5887//
5888//    err := req.Send()
5889//    if err == nil { // resp is now filled
5890//        fmt.Println(resp)
5891//    }
5892func (c *APIGateway) GetModelRequest(input *GetModelInput) (req *request.Request, output *Model) {
5893	op := &request.Operation{
5894		Name:       opGetModel,
5895		HTTPMethod: "GET",
5896		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}",
5897	}
5898
5899	if input == nil {
5900		input = &GetModelInput{}
5901	}
5902
5903	output = &Model{}
5904	req = c.newRequest(op, input, output)
5905	return
5906}
5907
5908// GetModel API operation for Amazon API Gateway.
5909//
5910// Describes an existing model defined for a RestApi resource.
5911//
5912// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5913// with awserr.Error's Code and Message methods to get detailed information about
5914// the error.
5915//
5916// See the AWS API reference guide for Amazon API Gateway's
5917// API operation GetModel for usage and error information.
5918//
5919// Returned Error Codes:
5920//   * ErrCodeUnauthorizedException "UnauthorizedException"
5921//   The request is denied because the caller has insufficient permissions.
5922//
5923//   * ErrCodeNotFoundException "NotFoundException"
5924//   The requested resource is not found. Make sure that the request URI is correct.
5925//
5926//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5927//   The request has reached its throttling limit. Retry after the specified time
5928//   period.
5929//
5930func (c *APIGateway) GetModel(input *GetModelInput) (*Model, error) {
5931	req, out := c.GetModelRequest(input)
5932	return out, req.Send()
5933}
5934
5935// GetModelWithContext is the same as GetModel with the addition of
5936// the ability to pass a context and additional request options.
5937//
5938// See GetModel for details on how to use this API operation.
5939//
5940// The context must be non-nil and will be used for request cancellation. If
5941// the context is nil a panic will occur. In the future the SDK may create
5942// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5943// for more information on using Contexts.
5944func (c *APIGateway) GetModelWithContext(ctx aws.Context, input *GetModelInput, opts ...request.Option) (*Model, error) {
5945	req, out := c.GetModelRequest(input)
5946	req.SetContext(ctx)
5947	req.ApplyOptions(opts...)
5948	return out, req.Send()
5949}
5950
5951const opGetModelTemplate = "GetModelTemplate"
5952
5953// GetModelTemplateRequest generates a "aws/request.Request" representing the
5954// client's request for the GetModelTemplate operation. The "output" return
5955// value will be populated with the request's response once the request completes
5956// successfully.
5957//
5958// Use "Send" method on the returned Request to send the API call to the service.
5959// the "output" return value is not valid until after Send returns without error.
5960//
5961// See GetModelTemplate for more information on using the GetModelTemplate
5962// API call, and error handling.
5963//
5964// This method is useful when you want to inject custom logic or configuration
5965// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5966//
5967//
5968//    // Example sending a request using the GetModelTemplateRequest method.
5969//    req, resp := client.GetModelTemplateRequest(params)
5970//
5971//    err := req.Send()
5972//    if err == nil { // resp is now filled
5973//        fmt.Println(resp)
5974//    }
5975func (c *APIGateway) GetModelTemplateRequest(input *GetModelTemplateInput) (req *request.Request, output *GetModelTemplateOutput) {
5976	op := &request.Operation{
5977		Name:       opGetModelTemplate,
5978		HTTPMethod: "GET",
5979		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}/default_template",
5980	}
5981
5982	if input == nil {
5983		input = &GetModelTemplateInput{}
5984	}
5985
5986	output = &GetModelTemplateOutput{}
5987	req = c.newRequest(op, input, output)
5988	return
5989}
5990
5991// GetModelTemplate API operation for Amazon API Gateway.
5992//
5993// Generates a sample mapping template that can be used to transform a payload
5994// into the structure of a model.
5995//
5996// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5997// with awserr.Error's Code and Message methods to get detailed information about
5998// the error.
5999//
6000// See the AWS API reference guide for Amazon API Gateway's
6001// API operation GetModelTemplate for usage and error information.
6002//
6003// Returned Error Codes:
6004//   * ErrCodeUnauthorizedException "UnauthorizedException"
6005//   The request is denied because the caller has insufficient permissions.
6006//
6007//   * ErrCodeNotFoundException "NotFoundException"
6008//   The requested resource is not found. Make sure that the request URI is correct.
6009//
6010//   * ErrCodeBadRequestException "BadRequestException"
6011//   The submitted request is not valid, for example, the input is incomplete
6012//   or incorrect. See the accompanying error message for details.
6013//
6014//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
6015//   The request has reached its throttling limit. Retry after the specified time
6016//   period.
6017//
6018func (c *APIGateway) GetModelTemplate(input *GetModelTemplateInput) (*GetModelTemplateOutput, error) {
6019	req, out := c.GetModelTemplateRequest(input)
6020	return out, req.Send()
6021}
6022
6023// GetModelTemplateWithContext is the same as GetModelTemplate with the addition of
6024// the ability to pass a context and additional request options.
6025//
6026// See GetModelTemplate for details on how to use this API operation.
6027//
6028// The context must be non-nil and will be used for request cancellation. If
6029// the context is nil a panic will occur. In the future the SDK may create
6030// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6031// for more information on using Contexts.
6032func (c *APIGateway) GetModelTemplateWithContext(ctx aws.Context, input *GetModelTemplateInput, opts ...request.Option) (*GetModelTemplateOutput, error) {
6033	req, out := c.GetModelTemplateRequest(input)
6034	req.SetContext(ctx)
6035	req.ApplyOptions(opts...)
6036	return out, req.Send()
6037}
6038
6039const opGetModels = "GetModels"
6040
6041// GetModelsRequest generates a "aws/request.Request" representing the
6042// client's request for the GetModels operation. The "output" return
6043// value will be populated with the request's response once the request completes
6044// successfully.
6045//
6046// Use "Send" method on the returned Request to send the API call to the service.
6047// the "output" return value is not valid until after Send returns without error.
6048//
6049// See GetModels for more information on using the GetModels
6050// API call, and error handling.
6051//
6052// This method is useful when you want to inject custom logic or configuration
6053// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6054//
6055//
6056//    // Example sending a request using the GetModelsRequest method.
6057//    req, resp := client.GetModelsRequest(params)
6058//
6059//    err := req.Send()
6060//    if err == nil { // resp is now filled
6061//        fmt.Println(resp)
6062//    }
6063func (c *APIGateway) GetModelsRequest(input *GetModelsInput) (req *request.Request, output *GetModelsOutput) {
6064	op := &request.Operation{
6065		Name:       opGetModels,
6066		HTTPMethod: "GET",
6067		HTTPPath:   "/restapis/{restapi_id}/models",
6068		Paginator: &request.Paginator{
6069			InputTokens:     []string{"position"},
6070			OutputTokens:    []string{"position"},
6071			LimitToken:      "limit",
6072			TruncationToken: "",
6073		},
6074	}
6075
6076	if input == nil {
6077		input = &GetModelsInput{}
6078	}
6079
6080	output = &GetModelsOutput{}
6081	req = c.newRequest(op, input, output)
6082	return
6083}
6084
6085// GetModels API operation for Amazon API Gateway.
6086//
6087// Describes existing Models defined for a RestApi resource.
6088//
6089// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6090// with awserr.Error's Code and Message methods to get detailed information about
6091// the error.
6092//
6093// See the AWS API reference guide for Amazon API Gateway's
6094// API operation GetModels for usage and error information.
6095//
6096// Returned Error Codes:
6097//   * ErrCodeBadRequestException "BadRequestException"
6098//   The submitted request is not valid, for example, the input is incomplete
6099//   or incorrect. See the accompanying error message for details.
6100//
6101//   * ErrCodeUnauthorizedException "UnauthorizedException"
6102//   The request is denied because the caller has insufficient permissions.
6103//
6104//   * ErrCodeNotFoundException "NotFoundException"
6105//   The requested resource is not found. Make sure that the request URI is correct.
6106//
6107//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
6108//   The request has reached its throttling limit. Retry after the specified time
6109//   period.
6110//
6111func (c *APIGateway) GetModels(input *GetModelsInput) (*GetModelsOutput, error) {
6112	req, out := c.GetModelsRequest(input)
6113	return out, req.Send()
6114}
6115
6116// GetModelsWithContext is the same as GetModels with the addition of
6117// the ability to pass a context and additional request options.
6118//
6119// See GetModels for details on how to use this API operation.
6120//
6121// The context must be non-nil and will be used for request cancellation. If
6122// the context is nil a panic will occur. In the future the SDK may create
6123// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6124// for more information on using Contexts.
6125func (c *APIGateway) GetModelsWithContext(ctx aws.Context, input *GetModelsInput, opts ...request.Option) (*GetModelsOutput, error) {
6126	req, out := c.GetModelsRequest(input)
6127	req.SetContext(ctx)
6128	req.ApplyOptions(opts...)
6129	return out, req.Send()
6130}
6131
6132// GetModelsPages iterates over the pages of a GetModels operation,
6133// calling the "fn" function with the response data for each page. To stop
6134// iterating, return false from the fn function.
6135//
6136// See GetModels method for more information on how to use this operation.
6137//
6138// Note: This operation can generate multiple requests to a service.
6139//
6140//    // Example iterating over at most 3 pages of a GetModels operation.
6141//    pageNum := 0
6142//    err := client.GetModelsPages(params,
6143//        func(page *apigateway.GetModelsOutput, lastPage bool) bool {
6144//            pageNum++
6145//            fmt.Println(page)
6146//            return pageNum <= 3
6147//        })
6148//
6149func (c *APIGateway) GetModelsPages(input *GetModelsInput, fn func(*GetModelsOutput, bool) bool) error {
6150	return c.GetModelsPagesWithContext(aws.BackgroundContext(), input, fn)
6151}
6152
6153// GetModelsPagesWithContext same as GetModelsPages except
6154// it takes a Context and allows setting request options on the pages.
6155//
6156// The context must be non-nil and will be used for request cancellation. If
6157// the context is nil a panic will occur. In the future the SDK may create
6158// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6159// for more information on using Contexts.
6160func (c *APIGateway) GetModelsPagesWithContext(ctx aws.Context, input *GetModelsInput, fn func(*GetModelsOutput, bool) bool, opts ...request.Option) error {
6161	p := request.Pagination{
6162		NewRequest: func() (*request.Request, error) {
6163			var inCpy *GetModelsInput
6164			if input != nil {
6165				tmp := *input
6166				inCpy = &tmp
6167			}
6168			req, _ := c.GetModelsRequest(inCpy)
6169			req.SetContext(ctx)
6170			req.ApplyOptions(opts...)
6171			return req, nil
6172		},
6173	}
6174
6175	for p.Next() {
6176		if !fn(p.Page().(*GetModelsOutput), !p.HasNextPage()) {
6177			break
6178		}
6179	}
6180
6181	return p.Err()
6182}
6183
6184const opGetRequestValidator = "GetRequestValidator"
6185
6186// GetRequestValidatorRequest generates a "aws/request.Request" representing the
6187// client's request for the GetRequestValidator operation. The "output" return
6188// value will be populated with the request's response once the request completes
6189// successfully.
6190//
6191// Use "Send" method on the returned Request to send the API call to the service.
6192// the "output" return value is not valid until after Send returns without error.
6193//
6194// See GetRequestValidator for more information on using the GetRequestValidator
6195// API call, and error handling.
6196//
6197// This method is useful when you want to inject custom logic or configuration
6198// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6199//
6200//
6201//    // Example sending a request using the GetRequestValidatorRequest method.
6202//    req, resp := client.GetRequestValidatorRequest(params)
6203//
6204//    err := req.Send()
6205//    if err == nil { // resp is now filled
6206//        fmt.Println(resp)
6207//    }
6208func (c *APIGateway) GetRequestValidatorRequest(input *GetRequestValidatorInput) (req *request.Request, output *UpdateRequestValidatorOutput) {
6209	op := &request.Operation{
6210		Name:       opGetRequestValidator,
6211		HTTPMethod: "GET",
6212		HTTPPath:   "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}",
6213	}
6214
6215	if input == nil {
6216		input = &GetRequestValidatorInput{}
6217	}
6218
6219	output = &UpdateRequestValidatorOutput{}
6220	req = c.newRequest(op, input, output)
6221	return
6222}
6223
6224// GetRequestValidator API operation for Amazon API Gateway.
6225//
6226// Gets a RequestValidator of a given RestApi.
6227//
6228// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6229// with awserr.Error's Code and Message methods to get detailed information about
6230// the error.
6231//
6232// See the AWS API reference guide for Amazon API Gateway's
6233// API operation GetRequestValidator for usage and error information.
6234//
6235// Returned Error Codes:
6236//   * ErrCodeUnauthorizedException "UnauthorizedException"
6237//   The request is denied because the caller has insufficient permissions.
6238//
6239//   * ErrCodeNotFoundException "NotFoundException"
6240//   The requested resource is not found. Make sure that the request URI is correct.
6241//
6242//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
6243//   The request has reached its throttling limit. Retry after the specified time
6244//   period.
6245//
6246func (c *APIGateway) GetRequestValidator(input *GetRequestValidatorInput) (*UpdateRequestValidatorOutput, error) {
6247	req, out := c.GetRequestValidatorRequest(input)
6248	return out, req.Send()
6249}
6250
6251// GetRequestValidatorWithContext is the same as GetRequestValidator with the addition of
6252// the ability to pass a context and additional request options.
6253//
6254// See GetRequestValidator for details on how to use this API operation.
6255//
6256// The context must be non-nil and will be used for request cancellation. If
6257// the context is nil a panic will occur. In the future the SDK may create
6258// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6259// for more information on using Contexts.
6260func (c *APIGateway) GetRequestValidatorWithContext(ctx aws.Context, input *GetRequestValidatorInput, opts ...request.Option) (*UpdateRequestValidatorOutput, error) {
6261	req, out := c.GetRequestValidatorRequest(input)
6262	req.SetContext(ctx)
6263	req.ApplyOptions(opts...)
6264	return out, req.Send()
6265}
6266
6267const opGetRequestValidators = "GetRequestValidators"
6268
6269// GetRequestValidatorsRequest generates a "aws/request.Request" representing the
6270// client's request for the GetRequestValidators operation. The "output" return
6271// value will be populated with the request's response once the request completes
6272// successfully.
6273//
6274// Use "Send" method on the returned Request to send the API call to the service.
6275// the "output" return value is not valid until after Send returns without error.
6276//
6277// See GetRequestValidators for more information on using the GetRequestValidators
6278// API call, and error handling.
6279//
6280// This method is useful when you want to inject custom logic or configuration
6281// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6282//
6283//
6284//    // Example sending a request using the GetRequestValidatorsRequest method.
6285//    req, resp := client.GetRequestValidatorsRequest(params)
6286//
6287//    err := req.Send()
6288//    if err == nil { // resp is now filled
6289//        fmt.Println(resp)
6290//    }
6291func (c *APIGateway) GetRequestValidatorsRequest(input *GetRequestValidatorsInput) (req *request.Request, output *GetRequestValidatorsOutput) {
6292	op := &request.Operation{
6293		Name:       opGetRequestValidators,
6294		HTTPMethod: "GET",
6295		HTTPPath:   "/restapis/{restapi_id}/requestvalidators",
6296	}
6297
6298	if input == nil {
6299		input = &GetRequestValidatorsInput{}
6300	}
6301
6302	output = &GetRequestValidatorsOutput{}
6303	req = c.newRequest(op, input, output)
6304	return
6305}
6306
6307// GetRequestValidators API operation for Amazon API Gateway.
6308//
6309// Gets the RequestValidators collection of a given RestApi.
6310//
6311// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6312// with awserr.Error's Code and Message methods to get detailed information about
6313// the error.
6314//
6315// See the AWS API reference guide for Amazon API Gateway's
6316// API operation GetRequestValidators for usage and error information.
6317//
6318// Returned Error Codes:
6319//   * ErrCodeBadRequestException "BadRequestException"
6320//   The submitted request is not valid, for example, the input is incomplete
6321//   or incorrect. See the accompanying error message for details.
6322//
6323//   * ErrCodeUnauthorizedException "UnauthorizedException"
6324//   The request is denied because the caller has insufficient permissions.
6325//
6326//   * ErrCodeNotFoundException "NotFoundException"
6327//   The requested resource is not found. Make sure that the request URI is correct.
6328//
6329//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
6330//   The request has reached its throttling limit. Retry after the specified time
6331//   period.
6332//
6333func (c *APIGateway) GetRequestValidators(input *GetRequestValidatorsInput) (*GetRequestValidatorsOutput, error) {
6334	req, out := c.GetRequestValidatorsRequest(input)
6335	return out, req.Send()
6336}
6337
6338// GetRequestValidatorsWithContext is the same as GetRequestValidators with the addition of
6339// the ability to pass a context and additional request options.
6340//
6341// See GetRequestValidators for details on how to use this API operation.
6342//
6343// The context must be non-nil and will be used for request cancellation. If
6344// the context is nil a panic will occur. In the future the SDK may create
6345// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6346// for more information on using Contexts.
6347func (c *APIGateway) GetRequestValidatorsWithContext(ctx aws.Context, input *GetRequestValidatorsInput, opts ...request.Option) (*GetRequestValidatorsOutput, error) {
6348	req, out := c.GetRequestValidatorsRequest(input)
6349	req.SetContext(ctx)
6350	req.ApplyOptions(opts...)
6351	return out, req.Send()
6352}
6353
6354const opGetResource = "GetResource"
6355
6356// GetResourceRequest generates a "aws/request.Request" representing the
6357// client's request for the GetResource operation. The "output" return
6358// value will be populated with the request's response once the request completes
6359// successfully.
6360//
6361// Use "Send" method on the returned Request to send the API call to the service.
6362// the "output" return value is not valid until after Send returns without error.
6363//
6364// See GetResource for more information on using the GetResource
6365// API call, and error handling.
6366//
6367// This method is useful when you want to inject custom logic or configuration
6368// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6369//
6370//
6371//    // Example sending a request using the GetResourceRequest method.
6372//    req, resp := client.GetResourceRequest(params)
6373//
6374//    err := req.Send()
6375//    if err == nil { // resp is now filled
6376//        fmt.Println(resp)
6377//    }
6378func (c *APIGateway) GetResourceRequest(input *GetResourceInput) (req *request.Request, output *Resource) {
6379	op := &request.Operation{
6380		Name:       opGetResource,
6381		HTTPMethod: "GET",
6382		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}",
6383	}
6384
6385	if input == nil {
6386		input = &GetResourceInput{}
6387	}
6388
6389	output = &Resource{}
6390	req = c.newRequest(op, input, output)
6391	return
6392}
6393
6394// GetResource API operation for Amazon API Gateway.
6395//
6396// Lists information about a resource.
6397//
6398// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6399// with awserr.Error's Code and Message methods to get detailed information about
6400// the error.
6401//
6402// See the AWS API reference guide for Amazon API Gateway's
6403// API operation GetResource for usage and error information.
6404//
6405// Returned Error Codes:
6406//   * ErrCodeUnauthorizedException "UnauthorizedException"
6407//   The request is denied because the caller has insufficient permissions.
6408//
6409//   * ErrCodeNotFoundException "NotFoundException"
6410//   The requested resource is not found. Make sure that the request URI is correct.
6411//
6412//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
6413//   The request has reached its throttling limit. Retry after the specified time
6414//   period.
6415//
6416func (c *APIGateway) GetResource(input *GetResourceInput) (*Resource, error) {
6417	req, out := c.GetResourceRequest(input)
6418	return out, req.Send()
6419}
6420
6421// GetResourceWithContext is the same as GetResource with the addition of
6422// the ability to pass a context and additional request options.
6423//
6424// See GetResource for details on how to use this API operation.
6425//
6426// The context must be non-nil and will be used for request cancellation. If
6427// the context is nil a panic will occur. In the future the SDK may create
6428// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6429// for more information on using Contexts.
6430func (c *APIGateway) GetResourceWithContext(ctx aws.Context, input *GetResourceInput, opts ...request.Option) (*Resource, error) {
6431	req, out := c.GetResourceRequest(input)
6432	req.SetContext(ctx)
6433	req.ApplyOptions(opts...)
6434	return out, req.Send()
6435}
6436
6437const opGetResources = "GetResources"
6438
6439// GetResourcesRequest generates a "aws/request.Request" representing the
6440// client's request for the GetResources operation. The "output" return
6441// value will be populated with the request's response once the request completes
6442// successfully.
6443//
6444// Use "Send" method on the returned Request to send the API call to the service.
6445// the "output" return value is not valid until after Send returns without error.
6446//
6447// See GetResources for more information on using the GetResources
6448// API call, and error handling.
6449//
6450// This method is useful when you want to inject custom logic or configuration
6451// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6452//
6453//
6454//    // Example sending a request using the GetResourcesRequest method.
6455//    req, resp := client.GetResourcesRequest(params)
6456//
6457//    err := req.Send()
6458//    if err == nil { // resp is now filled
6459//        fmt.Println(resp)
6460//    }
6461func (c *APIGateway) GetResourcesRequest(input *GetResourcesInput) (req *request.Request, output *GetResourcesOutput) {
6462	op := &request.Operation{
6463		Name:       opGetResources,
6464		HTTPMethod: "GET",
6465		HTTPPath:   "/restapis/{restapi_id}/resources",
6466		Paginator: &request.Paginator{
6467			InputTokens:     []string{"position"},
6468			OutputTokens:    []string{"position"},
6469			LimitToken:      "limit",
6470			TruncationToken: "",
6471		},
6472	}
6473
6474	if input == nil {
6475		input = &GetResourcesInput{}
6476	}
6477
6478	output = &GetResourcesOutput{}
6479	req = c.newRequest(op, input, output)
6480	return
6481}
6482
6483// GetResources API operation for Amazon API Gateway.
6484//
6485// Lists information about a collection of Resource resources.
6486//
6487// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6488// with awserr.Error's Code and Message methods to get detailed information about
6489// the error.
6490//
6491// See the AWS API reference guide for Amazon API Gateway's
6492// API operation GetResources for usage and error information.
6493//
6494// Returned Error Codes:
6495//   * ErrCodeBadRequestException "BadRequestException"
6496//   The submitted request is not valid, for example, the input is incomplete
6497//   or incorrect. See the accompanying error message for details.
6498//
6499//   * ErrCodeUnauthorizedException "UnauthorizedException"
6500//   The request is denied because the caller has insufficient permissions.
6501//
6502//   * ErrCodeNotFoundException "NotFoundException"
6503//   The requested resource is not found. Make sure that the request URI is correct.
6504//
6505//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
6506//   The request has reached its throttling limit. Retry after the specified time
6507//   period.
6508//
6509func (c *APIGateway) GetResources(input *GetResourcesInput) (*GetResourcesOutput, error) {
6510	req, out := c.GetResourcesRequest(input)
6511	return out, req.Send()
6512}
6513
6514// GetResourcesWithContext is the same as GetResources with the addition of
6515// the ability to pass a context and additional request options.
6516//
6517// See GetResources for details on how to use this API operation.
6518//
6519// The context must be non-nil and will be used for request cancellation. If
6520// the context is nil a panic will occur. In the future the SDK may create
6521// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6522// for more information on using Contexts.
6523func (c *APIGateway) GetResourcesWithContext(ctx aws.Context, input *GetResourcesInput, opts ...request.Option) (*GetResourcesOutput, error) {
6524	req, out := c.GetResourcesRequest(input)
6525	req.SetContext(ctx)
6526	req.ApplyOptions(opts...)
6527	return out, req.Send()
6528}
6529
6530// GetResourcesPages iterates over the pages of a GetResources operation,
6531// calling the "fn" function with the response data for each page. To stop
6532// iterating, return false from the fn function.
6533//
6534// See GetResources method for more information on how to use this operation.
6535//
6536// Note: This operation can generate multiple requests to a service.
6537//
6538//    // Example iterating over at most 3 pages of a GetResources operation.
6539//    pageNum := 0
6540//    err := client.GetResourcesPages(params,
6541//        func(page *apigateway.GetResourcesOutput, lastPage bool) bool {
6542//            pageNum++
6543//            fmt.Println(page)
6544//            return pageNum <= 3
6545//        })
6546//
6547func (c *APIGateway) GetResourcesPages(input *GetResourcesInput, fn func(*GetResourcesOutput, bool) bool) error {
6548	return c.GetResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
6549}
6550
6551// GetResourcesPagesWithContext same as GetResourcesPages except
6552// it takes a Context and allows setting request options on the pages.
6553//
6554// The context must be non-nil and will be used for request cancellation. If
6555// the context is nil a panic will occur. In the future the SDK may create
6556// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6557// for more information on using Contexts.
6558func (c *APIGateway) GetResourcesPagesWithContext(ctx aws.Context, input *GetResourcesInput, fn func(*GetResourcesOutput, bool) bool, opts ...request.Option) error {
6559	p := request.Pagination{
6560		NewRequest: func() (*request.Request, error) {
6561			var inCpy *GetResourcesInput
6562			if input != nil {
6563				tmp := *input
6564				inCpy = &tmp
6565			}
6566			req, _ := c.GetResourcesRequest(inCpy)
6567			req.SetContext(ctx)
6568			req.ApplyOptions(opts...)
6569			return req, nil
6570		},
6571	}
6572
6573	for p.Next() {
6574		if !fn(p.Page().(*GetResourcesOutput), !p.HasNextPage()) {
6575			break
6576		}
6577	}
6578
6579	return p.Err()
6580}
6581
6582const opGetRestApi = "GetRestApi"
6583
6584// GetRestApiRequest generates a "aws/request.Request" representing the
6585// client's request for the GetRestApi operation. The "output" return
6586// value will be populated with the request's response once the request completes
6587// successfully.
6588//
6589// Use "Send" method on the returned Request to send the API call to the service.
6590// the "output" return value is not valid until after Send returns without error.
6591//
6592// See GetRestApi for more information on using the GetRestApi
6593// API call, and error handling.
6594//
6595// This method is useful when you want to inject custom logic or configuration
6596// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6597//
6598//
6599//    // Example sending a request using the GetRestApiRequest method.
6600//    req, resp := client.GetRestApiRequest(params)
6601//
6602//    err := req.Send()
6603//    if err == nil { // resp is now filled
6604//        fmt.Println(resp)
6605//    }
6606func (c *APIGateway) GetRestApiRequest(input *GetRestApiInput) (req *request.Request, output *RestApi) {
6607	op := &request.Operation{
6608		Name:       opGetRestApi,
6609		HTTPMethod: "GET",
6610		HTTPPath:   "/restapis/{restapi_id}",
6611	}
6612
6613	if input == nil {
6614		input = &GetRestApiInput{}
6615	}
6616
6617	output = &RestApi{}
6618	req = c.newRequest(op, input, output)
6619	return
6620}
6621
6622// GetRestApi API operation for Amazon API Gateway.
6623//
6624// Lists the RestApi resource in the collection.
6625//
6626// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6627// with awserr.Error's Code and Message methods to get detailed information about
6628// the error.
6629//
6630// See the AWS API reference guide for Amazon API Gateway's
6631// API operation GetRestApi for usage and error information.
6632//
6633// Returned Error Codes:
6634//   * ErrCodeUnauthorizedException "UnauthorizedException"
6635//   The request is denied because the caller has insufficient permissions.
6636//
6637//   * ErrCodeNotFoundException "NotFoundException"
6638//   The requested resource is not found. Make sure that the request URI is correct.
6639//
6640//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
6641//   The request has reached its throttling limit. Retry after the specified time
6642//   period.
6643//
6644func (c *APIGateway) GetRestApi(input *GetRestApiInput) (*RestApi, error) {
6645	req, out := c.GetRestApiRequest(input)
6646	return out, req.Send()
6647}
6648
6649// GetRestApiWithContext is the same as GetRestApi with the addition of
6650// the ability to pass a context and additional request options.
6651//
6652// See GetRestApi for details on how to use this API operation.
6653//
6654// The context must be non-nil and will be used for request cancellation. If
6655// the context is nil a panic will occur. In the future the SDK may create
6656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6657// for more information on using Contexts.
6658func (c *APIGateway) GetRestApiWithContext(ctx aws.Context, input *GetRestApiInput, opts ...request.Option) (*RestApi, error) {
6659	req, out := c.GetRestApiRequest(input)
6660	req.SetContext(ctx)
6661	req.ApplyOptions(opts...)
6662	return out, req.Send()
6663}
6664
6665const opGetRestApis = "GetRestApis"
6666
6667// GetRestApisRequest generates a "aws/request.Request" representing the
6668// client's request for the GetRestApis operation. The "output" return
6669// value will be populated with the request's response once the request completes
6670// successfully.
6671//
6672// Use "Send" method on the returned Request to send the API call to the service.
6673// the "output" return value is not valid until after Send returns without error.
6674//
6675// See GetRestApis for more information on using the GetRestApis
6676// API call, and error handling.
6677//
6678// This method is useful when you want to inject custom logic or configuration
6679// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6680//
6681//
6682//    // Example sending a request using the GetRestApisRequest method.
6683//    req, resp := client.GetRestApisRequest(params)
6684//
6685//    err := req.Send()
6686//    if err == nil { // resp is now filled
6687//        fmt.Println(resp)
6688//    }
6689func (c *APIGateway) GetRestApisRequest(input *GetRestApisInput) (req *request.Request, output *GetRestApisOutput) {
6690	op := &request.Operation{
6691		Name:       opGetRestApis,
6692		HTTPMethod: "GET",
6693		HTTPPath:   "/restapis",
6694		Paginator: &request.Paginator{
6695			InputTokens:     []string{"position"},
6696			OutputTokens:    []string{"position"},
6697			LimitToken:      "limit",
6698			TruncationToken: "",
6699		},
6700	}
6701
6702	if input == nil {
6703		input = &GetRestApisInput{}
6704	}
6705
6706	output = &GetRestApisOutput{}
6707	req = c.newRequest(op, input, output)
6708	return
6709}
6710
6711// GetRestApis API operation for Amazon API Gateway.
6712//
6713// Lists the RestApis resources for your collection.
6714//
6715// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6716// with awserr.Error's Code and Message methods to get detailed information about
6717// the error.
6718//
6719// See the AWS API reference guide for Amazon API Gateway's
6720// API operation GetRestApis for usage and error information.
6721//
6722// Returned Error Codes:
6723//   * ErrCodeBadRequestException "BadRequestException"
6724//   The submitted request is not valid, for example, the input is incomplete
6725//   or incorrect. See the accompanying error message for details.
6726//
6727//   * ErrCodeUnauthorizedException "UnauthorizedException"
6728//   The request is denied because the caller has insufficient permissions.
6729//
6730//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
6731//   The request has reached its throttling limit. Retry after the specified time
6732//   period.
6733//
6734func (c *APIGateway) GetRestApis(input *GetRestApisInput) (*GetRestApisOutput, error) {
6735	req, out := c.GetRestApisRequest(input)
6736	return out, req.Send()
6737}
6738
6739// GetRestApisWithContext is the same as GetRestApis with the addition of
6740// the ability to pass a context and additional request options.
6741//
6742// See GetRestApis for details on how to use this API operation.
6743//
6744// The context must be non-nil and will be used for request cancellation. If
6745// the context is nil a panic will occur. In the future the SDK may create
6746// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6747// for more information on using Contexts.
6748func (c *APIGateway) GetRestApisWithContext(ctx aws.Context, input *GetRestApisInput, opts ...request.Option) (*GetRestApisOutput, error) {
6749	req, out := c.GetRestApisRequest(input)
6750	req.SetContext(ctx)
6751	req.ApplyOptions(opts...)
6752	return out, req.Send()
6753}
6754
6755// GetRestApisPages iterates over the pages of a GetRestApis operation,
6756// calling the "fn" function with the response data for each page. To stop
6757// iterating, return false from the fn function.
6758//
6759// See GetRestApis method for more information on how to use this operation.
6760//
6761// Note: This operation can generate multiple requests to a service.
6762//
6763//    // Example iterating over at most 3 pages of a GetRestApis operation.
6764//    pageNum := 0
6765//    err := client.GetRestApisPages(params,
6766//        func(page *apigateway.GetRestApisOutput, lastPage bool) bool {
6767//            pageNum++
6768//            fmt.Println(page)
6769//            return pageNum <= 3
6770//        })
6771//
6772func (c *APIGateway) GetRestApisPages(input *GetRestApisInput, fn func(*GetRestApisOutput, bool) bool) error {
6773	return c.GetRestApisPagesWithContext(aws.BackgroundContext(), input, fn)
6774}
6775
6776// GetRestApisPagesWithContext same as GetRestApisPages except
6777// it takes a Context and allows setting request options on the pages.
6778//
6779// The context must be non-nil and will be used for request cancellation. If
6780// the context is nil a panic will occur. In the future the SDK may create
6781// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6782// for more information on using Contexts.
6783func (c *APIGateway) GetRestApisPagesWithContext(ctx aws.Context, input *GetRestApisInput, fn func(*GetRestApisOutput, bool) bool, opts ...request.Option) error {
6784	p := request.Pagination{
6785		NewRequest: func() (*request.Request, error) {
6786			var inCpy *GetRestApisInput
6787			if input != nil {
6788				tmp := *input
6789				inCpy = &tmp
6790			}
6791			req, _ := c.GetRestApisRequest(inCpy)
6792			req.SetContext(ctx)
6793			req.ApplyOptions(opts...)
6794			return req, nil
6795		},
6796	}
6797
6798	for p.Next() {
6799		if !fn(p.Page().(*GetRestApisOutput), !p.HasNextPage()) {
6800			break
6801		}
6802	}
6803
6804	return p.Err()
6805}
6806
6807const opGetSdk = "GetSdk"
6808
6809// GetSdkRequest generates a "aws/request.Request" representing the
6810// client's request for the GetSdk operation. The "output" return
6811// value will be populated with the request's response once the request completes
6812// successfully.
6813//
6814// Use "Send" method on the returned Request to send the API call to the service.
6815// the "output" return value is not valid until after Send returns without error.
6816//
6817// See GetSdk for more information on using the GetSdk
6818// API call, and error handling.
6819//
6820// This method is useful when you want to inject custom logic or configuration
6821// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6822//
6823//
6824//    // Example sending a request using the GetSdkRequest method.
6825//    req, resp := client.GetSdkRequest(params)
6826//
6827//    err := req.Send()
6828//    if err == nil { // resp is now filled
6829//        fmt.Println(resp)
6830//    }
6831func (c *APIGateway) GetSdkRequest(input *GetSdkInput) (req *request.Request, output *GetSdkOutput) {
6832	op := &request.Operation{
6833		Name:       opGetSdk,
6834		HTTPMethod: "GET",
6835		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/sdks/{sdk_type}",
6836	}
6837
6838	if input == nil {
6839		input = &GetSdkInput{}
6840	}
6841
6842	output = &GetSdkOutput{}
6843	req = c.newRequest(op, input, output)
6844	return
6845}
6846
6847// GetSdk API operation for Amazon API Gateway.
6848//
6849// Generates a client SDK for a RestApi and Stage.
6850//
6851// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6852// with awserr.Error's Code and Message methods to get detailed information about
6853// the error.
6854//
6855// See the AWS API reference guide for Amazon API Gateway's
6856// API operation GetSdk for usage and error information.
6857//
6858// Returned Error Codes:
6859//   * ErrCodeUnauthorizedException "UnauthorizedException"
6860//   The request is denied because the caller has insufficient permissions.
6861//
6862//   * ErrCodeNotFoundException "NotFoundException"
6863//   The requested resource is not found. Make sure that the request URI is correct.
6864//
6865//   * ErrCodeBadRequestException "BadRequestException"
6866//   The submitted request is not valid, for example, the input is incomplete
6867//   or incorrect. See the accompanying error message for details.
6868//
6869//   * ErrCodeConflictException "ConflictException"
6870//   The request configuration has conflicts. For details, see the accompanying
6871//   error message.
6872//
6873//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
6874//   The request has reached its throttling limit. Retry after the specified time
6875//   period.
6876//
6877func (c *APIGateway) GetSdk(input *GetSdkInput) (*GetSdkOutput, error) {
6878	req, out := c.GetSdkRequest(input)
6879	return out, req.Send()
6880}
6881
6882// GetSdkWithContext is the same as GetSdk with the addition of
6883// the ability to pass a context and additional request options.
6884//
6885// See GetSdk for details on how to use this API operation.
6886//
6887// The context must be non-nil and will be used for request cancellation. If
6888// the context is nil a panic will occur. In the future the SDK may create
6889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6890// for more information on using Contexts.
6891func (c *APIGateway) GetSdkWithContext(ctx aws.Context, input *GetSdkInput, opts ...request.Option) (*GetSdkOutput, error) {
6892	req, out := c.GetSdkRequest(input)
6893	req.SetContext(ctx)
6894	req.ApplyOptions(opts...)
6895	return out, req.Send()
6896}
6897
6898const opGetSdkType = "GetSdkType"
6899
6900// GetSdkTypeRequest generates a "aws/request.Request" representing the
6901// client's request for the GetSdkType operation. The "output" return
6902// value will be populated with the request's response once the request completes
6903// successfully.
6904//
6905// Use "Send" method on the returned Request to send the API call to the service.
6906// the "output" return value is not valid until after Send returns without error.
6907//
6908// See GetSdkType for more information on using the GetSdkType
6909// API call, and error handling.
6910//
6911// This method is useful when you want to inject custom logic or configuration
6912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6913//
6914//
6915//    // Example sending a request using the GetSdkTypeRequest method.
6916//    req, resp := client.GetSdkTypeRequest(params)
6917//
6918//    err := req.Send()
6919//    if err == nil { // resp is now filled
6920//        fmt.Println(resp)
6921//    }
6922func (c *APIGateway) GetSdkTypeRequest(input *GetSdkTypeInput) (req *request.Request, output *SdkType) {
6923	op := &request.Operation{
6924		Name:       opGetSdkType,
6925		HTTPMethod: "GET",
6926		HTTPPath:   "/sdktypes/{sdktype_id}",
6927	}
6928
6929	if input == nil {
6930		input = &GetSdkTypeInput{}
6931	}
6932
6933	output = &SdkType{}
6934	req = c.newRequest(op, input, output)
6935	return
6936}
6937
6938// GetSdkType API operation for Amazon API Gateway.
6939//
6940// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6941// with awserr.Error's Code and Message methods to get detailed information about
6942// the error.
6943//
6944// See the AWS API reference guide for Amazon API Gateway's
6945// API operation GetSdkType for usage and error information.
6946//
6947// Returned Error Codes:
6948//   * ErrCodeUnauthorizedException "UnauthorizedException"
6949//   The request is denied because the caller has insufficient permissions.
6950//
6951//   * ErrCodeNotFoundException "NotFoundException"
6952//   The requested resource is not found. Make sure that the request URI is correct.
6953//
6954//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
6955//   The request has reached its throttling limit. Retry after the specified time
6956//   period.
6957//
6958func (c *APIGateway) GetSdkType(input *GetSdkTypeInput) (*SdkType, error) {
6959	req, out := c.GetSdkTypeRequest(input)
6960	return out, req.Send()
6961}
6962
6963// GetSdkTypeWithContext is the same as GetSdkType with the addition of
6964// the ability to pass a context and additional request options.
6965//
6966// See GetSdkType for details on how to use this API operation.
6967//
6968// The context must be non-nil and will be used for request cancellation. If
6969// the context is nil a panic will occur. In the future the SDK may create
6970// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6971// for more information on using Contexts.
6972func (c *APIGateway) GetSdkTypeWithContext(ctx aws.Context, input *GetSdkTypeInput, opts ...request.Option) (*SdkType, error) {
6973	req, out := c.GetSdkTypeRequest(input)
6974	req.SetContext(ctx)
6975	req.ApplyOptions(opts...)
6976	return out, req.Send()
6977}
6978
6979const opGetSdkTypes = "GetSdkTypes"
6980
6981// GetSdkTypesRequest generates a "aws/request.Request" representing the
6982// client's request for the GetSdkTypes operation. The "output" return
6983// value will be populated with the request's response once the request completes
6984// successfully.
6985//
6986// Use "Send" method on the returned Request to send the API call to the service.
6987// the "output" return value is not valid until after Send returns without error.
6988//
6989// See GetSdkTypes for more information on using the GetSdkTypes
6990// API call, and error handling.
6991//
6992// This method is useful when you want to inject custom logic or configuration
6993// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6994//
6995//
6996//    // Example sending a request using the GetSdkTypesRequest method.
6997//    req, resp := client.GetSdkTypesRequest(params)
6998//
6999//    err := req.Send()
7000//    if err == nil { // resp is now filled
7001//        fmt.Println(resp)
7002//    }
7003func (c *APIGateway) GetSdkTypesRequest(input *GetSdkTypesInput) (req *request.Request, output *GetSdkTypesOutput) {
7004	op := &request.Operation{
7005		Name:       opGetSdkTypes,
7006		HTTPMethod: "GET",
7007		HTTPPath:   "/sdktypes",
7008	}
7009
7010	if input == nil {
7011		input = &GetSdkTypesInput{}
7012	}
7013
7014	output = &GetSdkTypesOutput{}
7015	req = c.newRequest(op, input, output)
7016	return
7017}
7018
7019// GetSdkTypes API operation for Amazon API Gateway.
7020//
7021// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7022// with awserr.Error's Code and Message methods to get detailed information about
7023// the error.
7024//
7025// See the AWS API reference guide for Amazon API Gateway's
7026// API operation GetSdkTypes for usage and error information.
7027//
7028// Returned Error Codes:
7029//   * ErrCodeUnauthorizedException "UnauthorizedException"
7030//   The request is denied because the caller has insufficient permissions.
7031//
7032//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
7033//   The request has reached its throttling limit. Retry after the specified time
7034//   period.
7035//
7036func (c *APIGateway) GetSdkTypes(input *GetSdkTypesInput) (*GetSdkTypesOutput, error) {
7037	req, out := c.GetSdkTypesRequest(input)
7038	return out, req.Send()
7039}
7040
7041// GetSdkTypesWithContext is the same as GetSdkTypes with the addition of
7042// the ability to pass a context and additional request options.
7043//
7044// See GetSdkTypes for details on how to use this API operation.
7045//
7046// The context must be non-nil and will be used for request cancellation. If
7047// the context is nil a panic will occur. In the future the SDK may create
7048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7049// for more information on using Contexts.
7050func (c *APIGateway) GetSdkTypesWithContext(ctx aws.Context, input *GetSdkTypesInput, opts ...request.Option) (*GetSdkTypesOutput, error) {
7051	req, out := c.GetSdkTypesRequest(input)
7052	req.SetContext(ctx)
7053	req.ApplyOptions(opts...)
7054	return out, req.Send()
7055}
7056
7057const opGetStage = "GetStage"
7058
7059// GetStageRequest generates a "aws/request.Request" representing the
7060// client's request for the GetStage operation. The "output" return
7061// value will be populated with the request's response once the request completes
7062// successfully.
7063//
7064// Use "Send" method on the returned Request to send the API call to the service.
7065// the "output" return value is not valid until after Send returns without error.
7066//
7067// See GetStage for more information on using the GetStage
7068// API call, and error handling.
7069//
7070// This method is useful when you want to inject custom logic or configuration
7071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7072//
7073//
7074//    // Example sending a request using the GetStageRequest method.
7075//    req, resp := client.GetStageRequest(params)
7076//
7077//    err := req.Send()
7078//    if err == nil { // resp is now filled
7079//        fmt.Println(resp)
7080//    }
7081func (c *APIGateway) GetStageRequest(input *GetStageInput) (req *request.Request, output *Stage) {
7082	op := &request.Operation{
7083		Name:       opGetStage,
7084		HTTPMethod: "GET",
7085		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}",
7086	}
7087
7088	if input == nil {
7089		input = &GetStageInput{}
7090	}
7091
7092	output = &Stage{}
7093	req = c.newRequest(op, input, output)
7094	return
7095}
7096
7097// GetStage API operation for Amazon API Gateway.
7098//
7099// Gets information about a Stage resource.
7100//
7101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7102// with awserr.Error's Code and Message methods to get detailed information about
7103// the error.
7104//
7105// See the AWS API reference guide for Amazon API Gateway's
7106// API operation GetStage for usage and error information.
7107//
7108// Returned Error Codes:
7109//   * ErrCodeUnauthorizedException "UnauthorizedException"
7110//   The request is denied because the caller has insufficient permissions.
7111//
7112//   * ErrCodeNotFoundException "NotFoundException"
7113//   The requested resource is not found. Make sure that the request URI is correct.
7114//
7115//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
7116//   The request has reached its throttling limit. Retry after the specified time
7117//   period.
7118//
7119func (c *APIGateway) GetStage(input *GetStageInput) (*Stage, error) {
7120	req, out := c.GetStageRequest(input)
7121	return out, req.Send()
7122}
7123
7124// GetStageWithContext is the same as GetStage with the addition of
7125// the ability to pass a context and additional request options.
7126//
7127// See GetStage for details on how to use this API operation.
7128//
7129// The context must be non-nil and will be used for request cancellation. If
7130// the context is nil a panic will occur. In the future the SDK may create
7131// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7132// for more information on using Contexts.
7133func (c *APIGateway) GetStageWithContext(ctx aws.Context, input *GetStageInput, opts ...request.Option) (*Stage, error) {
7134	req, out := c.GetStageRequest(input)
7135	req.SetContext(ctx)
7136	req.ApplyOptions(opts...)
7137	return out, req.Send()
7138}
7139
7140const opGetStages = "GetStages"
7141
7142// GetStagesRequest generates a "aws/request.Request" representing the
7143// client's request for the GetStages operation. The "output" return
7144// value will be populated with the request's response once the request completes
7145// successfully.
7146//
7147// Use "Send" method on the returned Request to send the API call to the service.
7148// the "output" return value is not valid until after Send returns without error.
7149//
7150// See GetStages for more information on using the GetStages
7151// API call, and error handling.
7152//
7153// This method is useful when you want to inject custom logic or configuration
7154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7155//
7156//
7157//    // Example sending a request using the GetStagesRequest method.
7158//    req, resp := client.GetStagesRequest(params)
7159//
7160//    err := req.Send()
7161//    if err == nil { // resp is now filled
7162//        fmt.Println(resp)
7163//    }
7164func (c *APIGateway) GetStagesRequest(input *GetStagesInput) (req *request.Request, output *GetStagesOutput) {
7165	op := &request.Operation{
7166		Name:       opGetStages,
7167		HTTPMethod: "GET",
7168		HTTPPath:   "/restapis/{restapi_id}/stages",
7169	}
7170
7171	if input == nil {
7172		input = &GetStagesInput{}
7173	}
7174
7175	output = &GetStagesOutput{}
7176	req = c.newRequest(op, input, output)
7177	return
7178}
7179
7180// GetStages API operation for Amazon API Gateway.
7181//
7182// Gets information about one or more Stage resources.
7183//
7184// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7185// with awserr.Error's Code and Message methods to get detailed information about
7186// the error.
7187//
7188// See the AWS API reference guide for Amazon API Gateway's
7189// API operation GetStages for usage and error information.
7190//
7191// Returned Error Codes:
7192//   * ErrCodeUnauthorizedException "UnauthorizedException"
7193//   The request is denied because the caller has insufficient permissions.
7194//
7195//   * ErrCodeNotFoundException "NotFoundException"
7196//   The requested resource is not found. Make sure that the request URI is correct.
7197//
7198//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
7199//   The request has reached its throttling limit. Retry after the specified time
7200//   period.
7201//
7202func (c *APIGateway) GetStages(input *GetStagesInput) (*GetStagesOutput, error) {
7203	req, out := c.GetStagesRequest(input)
7204	return out, req.Send()
7205}
7206
7207// GetStagesWithContext is the same as GetStages with the addition of
7208// the ability to pass a context and additional request options.
7209//
7210// See GetStages for details on how to use this API operation.
7211//
7212// The context must be non-nil and will be used for request cancellation. If
7213// the context is nil a panic will occur. In the future the SDK may create
7214// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7215// for more information on using Contexts.
7216func (c *APIGateway) GetStagesWithContext(ctx aws.Context, input *GetStagesInput, opts ...request.Option) (*GetStagesOutput, error) {
7217	req, out := c.GetStagesRequest(input)
7218	req.SetContext(ctx)
7219	req.ApplyOptions(opts...)
7220	return out, req.Send()
7221}
7222
7223const opGetTags = "GetTags"
7224
7225// GetTagsRequest generates a "aws/request.Request" representing the
7226// client's request for the GetTags operation. The "output" return
7227// value will be populated with the request's response once the request completes
7228// successfully.
7229//
7230// Use "Send" method on the returned Request to send the API call to the service.
7231// the "output" return value is not valid until after Send returns without error.
7232//
7233// See GetTags for more information on using the GetTags
7234// API call, and error handling.
7235//
7236// This method is useful when you want to inject custom logic or configuration
7237// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7238//
7239//
7240//    // Example sending a request using the GetTagsRequest method.
7241//    req, resp := client.GetTagsRequest(params)
7242//
7243//    err := req.Send()
7244//    if err == nil { // resp is now filled
7245//        fmt.Println(resp)
7246//    }
7247func (c *APIGateway) GetTagsRequest(input *GetTagsInput) (req *request.Request, output *GetTagsOutput) {
7248	op := &request.Operation{
7249		Name:       opGetTags,
7250		HTTPMethod: "GET",
7251		HTTPPath:   "/tags/{resource_arn}",
7252	}
7253
7254	if input == nil {
7255		input = &GetTagsInput{}
7256	}
7257
7258	output = &GetTagsOutput{}
7259	req = c.newRequest(op, input, output)
7260	return
7261}
7262
7263// GetTags API operation for Amazon API Gateway.
7264//
7265// Gets the Tags collection for a given resource.
7266//
7267// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7268// with awserr.Error's Code and Message methods to get detailed information about
7269// the error.
7270//
7271// See the AWS API reference guide for Amazon API Gateway's
7272// API operation GetTags for usage and error information.
7273//
7274// Returned Error Codes:
7275//   * ErrCodeBadRequestException "BadRequestException"
7276//   The submitted request is not valid, for example, the input is incomplete
7277//   or incorrect. See the accompanying error message for details.
7278//
7279//   * ErrCodeUnauthorizedException "UnauthorizedException"
7280//   The request is denied because the caller has insufficient permissions.
7281//
7282//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
7283//   The request has reached its throttling limit. Retry after the specified time
7284//   period.
7285//
7286//   * ErrCodeNotFoundException "NotFoundException"
7287//   The requested resource is not found. Make sure that the request URI is correct.
7288//
7289//   * ErrCodeLimitExceededException "LimitExceededException"
7290//   The request exceeded the rate limit. Retry after the specified time period.
7291//
7292func (c *APIGateway) GetTags(input *GetTagsInput) (*GetTagsOutput, error) {
7293	req, out := c.GetTagsRequest(input)
7294	return out, req.Send()
7295}
7296
7297// GetTagsWithContext is the same as GetTags with the addition of
7298// the ability to pass a context and additional request options.
7299//
7300// See GetTags for details on how to use this API operation.
7301//
7302// The context must be non-nil and will be used for request cancellation. If
7303// the context is nil a panic will occur. In the future the SDK may create
7304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7305// for more information on using Contexts.
7306func (c *APIGateway) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, opts ...request.Option) (*GetTagsOutput, error) {
7307	req, out := c.GetTagsRequest(input)
7308	req.SetContext(ctx)
7309	req.ApplyOptions(opts...)
7310	return out, req.Send()
7311}
7312
7313const opGetUsage = "GetUsage"
7314
7315// GetUsageRequest generates a "aws/request.Request" representing the
7316// client's request for the GetUsage operation. The "output" return
7317// value will be populated with the request's response once the request completes
7318// successfully.
7319//
7320// Use "Send" method on the returned Request to send the API call to the service.
7321// the "output" return value is not valid until after Send returns without error.
7322//
7323// See GetUsage for more information on using the GetUsage
7324// API call, and error handling.
7325//
7326// This method is useful when you want to inject custom logic or configuration
7327// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7328//
7329//
7330//    // Example sending a request using the GetUsageRequest method.
7331//    req, resp := client.GetUsageRequest(params)
7332//
7333//    err := req.Send()
7334//    if err == nil { // resp is now filled
7335//        fmt.Println(resp)
7336//    }
7337func (c *APIGateway) GetUsageRequest(input *GetUsageInput) (req *request.Request, output *Usage) {
7338	op := &request.Operation{
7339		Name:       opGetUsage,
7340		HTTPMethod: "GET",
7341		HTTPPath:   "/usageplans/{usageplanId}/usage",
7342		Paginator: &request.Paginator{
7343			InputTokens:     []string{"position"},
7344			OutputTokens:    []string{"position"},
7345			LimitToken:      "limit",
7346			TruncationToken: "",
7347		},
7348	}
7349
7350	if input == nil {
7351		input = &GetUsageInput{}
7352	}
7353
7354	output = &Usage{}
7355	req = c.newRequest(op, input, output)
7356	return
7357}
7358
7359// GetUsage API operation for Amazon API Gateway.
7360//
7361// Gets the usage data of a usage plan in a specified time interval.
7362//
7363// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7364// with awserr.Error's Code and Message methods to get detailed information about
7365// the error.
7366//
7367// See the AWS API reference guide for Amazon API Gateway's
7368// API operation GetUsage for usage and error information.
7369//
7370// Returned Error Codes:
7371//   * ErrCodeBadRequestException "BadRequestException"
7372//   The submitted request is not valid, for example, the input is incomplete
7373//   or incorrect. See the accompanying error message for details.
7374//
7375//   * ErrCodeUnauthorizedException "UnauthorizedException"
7376//   The request is denied because the caller has insufficient permissions.
7377//
7378//   * ErrCodeNotFoundException "NotFoundException"
7379//   The requested resource is not found. Make sure that the request URI is correct.
7380//
7381//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
7382//   The request has reached its throttling limit. Retry after the specified time
7383//   period.
7384//
7385func (c *APIGateway) GetUsage(input *GetUsageInput) (*Usage, error) {
7386	req, out := c.GetUsageRequest(input)
7387	return out, req.Send()
7388}
7389
7390// GetUsageWithContext is the same as GetUsage with the addition of
7391// the ability to pass a context and additional request options.
7392//
7393// See GetUsage for details on how to use this API operation.
7394//
7395// The context must be non-nil and will be used for request cancellation. If
7396// the context is nil a panic will occur. In the future the SDK may create
7397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7398// for more information on using Contexts.
7399func (c *APIGateway) GetUsageWithContext(ctx aws.Context, input *GetUsageInput, opts ...request.Option) (*Usage, error) {
7400	req, out := c.GetUsageRequest(input)
7401	req.SetContext(ctx)
7402	req.ApplyOptions(opts...)
7403	return out, req.Send()
7404}
7405
7406// GetUsagePages iterates over the pages of a GetUsage operation,
7407// calling the "fn" function with the response data for each page. To stop
7408// iterating, return false from the fn function.
7409//
7410// See GetUsage method for more information on how to use this operation.
7411//
7412// Note: This operation can generate multiple requests to a service.
7413//
7414//    // Example iterating over at most 3 pages of a GetUsage operation.
7415//    pageNum := 0
7416//    err := client.GetUsagePages(params,
7417//        func(page *apigateway.Usage, lastPage bool) bool {
7418//            pageNum++
7419//            fmt.Println(page)
7420//            return pageNum <= 3
7421//        })
7422//
7423func (c *APIGateway) GetUsagePages(input *GetUsageInput, fn func(*Usage, bool) bool) error {
7424	return c.GetUsagePagesWithContext(aws.BackgroundContext(), input, fn)
7425}
7426
7427// GetUsagePagesWithContext same as GetUsagePages except
7428// it takes a Context and allows setting request options on the pages.
7429//
7430// The context must be non-nil and will be used for request cancellation. If
7431// the context is nil a panic will occur. In the future the SDK may create
7432// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7433// for more information on using Contexts.
7434func (c *APIGateway) GetUsagePagesWithContext(ctx aws.Context, input *GetUsageInput, fn func(*Usage, bool) bool, opts ...request.Option) error {
7435	p := request.Pagination{
7436		NewRequest: func() (*request.Request, error) {
7437			var inCpy *GetUsageInput
7438			if input != nil {
7439				tmp := *input
7440				inCpy = &tmp
7441			}
7442			req, _ := c.GetUsageRequest(inCpy)
7443			req.SetContext(ctx)
7444			req.ApplyOptions(opts...)
7445			return req, nil
7446		},
7447	}
7448
7449	for p.Next() {
7450		if !fn(p.Page().(*Usage), !p.HasNextPage()) {
7451			break
7452		}
7453	}
7454
7455	return p.Err()
7456}
7457
7458const opGetUsagePlan = "GetUsagePlan"
7459
7460// GetUsagePlanRequest generates a "aws/request.Request" representing the
7461// client's request for the GetUsagePlan operation. The "output" return
7462// value will be populated with the request's response once the request completes
7463// successfully.
7464//
7465// Use "Send" method on the returned Request to send the API call to the service.
7466// the "output" return value is not valid until after Send returns without error.
7467//
7468// See GetUsagePlan for more information on using the GetUsagePlan
7469// API call, and error handling.
7470//
7471// This method is useful when you want to inject custom logic or configuration
7472// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7473//
7474//
7475//    // Example sending a request using the GetUsagePlanRequest method.
7476//    req, resp := client.GetUsagePlanRequest(params)
7477//
7478//    err := req.Send()
7479//    if err == nil { // resp is now filled
7480//        fmt.Println(resp)
7481//    }
7482func (c *APIGateway) GetUsagePlanRequest(input *GetUsagePlanInput) (req *request.Request, output *UsagePlan) {
7483	op := &request.Operation{
7484		Name:       opGetUsagePlan,
7485		HTTPMethod: "GET",
7486		HTTPPath:   "/usageplans/{usageplanId}",
7487	}
7488
7489	if input == nil {
7490		input = &GetUsagePlanInput{}
7491	}
7492
7493	output = &UsagePlan{}
7494	req = c.newRequest(op, input, output)
7495	return
7496}
7497
7498// GetUsagePlan API operation for Amazon API Gateway.
7499//
7500// Gets a usage plan of a given plan identifier.
7501//
7502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7503// with awserr.Error's Code and Message methods to get detailed information about
7504// the error.
7505//
7506// See the AWS API reference guide for Amazon API Gateway's
7507// API operation GetUsagePlan for usage and error information.
7508//
7509// Returned Error Codes:
7510//   * ErrCodeBadRequestException "BadRequestException"
7511//   The submitted request is not valid, for example, the input is incomplete
7512//   or incorrect. See the accompanying error message for details.
7513//
7514//   * ErrCodeUnauthorizedException "UnauthorizedException"
7515//   The request is denied because the caller has insufficient permissions.
7516//
7517//   * ErrCodeNotFoundException "NotFoundException"
7518//   The requested resource is not found. Make sure that the request URI is correct.
7519//
7520//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
7521//   The request has reached its throttling limit. Retry after the specified time
7522//   period.
7523//
7524func (c *APIGateway) GetUsagePlan(input *GetUsagePlanInput) (*UsagePlan, error) {
7525	req, out := c.GetUsagePlanRequest(input)
7526	return out, req.Send()
7527}
7528
7529// GetUsagePlanWithContext is the same as GetUsagePlan with the addition of
7530// the ability to pass a context and additional request options.
7531//
7532// See GetUsagePlan for details on how to use this API operation.
7533//
7534// The context must be non-nil and will be used for request cancellation. If
7535// the context is nil a panic will occur. In the future the SDK may create
7536// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7537// for more information on using Contexts.
7538func (c *APIGateway) GetUsagePlanWithContext(ctx aws.Context, input *GetUsagePlanInput, opts ...request.Option) (*UsagePlan, error) {
7539	req, out := c.GetUsagePlanRequest(input)
7540	req.SetContext(ctx)
7541	req.ApplyOptions(opts...)
7542	return out, req.Send()
7543}
7544
7545const opGetUsagePlanKey = "GetUsagePlanKey"
7546
7547// GetUsagePlanKeyRequest generates a "aws/request.Request" representing the
7548// client's request for the GetUsagePlanKey operation. The "output" return
7549// value will be populated with the request's response once the request completes
7550// successfully.
7551//
7552// Use "Send" method on the returned Request to send the API call to the service.
7553// the "output" return value is not valid until after Send returns without error.
7554//
7555// See GetUsagePlanKey for more information on using the GetUsagePlanKey
7556// API call, and error handling.
7557//
7558// This method is useful when you want to inject custom logic or configuration
7559// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7560//
7561//
7562//    // Example sending a request using the GetUsagePlanKeyRequest method.
7563//    req, resp := client.GetUsagePlanKeyRequest(params)
7564//
7565//    err := req.Send()
7566//    if err == nil { // resp is now filled
7567//        fmt.Println(resp)
7568//    }
7569func (c *APIGateway) GetUsagePlanKeyRequest(input *GetUsagePlanKeyInput) (req *request.Request, output *UsagePlanKey) {
7570	op := &request.Operation{
7571		Name:       opGetUsagePlanKey,
7572		HTTPMethod: "GET",
7573		HTTPPath:   "/usageplans/{usageplanId}/keys/{keyId}",
7574	}
7575
7576	if input == nil {
7577		input = &GetUsagePlanKeyInput{}
7578	}
7579
7580	output = &UsagePlanKey{}
7581	req = c.newRequest(op, input, output)
7582	return
7583}
7584
7585// GetUsagePlanKey API operation for Amazon API Gateway.
7586//
7587// Gets a usage plan key of a given key identifier.
7588//
7589// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7590// with awserr.Error's Code and Message methods to get detailed information about
7591// the error.
7592//
7593// See the AWS API reference guide for Amazon API Gateway's
7594// API operation GetUsagePlanKey for usage and error information.
7595//
7596// Returned Error Codes:
7597//   * ErrCodeBadRequestException "BadRequestException"
7598//   The submitted request is not valid, for example, the input is incomplete
7599//   or incorrect. See the accompanying error message for details.
7600//
7601//   * ErrCodeUnauthorizedException "UnauthorizedException"
7602//   The request is denied because the caller has insufficient permissions.
7603//
7604//   * ErrCodeNotFoundException "NotFoundException"
7605//   The requested resource is not found. Make sure that the request URI is correct.
7606//
7607//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
7608//   The request has reached its throttling limit. Retry after the specified time
7609//   period.
7610//
7611func (c *APIGateway) GetUsagePlanKey(input *GetUsagePlanKeyInput) (*UsagePlanKey, error) {
7612	req, out := c.GetUsagePlanKeyRequest(input)
7613	return out, req.Send()
7614}
7615
7616// GetUsagePlanKeyWithContext is the same as GetUsagePlanKey with the addition of
7617// the ability to pass a context and additional request options.
7618//
7619// See GetUsagePlanKey for details on how to use this API operation.
7620//
7621// The context must be non-nil and will be used for request cancellation. If
7622// the context is nil a panic will occur. In the future the SDK may create
7623// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7624// for more information on using Contexts.
7625func (c *APIGateway) GetUsagePlanKeyWithContext(ctx aws.Context, input *GetUsagePlanKeyInput, opts ...request.Option) (*UsagePlanKey, error) {
7626	req, out := c.GetUsagePlanKeyRequest(input)
7627	req.SetContext(ctx)
7628	req.ApplyOptions(opts...)
7629	return out, req.Send()
7630}
7631
7632const opGetUsagePlanKeys = "GetUsagePlanKeys"
7633
7634// GetUsagePlanKeysRequest generates a "aws/request.Request" representing the
7635// client's request for the GetUsagePlanKeys operation. The "output" return
7636// value will be populated with the request's response once the request completes
7637// successfully.
7638//
7639// Use "Send" method on the returned Request to send the API call to the service.
7640// the "output" return value is not valid until after Send returns without error.
7641//
7642// See GetUsagePlanKeys for more information on using the GetUsagePlanKeys
7643// API call, and error handling.
7644//
7645// This method is useful when you want to inject custom logic or configuration
7646// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7647//
7648//
7649//    // Example sending a request using the GetUsagePlanKeysRequest method.
7650//    req, resp := client.GetUsagePlanKeysRequest(params)
7651//
7652//    err := req.Send()
7653//    if err == nil { // resp is now filled
7654//        fmt.Println(resp)
7655//    }
7656func (c *APIGateway) GetUsagePlanKeysRequest(input *GetUsagePlanKeysInput) (req *request.Request, output *GetUsagePlanKeysOutput) {
7657	op := &request.Operation{
7658		Name:       opGetUsagePlanKeys,
7659		HTTPMethod: "GET",
7660		HTTPPath:   "/usageplans/{usageplanId}/keys",
7661		Paginator: &request.Paginator{
7662			InputTokens:     []string{"position"},
7663			OutputTokens:    []string{"position"},
7664			LimitToken:      "limit",
7665			TruncationToken: "",
7666		},
7667	}
7668
7669	if input == nil {
7670		input = &GetUsagePlanKeysInput{}
7671	}
7672
7673	output = &GetUsagePlanKeysOutput{}
7674	req = c.newRequest(op, input, output)
7675	return
7676}
7677
7678// GetUsagePlanKeys API operation for Amazon API Gateway.
7679//
7680// Gets all the usage plan keys representing the API keys added to a specified
7681// usage plan.
7682//
7683// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7684// with awserr.Error's Code and Message methods to get detailed information about
7685// the error.
7686//
7687// See the AWS API reference guide for Amazon API Gateway's
7688// API operation GetUsagePlanKeys for usage and error information.
7689//
7690// Returned Error Codes:
7691//   * ErrCodeBadRequestException "BadRequestException"
7692//   The submitted request is not valid, for example, the input is incomplete
7693//   or incorrect. See the accompanying error message for details.
7694//
7695//   * ErrCodeUnauthorizedException "UnauthorizedException"
7696//   The request is denied because the caller has insufficient permissions.
7697//
7698//   * ErrCodeNotFoundException "NotFoundException"
7699//   The requested resource is not found. Make sure that the request URI is correct.
7700//
7701//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
7702//   The request has reached its throttling limit. Retry after the specified time
7703//   period.
7704//
7705func (c *APIGateway) GetUsagePlanKeys(input *GetUsagePlanKeysInput) (*GetUsagePlanKeysOutput, error) {
7706	req, out := c.GetUsagePlanKeysRequest(input)
7707	return out, req.Send()
7708}
7709
7710// GetUsagePlanKeysWithContext is the same as GetUsagePlanKeys with the addition of
7711// the ability to pass a context and additional request options.
7712//
7713// See GetUsagePlanKeys for details on how to use this API operation.
7714//
7715// The context must be non-nil and will be used for request cancellation. If
7716// the context is nil a panic will occur. In the future the SDK may create
7717// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7718// for more information on using Contexts.
7719func (c *APIGateway) GetUsagePlanKeysWithContext(ctx aws.Context, input *GetUsagePlanKeysInput, opts ...request.Option) (*GetUsagePlanKeysOutput, error) {
7720	req, out := c.GetUsagePlanKeysRequest(input)
7721	req.SetContext(ctx)
7722	req.ApplyOptions(opts...)
7723	return out, req.Send()
7724}
7725
7726// GetUsagePlanKeysPages iterates over the pages of a GetUsagePlanKeys operation,
7727// calling the "fn" function with the response data for each page. To stop
7728// iterating, return false from the fn function.
7729//
7730// See GetUsagePlanKeys method for more information on how to use this operation.
7731//
7732// Note: This operation can generate multiple requests to a service.
7733//
7734//    // Example iterating over at most 3 pages of a GetUsagePlanKeys operation.
7735//    pageNum := 0
7736//    err := client.GetUsagePlanKeysPages(params,
7737//        func(page *apigateway.GetUsagePlanKeysOutput, lastPage bool) bool {
7738//            pageNum++
7739//            fmt.Println(page)
7740//            return pageNum <= 3
7741//        })
7742//
7743func (c *APIGateway) GetUsagePlanKeysPages(input *GetUsagePlanKeysInput, fn func(*GetUsagePlanKeysOutput, bool) bool) error {
7744	return c.GetUsagePlanKeysPagesWithContext(aws.BackgroundContext(), input, fn)
7745}
7746
7747// GetUsagePlanKeysPagesWithContext same as GetUsagePlanKeysPages except
7748// it takes a Context and allows setting request options on the pages.
7749//
7750// The context must be non-nil and will be used for request cancellation. If
7751// the context is nil a panic will occur. In the future the SDK may create
7752// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7753// for more information on using Contexts.
7754func (c *APIGateway) GetUsagePlanKeysPagesWithContext(ctx aws.Context, input *GetUsagePlanKeysInput, fn func(*GetUsagePlanKeysOutput, bool) bool, opts ...request.Option) error {
7755	p := request.Pagination{
7756		NewRequest: func() (*request.Request, error) {
7757			var inCpy *GetUsagePlanKeysInput
7758			if input != nil {
7759				tmp := *input
7760				inCpy = &tmp
7761			}
7762			req, _ := c.GetUsagePlanKeysRequest(inCpy)
7763			req.SetContext(ctx)
7764			req.ApplyOptions(opts...)
7765			return req, nil
7766		},
7767	}
7768
7769	for p.Next() {
7770		if !fn(p.Page().(*GetUsagePlanKeysOutput), !p.HasNextPage()) {
7771			break
7772		}
7773	}
7774
7775	return p.Err()
7776}
7777
7778const opGetUsagePlans = "GetUsagePlans"
7779
7780// GetUsagePlansRequest generates a "aws/request.Request" representing the
7781// client's request for the GetUsagePlans operation. The "output" return
7782// value will be populated with the request's response once the request completes
7783// successfully.
7784//
7785// Use "Send" method on the returned Request to send the API call to the service.
7786// the "output" return value is not valid until after Send returns without error.
7787//
7788// See GetUsagePlans for more information on using the GetUsagePlans
7789// API call, and error handling.
7790//
7791// This method is useful when you want to inject custom logic or configuration
7792// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7793//
7794//
7795//    // Example sending a request using the GetUsagePlansRequest method.
7796//    req, resp := client.GetUsagePlansRequest(params)
7797//
7798//    err := req.Send()
7799//    if err == nil { // resp is now filled
7800//        fmt.Println(resp)
7801//    }
7802func (c *APIGateway) GetUsagePlansRequest(input *GetUsagePlansInput) (req *request.Request, output *GetUsagePlansOutput) {
7803	op := &request.Operation{
7804		Name:       opGetUsagePlans,
7805		HTTPMethod: "GET",
7806		HTTPPath:   "/usageplans",
7807		Paginator: &request.Paginator{
7808			InputTokens:     []string{"position"},
7809			OutputTokens:    []string{"position"},
7810			LimitToken:      "limit",
7811			TruncationToken: "",
7812		},
7813	}
7814
7815	if input == nil {
7816		input = &GetUsagePlansInput{}
7817	}
7818
7819	output = &GetUsagePlansOutput{}
7820	req = c.newRequest(op, input, output)
7821	return
7822}
7823
7824// GetUsagePlans API operation for Amazon API Gateway.
7825//
7826// Gets all the usage plans of the caller's account.
7827//
7828// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7829// with awserr.Error's Code and Message methods to get detailed information about
7830// the error.
7831//
7832// See the AWS API reference guide for Amazon API Gateway's
7833// API operation GetUsagePlans for usage and error information.
7834//
7835// Returned Error Codes:
7836//   * ErrCodeBadRequestException "BadRequestException"
7837//   The submitted request is not valid, for example, the input is incomplete
7838//   or incorrect. See the accompanying error message for details.
7839//
7840//   * ErrCodeUnauthorizedException "UnauthorizedException"
7841//   The request is denied because the caller has insufficient permissions.
7842//
7843//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
7844//   The request has reached its throttling limit. Retry after the specified time
7845//   period.
7846//
7847//   * ErrCodeConflictException "ConflictException"
7848//   The request configuration has conflicts. For details, see the accompanying
7849//   error message.
7850//
7851//   * ErrCodeNotFoundException "NotFoundException"
7852//   The requested resource is not found. Make sure that the request URI is correct.
7853//
7854func (c *APIGateway) GetUsagePlans(input *GetUsagePlansInput) (*GetUsagePlansOutput, error) {
7855	req, out := c.GetUsagePlansRequest(input)
7856	return out, req.Send()
7857}
7858
7859// GetUsagePlansWithContext is the same as GetUsagePlans with the addition of
7860// the ability to pass a context and additional request options.
7861//
7862// See GetUsagePlans for details on how to use this API operation.
7863//
7864// The context must be non-nil and will be used for request cancellation. If
7865// the context is nil a panic will occur. In the future the SDK may create
7866// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7867// for more information on using Contexts.
7868func (c *APIGateway) GetUsagePlansWithContext(ctx aws.Context, input *GetUsagePlansInput, opts ...request.Option) (*GetUsagePlansOutput, error) {
7869	req, out := c.GetUsagePlansRequest(input)
7870	req.SetContext(ctx)
7871	req.ApplyOptions(opts...)
7872	return out, req.Send()
7873}
7874
7875// GetUsagePlansPages iterates over the pages of a GetUsagePlans operation,
7876// calling the "fn" function with the response data for each page. To stop
7877// iterating, return false from the fn function.
7878//
7879// See GetUsagePlans method for more information on how to use this operation.
7880//
7881// Note: This operation can generate multiple requests to a service.
7882//
7883//    // Example iterating over at most 3 pages of a GetUsagePlans operation.
7884//    pageNum := 0
7885//    err := client.GetUsagePlansPages(params,
7886//        func(page *apigateway.GetUsagePlansOutput, lastPage bool) bool {
7887//            pageNum++
7888//            fmt.Println(page)
7889//            return pageNum <= 3
7890//        })
7891//
7892func (c *APIGateway) GetUsagePlansPages(input *GetUsagePlansInput, fn func(*GetUsagePlansOutput, bool) bool) error {
7893	return c.GetUsagePlansPagesWithContext(aws.BackgroundContext(), input, fn)
7894}
7895
7896// GetUsagePlansPagesWithContext same as GetUsagePlansPages except
7897// it takes a Context and allows setting request options on the pages.
7898//
7899// The context must be non-nil and will be used for request cancellation. If
7900// the context is nil a panic will occur. In the future the SDK may create
7901// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7902// for more information on using Contexts.
7903func (c *APIGateway) GetUsagePlansPagesWithContext(ctx aws.Context, input *GetUsagePlansInput, fn func(*GetUsagePlansOutput, bool) bool, opts ...request.Option) error {
7904	p := request.Pagination{
7905		NewRequest: func() (*request.Request, error) {
7906			var inCpy *GetUsagePlansInput
7907			if input != nil {
7908				tmp := *input
7909				inCpy = &tmp
7910			}
7911			req, _ := c.GetUsagePlansRequest(inCpy)
7912			req.SetContext(ctx)
7913			req.ApplyOptions(opts...)
7914			return req, nil
7915		},
7916	}
7917
7918	for p.Next() {
7919		if !fn(p.Page().(*GetUsagePlansOutput), !p.HasNextPage()) {
7920			break
7921		}
7922	}
7923
7924	return p.Err()
7925}
7926
7927const opGetVpcLink = "GetVpcLink"
7928
7929// GetVpcLinkRequest generates a "aws/request.Request" representing the
7930// client's request for the GetVpcLink operation. The "output" return
7931// value will be populated with the request's response once the request completes
7932// successfully.
7933//
7934// Use "Send" method on the returned Request to send the API call to the service.
7935// the "output" return value is not valid until after Send returns without error.
7936//
7937// See GetVpcLink for more information on using the GetVpcLink
7938// API call, and error handling.
7939//
7940// This method is useful when you want to inject custom logic or configuration
7941// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7942//
7943//
7944//    // Example sending a request using the GetVpcLinkRequest method.
7945//    req, resp := client.GetVpcLinkRequest(params)
7946//
7947//    err := req.Send()
7948//    if err == nil { // resp is now filled
7949//        fmt.Println(resp)
7950//    }
7951func (c *APIGateway) GetVpcLinkRequest(input *GetVpcLinkInput) (req *request.Request, output *UpdateVpcLinkOutput) {
7952	op := &request.Operation{
7953		Name:       opGetVpcLink,
7954		HTTPMethod: "GET",
7955		HTTPPath:   "/vpclinks/{vpclink_id}",
7956	}
7957
7958	if input == nil {
7959		input = &GetVpcLinkInput{}
7960	}
7961
7962	output = &UpdateVpcLinkOutput{}
7963	req = c.newRequest(op, input, output)
7964	return
7965}
7966
7967// GetVpcLink API operation for Amazon API Gateway.
7968//
7969// Gets a specified VPC link under the caller's account in a region.
7970//
7971// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7972// with awserr.Error's Code and Message methods to get detailed information about
7973// the error.
7974//
7975// See the AWS API reference guide for Amazon API Gateway's
7976// API operation GetVpcLink for usage and error information.
7977//
7978// Returned Error Codes:
7979//   * ErrCodeUnauthorizedException "UnauthorizedException"
7980//   The request is denied because the caller has insufficient permissions.
7981//
7982//   * ErrCodeNotFoundException "NotFoundException"
7983//   The requested resource is not found. Make sure that the request URI is correct.
7984//
7985//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
7986//   The request has reached its throttling limit. Retry after the specified time
7987//   period.
7988//
7989func (c *APIGateway) GetVpcLink(input *GetVpcLinkInput) (*UpdateVpcLinkOutput, error) {
7990	req, out := c.GetVpcLinkRequest(input)
7991	return out, req.Send()
7992}
7993
7994// GetVpcLinkWithContext is the same as GetVpcLink with the addition of
7995// the ability to pass a context and additional request options.
7996//
7997// See GetVpcLink for details on how to use this API operation.
7998//
7999// The context must be non-nil and will be used for request cancellation. If
8000// the context is nil a panic will occur. In the future the SDK may create
8001// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8002// for more information on using Contexts.
8003func (c *APIGateway) GetVpcLinkWithContext(ctx aws.Context, input *GetVpcLinkInput, opts ...request.Option) (*UpdateVpcLinkOutput, error) {
8004	req, out := c.GetVpcLinkRequest(input)
8005	req.SetContext(ctx)
8006	req.ApplyOptions(opts...)
8007	return out, req.Send()
8008}
8009
8010const opGetVpcLinks = "GetVpcLinks"
8011
8012// GetVpcLinksRequest generates a "aws/request.Request" representing the
8013// client's request for the GetVpcLinks operation. The "output" return
8014// value will be populated with the request's response once the request completes
8015// successfully.
8016//
8017// Use "Send" method on the returned Request to send the API call to the service.
8018// the "output" return value is not valid until after Send returns without error.
8019//
8020// See GetVpcLinks for more information on using the GetVpcLinks
8021// API call, and error handling.
8022//
8023// This method is useful when you want to inject custom logic or configuration
8024// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8025//
8026//
8027//    // Example sending a request using the GetVpcLinksRequest method.
8028//    req, resp := client.GetVpcLinksRequest(params)
8029//
8030//    err := req.Send()
8031//    if err == nil { // resp is now filled
8032//        fmt.Println(resp)
8033//    }
8034func (c *APIGateway) GetVpcLinksRequest(input *GetVpcLinksInput) (req *request.Request, output *GetVpcLinksOutput) {
8035	op := &request.Operation{
8036		Name:       opGetVpcLinks,
8037		HTTPMethod: "GET",
8038		HTTPPath:   "/vpclinks",
8039		Paginator: &request.Paginator{
8040			InputTokens:     []string{"position"},
8041			OutputTokens:    []string{"position"},
8042			LimitToken:      "limit",
8043			TruncationToken: "",
8044		},
8045	}
8046
8047	if input == nil {
8048		input = &GetVpcLinksInput{}
8049	}
8050
8051	output = &GetVpcLinksOutput{}
8052	req = c.newRequest(op, input, output)
8053	return
8054}
8055
8056// GetVpcLinks API operation for Amazon API Gateway.
8057//
8058// Gets the VpcLinks collection under the caller's account in a selected region.
8059//
8060// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8061// with awserr.Error's Code and Message methods to get detailed information about
8062// the error.
8063//
8064// See the AWS API reference guide for Amazon API Gateway's
8065// API operation GetVpcLinks for usage and error information.
8066//
8067// Returned Error Codes:
8068//   * ErrCodeBadRequestException "BadRequestException"
8069//   The submitted request is not valid, for example, the input is incomplete
8070//   or incorrect. See the accompanying error message for details.
8071//
8072//   * ErrCodeUnauthorizedException "UnauthorizedException"
8073//   The request is denied because the caller has insufficient permissions.
8074//
8075//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
8076//   The request has reached its throttling limit. Retry after the specified time
8077//   period.
8078//
8079func (c *APIGateway) GetVpcLinks(input *GetVpcLinksInput) (*GetVpcLinksOutput, error) {
8080	req, out := c.GetVpcLinksRequest(input)
8081	return out, req.Send()
8082}
8083
8084// GetVpcLinksWithContext is the same as GetVpcLinks with the addition of
8085// the ability to pass a context and additional request options.
8086//
8087// See GetVpcLinks for details on how to use this API operation.
8088//
8089// The context must be non-nil and will be used for request cancellation. If
8090// the context is nil a panic will occur. In the future the SDK may create
8091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8092// for more information on using Contexts.
8093func (c *APIGateway) GetVpcLinksWithContext(ctx aws.Context, input *GetVpcLinksInput, opts ...request.Option) (*GetVpcLinksOutput, error) {
8094	req, out := c.GetVpcLinksRequest(input)
8095	req.SetContext(ctx)
8096	req.ApplyOptions(opts...)
8097	return out, req.Send()
8098}
8099
8100// GetVpcLinksPages iterates over the pages of a GetVpcLinks operation,
8101// calling the "fn" function with the response data for each page. To stop
8102// iterating, return false from the fn function.
8103//
8104// See GetVpcLinks method for more information on how to use this operation.
8105//
8106// Note: This operation can generate multiple requests to a service.
8107//
8108//    // Example iterating over at most 3 pages of a GetVpcLinks operation.
8109//    pageNum := 0
8110//    err := client.GetVpcLinksPages(params,
8111//        func(page *apigateway.GetVpcLinksOutput, lastPage bool) bool {
8112//            pageNum++
8113//            fmt.Println(page)
8114//            return pageNum <= 3
8115//        })
8116//
8117func (c *APIGateway) GetVpcLinksPages(input *GetVpcLinksInput, fn func(*GetVpcLinksOutput, bool) bool) error {
8118	return c.GetVpcLinksPagesWithContext(aws.BackgroundContext(), input, fn)
8119}
8120
8121// GetVpcLinksPagesWithContext same as GetVpcLinksPages except
8122// it takes a Context and allows setting request options on the pages.
8123//
8124// The context must be non-nil and will be used for request cancellation. If
8125// the context is nil a panic will occur. In the future the SDK may create
8126// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8127// for more information on using Contexts.
8128func (c *APIGateway) GetVpcLinksPagesWithContext(ctx aws.Context, input *GetVpcLinksInput, fn func(*GetVpcLinksOutput, bool) bool, opts ...request.Option) error {
8129	p := request.Pagination{
8130		NewRequest: func() (*request.Request, error) {
8131			var inCpy *GetVpcLinksInput
8132			if input != nil {
8133				tmp := *input
8134				inCpy = &tmp
8135			}
8136			req, _ := c.GetVpcLinksRequest(inCpy)
8137			req.SetContext(ctx)
8138			req.ApplyOptions(opts...)
8139			return req, nil
8140		},
8141	}
8142
8143	for p.Next() {
8144		if !fn(p.Page().(*GetVpcLinksOutput), !p.HasNextPage()) {
8145			break
8146		}
8147	}
8148
8149	return p.Err()
8150}
8151
8152const opImportApiKeys = "ImportApiKeys"
8153
8154// ImportApiKeysRequest generates a "aws/request.Request" representing the
8155// client's request for the ImportApiKeys operation. The "output" return
8156// value will be populated with the request's response once the request completes
8157// successfully.
8158//
8159// Use "Send" method on the returned Request to send the API call to the service.
8160// the "output" return value is not valid until after Send returns without error.
8161//
8162// See ImportApiKeys for more information on using the ImportApiKeys
8163// API call, and error handling.
8164//
8165// This method is useful when you want to inject custom logic or configuration
8166// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8167//
8168//
8169//    // Example sending a request using the ImportApiKeysRequest method.
8170//    req, resp := client.ImportApiKeysRequest(params)
8171//
8172//    err := req.Send()
8173//    if err == nil { // resp is now filled
8174//        fmt.Println(resp)
8175//    }
8176func (c *APIGateway) ImportApiKeysRequest(input *ImportApiKeysInput) (req *request.Request, output *ImportApiKeysOutput) {
8177	op := &request.Operation{
8178		Name:       opImportApiKeys,
8179		HTTPMethod: "POST",
8180		HTTPPath:   "/apikeys?mode=import",
8181	}
8182
8183	if input == nil {
8184		input = &ImportApiKeysInput{}
8185	}
8186
8187	output = &ImportApiKeysOutput{}
8188	req = c.newRequest(op, input, output)
8189	return
8190}
8191
8192// ImportApiKeys API operation for Amazon API Gateway.
8193//
8194// Import API keys from an external source, such as a CSV-formatted file.
8195//
8196// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8197// with awserr.Error's Code and Message methods to get detailed information about
8198// the error.
8199//
8200// See the AWS API reference guide for Amazon API Gateway's
8201// API operation ImportApiKeys for usage and error information.
8202//
8203// Returned Error Codes:
8204//   * ErrCodeUnauthorizedException "UnauthorizedException"
8205//   The request is denied because the caller has insufficient permissions.
8206//
8207//   * ErrCodeNotFoundException "NotFoundException"
8208//   The requested resource is not found. Make sure that the request URI is correct.
8209//
8210//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
8211//   The request has reached its throttling limit. Retry after the specified time
8212//   period.
8213//
8214//   * ErrCodeLimitExceededException "LimitExceededException"
8215//   The request exceeded the rate limit. Retry after the specified time period.
8216//
8217//   * ErrCodeBadRequestException "BadRequestException"
8218//   The submitted request is not valid, for example, the input is incomplete
8219//   or incorrect. See the accompanying error message for details.
8220//
8221//   * ErrCodeConflictException "ConflictException"
8222//   The request configuration has conflicts. For details, see the accompanying
8223//   error message.
8224//
8225func (c *APIGateway) ImportApiKeys(input *ImportApiKeysInput) (*ImportApiKeysOutput, error) {
8226	req, out := c.ImportApiKeysRequest(input)
8227	return out, req.Send()
8228}
8229
8230// ImportApiKeysWithContext is the same as ImportApiKeys with the addition of
8231// the ability to pass a context and additional request options.
8232//
8233// See ImportApiKeys for details on how to use this API operation.
8234//
8235// The context must be non-nil and will be used for request cancellation. If
8236// the context is nil a panic will occur. In the future the SDK may create
8237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8238// for more information on using Contexts.
8239func (c *APIGateway) ImportApiKeysWithContext(ctx aws.Context, input *ImportApiKeysInput, opts ...request.Option) (*ImportApiKeysOutput, error) {
8240	req, out := c.ImportApiKeysRequest(input)
8241	req.SetContext(ctx)
8242	req.ApplyOptions(opts...)
8243	return out, req.Send()
8244}
8245
8246const opImportDocumentationParts = "ImportDocumentationParts"
8247
8248// ImportDocumentationPartsRequest generates a "aws/request.Request" representing the
8249// client's request for the ImportDocumentationParts operation. The "output" return
8250// value will be populated with the request's response once the request completes
8251// successfully.
8252//
8253// Use "Send" method on the returned Request to send the API call to the service.
8254// the "output" return value is not valid until after Send returns without error.
8255//
8256// See ImportDocumentationParts for more information on using the ImportDocumentationParts
8257// API call, and error handling.
8258//
8259// This method is useful when you want to inject custom logic or configuration
8260// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8261//
8262//
8263//    // Example sending a request using the ImportDocumentationPartsRequest method.
8264//    req, resp := client.ImportDocumentationPartsRequest(params)
8265//
8266//    err := req.Send()
8267//    if err == nil { // resp is now filled
8268//        fmt.Println(resp)
8269//    }
8270func (c *APIGateway) ImportDocumentationPartsRequest(input *ImportDocumentationPartsInput) (req *request.Request, output *ImportDocumentationPartsOutput) {
8271	op := &request.Operation{
8272		Name:       opImportDocumentationParts,
8273		HTTPMethod: "PUT",
8274		HTTPPath:   "/restapis/{restapi_id}/documentation/parts",
8275	}
8276
8277	if input == nil {
8278		input = &ImportDocumentationPartsInput{}
8279	}
8280
8281	output = &ImportDocumentationPartsOutput{}
8282	req = c.newRequest(op, input, output)
8283	return
8284}
8285
8286// ImportDocumentationParts API operation for Amazon API Gateway.
8287//
8288// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8289// with awserr.Error's Code and Message methods to get detailed information about
8290// the error.
8291//
8292// See the AWS API reference guide for Amazon API Gateway's
8293// API operation ImportDocumentationParts for usage and error information.
8294//
8295// Returned Error Codes:
8296//   * ErrCodeUnauthorizedException "UnauthorizedException"
8297//   The request is denied because the caller has insufficient permissions.
8298//
8299//   * ErrCodeNotFoundException "NotFoundException"
8300//   The requested resource is not found. Make sure that the request URI is correct.
8301//
8302//   * ErrCodeBadRequestException "BadRequestException"
8303//   The submitted request is not valid, for example, the input is incomplete
8304//   or incorrect. See the accompanying error message for details.
8305//
8306//   * ErrCodeLimitExceededException "LimitExceededException"
8307//   The request exceeded the rate limit. Retry after the specified time period.
8308//
8309//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
8310//   The request has reached its throttling limit. Retry after the specified time
8311//   period.
8312//
8313func (c *APIGateway) ImportDocumentationParts(input *ImportDocumentationPartsInput) (*ImportDocumentationPartsOutput, error) {
8314	req, out := c.ImportDocumentationPartsRequest(input)
8315	return out, req.Send()
8316}
8317
8318// ImportDocumentationPartsWithContext is the same as ImportDocumentationParts with the addition of
8319// the ability to pass a context and additional request options.
8320//
8321// See ImportDocumentationParts for details on how to use this API operation.
8322//
8323// The context must be non-nil and will be used for request cancellation. If
8324// the context is nil a panic will occur. In the future the SDK may create
8325// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8326// for more information on using Contexts.
8327func (c *APIGateway) ImportDocumentationPartsWithContext(ctx aws.Context, input *ImportDocumentationPartsInput, opts ...request.Option) (*ImportDocumentationPartsOutput, error) {
8328	req, out := c.ImportDocumentationPartsRequest(input)
8329	req.SetContext(ctx)
8330	req.ApplyOptions(opts...)
8331	return out, req.Send()
8332}
8333
8334const opImportRestApi = "ImportRestApi"
8335
8336// ImportRestApiRequest generates a "aws/request.Request" representing the
8337// client's request for the ImportRestApi operation. The "output" return
8338// value will be populated with the request's response once the request completes
8339// successfully.
8340//
8341// Use "Send" method on the returned Request to send the API call to the service.
8342// the "output" return value is not valid until after Send returns without error.
8343//
8344// See ImportRestApi for more information on using the ImportRestApi
8345// API call, and error handling.
8346//
8347// This method is useful when you want to inject custom logic or configuration
8348// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8349//
8350//
8351//    // Example sending a request using the ImportRestApiRequest method.
8352//    req, resp := client.ImportRestApiRequest(params)
8353//
8354//    err := req.Send()
8355//    if err == nil { // resp is now filled
8356//        fmt.Println(resp)
8357//    }
8358func (c *APIGateway) ImportRestApiRequest(input *ImportRestApiInput) (req *request.Request, output *RestApi) {
8359	op := &request.Operation{
8360		Name:       opImportRestApi,
8361		HTTPMethod: "POST",
8362		HTTPPath:   "/restapis?mode=import",
8363	}
8364
8365	if input == nil {
8366		input = &ImportRestApiInput{}
8367	}
8368
8369	output = &RestApi{}
8370	req = c.newRequest(op, input, output)
8371	return
8372}
8373
8374// ImportRestApi API operation for Amazon API Gateway.
8375//
8376// A feature of the API Gateway control service for creating a new API from
8377// an external API definition file.
8378//
8379// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8380// with awserr.Error's Code and Message methods to get detailed information about
8381// the error.
8382//
8383// See the AWS API reference guide for Amazon API Gateway's
8384// API operation ImportRestApi for usage and error information.
8385//
8386// Returned Error Codes:
8387//   * ErrCodeUnauthorizedException "UnauthorizedException"
8388//   The request is denied because the caller has insufficient permissions.
8389//
8390//   * ErrCodeLimitExceededException "LimitExceededException"
8391//   The request exceeded the rate limit. Retry after the specified time period.
8392//
8393//   * ErrCodeBadRequestException "BadRequestException"
8394//   The submitted request is not valid, for example, the input is incomplete
8395//   or incorrect. See the accompanying error message for details.
8396//
8397//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
8398//   The request has reached its throttling limit. Retry after the specified time
8399//   period.
8400//
8401//   * ErrCodeConflictException "ConflictException"
8402//   The request configuration has conflicts. For details, see the accompanying
8403//   error message.
8404//
8405func (c *APIGateway) ImportRestApi(input *ImportRestApiInput) (*RestApi, error) {
8406	req, out := c.ImportRestApiRequest(input)
8407	return out, req.Send()
8408}
8409
8410// ImportRestApiWithContext is the same as ImportRestApi with the addition of
8411// the ability to pass a context and additional request options.
8412//
8413// See ImportRestApi for details on how to use this API operation.
8414//
8415// The context must be non-nil and will be used for request cancellation. If
8416// the context is nil a panic will occur. In the future the SDK may create
8417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8418// for more information on using Contexts.
8419func (c *APIGateway) ImportRestApiWithContext(ctx aws.Context, input *ImportRestApiInput, opts ...request.Option) (*RestApi, error) {
8420	req, out := c.ImportRestApiRequest(input)
8421	req.SetContext(ctx)
8422	req.ApplyOptions(opts...)
8423	return out, req.Send()
8424}
8425
8426const opPutGatewayResponse = "PutGatewayResponse"
8427
8428// PutGatewayResponseRequest generates a "aws/request.Request" representing the
8429// client's request for the PutGatewayResponse operation. The "output" return
8430// value will be populated with the request's response once the request completes
8431// successfully.
8432//
8433// Use "Send" method on the returned Request to send the API call to the service.
8434// the "output" return value is not valid until after Send returns without error.
8435//
8436// See PutGatewayResponse for more information on using the PutGatewayResponse
8437// API call, and error handling.
8438//
8439// This method is useful when you want to inject custom logic or configuration
8440// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8441//
8442//
8443//    // Example sending a request using the PutGatewayResponseRequest method.
8444//    req, resp := client.PutGatewayResponseRequest(params)
8445//
8446//    err := req.Send()
8447//    if err == nil { // resp is now filled
8448//        fmt.Println(resp)
8449//    }
8450func (c *APIGateway) PutGatewayResponseRequest(input *PutGatewayResponseInput) (req *request.Request, output *UpdateGatewayResponseOutput) {
8451	op := &request.Operation{
8452		Name:       opPutGatewayResponse,
8453		HTTPMethod: "PUT",
8454		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
8455	}
8456
8457	if input == nil {
8458		input = &PutGatewayResponseInput{}
8459	}
8460
8461	output = &UpdateGatewayResponseOutput{}
8462	req = c.newRequest(op, input, output)
8463	return
8464}
8465
8466// PutGatewayResponse API operation for Amazon API Gateway.
8467//
8468// Creates a customization of a GatewayResponse of a specified response type
8469// and status code on the given RestApi.
8470//
8471// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8472// with awserr.Error's Code and Message methods to get detailed information about
8473// the error.
8474//
8475// See the AWS API reference guide for Amazon API Gateway's
8476// API operation PutGatewayResponse for usage and error information.
8477//
8478// Returned Error Codes:
8479//   * ErrCodeBadRequestException "BadRequestException"
8480//   The submitted request is not valid, for example, the input is incomplete
8481//   or incorrect. See the accompanying error message for details.
8482//
8483//   * ErrCodeUnauthorizedException "UnauthorizedException"
8484//   The request is denied because the caller has insufficient permissions.
8485//
8486//   * ErrCodeNotFoundException "NotFoundException"
8487//   The requested resource is not found. Make sure that the request URI is correct.
8488//
8489//   * ErrCodeLimitExceededException "LimitExceededException"
8490//   The request exceeded the rate limit. Retry after the specified time period.
8491//
8492//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
8493//   The request has reached its throttling limit. Retry after the specified time
8494//   period.
8495//
8496func (c *APIGateway) PutGatewayResponse(input *PutGatewayResponseInput) (*UpdateGatewayResponseOutput, error) {
8497	req, out := c.PutGatewayResponseRequest(input)
8498	return out, req.Send()
8499}
8500
8501// PutGatewayResponseWithContext is the same as PutGatewayResponse with the addition of
8502// the ability to pass a context and additional request options.
8503//
8504// See PutGatewayResponse for details on how to use this API operation.
8505//
8506// The context must be non-nil and will be used for request cancellation. If
8507// the context is nil a panic will occur. In the future the SDK may create
8508// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8509// for more information on using Contexts.
8510func (c *APIGateway) PutGatewayResponseWithContext(ctx aws.Context, input *PutGatewayResponseInput, opts ...request.Option) (*UpdateGatewayResponseOutput, error) {
8511	req, out := c.PutGatewayResponseRequest(input)
8512	req.SetContext(ctx)
8513	req.ApplyOptions(opts...)
8514	return out, req.Send()
8515}
8516
8517const opPutIntegration = "PutIntegration"
8518
8519// PutIntegrationRequest generates a "aws/request.Request" representing the
8520// client's request for the PutIntegration operation. The "output" return
8521// value will be populated with the request's response once the request completes
8522// successfully.
8523//
8524// Use "Send" method on the returned Request to send the API call to the service.
8525// the "output" return value is not valid until after Send returns without error.
8526//
8527// See PutIntegration for more information on using the PutIntegration
8528// API call, and error handling.
8529//
8530// This method is useful when you want to inject custom logic or configuration
8531// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8532//
8533//
8534//    // Example sending a request using the PutIntegrationRequest method.
8535//    req, resp := client.PutIntegrationRequest(params)
8536//
8537//    err := req.Send()
8538//    if err == nil { // resp is now filled
8539//        fmt.Println(resp)
8540//    }
8541func (c *APIGateway) PutIntegrationRequest(input *PutIntegrationInput) (req *request.Request, output *Integration) {
8542	op := &request.Operation{
8543		Name:       opPutIntegration,
8544		HTTPMethod: "PUT",
8545		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
8546	}
8547
8548	if input == nil {
8549		input = &PutIntegrationInput{}
8550	}
8551
8552	output = &Integration{}
8553	req = c.newRequest(op, input, output)
8554	return
8555}
8556
8557// PutIntegration API operation for Amazon API Gateway.
8558//
8559// Sets up a method's integration.
8560//
8561// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8562// with awserr.Error's Code and Message methods to get detailed information about
8563// the error.
8564//
8565// See the AWS API reference guide for Amazon API Gateway's
8566// API operation PutIntegration for usage and error information.
8567//
8568// Returned Error Codes:
8569//   * ErrCodeUnauthorizedException "UnauthorizedException"
8570//   The request is denied because the caller has insufficient permissions.
8571//
8572//   * ErrCodeBadRequestException "BadRequestException"
8573//   The submitted request is not valid, for example, the input is incomplete
8574//   or incorrect. See the accompanying error message for details.
8575//
8576//   * ErrCodeConflictException "ConflictException"
8577//   The request configuration has conflicts. For details, see the accompanying
8578//   error message.
8579//
8580//   * ErrCodeNotFoundException "NotFoundException"
8581//   The requested resource is not found. Make sure that the request URI is correct.
8582//
8583//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
8584//   The request has reached its throttling limit. Retry after the specified time
8585//   period.
8586//
8587func (c *APIGateway) PutIntegration(input *PutIntegrationInput) (*Integration, error) {
8588	req, out := c.PutIntegrationRequest(input)
8589	return out, req.Send()
8590}
8591
8592// PutIntegrationWithContext is the same as PutIntegration with the addition of
8593// the ability to pass a context and additional request options.
8594//
8595// See PutIntegration for details on how to use this API operation.
8596//
8597// The context must be non-nil and will be used for request cancellation. If
8598// the context is nil a panic will occur. In the future the SDK may create
8599// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8600// for more information on using Contexts.
8601func (c *APIGateway) PutIntegrationWithContext(ctx aws.Context, input *PutIntegrationInput, opts ...request.Option) (*Integration, error) {
8602	req, out := c.PutIntegrationRequest(input)
8603	req.SetContext(ctx)
8604	req.ApplyOptions(opts...)
8605	return out, req.Send()
8606}
8607
8608const opPutIntegrationResponse = "PutIntegrationResponse"
8609
8610// PutIntegrationResponseRequest generates a "aws/request.Request" representing the
8611// client's request for the PutIntegrationResponse operation. The "output" return
8612// value will be populated with the request's response once the request completes
8613// successfully.
8614//
8615// Use "Send" method on the returned Request to send the API call to the service.
8616// the "output" return value is not valid until after Send returns without error.
8617//
8618// See PutIntegrationResponse for more information on using the PutIntegrationResponse
8619// API call, and error handling.
8620//
8621// This method is useful when you want to inject custom logic or configuration
8622// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8623//
8624//
8625//    // Example sending a request using the PutIntegrationResponseRequest method.
8626//    req, resp := client.PutIntegrationResponseRequest(params)
8627//
8628//    err := req.Send()
8629//    if err == nil { // resp is now filled
8630//        fmt.Println(resp)
8631//    }
8632func (c *APIGateway) PutIntegrationResponseRequest(input *PutIntegrationResponseInput) (req *request.Request, output *IntegrationResponse) {
8633	op := &request.Operation{
8634		Name:       opPutIntegrationResponse,
8635		HTTPMethod: "PUT",
8636		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
8637	}
8638
8639	if input == nil {
8640		input = &PutIntegrationResponseInput{}
8641	}
8642
8643	output = &IntegrationResponse{}
8644	req = c.newRequest(op, input, output)
8645	return
8646}
8647
8648// PutIntegrationResponse API operation for Amazon API Gateway.
8649//
8650// Represents a put integration.
8651//
8652// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8653// with awserr.Error's Code and Message methods to get detailed information about
8654// the error.
8655//
8656// See the AWS API reference guide for Amazon API Gateway's
8657// API operation PutIntegrationResponse for usage and error information.
8658//
8659// Returned Error Codes:
8660//   * ErrCodeUnauthorizedException "UnauthorizedException"
8661//   The request is denied because the caller has insufficient permissions.
8662//
8663//   * ErrCodeNotFoundException "NotFoundException"
8664//   The requested resource is not found. Make sure that the request URI is correct.
8665//
8666//   * ErrCodeLimitExceededException "LimitExceededException"
8667//   The request exceeded the rate limit. Retry after the specified time period.
8668//
8669//   * ErrCodeBadRequestException "BadRequestException"
8670//   The submitted request is not valid, for example, the input is incomplete
8671//   or incorrect. See the accompanying error message for details.
8672//
8673//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
8674//   The request has reached its throttling limit. Retry after the specified time
8675//   period.
8676//
8677//   * ErrCodeConflictException "ConflictException"
8678//   The request configuration has conflicts. For details, see the accompanying
8679//   error message.
8680//
8681func (c *APIGateway) PutIntegrationResponse(input *PutIntegrationResponseInput) (*IntegrationResponse, error) {
8682	req, out := c.PutIntegrationResponseRequest(input)
8683	return out, req.Send()
8684}
8685
8686// PutIntegrationResponseWithContext is the same as PutIntegrationResponse with the addition of
8687// the ability to pass a context and additional request options.
8688//
8689// See PutIntegrationResponse for details on how to use this API operation.
8690//
8691// The context must be non-nil and will be used for request cancellation. If
8692// the context is nil a panic will occur. In the future the SDK may create
8693// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8694// for more information on using Contexts.
8695func (c *APIGateway) PutIntegrationResponseWithContext(ctx aws.Context, input *PutIntegrationResponseInput, opts ...request.Option) (*IntegrationResponse, error) {
8696	req, out := c.PutIntegrationResponseRequest(input)
8697	req.SetContext(ctx)
8698	req.ApplyOptions(opts...)
8699	return out, req.Send()
8700}
8701
8702const opPutMethod = "PutMethod"
8703
8704// PutMethodRequest generates a "aws/request.Request" representing the
8705// client's request for the PutMethod operation. The "output" return
8706// value will be populated with the request's response once the request completes
8707// successfully.
8708//
8709// Use "Send" method on the returned Request to send the API call to the service.
8710// the "output" return value is not valid until after Send returns without error.
8711//
8712// See PutMethod for more information on using the PutMethod
8713// API call, and error handling.
8714//
8715// This method is useful when you want to inject custom logic or configuration
8716// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8717//
8718//
8719//    // Example sending a request using the PutMethodRequest method.
8720//    req, resp := client.PutMethodRequest(params)
8721//
8722//    err := req.Send()
8723//    if err == nil { // resp is now filled
8724//        fmt.Println(resp)
8725//    }
8726func (c *APIGateway) PutMethodRequest(input *PutMethodInput) (req *request.Request, output *Method) {
8727	op := &request.Operation{
8728		Name:       opPutMethod,
8729		HTTPMethod: "PUT",
8730		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
8731	}
8732
8733	if input == nil {
8734		input = &PutMethodInput{}
8735	}
8736
8737	output = &Method{}
8738	req = c.newRequest(op, input, output)
8739	return
8740}
8741
8742// PutMethod API operation for Amazon API Gateway.
8743//
8744// Add a method to an existing Resource resource.
8745//
8746// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8747// with awserr.Error's Code and Message methods to get detailed information about
8748// the error.
8749//
8750// See the AWS API reference guide for Amazon API Gateway's
8751// API operation PutMethod for usage and error information.
8752//
8753// Returned Error Codes:
8754//   * ErrCodeBadRequestException "BadRequestException"
8755//   The submitted request is not valid, for example, the input is incomplete
8756//   or incorrect. See the accompanying error message for details.
8757//
8758//   * ErrCodeUnauthorizedException "UnauthorizedException"
8759//   The request is denied because the caller has insufficient permissions.
8760//
8761//   * ErrCodeNotFoundException "NotFoundException"
8762//   The requested resource is not found. Make sure that the request URI is correct.
8763//
8764//   * ErrCodeConflictException "ConflictException"
8765//   The request configuration has conflicts. For details, see the accompanying
8766//   error message.
8767//
8768//   * ErrCodeLimitExceededException "LimitExceededException"
8769//   The request exceeded the rate limit. Retry after the specified time period.
8770//
8771//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
8772//   The request has reached its throttling limit. Retry after the specified time
8773//   period.
8774//
8775func (c *APIGateway) PutMethod(input *PutMethodInput) (*Method, error) {
8776	req, out := c.PutMethodRequest(input)
8777	return out, req.Send()
8778}
8779
8780// PutMethodWithContext is the same as PutMethod with the addition of
8781// the ability to pass a context and additional request options.
8782//
8783// See PutMethod for details on how to use this API operation.
8784//
8785// The context must be non-nil and will be used for request cancellation. If
8786// the context is nil a panic will occur. In the future the SDK may create
8787// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8788// for more information on using Contexts.
8789func (c *APIGateway) PutMethodWithContext(ctx aws.Context, input *PutMethodInput, opts ...request.Option) (*Method, error) {
8790	req, out := c.PutMethodRequest(input)
8791	req.SetContext(ctx)
8792	req.ApplyOptions(opts...)
8793	return out, req.Send()
8794}
8795
8796const opPutMethodResponse = "PutMethodResponse"
8797
8798// PutMethodResponseRequest generates a "aws/request.Request" representing the
8799// client's request for the PutMethodResponse operation. The "output" return
8800// value will be populated with the request's response once the request completes
8801// successfully.
8802//
8803// Use "Send" method on the returned Request to send the API call to the service.
8804// the "output" return value is not valid until after Send returns without error.
8805//
8806// See PutMethodResponse for more information on using the PutMethodResponse
8807// API call, and error handling.
8808//
8809// This method is useful when you want to inject custom logic or configuration
8810// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8811//
8812//
8813//    // Example sending a request using the PutMethodResponseRequest method.
8814//    req, resp := client.PutMethodResponseRequest(params)
8815//
8816//    err := req.Send()
8817//    if err == nil { // resp is now filled
8818//        fmt.Println(resp)
8819//    }
8820func (c *APIGateway) PutMethodResponseRequest(input *PutMethodResponseInput) (req *request.Request, output *MethodResponse) {
8821	op := &request.Operation{
8822		Name:       opPutMethodResponse,
8823		HTTPMethod: "PUT",
8824		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
8825	}
8826
8827	if input == nil {
8828		input = &PutMethodResponseInput{}
8829	}
8830
8831	output = &MethodResponse{}
8832	req = c.newRequest(op, input, output)
8833	return
8834}
8835
8836// PutMethodResponse API operation for Amazon API Gateway.
8837//
8838// Adds a MethodResponse to an existing Method resource.
8839//
8840// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8841// with awserr.Error's Code and Message methods to get detailed information about
8842// the error.
8843//
8844// See the AWS API reference guide for Amazon API Gateway's
8845// API operation PutMethodResponse for usage and error information.
8846//
8847// Returned Error Codes:
8848//   * ErrCodeUnauthorizedException "UnauthorizedException"
8849//   The request is denied because the caller has insufficient permissions.
8850//
8851//   * ErrCodeNotFoundException "NotFoundException"
8852//   The requested resource is not found. Make sure that the request URI is correct.
8853//
8854//   * ErrCodeConflictException "ConflictException"
8855//   The request configuration has conflicts. For details, see the accompanying
8856//   error message.
8857//
8858//   * ErrCodeLimitExceededException "LimitExceededException"
8859//   The request exceeded the rate limit. Retry after the specified time period.
8860//
8861//   * ErrCodeBadRequestException "BadRequestException"
8862//   The submitted request is not valid, for example, the input is incomplete
8863//   or incorrect. See the accompanying error message for details.
8864//
8865//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
8866//   The request has reached its throttling limit. Retry after the specified time
8867//   period.
8868//
8869func (c *APIGateway) PutMethodResponse(input *PutMethodResponseInput) (*MethodResponse, error) {
8870	req, out := c.PutMethodResponseRequest(input)
8871	return out, req.Send()
8872}
8873
8874// PutMethodResponseWithContext is the same as PutMethodResponse with the addition of
8875// the ability to pass a context and additional request options.
8876//
8877// See PutMethodResponse for details on how to use this API operation.
8878//
8879// The context must be non-nil and will be used for request cancellation. If
8880// the context is nil a panic will occur. In the future the SDK may create
8881// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8882// for more information on using Contexts.
8883func (c *APIGateway) PutMethodResponseWithContext(ctx aws.Context, input *PutMethodResponseInput, opts ...request.Option) (*MethodResponse, error) {
8884	req, out := c.PutMethodResponseRequest(input)
8885	req.SetContext(ctx)
8886	req.ApplyOptions(opts...)
8887	return out, req.Send()
8888}
8889
8890const opPutRestApi = "PutRestApi"
8891
8892// PutRestApiRequest generates a "aws/request.Request" representing the
8893// client's request for the PutRestApi operation. The "output" return
8894// value will be populated with the request's response once the request completes
8895// successfully.
8896//
8897// Use "Send" method on the returned Request to send the API call to the service.
8898// the "output" return value is not valid until after Send returns without error.
8899//
8900// See PutRestApi for more information on using the PutRestApi
8901// API call, and error handling.
8902//
8903// This method is useful when you want to inject custom logic or configuration
8904// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8905//
8906//
8907//    // Example sending a request using the PutRestApiRequest method.
8908//    req, resp := client.PutRestApiRequest(params)
8909//
8910//    err := req.Send()
8911//    if err == nil { // resp is now filled
8912//        fmt.Println(resp)
8913//    }
8914func (c *APIGateway) PutRestApiRequest(input *PutRestApiInput) (req *request.Request, output *RestApi) {
8915	op := &request.Operation{
8916		Name:       opPutRestApi,
8917		HTTPMethod: "PUT",
8918		HTTPPath:   "/restapis/{restapi_id}",
8919	}
8920
8921	if input == nil {
8922		input = &PutRestApiInput{}
8923	}
8924
8925	output = &RestApi{}
8926	req = c.newRequest(op, input, output)
8927	return
8928}
8929
8930// PutRestApi API operation for Amazon API Gateway.
8931//
8932// A feature of the API Gateway control service for updating an existing API
8933// with an input of external API definitions. The update can take the form of
8934// merging the supplied definition into the existing API or overwriting the
8935// existing API.
8936//
8937// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8938// with awserr.Error's Code and Message methods to get detailed information about
8939// the error.
8940//
8941// See the AWS API reference guide for Amazon API Gateway's
8942// API operation PutRestApi for usage and error information.
8943//
8944// Returned Error Codes:
8945//   * ErrCodeUnauthorizedException "UnauthorizedException"
8946//   The request is denied because the caller has insufficient permissions.
8947//
8948//   * ErrCodeLimitExceededException "LimitExceededException"
8949//   The request exceeded the rate limit. Retry after the specified time period.
8950//
8951//   * ErrCodeNotFoundException "NotFoundException"
8952//   The requested resource is not found. Make sure that the request URI is correct.
8953//
8954//   * ErrCodeBadRequestException "BadRequestException"
8955//   The submitted request is not valid, for example, the input is incomplete
8956//   or incorrect. See the accompanying error message for details.
8957//
8958//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
8959//   The request has reached its throttling limit. Retry after the specified time
8960//   period.
8961//
8962//   * ErrCodeConflictException "ConflictException"
8963//   The request configuration has conflicts. For details, see the accompanying
8964//   error message.
8965//
8966func (c *APIGateway) PutRestApi(input *PutRestApiInput) (*RestApi, error) {
8967	req, out := c.PutRestApiRequest(input)
8968	return out, req.Send()
8969}
8970
8971// PutRestApiWithContext is the same as PutRestApi with the addition of
8972// the ability to pass a context and additional request options.
8973//
8974// See PutRestApi for details on how to use this API operation.
8975//
8976// The context must be non-nil and will be used for request cancellation. If
8977// the context is nil a panic will occur. In the future the SDK may create
8978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8979// for more information on using Contexts.
8980func (c *APIGateway) PutRestApiWithContext(ctx aws.Context, input *PutRestApiInput, opts ...request.Option) (*RestApi, error) {
8981	req, out := c.PutRestApiRequest(input)
8982	req.SetContext(ctx)
8983	req.ApplyOptions(opts...)
8984	return out, req.Send()
8985}
8986
8987const opTagResource = "TagResource"
8988
8989// TagResourceRequest generates a "aws/request.Request" representing the
8990// client's request for the TagResource operation. The "output" return
8991// value will be populated with the request's response once the request completes
8992// successfully.
8993//
8994// Use "Send" method on the returned Request to send the API call to the service.
8995// the "output" return value is not valid until after Send returns without error.
8996//
8997// See TagResource for more information on using the TagResource
8998// API call, and error handling.
8999//
9000// This method is useful when you want to inject custom logic or configuration
9001// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9002//
9003//
9004//    // Example sending a request using the TagResourceRequest method.
9005//    req, resp := client.TagResourceRequest(params)
9006//
9007//    err := req.Send()
9008//    if err == nil { // resp is now filled
9009//        fmt.Println(resp)
9010//    }
9011func (c *APIGateway) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
9012	op := &request.Operation{
9013		Name:       opTagResource,
9014		HTTPMethod: "PUT",
9015		HTTPPath:   "/tags/{resource_arn}",
9016	}
9017
9018	if input == nil {
9019		input = &TagResourceInput{}
9020	}
9021
9022	output = &TagResourceOutput{}
9023	req = c.newRequest(op, input, output)
9024	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9025	return
9026}
9027
9028// TagResource API operation for Amazon API Gateway.
9029//
9030// Adds or updates a tag on a given resource.
9031//
9032// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9033// with awserr.Error's Code and Message methods to get detailed information about
9034// the error.
9035//
9036// See the AWS API reference guide for Amazon API Gateway's
9037// API operation TagResource for usage and error information.
9038//
9039// Returned Error Codes:
9040//   * ErrCodeBadRequestException "BadRequestException"
9041//   The submitted request is not valid, for example, the input is incomplete
9042//   or incorrect. See the accompanying error message for details.
9043//
9044//   * ErrCodeUnauthorizedException "UnauthorizedException"
9045//   The request is denied because the caller has insufficient permissions.
9046//
9047//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9048//   The request has reached its throttling limit. Retry after the specified time
9049//   period.
9050//
9051//   * ErrCodeNotFoundException "NotFoundException"
9052//   The requested resource is not found. Make sure that the request URI is correct.
9053//
9054//   * ErrCodeLimitExceededException "LimitExceededException"
9055//   The request exceeded the rate limit. Retry after the specified time period.
9056//
9057//   * ErrCodeConflictException "ConflictException"
9058//   The request configuration has conflicts. For details, see the accompanying
9059//   error message.
9060//
9061func (c *APIGateway) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
9062	req, out := c.TagResourceRequest(input)
9063	return out, req.Send()
9064}
9065
9066// TagResourceWithContext is the same as TagResource with the addition of
9067// the ability to pass a context and additional request options.
9068//
9069// See TagResource for details on how to use this API operation.
9070//
9071// The context must be non-nil and will be used for request cancellation. If
9072// the context is nil a panic will occur. In the future the SDK may create
9073// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9074// for more information on using Contexts.
9075func (c *APIGateway) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
9076	req, out := c.TagResourceRequest(input)
9077	req.SetContext(ctx)
9078	req.ApplyOptions(opts...)
9079	return out, req.Send()
9080}
9081
9082const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
9083
9084// TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
9085// client's request for the TestInvokeAuthorizer operation. The "output" return
9086// value will be populated with the request's response once the request completes
9087// successfully.
9088//
9089// Use "Send" method on the returned Request to send the API call to the service.
9090// the "output" return value is not valid until after Send returns without error.
9091//
9092// See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
9093// API call, and error handling.
9094//
9095// This method is useful when you want to inject custom logic or configuration
9096// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9097//
9098//
9099//    // Example sending a request using the TestInvokeAuthorizerRequest method.
9100//    req, resp := client.TestInvokeAuthorizerRequest(params)
9101//
9102//    err := req.Send()
9103//    if err == nil { // resp is now filled
9104//        fmt.Println(resp)
9105//    }
9106func (c *APIGateway) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
9107	op := &request.Operation{
9108		Name:       opTestInvokeAuthorizer,
9109		HTTPMethod: "POST",
9110		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
9111	}
9112
9113	if input == nil {
9114		input = &TestInvokeAuthorizerInput{}
9115	}
9116
9117	output = &TestInvokeAuthorizerOutput{}
9118	req = c.newRequest(op, input, output)
9119	return
9120}
9121
9122// TestInvokeAuthorizer API operation for Amazon API Gateway.
9123//
9124// Simulate the execution of an Authorizer in your RestApi with headers, parameters,
9125// and an incoming request body.
9126//
9127// Use Lambda Function as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)
9128// Use Cognito User Pool as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)
9129//
9130// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9131// with awserr.Error's Code and Message methods to get detailed information about
9132// the error.
9133//
9134// See the AWS API reference guide for Amazon API Gateway's
9135// API operation TestInvokeAuthorizer for usage and error information.
9136//
9137// Returned Error Codes:
9138//   * ErrCodeBadRequestException "BadRequestException"
9139//   The submitted request is not valid, for example, the input is incomplete
9140//   or incorrect. See the accompanying error message for details.
9141//
9142//   * ErrCodeUnauthorizedException "UnauthorizedException"
9143//   The request is denied because the caller has insufficient permissions.
9144//
9145//   * ErrCodeNotFoundException "NotFoundException"
9146//   The requested resource is not found. Make sure that the request URI is correct.
9147//
9148//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9149//   The request has reached its throttling limit. Retry after the specified time
9150//   period.
9151//
9152func (c *APIGateway) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
9153	req, out := c.TestInvokeAuthorizerRequest(input)
9154	return out, req.Send()
9155}
9156
9157// TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
9158// the ability to pass a context and additional request options.
9159//
9160// See TestInvokeAuthorizer for details on how to use this API operation.
9161//
9162// The context must be non-nil and will be used for request cancellation. If
9163// the context is nil a panic will occur. In the future the SDK may create
9164// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9165// for more information on using Contexts.
9166func (c *APIGateway) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
9167	req, out := c.TestInvokeAuthorizerRequest(input)
9168	req.SetContext(ctx)
9169	req.ApplyOptions(opts...)
9170	return out, req.Send()
9171}
9172
9173const opTestInvokeMethod = "TestInvokeMethod"
9174
9175// TestInvokeMethodRequest generates a "aws/request.Request" representing the
9176// client's request for the TestInvokeMethod operation. The "output" return
9177// value will be populated with the request's response once the request completes
9178// successfully.
9179//
9180// Use "Send" method on the returned Request to send the API call to the service.
9181// the "output" return value is not valid until after Send returns without error.
9182//
9183// See TestInvokeMethod for more information on using the TestInvokeMethod
9184// API call, and error handling.
9185//
9186// This method is useful when you want to inject custom logic or configuration
9187// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9188//
9189//
9190//    // Example sending a request using the TestInvokeMethodRequest method.
9191//    req, resp := client.TestInvokeMethodRequest(params)
9192//
9193//    err := req.Send()
9194//    if err == nil { // resp is now filled
9195//        fmt.Println(resp)
9196//    }
9197func (c *APIGateway) TestInvokeMethodRequest(input *TestInvokeMethodInput) (req *request.Request, output *TestInvokeMethodOutput) {
9198	op := &request.Operation{
9199		Name:       opTestInvokeMethod,
9200		HTTPMethod: "POST",
9201		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
9202	}
9203
9204	if input == nil {
9205		input = &TestInvokeMethodInput{}
9206	}
9207
9208	output = &TestInvokeMethodOutput{}
9209	req = c.newRequest(op, input, output)
9210	return
9211}
9212
9213// TestInvokeMethod API operation for Amazon API Gateway.
9214//
9215// Simulate the execution of a Method in your RestApi with headers, parameters,
9216// and an incoming request body.
9217//
9218// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9219// with awserr.Error's Code and Message methods to get detailed information about
9220// the error.
9221//
9222// See the AWS API reference guide for Amazon API Gateway's
9223// API operation TestInvokeMethod for usage and error information.
9224//
9225// Returned Error Codes:
9226//   * ErrCodeBadRequestException "BadRequestException"
9227//   The submitted request is not valid, for example, the input is incomplete
9228//   or incorrect. See the accompanying error message for details.
9229//
9230//   * ErrCodeUnauthorizedException "UnauthorizedException"
9231//   The request is denied because the caller has insufficient permissions.
9232//
9233//   * ErrCodeNotFoundException "NotFoundException"
9234//   The requested resource is not found. Make sure that the request URI is correct.
9235//
9236//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9237//   The request has reached its throttling limit. Retry after the specified time
9238//   period.
9239//
9240func (c *APIGateway) TestInvokeMethod(input *TestInvokeMethodInput) (*TestInvokeMethodOutput, error) {
9241	req, out := c.TestInvokeMethodRequest(input)
9242	return out, req.Send()
9243}
9244
9245// TestInvokeMethodWithContext is the same as TestInvokeMethod with the addition of
9246// the ability to pass a context and additional request options.
9247//
9248// See TestInvokeMethod for details on how to use this API operation.
9249//
9250// The context must be non-nil and will be used for request cancellation. If
9251// the context is nil a panic will occur. In the future the SDK may create
9252// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9253// for more information on using Contexts.
9254func (c *APIGateway) TestInvokeMethodWithContext(ctx aws.Context, input *TestInvokeMethodInput, opts ...request.Option) (*TestInvokeMethodOutput, error) {
9255	req, out := c.TestInvokeMethodRequest(input)
9256	req.SetContext(ctx)
9257	req.ApplyOptions(opts...)
9258	return out, req.Send()
9259}
9260
9261const opUntagResource = "UntagResource"
9262
9263// UntagResourceRequest generates a "aws/request.Request" representing the
9264// client's request for the UntagResource operation. The "output" return
9265// value will be populated with the request's response once the request completes
9266// successfully.
9267//
9268// Use "Send" method on the returned Request to send the API call to the service.
9269// the "output" return value is not valid until after Send returns without error.
9270//
9271// See UntagResource for more information on using the UntagResource
9272// API call, and error handling.
9273//
9274// This method is useful when you want to inject custom logic or configuration
9275// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9276//
9277//
9278//    // Example sending a request using the UntagResourceRequest method.
9279//    req, resp := client.UntagResourceRequest(params)
9280//
9281//    err := req.Send()
9282//    if err == nil { // resp is now filled
9283//        fmt.Println(resp)
9284//    }
9285func (c *APIGateway) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
9286	op := &request.Operation{
9287		Name:       opUntagResource,
9288		HTTPMethod: "DELETE",
9289		HTTPPath:   "/tags/{resource_arn}",
9290	}
9291
9292	if input == nil {
9293		input = &UntagResourceInput{}
9294	}
9295
9296	output = &UntagResourceOutput{}
9297	req = c.newRequest(op, input, output)
9298	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9299	return
9300}
9301
9302// UntagResource API operation for Amazon API Gateway.
9303//
9304// Removes a tag from a given resource.
9305//
9306// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9307// with awserr.Error's Code and Message methods to get detailed information about
9308// the error.
9309//
9310// See the AWS API reference guide for Amazon API Gateway's
9311// API operation UntagResource for usage and error information.
9312//
9313// Returned Error Codes:
9314//   * ErrCodeBadRequestException "BadRequestException"
9315//   The submitted request is not valid, for example, the input is incomplete
9316//   or incorrect. See the accompanying error message for details.
9317//
9318//   * ErrCodeUnauthorizedException "UnauthorizedException"
9319//   The request is denied because the caller has insufficient permissions.
9320//
9321//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9322//   The request has reached its throttling limit. Retry after the specified time
9323//   period.
9324//
9325//   * ErrCodeNotFoundException "NotFoundException"
9326//   The requested resource is not found. Make sure that the request URI is correct.
9327//
9328//   * ErrCodeConflictException "ConflictException"
9329//   The request configuration has conflicts. For details, see the accompanying
9330//   error message.
9331//
9332func (c *APIGateway) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
9333	req, out := c.UntagResourceRequest(input)
9334	return out, req.Send()
9335}
9336
9337// UntagResourceWithContext is the same as UntagResource with the addition of
9338// the ability to pass a context and additional request options.
9339//
9340// See UntagResource for details on how to use this API operation.
9341//
9342// The context must be non-nil and will be used for request cancellation. If
9343// the context is nil a panic will occur. In the future the SDK may create
9344// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9345// for more information on using Contexts.
9346func (c *APIGateway) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
9347	req, out := c.UntagResourceRequest(input)
9348	req.SetContext(ctx)
9349	req.ApplyOptions(opts...)
9350	return out, req.Send()
9351}
9352
9353const opUpdateAccount = "UpdateAccount"
9354
9355// UpdateAccountRequest generates a "aws/request.Request" representing the
9356// client's request for the UpdateAccount operation. The "output" return
9357// value will be populated with the request's response once the request completes
9358// successfully.
9359//
9360// Use "Send" method on the returned Request to send the API call to the service.
9361// the "output" return value is not valid until after Send returns without error.
9362//
9363// See UpdateAccount for more information on using the UpdateAccount
9364// API call, and error handling.
9365//
9366// This method is useful when you want to inject custom logic or configuration
9367// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9368//
9369//
9370//    // Example sending a request using the UpdateAccountRequest method.
9371//    req, resp := client.UpdateAccountRequest(params)
9372//
9373//    err := req.Send()
9374//    if err == nil { // resp is now filled
9375//        fmt.Println(resp)
9376//    }
9377func (c *APIGateway) UpdateAccountRequest(input *UpdateAccountInput) (req *request.Request, output *Account) {
9378	op := &request.Operation{
9379		Name:       opUpdateAccount,
9380		HTTPMethod: "PATCH",
9381		HTTPPath:   "/account",
9382	}
9383
9384	if input == nil {
9385		input = &UpdateAccountInput{}
9386	}
9387
9388	output = &Account{}
9389	req = c.newRequest(op, input, output)
9390	return
9391}
9392
9393// UpdateAccount API operation for Amazon API Gateway.
9394//
9395// Changes information about the current Account resource.
9396//
9397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9398// with awserr.Error's Code and Message methods to get detailed information about
9399// the error.
9400//
9401// See the AWS API reference guide for Amazon API Gateway's
9402// API operation UpdateAccount for usage and error information.
9403//
9404// Returned Error Codes:
9405//   * ErrCodeUnauthorizedException "UnauthorizedException"
9406//   The request is denied because the caller has insufficient permissions.
9407//
9408//   * ErrCodeBadRequestException "BadRequestException"
9409//   The submitted request is not valid, for example, the input is incomplete
9410//   or incorrect. See the accompanying error message for details.
9411//
9412//   * ErrCodeNotFoundException "NotFoundException"
9413//   The requested resource is not found. Make sure that the request URI is correct.
9414//
9415//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9416//   The request has reached its throttling limit. Retry after the specified time
9417//   period.
9418//
9419func (c *APIGateway) UpdateAccount(input *UpdateAccountInput) (*Account, error) {
9420	req, out := c.UpdateAccountRequest(input)
9421	return out, req.Send()
9422}
9423
9424// UpdateAccountWithContext is the same as UpdateAccount with the addition of
9425// the ability to pass a context and additional request options.
9426//
9427// See UpdateAccount for details on how to use this API operation.
9428//
9429// The context must be non-nil and will be used for request cancellation. If
9430// the context is nil a panic will occur. In the future the SDK may create
9431// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9432// for more information on using Contexts.
9433func (c *APIGateway) UpdateAccountWithContext(ctx aws.Context, input *UpdateAccountInput, opts ...request.Option) (*Account, error) {
9434	req, out := c.UpdateAccountRequest(input)
9435	req.SetContext(ctx)
9436	req.ApplyOptions(opts...)
9437	return out, req.Send()
9438}
9439
9440const opUpdateApiKey = "UpdateApiKey"
9441
9442// UpdateApiKeyRequest generates a "aws/request.Request" representing the
9443// client's request for the UpdateApiKey operation. The "output" return
9444// value will be populated with the request's response once the request completes
9445// successfully.
9446//
9447// Use "Send" method on the returned Request to send the API call to the service.
9448// the "output" return value is not valid until after Send returns without error.
9449//
9450// See UpdateApiKey for more information on using the UpdateApiKey
9451// API call, and error handling.
9452//
9453// This method is useful when you want to inject custom logic or configuration
9454// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9455//
9456//
9457//    // Example sending a request using the UpdateApiKeyRequest method.
9458//    req, resp := client.UpdateApiKeyRequest(params)
9459//
9460//    err := req.Send()
9461//    if err == nil { // resp is now filled
9462//        fmt.Println(resp)
9463//    }
9464func (c *APIGateway) UpdateApiKeyRequest(input *UpdateApiKeyInput) (req *request.Request, output *ApiKey) {
9465	op := &request.Operation{
9466		Name:       opUpdateApiKey,
9467		HTTPMethod: "PATCH",
9468		HTTPPath:   "/apikeys/{api_Key}",
9469	}
9470
9471	if input == nil {
9472		input = &UpdateApiKeyInput{}
9473	}
9474
9475	output = &ApiKey{}
9476	req = c.newRequest(op, input, output)
9477	return
9478}
9479
9480// UpdateApiKey API operation for Amazon API Gateway.
9481//
9482// Changes information about an ApiKey resource.
9483//
9484// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9485// with awserr.Error's Code and Message methods to get detailed information about
9486// the error.
9487//
9488// See the AWS API reference guide for Amazon API Gateway's
9489// API operation UpdateApiKey for usage and error information.
9490//
9491// Returned Error Codes:
9492//   * ErrCodeUnauthorizedException "UnauthorizedException"
9493//   The request is denied because the caller has insufficient permissions.
9494//
9495//   * ErrCodeNotFoundException "NotFoundException"
9496//   The requested resource is not found. Make sure that the request URI is correct.
9497//
9498//   * ErrCodeBadRequestException "BadRequestException"
9499//   The submitted request is not valid, for example, the input is incomplete
9500//   or incorrect. See the accompanying error message for details.
9501//
9502//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9503//   The request has reached its throttling limit. Retry after the specified time
9504//   period.
9505//
9506//   * ErrCodeConflictException "ConflictException"
9507//   The request configuration has conflicts. For details, see the accompanying
9508//   error message.
9509//
9510func (c *APIGateway) UpdateApiKey(input *UpdateApiKeyInput) (*ApiKey, error) {
9511	req, out := c.UpdateApiKeyRequest(input)
9512	return out, req.Send()
9513}
9514
9515// UpdateApiKeyWithContext is the same as UpdateApiKey with the addition of
9516// the ability to pass a context and additional request options.
9517//
9518// See UpdateApiKey for details on how to use this API operation.
9519//
9520// The context must be non-nil and will be used for request cancellation. If
9521// the context is nil a panic will occur. In the future the SDK may create
9522// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9523// for more information on using Contexts.
9524func (c *APIGateway) UpdateApiKeyWithContext(ctx aws.Context, input *UpdateApiKeyInput, opts ...request.Option) (*ApiKey, error) {
9525	req, out := c.UpdateApiKeyRequest(input)
9526	req.SetContext(ctx)
9527	req.ApplyOptions(opts...)
9528	return out, req.Send()
9529}
9530
9531const opUpdateAuthorizer = "UpdateAuthorizer"
9532
9533// UpdateAuthorizerRequest generates a "aws/request.Request" representing the
9534// client's request for the UpdateAuthorizer operation. The "output" return
9535// value will be populated with the request's response once the request completes
9536// successfully.
9537//
9538// Use "Send" method on the returned Request to send the API call to the service.
9539// the "output" return value is not valid until after Send returns without error.
9540//
9541// See UpdateAuthorizer for more information on using the UpdateAuthorizer
9542// API call, and error handling.
9543//
9544// This method is useful when you want to inject custom logic or configuration
9545// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9546//
9547//
9548//    // Example sending a request using the UpdateAuthorizerRequest method.
9549//    req, resp := client.UpdateAuthorizerRequest(params)
9550//
9551//    err := req.Send()
9552//    if err == nil { // resp is now filled
9553//        fmt.Println(resp)
9554//    }
9555func (c *APIGateway) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *Authorizer) {
9556	op := &request.Operation{
9557		Name:       opUpdateAuthorizer,
9558		HTTPMethod: "PATCH",
9559		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
9560	}
9561
9562	if input == nil {
9563		input = &UpdateAuthorizerInput{}
9564	}
9565
9566	output = &Authorizer{}
9567	req = c.newRequest(op, input, output)
9568	return
9569}
9570
9571// UpdateAuthorizer API operation for Amazon API Gateway.
9572//
9573// Updates an existing Authorizer resource.
9574//
9575// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-authorizer.html)
9576//
9577// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9578// with awserr.Error's Code and Message methods to get detailed information about
9579// the error.
9580//
9581// See the AWS API reference guide for Amazon API Gateway's
9582// API operation UpdateAuthorizer for usage and error information.
9583//
9584// Returned Error Codes:
9585//   * ErrCodeUnauthorizedException "UnauthorizedException"
9586//   The request is denied because the caller has insufficient permissions.
9587//
9588//   * ErrCodeNotFoundException "NotFoundException"
9589//   The requested resource is not found. Make sure that the request URI is correct.
9590//
9591//   * ErrCodeBadRequestException "BadRequestException"
9592//   The submitted request is not valid, for example, the input is incomplete
9593//   or incorrect. See the accompanying error message for details.
9594//
9595//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9596//   The request has reached its throttling limit. Retry after the specified time
9597//   period.
9598//
9599func (c *APIGateway) UpdateAuthorizer(input *UpdateAuthorizerInput) (*Authorizer, error) {
9600	req, out := c.UpdateAuthorizerRequest(input)
9601	return out, req.Send()
9602}
9603
9604// UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
9605// the ability to pass a context and additional request options.
9606//
9607// See UpdateAuthorizer for details on how to use this API operation.
9608//
9609// The context must be non-nil and will be used for request cancellation. If
9610// the context is nil a panic will occur. In the future the SDK may create
9611// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9612// for more information on using Contexts.
9613func (c *APIGateway) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*Authorizer, error) {
9614	req, out := c.UpdateAuthorizerRequest(input)
9615	req.SetContext(ctx)
9616	req.ApplyOptions(opts...)
9617	return out, req.Send()
9618}
9619
9620const opUpdateBasePathMapping = "UpdateBasePathMapping"
9621
9622// UpdateBasePathMappingRequest generates a "aws/request.Request" representing the
9623// client's request for the UpdateBasePathMapping operation. The "output" return
9624// value will be populated with the request's response once the request completes
9625// successfully.
9626//
9627// Use "Send" method on the returned Request to send the API call to the service.
9628// the "output" return value is not valid until after Send returns without error.
9629//
9630// See UpdateBasePathMapping for more information on using the UpdateBasePathMapping
9631// API call, and error handling.
9632//
9633// This method is useful when you want to inject custom logic or configuration
9634// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9635//
9636//
9637//    // Example sending a request using the UpdateBasePathMappingRequest method.
9638//    req, resp := client.UpdateBasePathMappingRequest(params)
9639//
9640//    err := req.Send()
9641//    if err == nil { // resp is now filled
9642//        fmt.Println(resp)
9643//    }
9644func (c *APIGateway) UpdateBasePathMappingRequest(input *UpdateBasePathMappingInput) (req *request.Request, output *BasePathMapping) {
9645	op := &request.Operation{
9646		Name:       opUpdateBasePathMapping,
9647		HTTPMethod: "PATCH",
9648		HTTPPath:   "/domainnames/{domain_name}/basepathmappings/{base_path}",
9649	}
9650
9651	if input == nil {
9652		input = &UpdateBasePathMappingInput{}
9653	}
9654
9655	output = &BasePathMapping{}
9656	req = c.newRequest(op, input, output)
9657	return
9658}
9659
9660// UpdateBasePathMapping API operation for Amazon API Gateway.
9661//
9662// Changes information about the BasePathMapping resource.
9663//
9664// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9665// with awserr.Error's Code and Message methods to get detailed information about
9666// the error.
9667//
9668// See the AWS API reference guide for Amazon API Gateway's
9669// API operation UpdateBasePathMapping for usage and error information.
9670//
9671// Returned Error Codes:
9672//   * ErrCodeUnauthorizedException "UnauthorizedException"
9673//   The request is denied because the caller has insufficient permissions.
9674//
9675//   * ErrCodeNotFoundException "NotFoundException"
9676//   The requested resource is not found. Make sure that the request URI is correct.
9677//
9678//   * ErrCodeConflictException "ConflictException"
9679//   The request configuration has conflicts. For details, see the accompanying
9680//   error message.
9681//
9682//   * ErrCodeBadRequestException "BadRequestException"
9683//   The submitted request is not valid, for example, the input is incomplete
9684//   or incorrect. See the accompanying error message for details.
9685//
9686//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9687//   The request has reached its throttling limit. Retry after the specified time
9688//   period.
9689//
9690func (c *APIGateway) UpdateBasePathMapping(input *UpdateBasePathMappingInput) (*BasePathMapping, error) {
9691	req, out := c.UpdateBasePathMappingRequest(input)
9692	return out, req.Send()
9693}
9694
9695// UpdateBasePathMappingWithContext is the same as UpdateBasePathMapping with the addition of
9696// the ability to pass a context and additional request options.
9697//
9698// See UpdateBasePathMapping for details on how to use this API operation.
9699//
9700// The context must be non-nil and will be used for request cancellation. If
9701// the context is nil a panic will occur. In the future the SDK may create
9702// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9703// for more information on using Contexts.
9704func (c *APIGateway) UpdateBasePathMappingWithContext(ctx aws.Context, input *UpdateBasePathMappingInput, opts ...request.Option) (*BasePathMapping, error) {
9705	req, out := c.UpdateBasePathMappingRequest(input)
9706	req.SetContext(ctx)
9707	req.ApplyOptions(opts...)
9708	return out, req.Send()
9709}
9710
9711const opUpdateClientCertificate = "UpdateClientCertificate"
9712
9713// UpdateClientCertificateRequest generates a "aws/request.Request" representing the
9714// client's request for the UpdateClientCertificate operation. The "output" return
9715// value will be populated with the request's response once the request completes
9716// successfully.
9717//
9718// Use "Send" method on the returned Request to send the API call to the service.
9719// the "output" return value is not valid until after Send returns without error.
9720//
9721// See UpdateClientCertificate for more information on using the UpdateClientCertificate
9722// API call, and error handling.
9723//
9724// This method is useful when you want to inject custom logic or configuration
9725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9726//
9727//
9728//    // Example sending a request using the UpdateClientCertificateRequest method.
9729//    req, resp := client.UpdateClientCertificateRequest(params)
9730//
9731//    err := req.Send()
9732//    if err == nil { // resp is now filled
9733//        fmt.Println(resp)
9734//    }
9735func (c *APIGateway) UpdateClientCertificateRequest(input *UpdateClientCertificateInput) (req *request.Request, output *ClientCertificate) {
9736	op := &request.Operation{
9737		Name:       opUpdateClientCertificate,
9738		HTTPMethod: "PATCH",
9739		HTTPPath:   "/clientcertificates/{clientcertificate_id}",
9740	}
9741
9742	if input == nil {
9743		input = &UpdateClientCertificateInput{}
9744	}
9745
9746	output = &ClientCertificate{}
9747	req = c.newRequest(op, input, output)
9748	return
9749}
9750
9751// UpdateClientCertificate API operation for Amazon API Gateway.
9752//
9753// Changes information about an ClientCertificate resource.
9754//
9755// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9756// with awserr.Error's Code and Message methods to get detailed information about
9757// the error.
9758//
9759// See the AWS API reference guide for Amazon API Gateway's
9760// API operation UpdateClientCertificate for usage and error information.
9761//
9762// Returned Error Codes:
9763//   * ErrCodeUnauthorizedException "UnauthorizedException"
9764//   The request is denied because the caller has insufficient permissions.
9765//
9766//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9767//   The request has reached its throttling limit. Retry after the specified time
9768//   period.
9769//
9770//   * ErrCodeBadRequestException "BadRequestException"
9771//   The submitted request is not valid, for example, the input is incomplete
9772//   or incorrect. See the accompanying error message for details.
9773//
9774//   * ErrCodeNotFoundException "NotFoundException"
9775//   The requested resource is not found. Make sure that the request URI is correct.
9776//
9777func (c *APIGateway) UpdateClientCertificate(input *UpdateClientCertificateInput) (*ClientCertificate, error) {
9778	req, out := c.UpdateClientCertificateRequest(input)
9779	return out, req.Send()
9780}
9781
9782// UpdateClientCertificateWithContext is the same as UpdateClientCertificate with the addition of
9783// the ability to pass a context and additional request options.
9784//
9785// See UpdateClientCertificate for details on how to use this API operation.
9786//
9787// The context must be non-nil and will be used for request cancellation. If
9788// the context is nil a panic will occur. In the future the SDK may create
9789// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9790// for more information on using Contexts.
9791func (c *APIGateway) UpdateClientCertificateWithContext(ctx aws.Context, input *UpdateClientCertificateInput, opts ...request.Option) (*ClientCertificate, error) {
9792	req, out := c.UpdateClientCertificateRequest(input)
9793	req.SetContext(ctx)
9794	req.ApplyOptions(opts...)
9795	return out, req.Send()
9796}
9797
9798const opUpdateDeployment = "UpdateDeployment"
9799
9800// UpdateDeploymentRequest generates a "aws/request.Request" representing the
9801// client's request for the UpdateDeployment operation. The "output" return
9802// value will be populated with the request's response once the request completes
9803// successfully.
9804//
9805// Use "Send" method on the returned Request to send the API call to the service.
9806// the "output" return value is not valid until after Send returns without error.
9807//
9808// See UpdateDeployment for more information on using the UpdateDeployment
9809// API call, and error handling.
9810//
9811// This method is useful when you want to inject custom logic or configuration
9812// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9813//
9814//
9815//    // Example sending a request using the UpdateDeploymentRequest method.
9816//    req, resp := client.UpdateDeploymentRequest(params)
9817//
9818//    err := req.Send()
9819//    if err == nil { // resp is now filled
9820//        fmt.Println(resp)
9821//    }
9822func (c *APIGateway) UpdateDeploymentRequest(input *UpdateDeploymentInput) (req *request.Request, output *Deployment) {
9823	op := &request.Operation{
9824		Name:       opUpdateDeployment,
9825		HTTPMethod: "PATCH",
9826		HTTPPath:   "/restapis/{restapi_id}/deployments/{deployment_id}",
9827	}
9828
9829	if input == nil {
9830		input = &UpdateDeploymentInput{}
9831	}
9832
9833	output = &Deployment{}
9834	req = c.newRequest(op, input, output)
9835	return
9836}
9837
9838// UpdateDeployment API operation for Amazon API Gateway.
9839//
9840// Changes information about a Deployment resource.
9841//
9842// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9843// with awserr.Error's Code and Message methods to get detailed information about
9844// the error.
9845//
9846// See the AWS API reference guide for Amazon API Gateway's
9847// API operation UpdateDeployment for usage and error information.
9848//
9849// Returned Error Codes:
9850//   * ErrCodeUnauthorizedException "UnauthorizedException"
9851//   The request is denied because the caller has insufficient permissions.
9852//
9853//   * ErrCodeNotFoundException "NotFoundException"
9854//   The requested resource is not found. Make sure that the request URI is correct.
9855//
9856//   * ErrCodeBadRequestException "BadRequestException"
9857//   The submitted request is not valid, for example, the input is incomplete
9858//   or incorrect. See the accompanying error message for details.
9859//
9860//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9861//   The request has reached its throttling limit. Retry after the specified time
9862//   period.
9863//
9864//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
9865//   The requested service is not available. For details see the accompanying
9866//   error message. Retry after the specified time period.
9867//
9868func (c *APIGateway) UpdateDeployment(input *UpdateDeploymentInput) (*Deployment, error) {
9869	req, out := c.UpdateDeploymentRequest(input)
9870	return out, req.Send()
9871}
9872
9873// UpdateDeploymentWithContext is the same as UpdateDeployment with the addition of
9874// the ability to pass a context and additional request options.
9875//
9876// See UpdateDeployment for details on how to use this API operation.
9877//
9878// The context must be non-nil and will be used for request cancellation. If
9879// the context is nil a panic will occur. In the future the SDK may create
9880// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9881// for more information on using Contexts.
9882func (c *APIGateway) UpdateDeploymentWithContext(ctx aws.Context, input *UpdateDeploymentInput, opts ...request.Option) (*Deployment, error) {
9883	req, out := c.UpdateDeploymentRequest(input)
9884	req.SetContext(ctx)
9885	req.ApplyOptions(opts...)
9886	return out, req.Send()
9887}
9888
9889const opUpdateDocumentationPart = "UpdateDocumentationPart"
9890
9891// UpdateDocumentationPartRequest generates a "aws/request.Request" representing the
9892// client's request for the UpdateDocumentationPart operation. The "output" return
9893// value will be populated with the request's response once the request completes
9894// successfully.
9895//
9896// Use "Send" method on the returned Request to send the API call to the service.
9897// the "output" return value is not valid until after Send returns without error.
9898//
9899// See UpdateDocumentationPart for more information on using the UpdateDocumentationPart
9900// API call, and error handling.
9901//
9902// This method is useful when you want to inject custom logic or configuration
9903// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9904//
9905//
9906//    // Example sending a request using the UpdateDocumentationPartRequest method.
9907//    req, resp := client.UpdateDocumentationPartRequest(params)
9908//
9909//    err := req.Send()
9910//    if err == nil { // resp is now filled
9911//        fmt.Println(resp)
9912//    }
9913func (c *APIGateway) UpdateDocumentationPartRequest(input *UpdateDocumentationPartInput) (req *request.Request, output *DocumentationPart) {
9914	op := &request.Operation{
9915		Name:       opUpdateDocumentationPart,
9916		HTTPMethod: "PATCH",
9917		HTTPPath:   "/restapis/{restapi_id}/documentation/parts/{part_id}",
9918	}
9919
9920	if input == nil {
9921		input = &UpdateDocumentationPartInput{}
9922	}
9923
9924	output = &DocumentationPart{}
9925	req = c.newRequest(op, input, output)
9926	return
9927}
9928
9929// UpdateDocumentationPart API operation for Amazon API Gateway.
9930//
9931// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9932// with awserr.Error's Code and Message methods to get detailed information about
9933// the error.
9934//
9935// See the AWS API reference guide for Amazon API Gateway's
9936// API operation UpdateDocumentationPart for usage and error information.
9937//
9938// Returned Error Codes:
9939//   * ErrCodeBadRequestException "BadRequestException"
9940//   The submitted request is not valid, for example, the input is incomplete
9941//   or incorrect. See the accompanying error message for details.
9942//
9943//   * ErrCodeUnauthorizedException "UnauthorizedException"
9944//   The request is denied because the caller has insufficient permissions.
9945//
9946//   * ErrCodeNotFoundException "NotFoundException"
9947//   The requested resource is not found. Make sure that the request URI is correct.
9948//
9949//   * ErrCodeConflictException "ConflictException"
9950//   The request configuration has conflicts. For details, see the accompanying
9951//   error message.
9952//
9953//   * ErrCodeLimitExceededException "LimitExceededException"
9954//   The request exceeded the rate limit. Retry after the specified time period.
9955//
9956//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
9957//   The request has reached its throttling limit. Retry after the specified time
9958//   period.
9959//
9960func (c *APIGateway) UpdateDocumentationPart(input *UpdateDocumentationPartInput) (*DocumentationPart, error) {
9961	req, out := c.UpdateDocumentationPartRequest(input)
9962	return out, req.Send()
9963}
9964
9965// UpdateDocumentationPartWithContext is the same as UpdateDocumentationPart with the addition of
9966// the ability to pass a context and additional request options.
9967//
9968// See UpdateDocumentationPart for details on how to use this API operation.
9969//
9970// The context must be non-nil and will be used for request cancellation. If
9971// the context is nil a panic will occur. In the future the SDK may create
9972// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9973// for more information on using Contexts.
9974func (c *APIGateway) UpdateDocumentationPartWithContext(ctx aws.Context, input *UpdateDocumentationPartInput, opts ...request.Option) (*DocumentationPart, error) {
9975	req, out := c.UpdateDocumentationPartRequest(input)
9976	req.SetContext(ctx)
9977	req.ApplyOptions(opts...)
9978	return out, req.Send()
9979}
9980
9981const opUpdateDocumentationVersion = "UpdateDocumentationVersion"
9982
9983// UpdateDocumentationVersionRequest generates a "aws/request.Request" representing the
9984// client's request for the UpdateDocumentationVersion operation. The "output" return
9985// value will be populated with the request's response once the request completes
9986// successfully.
9987//
9988// Use "Send" method on the returned Request to send the API call to the service.
9989// the "output" return value is not valid until after Send returns without error.
9990//
9991// See UpdateDocumentationVersion for more information on using the UpdateDocumentationVersion
9992// API call, and error handling.
9993//
9994// This method is useful when you want to inject custom logic or configuration
9995// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9996//
9997//
9998//    // Example sending a request using the UpdateDocumentationVersionRequest method.
9999//    req, resp := client.UpdateDocumentationVersionRequest(params)
10000//
10001//    err := req.Send()
10002//    if err == nil { // resp is now filled
10003//        fmt.Println(resp)
10004//    }
10005func (c *APIGateway) UpdateDocumentationVersionRequest(input *UpdateDocumentationVersionInput) (req *request.Request, output *DocumentationVersion) {
10006	op := &request.Operation{
10007		Name:       opUpdateDocumentationVersion,
10008		HTTPMethod: "PATCH",
10009		HTTPPath:   "/restapis/{restapi_id}/documentation/versions/{doc_version}",
10010	}
10011
10012	if input == nil {
10013		input = &UpdateDocumentationVersionInput{}
10014	}
10015
10016	output = &DocumentationVersion{}
10017	req = c.newRequest(op, input, output)
10018	return
10019}
10020
10021// UpdateDocumentationVersion API operation for Amazon API Gateway.
10022//
10023// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10024// with awserr.Error's Code and Message methods to get detailed information about
10025// the error.
10026//
10027// See the AWS API reference guide for Amazon API Gateway's
10028// API operation UpdateDocumentationVersion for usage and error information.
10029//
10030// Returned Error Codes:
10031//   * ErrCodeUnauthorizedException "UnauthorizedException"
10032//   The request is denied because the caller has insufficient permissions.
10033//
10034//   * ErrCodeNotFoundException "NotFoundException"
10035//   The requested resource is not found. Make sure that the request URI is correct.
10036//
10037//   * ErrCodeConflictException "ConflictException"
10038//   The request configuration has conflicts. For details, see the accompanying
10039//   error message.
10040//
10041//   * ErrCodeBadRequestException "BadRequestException"
10042//   The submitted request is not valid, for example, the input is incomplete
10043//   or incorrect. See the accompanying error message for details.
10044//
10045//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10046//   The request has reached its throttling limit. Retry after the specified time
10047//   period.
10048//
10049func (c *APIGateway) UpdateDocumentationVersion(input *UpdateDocumentationVersionInput) (*DocumentationVersion, error) {
10050	req, out := c.UpdateDocumentationVersionRequest(input)
10051	return out, req.Send()
10052}
10053
10054// UpdateDocumentationVersionWithContext is the same as UpdateDocumentationVersion with the addition of
10055// the ability to pass a context and additional request options.
10056//
10057// See UpdateDocumentationVersion for details on how to use this API operation.
10058//
10059// The context must be non-nil and will be used for request cancellation. If
10060// the context is nil a panic will occur. In the future the SDK may create
10061// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10062// for more information on using Contexts.
10063func (c *APIGateway) UpdateDocumentationVersionWithContext(ctx aws.Context, input *UpdateDocumentationVersionInput, opts ...request.Option) (*DocumentationVersion, error) {
10064	req, out := c.UpdateDocumentationVersionRequest(input)
10065	req.SetContext(ctx)
10066	req.ApplyOptions(opts...)
10067	return out, req.Send()
10068}
10069
10070const opUpdateDomainName = "UpdateDomainName"
10071
10072// UpdateDomainNameRequest generates a "aws/request.Request" representing the
10073// client's request for the UpdateDomainName operation. The "output" return
10074// value will be populated with the request's response once the request completes
10075// successfully.
10076//
10077// Use "Send" method on the returned Request to send the API call to the service.
10078// the "output" return value is not valid until after Send returns without error.
10079//
10080// See UpdateDomainName for more information on using the UpdateDomainName
10081// API call, and error handling.
10082//
10083// This method is useful when you want to inject custom logic or configuration
10084// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10085//
10086//
10087//    // Example sending a request using the UpdateDomainNameRequest method.
10088//    req, resp := client.UpdateDomainNameRequest(params)
10089//
10090//    err := req.Send()
10091//    if err == nil { // resp is now filled
10092//        fmt.Println(resp)
10093//    }
10094func (c *APIGateway) UpdateDomainNameRequest(input *UpdateDomainNameInput) (req *request.Request, output *DomainName) {
10095	op := &request.Operation{
10096		Name:       opUpdateDomainName,
10097		HTTPMethod: "PATCH",
10098		HTTPPath:   "/domainnames/{domain_name}",
10099	}
10100
10101	if input == nil {
10102		input = &UpdateDomainNameInput{}
10103	}
10104
10105	output = &DomainName{}
10106	req = c.newRequest(op, input, output)
10107	return
10108}
10109
10110// UpdateDomainName API operation for Amazon API Gateway.
10111//
10112// Changes information about the DomainName resource.
10113//
10114// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10115// with awserr.Error's Code and Message methods to get detailed information about
10116// the error.
10117//
10118// See the AWS API reference guide for Amazon API Gateway's
10119// API operation UpdateDomainName for usage and error information.
10120//
10121// Returned Error Codes:
10122//   * ErrCodeUnauthorizedException "UnauthorizedException"
10123//   The request is denied because the caller has insufficient permissions.
10124//
10125//   * ErrCodeNotFoundException "NotFoundException"
10126//   The requested resource is not found. Make sure that the request URI is correct.
10127//
10128//   * ErrCodeBadRequestException "BadRequestException"
10129//   The submitted request is not valid, for example, the input is incomplete
10130//   or incorrect. See the accompanying error message for details.
10131//
10132//   * ErrCodeConflictException "ConflictException"
10133//   The request configuration has conflicts. For details, see the accompanying
10134//   error message.
10135//
10136//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10137//   The request has reached its throttling limit. Retry after the specified time
10138//   period.
10139//
10140func (c *APIGateway) UpdateDomainName(input *UpdateDomainNameInput) (*DomainName, error) {
10141	req, out := c.UpdateDomainNameRequest(input)
10142	return out, req.Send()
10143}
10144
10145// UpdateDomainNameWithContext is the same as UpdateDomainName with the addition of
10146// the ability to pass a context and additional request options.
10147//
10148// See UpdateDomainName for details on how to use this API operation.
10149//
10150// The context must be non-nil and will be used for request cancellation. If
10151// the context is nil a panic will occur. In the future the SDK may create
10152// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10153// for more information on using Contexts.
10154func (c *APIGateway) UpdateDomainNameWithContext(ctx aws.Context, input *UpdateDomainNameInput, opts ...request.Option) (*DomainName, error) {
10155	req, out := c.UpdateDomainNameRequest(input)
10156	req.SetContext(ctx)
10157	req.ApplyOptions(opts...)
10158	return out, req.Send()
10159}
10160
10161const opUpdateGatewayResponse = "UpdateGatewayResponse"
10162
10163// UpdateGatewayResponseRequest generates a "aws/request.Request" representing the
10164// client's request for the UpdateGatewayResponse operation. The "output" return
10165// value will be populated with the request's response once the request completes
10166// successfully.
10167//
10168// Use "Send" method on the returned Request to send the API call to the service.
10169// the "output" return value is not valid until after Send returns without error.
10170//
10171// See UpdateGatewayResponse for more information on using the UpdateGatewayResponse
10172// API call, and error handling.
10173//
10174// This method is useful when you want to inject custom logic or configuration
10175// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10176//
10177//
10178//    // Example sending a request using the UpdateGatewayResponseRequest method.
10179//    req, resp := client.UpdateGatewayResponseRequest(params)
10180//
10181//    err := req.Send()
10182//    if err == nil { // resp is now filled
10183//        fmt.Println(resp)
10184//    }
10185func (c *APIGateway) UpdateGatewayResponseRequest(input *UpdateGatewayResponseInput) (req *request.Request, output *UpdateGatewayResponseOutput) {
10186	op := &request.Operation{
10187		Name:       opUpdateGatewayResponse,
10188		HTTPMethod: "PATCH",
10189		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
10190	}
10191
10192	if input == nil {
10193		input = &UpdateGatewayResponseInput{}
10194	}
10195
10196	output = &UpdateGatewayResponseOutput{}
10197	req = c.newRequest(op, input, output)
10198	return
10199}
10200
10201// UpdateGatewayResponse API operation for Amazon API Gateway.
10202//
10203// Updates a GatewayResponse of a specified response type on the given RestApi.
10204//
10205// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10206// with awserr.Error's Code and Message methods to get detailed information about
10207// the error.
10208//
10209// See the AWS API reference guide for Amazon API Gateway's
10210// API operation UpdateGatewayResponse for usage and error information.
10211//
10212// Returned Error Codes:
10213//   * ErrCodeUnauthorizedException "UnauthorizedException"
10214//   The request is denied because the caller has insufficient permissions.
10215//
10216//   * ErrCodeNotFoundException "NotFoundException"
10217//   The requested resource is not found. Make sure that the request URI is correct.
10218//
10219//   * ErrCodeBadRequestException "BadRequestException"
10220//   The submitted request is not valid, for example, the input is incomplete
10221//   or incorrect. See the accompanying error message for details.
10222//
10223//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10224//   The request has reached its throttling limit. Retry after the specified time
10225//   period.
10226//
10227func (c *APIGateway) UpdateGatewayResponse(input *UpdateGatewayResponseInput) (*UpdateGatewayResponseOutput, error) {
10228	req, out := c.UpdateGatewayResponseRequest(input)
10229	return out, req.Send()
10230}
10231
10232// UpdateGatewayResponseWithContext is the same as UpdateGatewayResponse with the addition of
10233// the ability to pass a context and additional request options.
10234//
10235// See UpdateGatewayResponse for details on how to use this API operation.
10236//
10237// The context must be non-nil and will be used for request cancellation. If
10238// the context is nil a panic will occur. In the future the SDK may create
10239// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10240// for more information on using Contexts.
10241func (c *APIGateway) UpdateGatewayResponseWithContext(ctx aws.Context, input *UpdateGatewayResponseInput, opts ...request.Option) (*UpdateGatewayResponseOutput, error) {
10242	req, out := c.UpdateGatewayResponseRequest(input)
10243	req.SetContext(ctx)
10244	req.ApplyOptions(opts...)
10245	return out, req.Send()
10246}
10247
10248const opUpdateIntegration = "UpdateIntegration"
10249
10250// UpdateIntegrationRequest generates a "aws/request.Request" representing the
10251// client's request for the UpdateIntegration operation. The "output" return
10252// value will be populated with the request's response once the request completes
10253// successfully.
10254//
10255// Use "Send" method on the returned Request to send the API call to the service.
10256// the "output" return value is not valid until after Send returns without error.
10257//
10258// See UpdateIntegration for more information on using the UpdateIntegration
10259// API call, and error handling.
10260//
10261// This method is useful when you want to inject custom logic or configuration
10262// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10263//
10264//
10265//    // Example sending a request using the UpdateIntegrationRequest method.
10266//    req, resp := client.UpdateIntegrationRequest(params)
10267//
10268//    err := req.Send()
10269//    if err == nil { // resp is now filled
10270//        fmt.Println(resp)
10271//    }
10272func (c *APIGateway) UpdateIntegrationRequest(input *UpdateIntegrationInput) (req *request.Request, output *Integration) {
10273	op := &request.Operation{
10274		Name:       opUpdateIntegration,
10275		HTTPMethod: "PATCH",
10276		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
10277	}
10278
10279	if input == nil {
10280		input = &UpdateIntegrationInput{}
10281	}
10282
10283	output = &Integration{}
10284	req = c.newRequest(op, input, output)
10285	return
10286}
10287
10288// UpdateIntegration API operation for Amazon API Gateway.
10289//
10290// Represents an update integration.
10291//
10292// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10293// with awserr.Error's Code and Message methods to get detailed information about
10294// the error.
10295//
10296// See the AWS API reference guide for Amazon API Gateway's
10297// API operation UpdateIntegration for usage and error information.
10298//
10299// Returned Error Codes:
10300//   * ErrCodeUnauthorizedException "UnauthorizedException"
10301//   The request is denied because the caller has insufficient permissions.
10302//
10303//   * ErrCodeNotFoundException "NotFoundException"
10304//   The requested resource is not found. Make sure that the request URI is correct.
10305//
10306//   * ErrCodeBadRequestException "BadRequestException"
10307//   The submitted request is not valid, for example, the input is incomplete
10308//   or incorrect. See the accompanying error message for details.
10309//
10310//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10311//   The request has reached its throttling limit. Retry after the specified time
10312//   period.
10313//
10314//   * ErrCodeConflictException "ConflictException"
10315//   The request configuration has conflicts. For details, see the accompanying
10316//   error message.
10317//
10318func (c *APIGateway) UpdateIntegration(input *UpdateIntegrationInput) (*Integration, error) {
10319	req, out := c.UpdateIntegrationRequest(input)
10320	return out, req.Send()
10321}
10322
10323// UpdateIntegrationWithContext is the same as UpdateIntegration with the addition of
10324// the ability to pass a context and additional request options.
10325//
10326// See UpdateIntegration for details on how to use this API operation.
10327//
10328// The context must be non-nil and will be used for request cancellation. If
10329// the context is nil a panic will occur. In the future the SDK may create
10330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10331// for more information on using Contexts.
10332func (c *APIGateway) UpdateIntegrationWithContext(ctx aws.Context, input *UpdateIntegrationInput, opts ...request.Option) (*Integration, error) {
10333	req, out := c.UpdateIntegrationRequest(input)
10334	req.SetContext(ctx)
10335	req.ApplyOptions(opts...)
10336	return out, req.Send()
10337}
10338
10339const opUpdateIntegrationResponse = "UpdateIntegrationResponse"
10340
10341// UpdateIntegrationResponseRequest generates a "aws/request.Request" representing the
10342// client's request for the UpdateIntegrationResponse operation. The "output" return
10343// value will be populated with the request's response once the request completes
10344// successfully.
10345//
10346// Use "Send" method on the returned Request to send the API call to the service.
10347// the "output" return value is not valid until after Send returns without error.
10348//
10349// See UpdateIntegrationResponse for more information on using the UpdateIntegrationResponse
10350// API call, and error handling.
10351//
10352// This method is useful when you want to inject custom logic or configuration
10353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10354//
10355//
10356//    // Example sending a request using the UpdateIntegrationResponseRequest method.
10357//    req, resp := client.UpdateIntegrationResponseRequest(params)
10358//
10359//    err := req.Send()
10360//    if err == nil { // resp is now filled
10361//        fmt.Println(resp)
10362//    }
10363func (c *APIGateway) UpdateIntegrationResponseRequest(input *UpdateIntegrationResponseInput) (req *request.Request, output *IntegrationResponse) {
10364	op := &request.Operation{
10365		Name:       opUpdateIntegrationResponse,
10366		HTTPMethod: "PATCH",
10367		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
10368	}
10369
10370	if input == nil {
10371		input = &UpdateIntegrationResponseInput{}
10372	}
10373
10374	output = &IntegrationResponse{}
10375	req = c.newRequest(op, input, output)
10376	return
10377}
10378
10379// UpdateIntegrationResponse API operation for Amazon API Gateway.
10380//
10381// Represents an update integration response.
10382//
10383// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10384// with awserr.Error's Code and Message methods to get detailed information about
10385// the error.
10386//
10387// See the AWS API reference guide for Amazon API Gateway's
10388// API operation UpdateIntegrationResponse for usage and error information.
10389//
10390// Returned Error Codes:
10391//   * ErrCodeUnauthorizedException "UnauthorizedException"
10392//   The request is denied because the caller has insufficient permissions.
10393//
10394//   * ErrCodeNotFoundException "NotFoundException"
10395//   The requested resource is not found. Make sure that the request URI is correct.
10396//
10397//   * ErrCodeConflictException "ConflictException"
10398//   The request configuration has conflicts. For details, see the accompanying
10399//   error message.
10400//
10401//   * ErrCodeBadRequestException "BadRequestException"
10402//   The submitted request is not valid, for example, the input is incomplete
10403//   or incorrect. See the accompanying error message for details.
10404//
10405//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10406//   The request has reached its throttling limit. Retry after the specified time
10407//   period.
10408//
10409func (c *APIGateway) UpdateIntegrationResponse(input *UpdateIntegrationResponseInput) (*IntegrationResponse, error) {
10410	req, out := c.UpdateIntegrationResponseRequest(input)
10411	return out, req.Send()
10412}
10413
10414// UpdateIntegrationResponseWithContext is the same as UpdateIntegrationResponse with the addition of
10415// the ability to pass a context and additional request options.
10416//
10417// See UpdateIntegrationResponse for details on how to use this API operation.
10418//
10419// The context must be non-nil and will be used for request cancellation. If
10420// the context is nil a panic will occur. In the future the SDK may create
10421// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10422// for more information on using Contexts.
10423func (c *APIGateway) UpdateIntegrationResponseWithContext(ctx aws.Context, input *UpdateIntegrationResponseInput, opts ...request.Option) (*IntegrationResponse, error) {
10424	req, out := c.UpdateIntegrationResponseRequest(input)
10425	req.SetContext(ctx)
10426	req.ApplyOptions(opts...)
10427	return out, req.Send()
10428}
10429
10430const opUpdateMethod = "UpdateMethod"
10431
10432// UpdateMethodRequest generates a "aws/request.Request" representing the
10433// client's request for the UpdateMethod operation. The "output" return
10434// value will be populated with the request's response once the request completes
10435// successfully.
10436//
10437// Use "Send" method on the returned Request to send the API call to the service.
10438// the "output" return value is not valid until after Send returns without error.
10439//
10440// See UpdateMethod for more information on using the UpdateMethod
10441// API call, and error handling.
10442//
10443// This method is useful when you want to inject custom logic or configuration
10444// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10445//
10446//
10447//    // Example sending a request using the UpdateMethodRequest method.
10448//    req, resp := client.UpdateMethodRequest(params)
10449//
10450//    err := req.Send()
10451//    if err == nil { // resp is now filled
10452//        fmt.Println(resp)
10453//    }
10454func (c *APIGateway) UpdateMethodRequest(input *UpdateMethodInput) (req *request.Request, output *Method) {
10455	op := &request.Operation{
10456		Name:       opUpdateMethod,
10457		HTTPMethod: "PATCH",
10458		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
10459	}
10460
10461	if input == nil {
10462		input = &UpdateMethodInput{}
10463	}
10464
10465	output = &Method{}
10466	req = c.newRequest(op, input, output)
10467	return
10468}
10469
10470// UpdateMethod API operation for Amazon API Gateway.
10471//
10472// Updates an existing Method resource.
10473//
10474// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10475// with awserr.Error's Code and Message methods to get detailed information about
10476// the error.
10477//
10478// See the AWS API reference guide for Amazon API Gateway's
10479// API operation UpdateMethod for usage and error information.
10480//
10481// Returned Error Codes:
10482//   * ErrCodeUnauthorizedException "UnauthorizedException"
10483//   The request is denied because the caller has insufficient permissions.
10484//
10485//   * ErrCodeNotFoundException "NotFoundException"
10486//   The requested resource is not found. Make sure that the request URI is correct.
10487//
10488//   * ErrCodeBadRequestException "BadRequestException"
10489//   The submitted request is not valid, for example, the input is incomplete
10490//   or incorrect. See the accompanying error message for details.
10491//
10492//   * ErrCodeConflictException "ConflictException"
10493//   The request configuration has conflicts. For details, see the accompanying
10494//   error message.
10495//
10496//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10497//   The request has reached its throttling limit. Retry after the specified time
10498//   period.
10499//
10500func (c *APIGateway) UpdateMethod(input *UpdateMethodInput) (*Method, error) {
10501	req, out := c.UpdateMethodRequest(input)
10502	return out, req.Send()
10503}
10504
10505// UpdateMethodWithContext is the same as UpdateMethod with the addition of
10506// the ability to pass a context and additional request options.
10507//
10508// See UpdateMethod for details on how to use this API operation.
10509//
10510// The context must be non-nil and will be used for request cancellation. If
10511// the context is nil a panic will occur. In the future the SDK may create
10512// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10513// for more information on using Contexts.
10514func (c *APIGateway) UpdateMethodWithContext(ctx aws.Context, input *UpdateMethodInput, opts ...request.Option) (*Method, error) {
10515	req, out := c.UpdateMethodRequest(input)
10516	req.SetContext(ctx)
10517	req.ApplyOptions(opts...)
10518	return out, req.Send()
10519}
10520
10521const opUpdateMethodResponse = "UpdateMethodResponse"
10522
10523// UpdateMethodResponseRequest generates a "aws/request.Request" representing the
10524// client's request for the UpdateMethodResponse operation. The "output" return
10525// value will be populated with the request's response once the request completes
10526// successfully.
10527//
10528// Use "Send" method on the returned Request to send the API call to the service.
10529// the "output" return value is not valid until after Send returns without error.
10530//
10531// See UpdateMethodResponse for more information on using the UpdateMethodResponse
10532// API call, and error handling.
10533//
10534// This method is useful when you want to inject custom logic or configuration
10535// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10536//
10537//
10538//    // Example sending a request using the UpdateMethodResponseRequest method.
10539//    req, resp := client.UpdateMethodResponseRequest(params)
10540//
10541//    err := req.Send()
10542//    if err == nil { // resp is now filled
10543//        fmt.Println(resp)
10544//    }
10545func (c *APIGateway) UpdateMethodResponseRequest(input *UpdateMethodResponseInput) (req *request.Request, output *MethodResponse) {
10546	op := &request.Operation{
10547		Name:       opUpdateMethodResponse,
10548		HTTPMethod: "PATCH",
10549		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
10550	}
10551
10552	if input == nil {
10553		input = &UpdateMethodResponseInput{}
10554	}
10555
10556	output = &MethodResponse{}
10557	req = c.newRequest(op, input, output)
10558	return
10559}
10560
10561// UpdateMethodResponse API operation for Amazon API Gateway.
10562//
10563// Updates an existing MethodResponse resource.
10564//
10565// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10566// with awserr.Error's Code and Message methods to get detailed information about
10567// the error.
10568//
10569// See the AWS API reference guide for Amazon API Gateway's
10570// API operation UpdateMethodResponse for usage and error information.
10571//
10572// Returned Error Codes:
10573//   * ErrCodeUnauthorizedException "UnauthorizedException"
10574//   The request is denied because the caller has insufficient permissions.
10575//
10576//   * ErrCodeNotFoundException "NotFoundException"
10577//   The requested resource is not found. Make sure that the request URI is correct.
10578//
10579//   * ErrCodeConflictException "ConflictException"
10580//   The request configuration has conflicts. For details, see the accompanying
10581//   error message.
10582//
10583//   * ErrCodeLimitExceededException "LimitExceededException"
10584//   The request exceeded the rate limit. Retry after the specified time period.
10585//
10586//   * ErrCodeBadRequestException "BadRequestException"
10587//   The submitted request is not valid, for example, the input is incomplete
10588//   or incorrect. See the accompanying error message for details.
10589//
10590//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10591//   The request has reached its throttling limit. Retry after the specified time
10592//   period.
10593//
10594func (c *APIGateway) UpdateMethodResponse(input *UpdateMethodResponseInput) (*MethodResponse, error) {
10595	req, out := c.UpdateMethodResponseRequest(input)
10596	return out, req.Send()
10597}
10598
10599// UpdateMethodResponseWithContext is the same as UpdateMethodResponse with the addition of
10600// the ability to pass a context and additional request options.
10601//
10602// See UpdateMethodResponse for details on how to use this API operation.
10603//
10604// The context must be non-nil and will be used for request cancellation. If
10605// the context is nil a panic will occur. In the future the SDK may create
10606// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10607// for more information on using Contexts.
10608func (c *APIGateway) UpdateMethodResponseWithContext(ctx aws.Context, input *UpdateMethodResponseInput, opts ...request.Option) (*MethodResponse, error) {
10609	req, out := c.UpdateMethodResponseRequest(input)
10610	req.SetContext(ctx)
10611	req.ApplyOptions(opts...)
10612	return out, req.Send()
10613}
10614
10615const opUpdateModel = "UpdateModel"
10616
10617// UpdateModelRequest generates a "aws/request.Request" representing the
10618// client's request for the UpdateModel operation. The "output" return
10619// value will be populated with the request's response once the request completes
10620// successfully.
10621//
10622// Use "Send" method on the returned Request to send the API call to the service.
10623// the "output" return value is not valid until after Send returns without error.
10624//
10625// See UpdateModel for more information on using the UpdateModel
10626// API call, and error handling.
10627//
10628// This method is useful when you want to inject custom logic or configuration
10629// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10630//
10631//
10632//    // Example sending a request using the UpdateModelRequest method.
10633//    req, resp := client.UpdateModelRequest(params)
10634//
10635//    err := req.Send()
10636//    if err == nil { // resp is now filled
10637//        fmt.Println(resp)
10638//    }
10639func (c *APIGateway) UpdateModelRequest(input *UpdateModelInput) (req *request.Request, output *Model) {
10640	op := &request.Operation{
10641		Name:       opUpdateModel,
10642		HTTPMethod: "PATCH",
10643		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}",
10644	}
10645
10646	if input == nil {
10647		input = &UpdateModelInput{}
10648	}
10649
10650	output = &Model{}
10651	req = c.newRequest(op, input, output)
10652	return
10653}
10654
10655// UpdateModel API operation for Amazon API Gateway.
10656//
10657// Changes information about a model.
10658//
10659// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10660// with awserr.Error's Code and Message methods to get detailed information about
10661// the error.
10662//
10663// See the AWS API reference guide for Amazon API Gateway's
10664// API operation UpdateModel for usage and error information.
10665//
10666// Returned Error Codes:
10667//   * ErrCodeUnauthorizedException "UnauthorizedException"
10668//   The request is denied because the caller has insufficient permissions.
10669//
10670//   * ErrCodeNotFoundException "NotFoundException"
10671//   The requested resource is not found. Make sure that the request URI is correct.
10672//
10673//   * ErrCodeBadRequestException "BadRequestException"
10674//   The submitted request is not valid, for example, the input is incomplete
10675//   or incorrect. See the accompanying error message for details.
10676//
10677//   * ErrCodeConflictException "ConflictException"
10678//   The request configuration has conflicts. For details, see the accompanying
10679//   error message.
10680//
10681//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10682//   The request has reached its throttling limit. Retry after the specified time
10683//   period.
10684//
10685func (c *APIGateway) UpdateModel(input *UpdateModelInput) (*Model, error) {
10686	req, out := c.UpdateModelRequest(input)
10687	return out, req.Send()
10688}
10689
10690// UpdateModelWithContext is the same as UpdateModel with the addition of
10691// the ability to pass a context and additional request options.
10692//
10693// See UpdateModel for details on how to use this API operation.
10694//
10695// The context must be non-nil and will be used for request cancellation. If
10696// the context is nil a panic will occur. In the future the SDK may create
10697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10698// for more information on using Contexts.
10699func (c *APIGateway) UpdateModelWithContext(ctx aws.Context, input *UpdateModelInput, opts ...request.Option) (*Model, error) {
10700	req, out := c.UpdateModelRequest(input)
10701	req.SetContext(ctx)
10702	req.ApplyOptions(opts...)
10703	return out, req.Send()
10704}
10705
10706const opUpdateRequestValidator = "UpdateRequestValidator"
10707
10708// UpdateRequestValidatorRequest generates a "aws/request.Request" representing the
10709// client's request for the UpdateRequestValidator operation. The "output" return
10710// value will be populated with the request's response once the request completes
10711// successfully.
10712//
10713// Use "Send" method on the returned Request to send the API call to the service.
10714// the "output" return value is not valid until after Send returns without error.
10715//
10716// See UpdateRequestValidator for more information on using the UpdateRequestValidator
10717// API call, and error handling.
10718//
10719// This method is useful when you want to inject custom logic or configuration
10720// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10721//
10722//
10723//    // Example sending a request using the UpdateRequestValidatorRequest method.
10724//    req, resp := client.UpdateRequestValidatorRequest(params)
10725//
10726//    err := req.Send()
10727//    if err == nil { // resp is now filled
10728//        fmt.Println(resp)
10729//    }
10730func (c *APIGateway) UpdateRequestValidatorRequest(input *UpdateRequestValidatorInput) (req *request.Request, output *UpdateRequestValidatorOutput) {
10731	op := &request.Operation{
10732		Name:       opUpdateRequestValidator,
10733		HTTPMethod: "PATCH",
10734		HTTPPath:   "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}",
10735	}
10736
10737	if input == nil {
10738		input = &UpdateRequestValidatorInput{}
10739	}
10740
10741	output = &UpdateRequestValidatorOutput{}
10742	req = c.newRequest(op, input, output)
10743	return
10744}
10745
10746// UpdateRequestValidator API operation for Amazon API Gateway.
10747//
10748// Updates a RequestValidator of a given RestApi.
10749//
10750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10751// with awserr.Error's Code and Message methods to get detailed information about
10752// the error.
10753//
10754// See the AWS API reference guide for Amazon API Gateway's
10755// API operation UpdateRequestValidator for usage and error information.
10756//
10757// Returned Error Codes:
10758//   * ErrCodeUnauthorizedException "UnauthorizedException"
10759//   The request is denied because the caller has insufficient permissions.
10760//
10761//   * ErrCodeNotFoundException "NotFoundException"
10762//   The requested resource is not found. Make sure that the request URI is correct.
10763//
10764//   * ErrCodeBadRequestException "BadRequestException"
10765//   The submitted request is not valid, for example, the input is incomplete
10766//   or incorrect. See the accompanying error message for details.
10767//
10768//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10769//   The request has reached its throttling limit. Retry after the specified time
10770//   period.
10771//
10772func (c *APIGateway) UpdateRequestValidator(input *UpdateRequestValidatorInput) (*UpdateRequestValidatorOutput, error) {
10773	req, out := c.UpdateRequestValidatorRequest(input)
10774	return out, req.Send()
10775}
10776
10777// UpdateRequestValidatorWithContext is the same as UpdateRequestValidator with the addition of
10778// the ability to pass a context and additional request options.
10779//
10780// See UpdateRequestValidator for details on how to use this API operation.
10781//
10782// The context must be non-nil and will be used for request cancellation. If
10783// the context is nil a panic will occur. In the future the SDK may create
10784// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10785// for more information on using Contexts.
10786func (c *APIGateway) UpdateRequestValidatorWithContext(ctx aws.Context, input *UpdateRequestValidatorInput, opts ...request.Option) (*UpdateRequestValidatorOutput, error) {
10787	req, out := c.UpdateRequestValidatorRequest(input)
10788	req.SetContext(ctx)
10789	req.ApplyOptions(opts...)
10790	return out, req.Send()
10791}
10792
10793const opUpdateResource = "UpdateResource"
10794
10795// UpdateResourceRequest generates a "aws/request.Request" representing the
10796// client's request for the UpdateResource operation. The "output" return
10797// value will be populated with the request's response once the request completes
10798// successfully.
10799//
10800// Use "Send" method on the returned Request to send the API call to the service.
10801// the "output" return value is not valid until after Send returns without error.
10802//
10803// See UpdateResource for more information on using the UpdateResource
10804// API call, and error handling.
10805//
10806// This method is useful when you want to inject custom logic or configuration
10807// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10808//
10809//
10810//    // Example sending a request using the UpdateResourceRequest method.
10811//    req, resp := client.UpdateResourceRequest(params)
10812//
10813//    err := req.Send()
10814//    if err == nil { // resp is now filled
10815//        fmt.Println(resp)
10816//    }
10817func (c *APIGateway) UpdateResourceRequest(input *UpdateResourceInput) (req *request.Request, output *Resource) {
10818	op := &request.Operation{
10819		Name:       opUpdateResource,
10820		HTTPMethod: "PATCH",
10821		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}",
10822	}
10823
10824	if input == nil {
10825		input = &UpdateResourceInput{}
10826	}
10827
10828	output = &Resource{}
10829	req = c.newRequest(op, input, output)
10830	return
10831}
10832
10833// UpdateResource API operation for Amazon API Gateway.
10834//
10835// Changes information about a Resource resource.
10836//
10837// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10838// with awserr.Error's Code and Message methods to get detailed information about
10839// the error.
10840//
10841// See the AWS API reference guide for Amazon API Gateway's
10842// API operation UpdateResource for usage and error information.
10843//
10844// Returned Error Codes:
10845//   * ErrCodeUnauthorizedException "UnauthorizedException"
10846//   The request is denied because the caller has insufficient permissions.
10847//
10848//   * ErrCodeNotFoundException "NotFoundException"
10849//   The requested resource is not found. Make sure that the request URI is correct.
10850//
10851//   * ErrCodeConflictException "ConflictException"
10852//   The request configuration has conflicts. For details, see the accompanying
10853//   error message.
10854//
10855//   * ErrCodeBadRequestException "BadRequestException"
10856//   The submitted request is not valid, for example, the input is incomplete
10857//   or incorrect. See the accompanying error message for details.
10858//
10859//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10860//   The request has reached its throttling limit. Retry after the specified time
10861//   period.
10862//
10863func (c *APIGateway) UpdateResource(input *UpdateResourceInput) (*Resource, error) {
10864	req, out := c.UpdateResourceRequest(input)
10865	return out, req.Send()
10866}
10867
10868// UpdateResourceWithContext is the same as UpdateResource with the addition of
10869// the ability to pass a context and additional request options.
10870//
10871// See UpdateResource for details on how to use this API operation.
10872//
10873// The context must be non-nil and will be used for request cancellation. If
10874// the context is nil a panic will occur. In the future the SDK may create
10875// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10876// for more information on using Contexts.
10877func (c *APIGateway) UpdateResourceWithContext(ctx aws.Context, input *UpdateResourceInput, opts ...request.Option) (*Resource, error) {
10878	req, out := c.UpdateResourceRequest(input)
10879	req.SetContext(ctx)
10880	req.ApplyOptions(opts...)
10881	return out, req.Send()
10882}
10883
10884const opUpdateRestApi = "UpdateRestApi"
10885
10886// UpdateRestApiRequest generates a "aws/request.Request" representing the
10887// client's request for the UpdateRestApi operation. The "output" return
10888// value will be populated with the request's response once the request completes
10889// successfully.
10890//
10891// Use "Send" method on the returned Request to send the API call to the service.
10892// the "output" return value is not valid until after Send returns without error.
10893//
10894// See UpdateRestApi for more information on using the UpdateRestApi
10895// API call, and error handling.
10896//
10897// This method is useful when you want to inject custom logic or configuration
10898// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10899//
10900//
10901//    // Example sending a request using the UpdateRestApiRequest method.
10902//    req, resp := client.UpdateRestApiRequest(params)
10903//
10904//    err := req.Send()
10905//    if err == nil { // resp is now filled
10906//        fmt.Println(resp)
10907//    }
10908func (c *APIGateway) UpdateRestApiRequest(input *UpdateRestApiInput) (req *request.Request, output *RestApi) {
10909	op := &request.Operation{
10910		Name:       opUpdateRestApi,
10911		HTTPMethod: "PATCH",
10912		HTTPPath:   "/restapis/{restapi_id}",
10913	}
10914
10915	if input == nil {
10916		input = &UpdateRestApiInput{}
10917	}
10918
10919	output = &RestApi{}
10920	req = c.newRequest(op, input, output)
10921	return
10922}
10923
10924// UpdateRestApi API operation for Amazon API Gateway.
10925//
10926// Changes information about the specified API.
10927//
10928// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10929// with awserr.Error's Code and Message methods to get detailed information about
10930// the error.
10931//
10932// See the AWS API reference guide for Amazon API Gateway's
10933// API operation UpdateRestApi for usage and error information.
10934//
10935// Returned Error Codes:
10936//   * ErrCodeUnauthorizedException "UnauthorizedException"
10937//   The request is denied because the caller has insufficient permissions.
10938//
10939//   * ErrCodeNotFoundException "NotFoundException"
10940//   The requested resource is not found. Make sure that the request URI is correct.
10941//
10942//   * ErrCodeConflictException "ConflictException"
10943//   The request configuration has conflicts. For details, see the accompanying
10944//   error message.
10945//
10946//   * ErrCodeBadRequestException "BadRequestException"
10947//   The submitted request is not valid, for example, the input is incomplete
10948//   or incorrect. See the accompanying error message for details.
10949//
10950//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
10951//   The request has reached its throttling limit. Retry after the specified time
10952//   period.
10953//
10954func (c *APIGateway) UpdateRestApi(input *UpdateRestApiInput) (*RestApi, error) {
10955	req, out := c.UpdateRestApiRequest(input)
10956	return out, req.Send()
10957}
10958
10959// UpdateRestApiWithContext is the same as UpdateRestApi with the addition of
10960// the ability to pass a context and additional request options.
10961//
10962// See UpdateRestApi for details on how to use this API operation.
10963//
10964// The context must be non-nil and will be used for request cancellation. If
10965// the context is nil a panic will occur. In the future the SDK may create
10966// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10967// for more information on using Contexts.
10968func (c *APIGateway) UpdateRestApiWithContext(ctx aws.Context, input *UpdateRestApiInput, opts ...request.Option) (*RestApi, error) {
10969	req, out := c.UpdateRestApiRequest(input)
10970	req.SetContext(ctx)
10971	req.ApplyOptions(opts...)
10972	return out, req.Send()
10973}
10974
10975const opUpdateStage = "UpdateStage"
10976
10977// UpdateStageRequest generates a "aws/request.Request" representing the
10978// client's request for the UpdateStage operation. The "output" return
10979// value will be populated with the request's response once the request completes
10980// successfully.
10981//
10982// Use "Send" method on the returned Request to send the API call to the service.
10983// the "output" return value is not valid until after Send returns without error.
10984//
10985// See UpdateStage for more information on using the UpdateStage
10986// API call, and error handling.
10987//
10988// This method is useful when you want to inject custom logic or configuration
10989// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10990//
10991//
10992//    // Example sending a request using the UpdateStageRequest method.
10993//    req, resp := client.UpdateStageRequest(params)
10994//
10995//    err := req.Send()
10996//    if err == nil { // resp is now filled
10997//        fmt.Println(resp)
10998//    }
10999func (c *APIGateway) UpdateStageRequest(input *UpdateStageInput) (req *request.Request, output *Stage) {
11000	op := &request.Operation{
11001		Name:       opUpdateStage,
11002		HTTPMethod: "PATCH",
11003		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}",
11004	}
11005
11006	if input == nil {
11007		input = &UpdateStageInput{}
11008	}
11009
11010	output = &Stage{}
11011	req = c.newRequest(op, input, output)
11012	return
11013}
11014
11015// UpdateStage API operation for Amazon API Gateway.
11016//
11017// Changes information about a Stage resource.
11018//
11019// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11020// with awserr.Error's Code and Message methods to get detailed information about
11021// the error.
11022//
11023// See the AWS API reference guide for Amazon API Gateway's
11024// API operation UpdateStage for usage and error information.
11025//
11026// Returned Error Codes:
11027//   * ErrCodeUnauthorizedException "UnauthorizedException"
11028//   The request is denied because the caller has insufficient permissions.
11029//
11030//   * ErrCodeNotFoundException "NotFoundException"
11031//   The requested resource is not found. Make sure that the request URI is correct.
11032//
11033//   * ErrCodeConflictException "ConflictException"
11034//   The request configuration has conflicts. For details, see the accompanying
11035//   error message.
11036//
11037//   * ErrCodeBadRequestException "BadRequestException"
11038//   The submitted request is not valid, for example, the input is incomplete
11039//   or incorrect. See the accompanying error message for details.
11040//
11041//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
11042//   The request has reached its throttling limit. Retry after the specified time
11043//   period.
11044//
11045func (c *APIGateway) UpdateStage(input *UpdateStageInput) (*Stage, error) {
11046	req, out := c.UpdateStageRequest(input)
11047	return out, req.Send()
11048}
11049
11050// UpdateStageWithContext is the same as UpdateStage with the addition of
11051// the ability to pass a context and additional request options.
11052//
11053// See UpdateStage for details on how to use this API operation.
11054//
11055// The context must be non-nil and will be used for request cancellation. If
11056// the context is nil a panic will occur. In the future the SDK may create
11057// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11058// for more information on using Contexts.
11059func (c *APIGateway) UpdateStageWithContext(ctx aws.Context, input *UpdateStageInput, opts ...request.Option) (*Stage, error) {
11060	req, out := c.UpdateStageRequest(input)
11061	req.SetContext(ctx)
11062	req.ApplyOptions(opts...)
11063	return out, req.Send()
11064}
11065
11066const opUpdateUsage = "UpdateUsage"
11067
11068// UpdateUsageRequest generates a "aws/request.Request" representing the
11069// client's request for the UpdateUsage operation. The "output" return
11070// value will be populated with the request's response once the request completes
11071// successfully.
11072//
11073// Use "Send" method on the returned Request to send the API call to the service.
11074// the "output" return value is not valid until after Send returns without error.
11075//
11076// See UpdateUsage for more information on using the UpdateUsage
11077// API call, and error handling.
11078//
11079// This method is useful when you want to inject custom logic or configuration
11080// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11081//
11082//
11083//    // Example sending a request using the UpdateUsageRequest method.
11084//    req, resp := client.UpdateUsageRequest(params)
11085//
11086//    err := req.Send()
11087//    if err == nil { // resp is now filled
11088//        fmt.Println(resp)
11089//    }
11090func (c *APIGateway) UpdateUsageRequest(input *UpdateUsageInput) (req *request.Request, output *Usage) {
11091	op := &request.Operation{
11092		Name:       opUpdateUsage,
11093		HTTPMethod: "PATCH",
11094		HTTPPath:   "/usageplans/{usageplanId}/keys/{keyId}/usage",
11095	}
11096
11097	if input == nil {
11098		input = &UpdateUsageInput{}
11099	}
11100
11101	output = &Usage{}
11102	req = c.newRequest(op, input, output)
11103	return
11104}
11105
11106// UpdateUsage API operation for Amazon API Gateway.
11107//
11108// Grants a temporary extension to the remaining quota of a usage plan associated
11109// with a specified API key.
11110//
11111// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11112// with awserr.Error's Code and Message methods to get detailed information about
11113// the error.
11114//
11115// See the AWS API reference guide for Amazon API Gateway's
11116// API operation UpdateUsage for usage and error information.
11117//
11118// Returned Error Codes:
11119//   * ErrCodeUnauthorizedException "UnauthorizedException"
11120//   The request is denied because the caller has insufficient permissions.
11121//
11122//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
11123//   The request has reached its throttling limit. Retry after the specified time
11124//   period.
11125//
11126//   * ErrCodeBadRequestException "BadRequestException"
11127//   The submitted request is not valid, for example, the input is incomplete
11128//   or incorrect. See the accompanying error message for details.
11129//
11130//   * ErrCodeNotFoundException "NotFoundException"
11131//   The requested resource is not found. Make sure that the request URI is correct.
11132//
11133func (c *APIGateway) UpdateUsage(input *UpdateUsageInput) (*Usage, error) {
11134	req, out := c.UpdateUsageRequest(input)
11135	return out, req.Send()
11136}
11137
11138// UpdateUsageWithContext is the same as UpdateUsage with the addition of
11139// the ability to pass a context and additional request options.
11140//
11141// See UpdateUsage for details on how to use this API operation.
11142//
11143// The context must be non-nil and will be used for request cancellation. If
11144// the context is nil a panic will occur. In the future the SDK may create
11145// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11146// for more information on using Contexts.
11147func (c *APIGateway) UpdateUsageWithContext(ctx aws.Context, input *UpdateUsageInput, opts ...request.Option) (*Usage, error) {
11148	req, out := c.UpdateUsageRequest(input)
11149	req.SetContext(ctx)
11150	req.ApplyOptions(opts...)
11151	return out, req.Send()
11152}
11153
11154const opUpdateUsagePlan = "UpdateUsagePlan"
11155
11156// UpdateUsagePlanRequest generates a "aws/request.Request" representing the
11157// client's request for the UpdateUsagePlan operation. The "output" return
11158// value will be populated with the request's response once the request completes
11159// successfully.
11160//
11161// Use "Send" method on the returned Request to send the API call to the service.
11162// the "output" return value is not valid until after Send returns without error.
11163//
11164// See UpdateUsagePlan for more information on using the UpdateUsagePlan
11165// API call, and error handling.
11166//
11167// This method is useful when you want to inject custom logic or configuration
11168// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11169//
11170//
11171//    // Example sending a request using the UpdateUsagePlanRequest method.
11172//    req, resp := client.UpdateUsagePlanRequest(params)
11173//
11174//    err := req.Send()
11175//    if err == nil { // resp is now filled
11176//        fmt.Println(resp)
11177//    }
11178func (c *APIGateway) UpdateUsagePlanRequest(input *UpdateUsagePlanInput) (req *request.Request, output *UsagePlan) {
11179	op := &request.Operation{
11180		Name:       opUpdateUsagePlan,
11181		HTTPMethod: "PATCH",
11182		HTTPPath:   "/usageplans/{usageplanId}",
11183	}
11184
11185	if input == nil {
11186		input = &UpdateUsagePlanInput{}
11187	}
11188
11189	output = &UsagePlan{}
11190	req = c.newRequest(op, input, output)
11191	return
11192}
11193
11194// UpdateUsagePlan API operation for Amazon API Gateway.
11195//
11196// Updates a usage plan of a given plan Id.
11197//
11198// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11199// with awserr.Error's Code and Message methods to get detailed information about
11200// the error.
11201//
11202// See the AWS API reference guide for Amazon API Gateway's
11203// API operation UpdateUsagePlan for usage and error information.
11204//
11205// Returned Error Codes:
11206//   * ErrCodeUnauthorizedException "UnauthorizedException"
11207//   The request is denied because the caller has insufficient permissions.
11208//
11209//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
11210//   The request has reached its throttling limit. Retry after the specified time
11211//   period.
11212//
11213//   * ErrCodeBadRequestException "BadRequestException"
11214//   The submitted request is not valid, for example, the input is incomplete
11215//   or incorrect. See the accompanying error message for details.
11216//
11217//   * ErrCodeNotFoundException "NotFoundException"
11218//   The requested resource is not found. Make sure that the request URI is correct.
11219//
11220//   * ErrCodeConflictException "ConflictException"
11221//   The request configuration has conflicts. For details, see the accompanying
11222//   error message.
11223//
11224func (c *APIGateway) UpdateUsagePlan(input *UpdateUsagePlanInput) (*UsagePlan, error) {
11225	req, out := c.UpdateUsagePlanRequest(input)
11226	return out, req.Send()
11227}
11228
11229// UpdateUsagePlanWithContext is the same as UpdateUsagePlan with the addition of
11230// the ability to pass a context and additional request options.
11231//
11232// See UpdateUsagePlan for details on how to use this API operation.
11233//
11234// The context must be non-nil and will be used for request cancellation. If
11235// the context is nil a panic will occur. In the future the SDK may create
11236// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11237// for more information on using Contexts.
11238func (c *APIGateway) UpdateUsagePlanWithContext(ctx aws.Context, input *UpdateUsagePlanInput, opts ...request.Option) (*UsagePlan, error) {
11239	req, out := c.UpdateUsagePlanRequest(input)
11240	req.SetContext(ctx)
11241	req.ApplyOptions(opts...)
11242	return out, req.Send()
11243}
11244
11245const opUpdateVpcLink = "UpdateVpcLink"
11246
11247// UpdateVpcLinkRequest generates a "aws/request.Request" representing the
11248// client's request for the UpdateVpcLink operation. The "output" return
11249// value will be populated with the request's response once the request completes
11250// successfully.
11251//
11252// Use "Send" method on the returned Request to send the API call to the service.
11253// the "output" return value is not valid until after Send returns without error.
11254//
11255// See UpdateVpcLink for more information on using the UpdateVpcLink
11256// API call, and error handling.
11257//
11258// This method is useful when you want to inject custom logic or configuration
11259// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11260//
11261//
11262//    // Example sending a request using the UpdateVpcLinkRequest method.
11263//    req, resp := client.UpdateVpcLinkRequest(params)
11264//
11265//    err := req.Send()
11266//    if err == nil { // resp is now filled
11267//        fmt.Println(resp)
11268//    }
11269func (c *APIGateway) UpdateVpcLinkRequest(input *UpdateVpcLinkInput) (req *request.Request, output *UpdateVpcLinkOutput) {
11270	op := &request.Operation{
11271		Name:       opUpdateVpcLink,
11272		HTTPMethod: "PATCH",
11273		HTTPPath:   "/vpclinks/{vpclink_id}",
11274	}
11275
11276	if input == nil {
11277		input = &UpdateVpcLinkInput{}
11278	}
11279
11280	output = &UpdateVpcLinkOutput{}
11281	req = c.newRequest(op, input, output)
11282	return
11283}
11284
11285// UpdateVpcLink API operation for Amazon API Gateway.
11286//
11287// Updates an existing VpcLink of a specified identifier.
11288//
11289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11290// with awserr.Error's Code and Message methods to get detailed information about
11291// the error.
11292//
11293// See the AWS API reference guide for Amazon API Gateway's
11294// API operation UpdateVpcLink for usage and error information.
11295//
11296// Returned Error Codes:
11297//   * ErrCodeUnauthorizedException "UnauthorizedException"
11298//   The request is denied because the caller has insufficient permissions.
11299//
11300//   * ErrCodeNotFoundException "NotFoundException"
11301//   The requested resource is not found. Make sure that the request URI is correct.
11302//
11303//   * ErrCodeBadRequestException "BadRequestException"
11304//   The submitted request is not valid, for example, the input is incomplete
11305//   or incorrect. See the accompanying error message for details.
11306//
11307//   * ErrCodeConflictException "ConflictException"
11308//   The request configuration has conflicts. For details, see the accompanying
11309//   error message.
11310//
11311//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
11312//   The request has reached its throttling limit. Retry after the specified time
11313//   period.
11314//
11315func (c *APIGateway) UpdateVpcLink(input *UpdateVpcLinkInput) (*UpdateVpcLinkOutput, error) {
11316	req, out := c.UpdateVpcLinkRequest(input)
11317	return out, req.Send()
11318}
11319
11320// UpdateVpcLinkWithContext is the same as UpdateVpcLink with the addition of
11321// the ability to pass a context and additional request options.
11322//
11323// See UpdateVpcLink for details on how to use this API operation.
11324//
11325// The context must be non-nil and will be used for request cancellation. If
11326// the context is nil a panic will occur. In the future the SDK may create
11327// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11328// for more information on using Contexts.
11329func (c *APIGateway) UpdateVpcLinkWithContext(ctx aws.Context, input *UpdateVpcLinkInput, opts ...request.Option) (*UpdateVpcLinkOutput, error) {
11330	req, out := c.UpdateVpcLinkRequest(input)
11331	req.SetContext(ctx)
11332	req.ApplyOptions(opts...)
11333	return out, req.Send()
11334}
11335
11336// Access log settings, including the access log format and access log destination
11337// ARN.
11338type AccessLogSettings struct {
11339	_ struct{} `type:"structure"`
11340
11341	// The ARN of the CloudWatch Logs log group to receive access logs.
11342	DestinationArn *string `locationName:"destinationArn" type:"string"`
11343
11344	// A single line format of the access logs of data, as specified by selected
11345	// $context variables (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference).
11346	// The format must include at least $context.requestId.
11347	Format *string `locationName:"format" type:"string"`
11348}
11349
11350// String returns the string representation
11351func (s AccessLogSettings) String() string {
11352	return awsutil.Prettify(s)
11353}
11354
11355// GoString returns the string representation
11356func (s AccessLogSettings) GoString() string {
11357	return s.String()
11358}
11359
11360// SetDestinationArn sets the DestinationArn field's value.
11361func (s *AccessLogSettings) SetDestinationArn(v string) *AccessLogSettings {
11362	s.DestinationArn = &v
11363	return s
11364}
11365
11366// SetFormat sets the Format field's value.
11367func (s *AccessLogSettings) SetFormat(v string) *AccessLogSettings {
11368	s.Format = &v
11369	return s
11370}
11371
11372// Represents an AWS account that is associated with API Gateway.
11373//
11374// To view the account info, call GET on this resource.
11375//
11376// Error Codes
11377//
11378// The following exception may be thrown when the request fails.
11379//
11380//    * UnauthorizedException
11381//
11382//    * NotFoundException
11383//
11384//    * TooManyRequestsException
11385//
11386// For detailed error code information, including the corresponding HTTP Status
11387// Codes, see API Gateway Error Codes (https://docs.aws.amazon.com/apigateway/api-reference/handling-errors/#api-error-codes)
11388//
11389// Example: Get the information about an account.
11390//
11391// Request
11392//  GET /account HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
11393//  X-Amz-Date: 20160531T184618Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/us-east-1/apigateway/aws4_request,
11394//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
11395// Response
11396//
11397// The successful response returns a 200 OK status code and a payload similar
11398// to the following:
11399//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/account-apigateway-{rel}.html",
11400//  "name": "account", "templated": true }, "self": { "href": "/account" },
11401//  "account:update": { "href": "/account" } }, "cloudwatchRoleArn": "arn:aws:iam::123456789012:role/apigAwsProxyRole",
11402//  "throttleSettings": { "rateLimit": 500, "burstLimit": 1000 } }
11403// In addition to making the REST API call directly, you can use the AWS CLI
11404// and an AWS SDK to access this resource.
11405//
11406// API Gateway Limits (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-limits.html)
11407// Developer Guide (https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html),
11408// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-account.html)
11409type Account struct {
11410	_ struct{} `type:"structure"`
11411
11412	// The version of the API keys used for the account.
11413	ApiKeyVersion *string `locationName:"apiKeyVersion" type:"string"`
11414
11415	// The ARN of an Amazon CloudWatch role for the current Account.
11416	CloudwatchRoleArn *string `locationName:"cloudwatchRoleArn" type:"string"`
11417
11418	// A list of features supported for the account. When usage plans are enabled,
11419	// the features list will include an entry of "UsagePlans".
11420	Features []*string `locationName:"features" type:"list"`
11421
11422	// Specifies the API request limits configured for the current Account.
11423	ThrottleSettings *ThrottleSettings `locationName:"throttleSettings" type:"structure"`
11424}
11425
11426// String returns the string representation
11427func (s Account) String() string {
11428	return awsutil.Prettify(s)
11429}
11430
11431// GoString returns the string representation
11432func (s Account) GoString() string {
11433	return s.String()
11434}
11435
11436// SetApiKeyVersion sets the ApiKeyVersion field's value.
11437func (s *Account) SetApiKeyVersion(v string) *Account {
11438	s.ApiKeyVersion = &v
11439	return s
11440}
11441
11442// SetCloudwatchRoleArn sets the CloudwatchRoleArn field's value.
11443func (s *Account) SetCloudwatchRoleArn(v string) *Account {
11444	s.CloudwatchRoleArn = &v
11445	return s
11446}
11447
11448// SetFeatures sets the Features field's value.
11449func (s *Account) SetFeatures(v []*string) *Account {
11450	s.Features = v
11451	return s
11452}
11453
11454// SetThrottleSettings sets the ThrottleSettings field's value.
11455func (s *Account) SetThrottleSettings(v *ThrottleSettings) *Account {
11456	s.ThrottleSettings = v
11457	return s
11458}
11459
11460// A resource that can be distributed to callers for executing Method resources
11461// that require an API key. API keys can be mapped to any Stage on any RestApi,
11462// which indicates that the callers with the API key can make requests to that
11463// stage.
11464//
11465// Use API Keys (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html)
11466type ApiKey struct {
11467	_ struct{} `type:"structure"`
11468
11469	// The timestamp when the API Key was created.
11470	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
11471
11472	// An AWS Marketplace customer identifier , when integrating with the AWS SaaS
11473	// Marketplace.
11474	CustomerId *string `locationName:"customerId" type:"string"`
11475
11476	// The description of the API Key.
11477	Description *string `locationName:"description" type:"string"`
11478
11479	// Specifies whether the API Key can be used by callers.
11480	Enabled *bool `locationName:"enabled" type:"boolean"`
11481
11482	// The identifier of the API Key.
11483	Id *string `locationName:"id" type:"string"`
11484
11485	// The timestamp when the API Key was last updated.
11486	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
11487
11488	// The name of the API Key.
11489	Name *string `locationName:"name" type:"string"`
11490
11491	// A list of Stage resources that are associated with the ApiKey resource.
11492	StageKeys []*string `locationName:"stageKeys" type:"list"`
11493
11494	// The collection of tags. Each tag element is associated with a given resource.
11495	Tags map[string]*string `locationName:"tags" type:"map"`
11496
11497	// The value of the API Key.
11498	Value *string `locationName:"value" type:"string"`
11499}
11500
11501// String returns the string representation
11502func (s ApiKey) String() string {
11503	return awsutil.Prettify(s)
11504}
11505
11506// GoString returns the string representation
11507func (s ApiKey) GoString() string {
11508	return s.String()
11509}
11510
11511// SetCreatedDate sets the CreatedDate field's value.
11512func (s *ApiKey) SetCreatedDate(v time.Time) *ApiKey {
11513	s.CreatedDate = &v
11514	return s
11515}
11516
11517// SetCustomerId sets the CustomerId field's value.
11518func (s *ApiKey) SetCustomerId(v string) *ApiKey {
11519	s.CustomerId = &v
11520	return s
11521}
11522
11523// SetDescription sets the Description field's value.
11524func (s *ApiKey) SetDescription(v string) *ApiKey {
11525	s.Description = &v
11526	return s
11527}
11528
11529// SetEnabled sets the Enabled field's value.
11530func (s *ApiKey) SetEnabled(v bool) *ApiKey {
11531	s.Enabled = &v
11532	return s
11533}
11534
11535// SetId sets the Id field's value.
11536func (s *ApiKey) SetId(v string) *ApiKey {
11537	s.Id = &v
11538	return s
11539}
11540
11541// SetLastUpdatedDate sets the LastUpdatedDate field's value.
11542func (s *ApiKey) SetLastUpdatedDate(v time.Time) *ApiKey {
11543	s.LastUpdatedDate = &v
11544	return s
11545}
11546
11547// SetName sets the Name field's value.
11548func (s *ApiKey) SetName(v string) *ApiKey {
11549	s.Name = &v
11550	return s
11551}
11552
11553// SetStageKeys sets the StageKeys field's value.
11554func (s *ApiKey) SetStageKeys(v []*string) *ApiKey {
11555	s.StageKeys = v
11556	return s
11557}
11558
11559// SetTags sets the Tags field's value.
11560func (s *ApiKey) SetTags(v map[string]*string) *ApiKey {
11561	s.Tags = v
11562	return s
11563}
11564
11565// SetValue sets the Value field's value.
11566func (s *ApiKey) SetValue(v string) *ApiKey {
11567	s.Value = &v
11568	return s
11569}
11570
11571// API stage name of the associated API stage in a usage plan.
11572type ApiStage struct {
11573	_ struct{} `type:"structure"`
11574
11575	// API Id of the associated API stage in a usage plan.
11576	ApiId *string `locationName:"apiId" type:"string"`
11577
11578	// API stage name of the associated API stage in a usage plan.
11579	Stage *string `locationName:"stage" type:"string"`
11580
11581	// Map containing method level throttling information for API stage in a usage
11582	// plan.
11583	Throttle map[string]*ThrottleSettings `locationName:"throttle" type:"map"`
11584}
11585
11586// String returns the string representation
11587func (s ApiStage) String() string {
11588	return awsutil.Prettify(s)
11589}
11590
11591// GoString returns the string representation
11592func (s ApiStage) GoString() string {
11593	return s.String()
11594}
11595
11596// SetApiId sets the ApiId field's value.
11597func (s *ApiStage) SetApiId(v string) *ApiStage {
11598	s.ApiId = &v
11599	return s
11600}
11601
11602// SetStage sets the Stage field's value.
11603func (s *ApiStage) SetStage(v string) *ApiStage {
11604	s.Stage = &v
11605	return s
11606}
11607
11608// SetThrottle sets the Throttle field's value.
11609func (s *ApiStage) SetThrottle(v map[string]*ThrottleSettings) *ApiStage {
11610	s.Throttle = v
11611	return s
11612}
11613
11614// Represents an authorization layer for methods. If enabled on a method, API
11615// Gateway will activate the authorizer when a client calls the method.
11616//
11617// Use Lambda Function as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)
11618// Use Cognito User Pool as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)
11619type Authorizer struct {
11620	_ struct{} `type:"structure"`
11621
11622	// Optional customer-defined field, used in OpenAPI imports and exports without
11623	// functional impact.
11624	AuthType *string `locationName:"authType" type:"string"`
11625
11626	// Specifies the required credentials as an IAM role for API Gateway to invoke
11627	// the authorizer. To specify an IAM role for API Gateway to assume, use the
11628	// role's Amazon Resource Name (ARN). To use resource-based permissions on the
11629	// Lambda function, specify null.
11630	AuthorizerCredentials *string `locationName:"authorizerCredentials" type:"string"`
11631
11632	// The TTL in seconds of cached authorizer results. If it equals 0, authorization
11633	// caching is disabled. If it is greater than 0, API Gateway will cache authorizer
11634	// responses. If this field is not set, the default value is 300. The maximum
11635	// value is 3600, or 1 hour.
11636	AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"`
11637
11638	// Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or
11639	// REQUEST authorizers, this must be a well-formed Lambda function URI, for
11640	// 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.
11641	// In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api},
11642	// where {region} is the same as the region hosting the Lambda function, path
11643	// indicates that the remaining substring in the URI should be treated as the
11644	// path to the resource, including the initial /. For Lambda functions, this
11645	// is usually of the form /2015-03-31/functions/[FunctionARN]/invocations.
11646	AuthorizerUri *string `locationName:"authorizerUri" type:"string"`
11647
11648	// The identifier for the authorizer resource.
11649	Id *string `locationName:"id" type:"string"`
11650
11651	// The identity source for which authorization is requested.
11652	//    * For a TOKEN or COGNITO_USER_POOLS authorizer, this is required and specifies
11653	//    the request header mapping expression for the custom header holding the
11654	//    authorization token submitted by the client. For example, if the token
11655	//    header name is Auth, the header mapping expression is method.request.header.Auth.
11656	//
11657	//    * For the REQUEST authorizer, this is required when authorization caching
11658	//    is enabled. The value is a comma-separated string of one or more mapping
11659	//    expressions of the specified request parameters. For example, if an Auth
11660	//    header, a Name query string parameter are defined as identity sources,
11661	//    this value is method.request.header.Auth, method.request.querystring.Name.
11662	//    These parameters will be used to derive the authorization caching key
11663	//    and to perform runtime validation of the REQUEST authorizer by verifying
11664	//    all of the identity-related request parameters are present, not null and
11665	//    non-empty. Only when this is true does the authorizer invoke the authorizer
11666	//    Lambda function, otherwise, it returns a 401 Unauthorized response without
11667	//    calling the Lambda function. The valid value is a string of comma-separated
11668	//    mapping expressions of the specified request parameters. When the authorization
11669	//    caching is not enabled, this property is optional.
11670	IdentitySource *string `locationName:"identitySource" type:"string"`
11671
11672	// A validation expression for the incoming identity token. For TOKEN authorizers,
11673	// this value is a regular expression. For COGNITO_USER_POOLS authorizers, API
11674	// Gateway will match the aud field of the incoming token from the client against
11675	// the specified regular expression. It will invoke the authorizer's Lambda
11676	// function when there is a match. Otherwise, it will return a 401 Unauthorized
11677	// response without calling the Lambda function. The validation expression does
11678	// not apply to the REQUEST authorizer.
11679	IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"`
11680
11681	// [Required] The name of the authorizer.
11682	Name *string `locationName:"name" type:"string"`
11683
11684	// A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer.
11685	// Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}.
11686	// For a TOKEN or REQUEST authorizer, this is not defined.
11687	ProviderARNs []*string `locationName:"providerARNs" type:"list"`
11688
11689	// The authorizer type. Valid values are TOKEN for a Lambda function using a
11690	// single authorization token submitted in a custom header, REQUEST for a Lambda
11691	// function using incoming request parameters, and COGNITO_USER_POOLS for using
11692	// an Amazon Cognito user pool.
11693	Type *string `locationName:"type" type:"string" enum:"AuthorizerType"`
11694}
11695
11696// String returns the string representation
11697func (s Authorizer) String() string {
11698	return awsutil.Prettify(s)
11699}
11700
11701// GoString returns the string representation
11702func (s Authorizer) GoString() string {
11703	return s.String()
11704}
11705
11706// SetAuthType sets the AuthType field's value.
11707func (s *Authorizer) SetAuthType(v string) *Authorizer {
11708	s.AuthType = &v
11709	return s
11710}
11711
11712// SetAuthorizerCredentials sets the AuthorizerCredentials field's value.
11713func (s *Authorizer) SetAuthorizerCredentials(v string) *Authorizer {
11714	s.AuthorizerCredentials = &v
11715	return s
11716}
11717
11718// SetAuthorizerResultTtlInSeconds sets the AuthorizerResultTtlInSeconds field's value.
11719func (s *Authorizer) SetAuthorizerResultTtlInSeconds(v int64) *Authorizer {
11720	s.AuthorizerResultTtlInSeconds = &v
11721	return s
11722}
11723
11724// SetAuthorizerUri sets the AuthorizerUri field's value.
11725func (s *Authorizer) SetAuthorizerUri(v string) *Authorizer {
11726	s.AuthorizerUri = &v
11727	return s
11728}
11729
11730// SetId sets the Id field's value.
11731func (s *Authorizer) SetId(v string) *Authorizer {
11732	s.Id = &v
11733	return s
11734}
11735
11736// SetIdentitySource sets the IdentitySource field's value.
11737func (s *Authorizer) SetIdentitySource(v string) *Authorizer {
11738	s.IdentitySource = &v
11739	return s
11740}
11741
11742// SetIdentityValidationExpression sets the IdentityValidationExpression field's value.
11743func (s *Authorizer) SetIdentityValidationExpression(v string) *Authorizer {
11744	s.IdentityValidationExpression = &v
11745	return s
11746}
11747
11748// SetName sets the Name field's value.
11749func (s *Authorizer) SetName(v string) *Authorizer {
11750	s.Name = &v
11751	return s
11752}
11753
11754// SetProviderARNs sets the ProviderARNs field's value.
11755func (s *Authorizer) SetProviderARNs(v []*string) *Authorizer {
11756	s.ProviderARNs = v
11757	return s
11758}
11759
11760// SetType sets the Type field's value.
11761func (s *Authorizer) SetType(v string) *Authorizer {
11762	s.Type = &v
11763	return s
11764}
11765
11766// Represents the base path that callers of the API must provide as part of
11767// the URL after the domain name.
11768//
11769// A custom domain name plus a BasePathMapping specification identifies a deployed
11770// RestApi in a given stage of the owner Account.
11771//
11772// Use Custom Domain Names (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
11773type BasePathMapping struct {
11774	_ struct{} `type:"structure"`
11775
11776	// The base path name that callers of the API must provide as part of the URL
11777	// after the domain name.
11778	BasePath *string `locationName:"basePath" type:"string"`
11779
11780	// The string identifier of the associated RestApi.
11781	RestApiId *string `locationName:"restApiId" type:"string"`
11782
11783	// The name of the associated stage.
11784	Stage *string `locationName:"stage" type:"string"`
11785}
11786
11787// String returns the string representation
11788func (s BasePathMapping) String() string {
11789	return awsutil.Prettify(s)
11790}
11791
11792// GoString returns the string representation
11793func (s BasePathMapping) GoString() string {
11794	return s.String()
11795}
11796
11797// SetBasePath sets the BasePath field's value.
11798func (s *BasePathMapping) SetBasePath(v string) *BasePathMapping {
11799	s.BasePath = &v
11800	return s
11801}
11802
11803// SetRestApiId sets the RestApiId field's value.
11804func (s *BasePathMapping) SetRestApiId(v string) *BasePathMapping {
11805	s.RestApiId = &v
11806	return s
11807}
11808
11809// SetStage sets the Stage field's value.
11810func (s *BasePathMapping) SetStage(v string) *BasePathMapping {
11811	s.Stage = &v
11812	return s
11813}
11814
11815// Configuration settings of a canary deployment.
11816type CanarySettings struct {
11817	_ struct{} `type:"structure"`
11818
11819	// The ID of the canary deployment.
11820	DeploymentId *string `locationName:"deploymentId" type:"string"`
11821
11822	// The percent (0-100) of traffic diverted to a canary deployment.
11823	PercentTraffic *float64 `locationName:"percentTraffic" type:"double"`
11824
11825	// Stage variables overridden for a canary release deployment, including new
11826	// stage variables introduced in the canary. These stage variables are represented
11827	// as a string-to-string map between stage variable names and their values.
11828	StageVariableOverrides map[string]*string `locationName:"stageVariableOverrides" type:"map"`
11829
11830	// A Boolean flag to indicate whether the canary deployment uses the stage cache
11831	// or not.
11832	UseStageCache *bool `locationName:"useStageCache" type:"boolean"`
11833}
11834
11835// String returns the string representation
11836func (s CanarySettings) String() string {
11837	return awsutil.Prettify(s)
11838}
11839
11840// GoString returns the string representation
11841func (s CanarySettings) GoString() string {
11842	return s.String()
11843}
11844
11845// SetDeploymentId sets the DeploymentId field's value.
11846func (s *CanarySettings) SetDeploymentId(v string) *CanarySettings {
11847	s.DeploymentId = &v
11848	return s
11849}
11850
11851// SetPercentTraffic sets the PercentTraffic field's value.
11852func (s *CanarySettings) SetPercentTraffic(v float64) *CanarySettings {
11853	s.PercentTraffic = &v
11854	return s
11855}
11856
11857// SetStageVariableOverrides sets the StageVariableOverrides field's value.
11858func (s *CanarySettings) SetStageVariableOverrides(v map[string]*string) *CanarySettings {
11859	s.StageVariableOverrides = v
11860	return s
11861}
11862
11863// SetUseStageCache sets the UseStageCache field's value.
11864func (s *CanarySettings) SetUseStageCache(v bool) *CanarySettings {
11865	s.UseStageCache = &v
11866	return s
11867}
11868
11869// Represents a client certificate used to configure client-side SSL authentication
11870// while sending requests to the integration endpoint.
11871//
11872// Client certificates are used to authenticate an API by the backend server.
11873// To authenticate an API client (or user), use IAM roles and policies, a custom
11874// Authorizer or an Amazon Cognito user pool.
11875//
11876// Use Client-Side Certificate (https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html)
11877type ClientCertificate struct {
11878	_ struct{} `type:"structure"`
11879
11880	// The identifier of the client certificate.
11881	ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
11882
11883	// The timestamp when the client certificate was created.
11884	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
11885
11886	// The description of the client certificate.
11887	Description *string `locationName:"description" type:"string"`
11888
11889	// The timestamp when the client certificate will expire.
11890	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
11891
11892	// The PEM-encoded public key of the client certificate, which can be used to
11893	// configure certificate authentication in the integration endpoint .
11894	PemEncodedCertificate *string `locationName:"pemEncodedCertificate" type:"string"`
11895
11896	// The collection of tags. Each tag element is associated with a given resource.
11897	Tags map[string]*string `locationName:"tags" type:"map"`
11898}
11899
11900// String returns the string representation
11901func (s ClientCertificate) String() string {
11902	return awsutil.Prettify(s)
11903}
11904
11905// GoString returns the string representation
11906func (s ClientCertificate) GoString() string {
11907	return s.String()
11908}
11909
11910// SetClientCertificateId sets the ClientCertificateId field's value.
11911func (s *ClientCertificate) SetClientCertificateId(v string) *ClientCertificate {
11912	s.ClientCertificateId = &v
11913	return s
11914}
11915
11916// SetCreatedDate sets the CreatedDate field's value.
11917func (s *ClientCertificate) SetCreatedDate(v time.Time) *ClientCertificate {
11918	s.CreatedDate = &v
11919	return s
11920}
11921
11922// SetDescription sets the Description field's value.
11923func (s *ClientCertificate) SetDescription(v string) *ClientCertificate {
11924	s.Description = &v
11925	return s
11926}
11927
11928// SetExpirationDate sets the ExpirationDate field's value.
11929func (s *ClientCertificate) SetExpirationDate(v time.Time) *ClientCertificate {
11930	s.ExpirationDate = &v
11931	return s
11932}
11933
11934// SetPemEncodedCertificate sets the PemEncodedCertificate field's value.
11935func (s *ClientCertificate) SetPemEncodedCertificate(v string) *ClientCertificate {
11936	s.PemEncodedCertificate = &v
11937	return s
11938}
11939
11940// SetTags sets the Tags field's value.
11941func (s *ClientCertificate) SetTags(v map[string]*string) *ClientCertificate {
11942	s.Tags = v
11943	return s
11944}
11945
11946// Request to create an ApiKey resource.
11947type CreateApiKeyInput struct {
11948	_ struct{} `type:"structure"`
11949
11950	// An AWS Marketplace customer identifier , when integrating with the AWS SaaS
11951	// Marketplace.
11952	CustomerId *string `locationName:"customerId" type:"string"`
11953
11954	// The description of the ApiKey.
11955	Description *string `locationName:"description" type:"string"`
11956
11957	// Specifies whether the ApiKey can be used by callers.
11958	Enabled *bool `locationName:"enabled" type:"boolean"`
11959
11960	// Specifies whether (true) or not (false) the key identifier is distinct from
11961	// the created API key value.
11962	GenerateDistinctId *bool `locationName:"generateDistinctId" type:"boolean"`
11963
11964	// The name of the ApiKey.
11965	Name *string `locationName:"name" type:"string"`
11966
11967	// DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.
11968	StageKeys []*StageKey `locationName:"stageKeys" type:"list"`
11969
11970	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
11971	// The tag key can be up to 128 characters and must not start with aws:. The
11972	// tag value can be up to 256 characters.
11973	Tags map[string]*string `locationName:"tags" type:"map"`
11974
11975	// Specifies a value of the API key.
11976	Value *string `locationName:"value" type:"string"`
11977}
11978
11979// String returns the string representation
11980func (s CreateApiKeyInput) String() string {
11981	return awsutil.Prettify(s)
11982}
11983
11984// GoString returns the string representation
11985func (s CreateApiKeyInput) GoString() string {
11986	return s.String()
11987}
11988
11989// SetCustomerId sets the CustomerId field's value.
11990func (s *CreateApiKeyInput) SetCustomerId(v string) *CreateApiKeyInput {
11991	s.CustomerId = &v
11992	return s
11993}
11994
11995// SetDescription sets the Description field's value.
11996func (s *CreateApiKeyInput) SetDescription(v string) *CreateApiKeyInput {
11997	s.Description = &v
11998	return s
11999}
12000
12001// SetEnabled sets the Enabled field's value.
12002func (s *CreateApiKeyInput) SetEnabled(v bool) *CreateApiKeyInput {
12003	s.Enabled = &v
12004	return s
12005}
12006
12007// SetGenerateDistinctId sets the GenerateDistinctId field's value.
12008func (s *CreateApiKeyInput) SetGenerateDistinctId(v bool) *CreateApiKeyInput {
12009	s.GenerateDistinctId = &v
12010	return s
12011}
12012
12013// SetName sets the Name field's value.
12014func (s *CreateApiKeyInput) SetName(v string) *CreateApiKeyInput {
12015	s.Name = &v
12016	return s
12017}
12018
12019// SetStageKeys sets the StageKeys field's value.
12020func (s *CreateApiKeyInput) SetStageKeys(v []*StageKey) *CreateApiKeyInput {
12021	s.StageKeys = v
12022	return s
12023}
12024
12025// SetTags sets the Tags field's value.
12026func (s *CreateApiKeyInput) SetTags(v map[string]*string) *CreateApiKeyInput {
12027	s.Tags = v
12028	return s
12029}
12030
12031// SetValue sets the Value field's value.
12032func (s *CreateApiKeyInput) SetValue(v string) *CreateApiKeyInput {
12033	s.Value = &v
12034	return s
12035}
12036
12037// Request to add a new Authorizer to an existing RestApi resource.
12038type CreateAuthorizerInput struct {
12039	_ struct{} `type:"structure"`
12040
12041	// Optional customer-defined field, used in OpenAPI imports and exports without
12042	// functional impact.
12043	AuthType *string `locationName:"authType" type:"string"`
12044
12045	// Specifies the required credentials as an IAM role for API Gateway to invoke
12046	// the authorizer. To specify an IAM role for API Gateway to assume, use the
12047	// role's Amazon Resource Name (ARN). To use resource-based permissions on the
12048	// Lambda function, specify null.
12049	AuthorizerCredentials *string `locationName:"authorizerCredentials" type:"string"`
12050
12051	// The TTL in seconds of cached authorizer results. If it equals 0, authorization
12052	// caching is disabled. If it is greater than 0, API Gateway will cache authorizer
12053	// responses. If this field is not set, the default value is 300. The maximum
12054	// value is 3600, or 1 hour.
12055	AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"`
12056
12057	// Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or
12058	// REQUEST authorizers, this must be a well-formed Lambda function URI, for
12059	// 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.
12060	// In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api},
12061	// where {region} is the same as the region hosting the Lambda function, path
12062	// indicates that the remaining substring in the URI should be treated as the
12063	// path to the resource, including the initial /. For Lambda functions, this
12064	// is usually of the form /2015-03-31/functions/[FunctionARN]/invocations.
12065	AuthorizerUri *string `locationName:"authorizerUri" type:"string"`
12066
12067	// The identity source for which authorization is requested.
12068	//    * For a TOKEN or COGNITO_USER_POOLS authorizer, this is required and specifies
12069	//    the request header mapping expression for the custom header holding the
12070	//    authorization token submitted by the client. For example, if the token
12071	//    header name is Auth, the header mapping expression is method.request.header.Auth.
12072	//
12073	//    * For the REQUEST authorizer, this is required when authorization caching
12074	//    is enabled. The value is a comma-separated string of one or more mapping
12075	//    expressions of the specified request parameters. For example, if an Auth
12076	//    header, a Name query string parameter are defined as identity sources,
12077	//    this value is method.request.header.Auth, method.request.querystring.Name.
12078	//    These parameters will be used to derive the authorization caching key
12079	//    and to perform runtime validation of the REQUEST authorizer by verifying
12080	//    all of the identity-related request parameters are present, not null and
12081	//    non-empty. Only when this is true does the authorizer invoke the authorizer
12082	//    Lambda function, otherwise, it returns a 401 Unauthorized response without
12083	//    calling the Lambda function. The valid value is a string of comma-separated
12084	//    mapping expressions of the specified request parameters. When the authorization
12085	//    caching is not enabled, this property is optional.
12086	IdentitySource *string `locationName:"identitySource" type:"string"`
12087
12088	// A validation expression for the incoming identity token. For TOKEN authorizers,
12089	// this value is a regular expression. For COGNITO_USER_POOLS authorizers, API
12090	// Gateway will match the aud field of the incoming token from the client against
12091	// the specified regular expression. It will invoke the authorizer's Lambda
12092	// function when there is a match. Otherwise, it will return a 401 Unauthorized
12093	// response without calling the Lambda function. The validation expression does
12094	// not apply to the REQUEST authorizer.
12095	IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"`
12096
12097	// [Required] The name of the authorizer.
12098	//
12099	// Name is a required field
12100	Name *string `locationName:"name" type:"string" required:"true"`
12101
12102	// A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer.
12103	// Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}.
12104	// For a TOKEN or REQUEST authorizer, this is not defined.
12105	ProviderARNs []*string `locationName:"providerARNs" type:"list"`
12106
12107	// [Required] The string identifier of the associated RestApi.
12108	//
12109	// RestApiId is a required field
12110	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12111
12112	// [Required] The authorizer type. Valid values are TOKEN for a Lambda function
12113	// using a single authorization token submitted in a custom header, REQUEST
12114	// for a Lambda function using incoming request parameters, and COGNITO_USER_POOLS
12115	// for using an Amazon Cognito user pool.
12116	//
12117	// Type is a required field
12118	Type *string `locationName:"type" type:"string" required:"true" enum:"AuthorizerType"`
12119}
12120
12121// String returns the string representation
12122func (s CreateAuthorizerInput) String() string {
12123	return awsutil.Prettify(s)
12124}
12125
12126// GoString returns the string representation
12127func (s CreateAuthorizerInput) GoString() string {
12128	return s.String()
12129}
12130
12131// Validate inspects the fields of the type to determine if they are valid.
12132func (s *CreateAuthorizerInput) Validate() error {
12133	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
12134	if s.Name == nil {
12135		invalidParams.Add(request.NewErrParamRequired("Name"))
12136	}
12137	if s.RestApiId == nil {
12138		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12139	}
12140	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12141		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12142	}
12143	if s.Type == nil {
12144		invalidParams.Add(request.NewErrParamRequired("Type"))
12145	}
12146
12147	if invalidParams.Len() > 0 {
12148		return invalidParams
12149	}
12150	return nil
12151}
12152
12153// SetAuthType sets the AuthType field's value.
12154func (s *CreateAuthorizerInput) SetAuthType(v string) *CreateAuthorizerInput {
12155	s.AuthType = &v
12156	return s
12157}
12158
12159// SetAuthorizerCredentials sets the AuthorizerCredentials field's value.
12160func (s *CreateAuthorizerInput) SetAuthorizerCredentials(v string) *CreateAuthorizerInput {
12161	s.AuthorizerCredentials = &v
12162	return s
12163}
12164
12165// SetAuthorizerResultTtlInSeconds sets the AuthorizerResultTtlInSeconds field's value.
12166func (s *CreateAuthorizerInput) SetAuthorizerResultTtlInSeconds(v int64) *CreateAuthorizerInput {
12167	s.AuthorizerResultTtlInSeconds = &v
12168	return s
12169}
12170
12171// SetAuthorizerUri sets the AuthorizerUri field's value.
12172func (s *CreateAuthorizerInput) SetAuthorizerUri(v string) *CreateAuthorizerInput {
12173	s.AuthorizerUri = &v
12174	return s
12175}
12176
12177// SetIdentitySource sets the IdentitySource field's value.
12178func (s *CreateAuthorizerInput) SetIdentitySource(v string) *CreateAuthorizerInput {
12179	s.IdentitySource = &v
12180	return s
12181}
12182
12183// SetIdentityValidationExpression sets the IdentityValidationExpression field's value.
12184func (s *CreateAuthorizerInput) SetIdentityValidationExpression(v string) *CreateAuthorizerInput {
12185	s.IdentityValidationExpression = &v
12186	return s
12187}
12188
12189// SetName sets the Name field's value.
12190func (s *CreateAuthorizerInput) SetName(v string) *CreateAuthorizerInput {
12191	s.Name = &v
12192	return s
12193}
12194
12195// SetProviderARNs sets the ProviderARNs field's value.
12196func (s *CreateAuthorizerInput) SetProviderARNs(v []*string) *CreateAuthorizerInput {
12197	s.ProviderARNs = v
12198	return s
12199}
12200
12201// SetRestApiId sets the RestApiId field's value.
12202func (s *CreateAuthorizerInput) SetRestApiId(v string) *CreateAuthorizerInput {
12203	s.RestApiId = &v
12204	return s
12205}
12206
12207// SetType sets the Type field's value.
12208func (s *CreateAuthorizerInput) SetType(v string) *CreateAuthorizerInput {
12209	s.Type = &v
12210	return s
12211}
12212
12213// Requests API Gateway to create a new BasePathMapping resource.
12214type CreateBasePathMappingInput struct {
12215	_ struct{} `type:"structure"`
12216
12217	// The base path name that callers of the API must provide as part of the URL
12218	// after the domain name. This value must be unique for all of the mappings
12219	// across a single API. Specify '(none)' if you do not want callers to specify
12220	// a base path name after the domain name.
12221	BasePath *string `locationName:"basePath" type:"string"`
12222
12223	// [Required] The domain name of the BasePathMapping resource to create.
12224	//
12225	// DomainName is a required field
12226	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
12227
12228	// [Required] The string identifier of the associated RestApi.
12229	//
12230	// RestApiId is a required field
12231	RestApiId *string `locationName:"restApiId" type:"string" required:"true"`
12232
12233	// The name of the API's stage that you want to use for this mapping. Specify
12234	// '(none)' if you do not want callers to explicitly specify the stage name
12235	// after any base path name.
12236	Stage *string `locationName:"stage" type:"string"`
12237}
12238
12239// String returns the string representation
12240func (s CreateBasePathMappingInput) String() string {
12241	return awsutil.Prettify(s)
12242}
12243
12244// GoString returns the string representation
12245func (s CreateBasePathMappingInput) GoString() string {
12246	return s.String()
12247}
12248
12249// Validate inspects the fields of the type to determine if they are valid.
12250func (s *CreateBasePathMappingInput) Validate() error {
12251	invalidParams := request.ErrInvalidParams{Context: "CreateBasePathMappingInput"}
12252	if s.DomainName == nil {
12253		invalidParams.Add(request.NewErrParamRequired("DomainName"))
12254	}
12255	if s.DomainName != nil && len(*s.DomainName) < 1 {
12256		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
12257	}
12258	if s.RestApiId == nil {
12259		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12260	}
12261
12262	if invalidParams.Len() > 0 {
12263		return invalidParams
12264	}
12265	return nil
12266}
12267
12268// SetBasePath sets the BasePath field's value.
12269func (s *CreateBasePathMappingInput) SetBasePath(v string) *CreateBasePathMappingInput {
12270	s.BasePath = &v
12271	return s
12272}
12273
12274// SetDomainName sets the DomainName field's value.
12275func (s *CreateBasePathMappingInput) SetDomainName(v string) *CreateBasePathMappingInput {
12276	s.DomainName = &v
12277	return s
12278}
12279
12280// SetRestApiId sets the RestApiId field's value.
12281func (s *CreateBasePathMappingInput) SetRestApiId(v string) *CreateBasePathMappingInput {
12282	s.RestApiId = &v
12283	return s
12284}
12285
12286// SetStage sets the Stage field's value.
12287func (s *CreateBasePathMappingInput) SetStage(v string) *CreateBasePathMappingInput {
12288	s.Stage = &v
12289	return s
12290}
12291
12292// Requests API Gateway to create a Deployment resource.
12293type CreateDeploymentInput struct {
12294	_ struct{} `type:"structure"`
12295
12296	// Enables a cache cluster for the Stage resource specified in the input.
12297	CacheClusterEnabled *bool `locationName:"cacheClusterEnabled" type:"boolean"`
12298
12299	// Specifies the cache cluster size for the Stage resource specified in the
12300	// input, if a cache cluster is enabled.
12301	CacheClusterSize *string `locationName:"cacheClusterSize" type:"string" enum:"CacheClusterSize"`
12302
12303	// The input configuration for the canary deployment when the deployment is
12304	// a canary release deployment.
12305	CanarySettings *DeploymentCanarySettings `locationName:"canarySettings" type:"structure"`
12306
12307	// The description for the Deployment resource to create.
12308	Description *string `locationName:"description" type:"string"`
12309
12310	// [Required] The string identifier of the associated RestApi.
12311	//
12312	// RestApiId is a required field
12313	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12314
12315	// The description of the Stage resource for the Deployment resource to create.
12316	StageDescription *string `locationName:"stageDescription" type:"string"`
12317
12318	// The name of the Stage resource for the Deployment resource to create.
12319	StageName *string `locationName:"stageName" type:"string"`
12320
12321	// Specifies whether active tracing with X-ray is enabled for the Stage.
12322	TracingEnabled *bool `locationName:"tracingEnabled" type:"boolean"`
12323
12324	// A map that defines the stage variables for the Stage resource that is associated
12325	// with the new deployment. Variable names can have alphanumeric and underscore
12326	// characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.
12327	Variables map[string]*string `locationName:"variables" type:"map"`
12328}
12329
12330// String returns the string representation
12331func (s CreateDeploymentInput) String() string {
12332	return awsutil.Prettify(s)
12333}
12334
12335// GoString returns the string representation
12336func (s CreateDeploymentInput) GoString() string {
12337	return s.String()
12338}
12339
12340// Validate inspects the fields of the type to determine if they are valid.
12341func (s *CreateDeploymentInput) Validate() error {
12342	invalidParams := request.ErrInvalidParams{Context: "CreateDeploymentInput"}
12343	if s.RestApiId == nil {
12344		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12345	}
12346	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12347		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12348	}
12349
12350	if invalidParams.Len() > 0 {
12351		return invalidParams
12352	}
12353	return nil
12354}
12355
12356// SetCacheClusterEnabled sets the CacheClusterEnabled field's value.
12357func (s *CreateDeploymentInput) SetCacheClusterEnabled(v bool) *CreateDeploymentInput {
12358	s.CacheClusterEnabled = &v
12359	return s
12360}
12361
12362// SetCacheClusterSize sets the CacheClusterSize field's value.
12363func (s *CreateDeploymentInput) SetCacheClusterSize(v string) *CreateDeploymentInput {
12364	s.CacheClusterSize = &v
12365	return s
12366}
12367
12368// SetCanarySettings sets the CanarySettings field's value.
12369func (s *CreateDeploymentInput) SetCanarySettings(v *DeploymentCanarySettings) *CreateDeploymentInput {
12370	s.CanarySettings = v
12371	return s
12372}
12373
12374// SetDescription sets the Description field's value.
12375func (s *CreateDeploymentInput) SetDescription(v string) *CreateDeploymentInput {
12376	s.Description = &v
12377	return s
12378}
12379
12380// SetRestApiId sets the RestApiId field's value.
12381func (s *CreateDeploymentInput) SetRestApiId(v string) *CreateDeploymentInput {
12382	s.RestApiId = &v
12383	return s
12384}
12385
12386// SetStageDescription sets the StageDescription field's value.
12387func (s *CreateDeploymentInput) SetStageDescription(v string) *CreateDeploymentInput {
12388	s.StageDescription = &v
12389	return s
12390}
12391
12392// SetStageName sets the StageName field's value.
12393func (s *CreateDeploymentInput) SetStageName(v string) *CreateDeploymentInput {
12394	s.StageName = &v
12395	return s
12396}
12397
12398// SetTracingEnabled sets the TracingEnabled field's value.
12399func (s *CreateDeploymentInput) SetTracingEnabled(v bool) *CreateDeploymentInput {
12400	s.TracingEnabled = &v
12401	return s
12402}
12403
12404// SetVariables sets the Variables field's value.
12405func (s *CreateDeploymentInput) SetVariables(v map[string]*string) *CreateDeploymentInput {
12406	s.Variables = v
12407	return s
12408}
12409
12410// Creates a new documentation part of a given API.
12411type CreateDocumentationPartInput struct {
12412	_ struct{} `type:"structure"`
12413
12414	// [Required] The location of the targeted API entity of the to-be-created documentation
12415	// part.
12416	//
12417	// Location is a required field
12418	Location *DocumentationPartLocation `locationName:"location" type:"structure" required:"true"`
12419
12420	// [Required] The new documentation content map of the targeted API entity.
12421	// Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value
12422	// pairs can be exported and, hence, published.
12423	//
12424	// Properties is a required field
12425	Properties *string `locationName:"properties" type:"string" required:"true"`
12426
12427	// [Required] The string identifier of the associated RestApi.
12428	//
12429	// RestApiId is a required field
12430	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12431}
12432
12433// String returns the string representation
12434func (s CreateDocumentationPartInput) String() string {
12435	return awsutil.Prettify(s)
12436}
12437
12438// GoString returns the string representation
12439func (s CreateDocumentationPartInput) GoString() string {
12440	return s.String()
12441}
12442
12443// Validate inspects the fields of the type to determine if they are valid.
12444func (s *CreateDocumentationPartInput) Validate() error {
12445	invalidParams := request.ErrInvalidParams{Context: "CreateDocumentationPartInput"}
12446	if s.Location == nil {
12447		invalidParams.Add(request.NewErrParamRequired("Location"))
12448	}
12449	if s.Properties == nil {
12450		invalidParams.Add(request.NewErrParamRequired("Properties"))
12451	}
12452	if s.RestApiId == nil {
12453		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12454	}
12455	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12456		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12457	}
12458	if s.Location != nil {
12459		if err := s.Location.Validate(); err != nil {
12460			invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
12461		}
12462	}
12463
12464	if invalidParams.Len() > 0 {
12465		return invalidParams
12466	}
12467	return nil
12468}
12469
12470// SetLocation sets the Location field's value.
12471func (s *CreateDocumentationPartInput) SetLocation(v *DocumentationPartLocation) *CreateDocumentationPartInput {
12472	s.Location = v
12473	return s
12474}
12475
12476// SetProperties sets the Properties field's value.
12477func (s *CreateDocumentationPartInput) SetProperties(v string) *CreateDocumentationPartInput {
12478	s.Properties = &v
12479	return s
12480}
12481
12482// SetRestApiId sets the RestApiId field's value.
12483func (s *CreateDocumentationPartInput) SetRestApiId(v string) *CreateDocumentationPartInput {
12484	s.RestApiId = &v
12485	return s
12486}
12487
12488// Creates a new documentation version of a given API.
12489type CreateDocumentationVersionInput struct {
12490	_ struct{} `type:"structure"`
12491
12492	// A description about the new documentation snapshot.
12493	Description *string `locationName:"description" type:"string"`
12494
12495	// [Required] The version identifier of the new snapshot.
12496	//
12497	// DocumentationVersion is a required field
12498	DocumentationVersion *string `locationName:"documentationVersion" type:"string" required:"true"`
12499
12500	// [Required] The string identifier of the associated RestApi.
12501	//
12502	// RestApiId is a required field
12503	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12504
12505	// The stage name to be associated with the new documentation snapshot.
12506	StageName *string `locationName:"stageName" type:"string"`
12507}
12508
12509// String returns the string representation
12510func (s CreateDocumentationVersionInput) String() string {
12511	return awsutil.Prettify(s)
12512}
12513
12514// GoString returns the string representation
12515func (s CreateDocumentationVersionInput) GoString() string {
12516	return s.String()
12517}
12518
12519// Validate inspects the fields of the type to determine if they are valid.
12520func (s *CreateDocumentationVersionInput) Validate() error {
12521	invalidParams := request.ErrInvalidParams{Context: "CreateDocumentationVersionInput"}
12522	if s.DocumentationVersion == nil {
12523		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
12524	}
12525	if s.RestApiId == nil {
12526		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12527	}
12528	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12529		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12530	}
12531
12532	if invalidParams.Len() > 0 {
12533		return invalidParams
12534	}
12535	return nil
12536}
12537
12538// SetDescription sets the Description field's value.
12539func (s *CreateDocumentationVersionInput) SetDescription(v string) *CreateDocumentationVersionInput {
12540	s.Description = &v
12541	return s
12542}
12543
12544// SetDocumentationVersion sets the DocumentationVersion field's value.
12545func (s *CreateDocumentationVersionInput) SetDocumentationVersion(v string) *CreateDocumentationVersionInput {
12546	s.DocumentationVersion = &v
12547	return s
12548}
12549
12550// SetRestApiId sets the RestApiId field's value.
12551func (s *CreateDocumentationVersionInput) SetRestApiId(v string) *CreateDocumentationVersionInput {
12552	s.RestApiId = &v
12553	return s
12554}
12555
12556// SetStageName sets the StageName field's value.
12557func (s *CreateDocumentationVersionInput) SetStageName(v string) *CreateDocumentationVersionInput {
12558	s.StageName = &v
12559	return s
12560}
12561
12562// A request to create a new domain name.
12563type CreateDomainNameInput struct {
12564	_ struct{} `type:"structure"`
12565
12566	// The reference to an AWS-managed certificate that will be used by edge-optimized
12567	// endpoint for this domain name. AWS Certificate Manager is the only supported
12568	// source.
12569	CertificateArn *string `locationName:"certificateArn" type:"string"`
12570
12571	// [Deprecated] The body of the server certificate that will be used by edge-optimized
12572	// endpoint for this domain name provided by your certificate authority.
12573	CertificateBody *string `locationName:"certificateBody" type:"string"`
12574
12575	// [Deprecated] The intermediate certificates and optionally the root certificate,
12576	// one after the other without any blank lines, used by an edge-optimized endpoint
12577	// for this domain name. If you include the root certificate, your certificate
12578	// chain must start with intermediate certificates and end with the root certificate.
12579	// Use the intermediate certificates that were provided by your certificate
12580	// authority. Do not include any intermediaries that are not in the chain of
12581	// trust path.
12582	CertificateChain *string `locationName:"certificateChain" type:"string"`
12583
12584	// The user-friendly name of the certificate that will be used by edge-optimized
12585	// endpoint for this domain name.
12586	CertificateName *string `locationName:"certificateName" type:"string"`
12587
12588	// [Deprecated] Your edge-optimized endpoint's domain name certificate's private
12589	// key.
12590	CertificatePrivateKey *string `locationName:"certificatePrivateKey" type:"string"`
12591
12592	// [Required] The name of the DomainName resource.
12593	//
12594	// DomainName is a required field
12595	DomainName *string `locationName:"domainName" type:"string" required:"true"`
12596
12597	// The endpoint configuration of this DomainName showing the endpoint types
12598	// of the domain name.
12599	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
12600
12601	// The reference to an AWS-managed certificate that will be used by regional
12602	// endpoint for this domain name. AWS Certificate Manager is the only supported
12603	// source.
12604	RegionalCertificateArn *string `locationName:"regionalCertificateArn" type:"string"`
12605
12606	// The user-friendly name of the certificate that will be used by regional endpoint
12607	// for this domain name.
12608	RegionalCertificateName *string `locationName:"regionalCertificateName" type:"string"`
12609
12610	// The Transport Layer Security (TLS) version + cipher suite for this DomainName.
12611	// The valid values are TLS_1_0 and TLS_1_2.
12612	SecurityPolicy *string `locationName:"securityPolicy" type:"string" enum:"SecurityPolicy"`
12613
12614	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
12615	// The tag key can be up to 128 characters and must not start with aws:. The
12616	// tag value can be up to 256 characters.
12617	Tags map[string]*string `locationName:"tags" type:"map"`
12618}
12619
12620// String returns the string representation
12621func (s CreateDomainNameInput) String() string {
12622	return awsutil.Prettify(s)
12623}
12624
12625// GoString returns the string representation
12626func (s CreateDomainNameInput) GoString() string {
12627	return s.String()
12628}
12629
12630// Validate inspects the fields of the type to determine if they are valid.
12631func (s *CreateDomainNameInput) Validate() error {
12632	invalidParams := request.ErrInvalidParams{Context: "CreateDomainNameInput"}
12633	if s.DomainName == nil {
12634		invalidParams.Add(request.NewErrParamRequired("DomainName"))
12635	}
12636
12637	if invalidParams.Len() > 0 {
12638		return invalidParams
12639	}
12640	return nil
12641}
12642
12643// SetCertificateArn sets the CertificateArn field's value.
12644func (s *CreateDomainNameInput) SetCertificateArn(v string) *CreateDomainNameInput {
12645	s.CertificateArn = &v
12646	return s
12647}
12648
12649// SetCertificateBody sets the CertificateBody field's value.
12650func (s *CreateDomainNameInput) SetCertificateBody(v string) *CreateDomainNameInput {
12651	s.CertificateBody = &v
12652	return s
12653}
12654
12655// SetCertificateChain sets the CertificateChain field's value.
12656func (s *CreateDomainNameInput) SetCertificateChain(v string) *CreateDomainNameInput {
12657	s.CertificateChain = &v
12658	return s
12659}
12660
12661// SetCertificateName sets the CertificateName field's value.
12662func (s *CreateDomainNameInput) SetCertificateName(v string) *CreateDomainNameInput {
12663	s.CertificateName = &v
12664	return s
12665}
12666
12667// SetCertificatePrivateKey sets the CertificatePrivateKey field's value.
12668func (s *CreateDomainNameInput) SetCertificatePrivateKey(v string) *CreateDomainNameInput {
12669	s.CertificatePrivateKey = &v
12670	return s
12671}
12672
12673// SetDomainName sets the DomainName field's value.
12674func (s *CreateDomainNameInput) SetDomainName(v string) *CreateDomainNameInput {
12675	s.DomainName = &v
12676	return s
12677}
12678
12679// SetEndpointConfiguration sets the EndpointConfiguration field's value.
12680func (s *CreateDomainNameInput) SetEndpointConfiguration(v *EndpointConfiguration) *CreateDomainNameInput {
12681	s.EndpointConfiguration = v
12682	return s
12683}
12684
12685// SetRegionalCertificateArn sets the RegionalCertificateArn field's value.
12686func (s *CreateDomainNameInput) SetRegionalCertificateArn(v string) *CreateDomainNameInput {
12687	s.RegionalCertificateArn = &v
12688	return s
12689}
12690
12691// SetRegionalCertificateName sets the RegionalCertificateName field's value.
12692func (s *CreateDomainNameInput) SetRegionalCertificateName(v string) *CreateDomainNameInput {
12693	s.RegionalCertificateName = &v
12694	return s
12695}
12696
12697// SetSecurityPolicy sets the SecurityPolicy field's value.
12698func (s *CreateDomainNameInput) SetSecurityPolicy(v string) *CreateDomainNameInput {
12699	s.SecurityPolicy = &v
12700	return s
12701}
12702
12703// SetTags sets the Tags field's value.
12704func (s *CreateDomainNameInput) SetTags(v map[string]*string) *CreateDomainNameInput {
12705	s.Tags = v
12706	return s
12707}
12708
12709// Request to add a new Model to an existing RestApi resource.
12710type CreateModelInput struct {
12711	_ struct{} `type:"structure"`
12712
12713	// [Required] The content-type for the model.
12714	//
12715	// ContentType is a required field
12716	ContentType *string `locationName:"contentType" type:"string" required:"true"`
12717
12718	// The description of the model.
12719	Description *string `locationName:"description" type:"string"`
12720
12721	// [Required] The name of the model. Must be alphanumeric.
12722	//
12723	// Name is a required field
12724	Name *string `locationName:"name" type:"string" required:"true"`
12725
12726	// [Required] The RestApi identifier under which the Model will be created.
12727	//
12728	// RestApiId is a required field
12729	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12730
12731	// The schema for the model. For application/json models, this should be JSON
12732	// schema draft 4 (https://tools.ietf.org/html/draft-zyp-json-schema-04) model.
12733	Schema *string `locationName:"schema" type:"string"`
12734}
12735
12736// String returns the string representation
12737func (s CreateModelInput) String() string {
12738	return awsutil.Prettify(s)
12739}
12740
12741// GoString returns the string representation
12742func (s CreateModelInput) GoString() string {
12743	return s.String()
12744}
12745
12746// Validate inspects the fields of the type to determine if they are valid.
12747func (s *CreateModelInput) Validate() error {
12748	invalidParams := request.ErrInvalidParams{Context: "CreateModelInput"}
12749	if s.ContentType == nil {
12750		invalidParams.Add(request.NewErrParamRequired("ContentType"))
12751	}
12752	if s.Name == nil {
12753		invalidParams.Add(request.NewErrParamRequired("Name"))
12754	}
12755	if s.RestApiId == nil {
12756		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12757	}
12758	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12759		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12760	}
12761
12762	if invalidParams.Len() > 0 {
12763		return invalidParams
12764	}
12765	return nil
12766}
12767
12768// SetContentType sets the ContentType field's value.
12769func (s *CreateModelInput) SetContentType(v string) *CreateModelInput {
12770	s.ContentType = &v
12771	return s
12772}
12773
12774// SetDescription sets the Description field's value.
12775func (s *CreateModelInput) SetDescription(v string) *CreateModelInput {
12776	s.Description = &v
12777	return s
12778}
12779
12780// SetName sets the Name field's value.
12781func (s *CreateModelInput) SetName(v string) *CreateModelInput {
12782	s.Name = &v
12783	return s
12784}
12785
12786// SetRestApiId sets the RestApiId field's value.
12787func (s *CreateModelInput) SetRestApiId(v string) *CreateModelInput {
12788	s.RestApiId = &v
12789	return s
12790}
12791
12792// SetSchema sets the Schema field's value.
12793func (s *CreateModelInput) SetSchema(v string) *CreateModelInput {
12794	s.Schema = &v
12795	return s
12796}
12797
12798// Creates a RequestValidator of a given RestApi.
12799type CreateRequestValidatorInput struct {
12800	_ struct{} `type:"structure"`
12801
12802	// The name of the to-be-created RequestValidator.
12803	Name *string `locationName:"name" type:"string"`
12804
12805	// [Required] The string identifier of the associated RestApi.
12806	//
12807	// RestApiId is a required field
12808	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12809
12810	// A Boolean flag to indicate whether to validate request body according to
12811	// the configured model schema for the method (true) or not (false).
12812	ValidateRequestBody *bool `locationName:"validateRequestBody" type:"boolean"`
12813
12814	// A Boolean flag to indicate whether to validate request parameters, true,
12815	// or not false.
12816	ValidateRequestParameters *bool `locationName:"validateRequestParameters" type:"boolean"`
12817}
12818
12819// String returns the string representation
12820func (s CreateRequestValidatorInput) String() string {
12821	return awsutil.Prettify(s)
12822}
12823
12824// GoString returns the string representation
12825func (s CreateRequestValidatorInput) GoString() string {
12826	return s.String()
12827}
12828
12829// Validate inspects the fields of the type to determine if they are valid.
12830func (s *CreateRequestValidatorInput) Validate() error {
12831	invalidParams := request.ErrInvalidParams{Context: "CreateRequestValidatorInput"}
12832	if s.RestApiId == nil {
12833		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12834	}
12835	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12836		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12837	}
12838
12839	if invalidParams.Len() > 0 {
12840		return invalidParams
12841	}
12842	return nil
12843}
12844
12845// SetName sets the Name field's value.
12846func (s *CreateRequestValidatorInput) SetName(v string) *CreateRequestValidatorInput {
12847	s.Name = &v
12848	return s
12849}
12850
12851// SetRestApiId sets the RestApiId field's value.
12852func (s *CreateRequestValidatorInput) SetRestApiId(v string) *CreateRequestValidatorInput {
12853	s.RestApiId = &v
12854	return s
12855}
12856
12857// SetValidateRequestBody sets the ValidateRequestBody field's value.
12858func (s *CreateRequestValidatorInput) SetValidateRequestBody(v bool) *CreateRequestValidatorInput {
12859	s.ValidateRequestBody = &v
12860	return s
12861}
12862
12863// SetValidateRequestParameters sets the ValidateRequestParameters field's value.
12864func (s *CreateRequestValidatorInput) SetValidateRequestParameters(v bool) *CreateRequestValidatorInput {
12865	s.ValidateRequestParameters = &v
12866	return s
12867}
12868
12869// Requests API Gateway to create a Resource resource.
12870type CreateResourceInput struct {
12871	_ struct{} `type:"structure"`
12872
12873	// [Required] The parent resource's identifier.
12874	//
12875	// ParentId is a required field
12876	ParentId *string `location:"uri" locationName:"parent_id" type:"string" required:"true"`
12877
12878	// The last path segment for this resource.
12879	//
12880	// PathPart is a required field
12881	PathPart *string `locationName:"pathPart" type:"string" required:"true"`
12882
12883	// [Required] The string identifier of the associated RestApi.
12884	//
12885	// RestApiId is a required field
12886	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12887}
12888
12889// String returns the string representation
12890func (s CreateResourceInput) String() string {
12891	return awsutil.Prettify(s)
12892}
12893
12894// GoString returns the string representation
12895func (s CreateResourceInput) GoString() string {
12896	return s.String()
12897}
12898
12899// Validate inspects the fields of the type to determine if they are valid.
12900func (s *CreateResourceInput) Validate() error {
12901	invalidParams := request.ErrInvalidParams{Context: "CreateResourceInput"}
12902	if s.ParentId == nil {
12903		invalidParams.Add(request.NewErrParamRequired("ParentId"))
12904	}
12905	if s.ParentId != nil && len(*s.ParentId) < 1 {
12906		invalidParams.Add(request.NewErrParamMinLen("ParentId", 1))
12907	}
12908	if s.PathPart == nil {
12909		invalidParams.Add(request.NewErrParamRequired("PathPart"))
12910	}
12911	if s.RestApiId == nil {
12912		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12913	}
12914	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12915		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12916	}
12917
12918	if invalidParams.Len() > 0 {
12919		return invalidParams
12920	}
12921	return nil
12922}
12923
12924// SetParentId sets the ParentId field's value.
12925func (s *CreateResourceInput) SetParentId(v string) *CreateResourceInput {
12926	s.ParentId = &v
12927	return s
12928}
12929
12930// SetPathPart sets the PathPart field's value.
12931func (s *CreateResourceInput) SetPathPart(v string) *CreateResourceInput {
12932	s.PathPart = &v
12933	return s
12934}
12935
12936// SetRestApiId sets the RestApiId field's value.
12937func (s *CreateResourceInput) SetRestApiId(v string) *CreateResourceInput {
12938	s.RestApiId = &v
12939	return s
12940}
12941
12942// The POST Request to add a new RestApi resource to your collection.
12943type CreateRestApiInput struct {
12944	_ struct{} `type:"structure"`
12945
12946	// The source of the API key for metering requests according to a usage plan.
12947	// Valid values are:
12948	//    * HEADER to read the API key from the X-API-Key header of a request.
12949	//
12950	//    * AUTHORIZER to read the API key from the UsageIdentifierKey from a custom
12951	//    authorizer.
12952	ApiKeySource *string `locationName:"apiKeySource" type:"string" enum:"ApiKeySourceType"`
12953
12954	// The list of binary media types supported by the RestApi. By default, the
12955	// RestApi supports only UTF-8-encoded text payloads.
12956	BinaryMediaTypes []*string `locationName:"binaryMediaTypes" type:"list"`
12957
12958	// The ID of the RestApi that you want to clone from.
12959	CloneFrom *string `locationName:"cloneFrom" type:"string"`
12960
12961	// The description of the RestApi.
12962	Description *string `locationName:"description" type:"string"`
12963
12964	// The endpoint configuration of this RestApi showing the endpoint types of
12965	// the API.
12966	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
12967
12968	// A nullable integer that is used to enable compression (with non-negative
12969	// between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with
12970	// a null value) on an API. When compression is enabled, compression or decompression
12971	// is not applied on the payload if the payload size is smaller than this value.
12972	// Setting it to zero allows compression for any payload size.
12973	MinimumCompressionSize *int64 `locationName:"minimumCompressionSize" type:"integer"`
12974
12975	// [Required] The name of the RestApi.
12976	//
12977	// Name is a required field
12978	Name *string `locationName:"name" type:"string" required:"true"`
12979
12980	// A stringified JSON policy document that applies to this RestApi regardless
12981	// of the caller and Method configuration.
12982	Policy *string `locationName:"policy" type:"string"`
12983
12984	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
12985	// The tag key can be up to 128 characters and must not start with aws:. The
12986	// tag value can be up to 256 characters.
12987	Tags map[string]*string `locationName:"tags" type:"map"`
12988
12989	// A version identifier for the API.
12990	Version *string `locationName:"version" type:"string"`
12991}
12992
12993// String returns the string representation
12994func (s CreateRestApiInput) String() string {
12995	return awsutil.Prettify(s)
12996}
12997
12998// GoString returns the string representation
12999func (s CreateRestApiInput) GoString() string {
13000	return s.String()
13001}
13002
13003// Validate inspects the fields of the type to determine if they are valid.
13004func (s *CreateRestApiInput) Validate() error {
13005	invalidParams := request.ErrInvalidParams{Context: "CreateRestApiInput"}
13006	if s.Name == nil {
13007		invalidParams.Add(request.NewErrParamRequired("Name"))
13008	}
13009
13010	if invalidParams.Len() > 0 {
13011		return invalidParams
13012	}
13013	return nil
13014}
13015
13016// SetApiKeySource sets the ApiKeySource field's value.
13017func (s *CreateRestApiInput) SetApiKeySource(v string) *CreateRestApiInput {
13018	s.ApiKeySource = &v
13019	return s
13020}
13021
13022// SetBinaryMediaTypes sets the BinaryMediaTypes field's value.
13023func (s *CreateRestApiInput) SetBinaryMediaTypes(v []*string) *CreateRestApiInput {
13024	s.BinaryMediaTypes = v
13025	return s
13026}
13027
13028// SetCloneFrom sets the CloneFrom field's value.
13029func (s *CreateRestApiInput) SetCloneFrom(v string) *CreateRestApiInput {
13030	s.CloneFrom = &v
13031	return s
13032}
13033
13034// SetDescription sets the Description field's value.
13035func (s *CreateRestApiInput) SetDescription(v string) *CreateRestApiInput {
13036	s.Description = &v
13037	return s
13038}
13039
13040// SetEndpointConfiguration sets the EndpointConfiguration field's value.
13041func (s *CreateRestApiInput) SetEndpointConfiguration(v *EndpointConfiguration) *CreateRestApiInput {
13042	s.EndpointConfiguration = v
13043	return s
13044}
13045
13046// SetMinimumCompressionSize sets the MinimumCompressionSize field's value.
13047func (s *CreateRestApiInput) SetMinimumCompressionSize(v int64) *CreateRestApiInput {
13048	s.MinimumCompressionSize = &v
13049	return s
13050}
13051
13052// SetName sets the Name field's value.
13053func (s *CreateRestApiInput) SetName(v string) *CreateRestApiInput {
13054	s.Name = &v
13055	return s
13056}
13057
13058// SetPolicy sets the Policy field's value.
13059func (s *CreateRestApiInput) SetPolicy(v string) *CreateRestApiInput {
13060	s.Policy = &v
13061	return s
13062}
13063
13064// SetTags sets the Tags field's value.
13065func (s *CreateRestApiInput) SetTags(v map[string]*string) *CreateRestApiInput {
13066	s.Tags = v
13067	return s
13068}
13069
13070// SetVersion sets the Version field's value.
13071func (s *CreateRestApiInput) SetVersion(v string) *CreateRestApiInput {
13072	s.Version = &v
13073	return s
13074}
13075
13076// Requests API Gateway to create a Stage resource.
13077type CreateStageInput struct {
13078	_ struct{} `type:"structure"`
13079
13080	// Whether cache clustering is enabled for the stage.
13081	CacheClusterEnabled *bool `locationName:"cacheClusterEnabled" type:"boolean"`
13082
13083	// The stage's cache cluster size.
13084	CacheClusterSize *string `locationName:"cacheClusterSize" type:"string" enum:"CacheClusterSize"`
13085
13086	// The canary deployment settings of this stage.
13087	CanarySettings *CanarySettings `locationName:"canarySettings" type:"structure"`
13088
13089	// [Required] The identifier of the Deployment resource for the Stage resource.
13090	//
13091	// DeploymentId is a required field
13092	DeploymentId *string `locationName:"deploymentId" type:"string" required:"true"`
13093
13094	// The description of the Stage resource.
13095	Description *string `locationName:"description" type:"string"`
13096
13097	// The version of the associated API documentation.
13098	DocumentationVersion *string `locationName:"documentationVersion" type:"string"`
13099
13100	// [Required] The string identifier of the associated RestApi.
13101	//
13102	// RestApiId is a required field
13103	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13104
13105	// [Required] The name for the Stage resource. Stage names can only contain
13106	// alphanumeric characters, hyphens, and underscores. Maximum length is 128
13107	// characters.
13108	//
13109	// StageName is a required field
13110	StageName *string `locationName:"stageName" type:"string" required:"true"`
13111
13112	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13113	// The tag key can be up to 128 characters and must not start with aws:. The
13114	// tag value can be up to 256 characters.
13115	Tags map[string]*string `locationName:"tags" type:"map"`
13116
13117	// Specifies whether active tracing with X-ray is enabled for the Stage.
13118	TracingEnabled *bool `locationName:"tracingEnabled" type:"boolean"`
13119
13120	// A map that defines the stage variables for the new Stage resource. Variable
13121	// names can have alphanumeric and underscore characters, and the values must
13122	// match [A-Za-z0-9-._~:/?#&=,]+.
13123	Variables map[string]*string `locationName:"variables" type:"map"`
13124}
13125
13126// String returns the string representation
13127func (s CreateStageInput) String() string {
13128	return awsutil.Prettify(s)
13129}
13130
13131// GoString returns the string representation
13132func (s CreateStageInput) GoString() string {
13133	return s.String()
13134}
13135
13136// Validate inspects the fields of the type to determine if they are valid.
13137func (s *CreateStageInput) Validate() error {
13138	invalidParams := request.ErrInvalidParams{Context: "CreateStageInput"}
13139	if s.DeploymentId == nil {
13140		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
13141	}
13142	if s.RestApiId == nil {
13143		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13144	}
13145	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13146		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13147	}
13148	if s.StageName == nil {
13149		invalidParams.Add(request.NewErrParamRequired("StageName"))
13150	}
13151
13152	if invalidParams.Len() > 0 {
13153		return invalidParams
13154	}
13155	return nil
13156}
13157
13158// SetCacheClusterEnabled sets the CacheClusterEnabled field's value.
13159func (s *CreateStageInput) SetCacheClusterEnabled(v bool) *CreateStageInput {
13160	s.CacheClusterEnabled = &v
13161	return s
13162}
13163
13164// SetCacheClusterSize sets the CacheClusterSize field's value.
13165func (s *CreateStageInput) SetCacheClusterSize(v string) *CreateStageInput {
13166	s.CacheClusterSize = &v
13167	return s
13168}
13169
13170// SetCanarySettings sets the CanarySettings field's value.
13171func (s *CreateStageInput) SetCanarySettings(v *CanarySettings) *CreateStageInput {
13172	s.CanarySettings = v
13173	return s
13174}
13175
13176// SetDeploymentId sets the DeploymentId field's value.
13177func (s *CreateStageInput) SetDeploymentId(v string) *CreateStageInput {
13178	s.DeploymentId = &v
13179	return s
13180}
13181
13182// SetDescription sets the Description field's value.
13183func (s *CreateStageInput) SetDescription(v string) *CreateStageInput {
13184	s.Description = &v
13185	return s
13186}
13187
13188// SetDocumentationVersion sets the DocumentationVersion field's value.
13189func (s *CreateStageInput) SetDocumentationVersion(v string) *CreateStageInput {
13190	s.DocumentationVersion = &v
13191	return s
13192}
13193
13194// SetRestApiId sets the RestApiId field's value.
13195func (s *CreateStageInput) SetRestApiId(v string) *CreateStageInput {
13196	s.RestApiId = &v
13197	return s
13198}
13199
13200// SetStageName sets the StageName field's value.
13201func (s *CreateStageInput) SetStageName(v string) *CreateStageInput {
13202	s.StageName = &v
13203	return s
13204}
13205
13206// SetTags sets the Tags field's value.
13207func (s *CreateStageInput) SetTags(v map[string]*string) *CreateStageInput {
13208	s.Tags = v
13209	return s
13210}
13211
13212// SetTracingEnabled sets the TracingEnabled field's value.
13213func (s *CreateStageInput) SetTracingEnabled(v bool) *CreateStageInput {
13214	s.TracingEnabled = &v
13215	return s
13216}
13217
13218// SetVariables sets the Variables field's value.
13219func (s *CreateStageInput) SetVariables(v map[string]*string) *CreateStageInput {
13220	s.Variables = v
13221	return s
13222}
13223
13224// The POST request to create a usage plan with the name, description, throttle
13225// limits and quota limits, as well as the associated API stages, specified
13226// in the payload.
13227type CreateUsagePlanInput struct {
13228	_ struct{} `type:"structure"`
13229
13230	// The associated API stages of the usage plan.
13231	ApiStages []*ApiStage `locationName:"apiStages" type:"list"`
13232
13233	// The description of the usage plan.
13234	Description *string `locationName:"description" type:"string"`
13235
13236	// [Required] The name of the usage plan.
13237	//
13238	// Name is a required field
13239	Name *string `locationName:"name" type:"string" required:"true"`
13240
13241	// The quota of the usage plan.
13242	Quota *QuotaSettings `locationName:"quota" type:"structure"`
13243
13244	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13245	// The tag key can be up to 128 characters and must not start with aws:. The
13246	// tag value can be up to 256 characters.
13247	Tags map[string]*string `locationName:"tags" type:"map"`
13248
13249	// The throttling limits of the usage plan.
13250	Throttle *ThrottleSettings `locationName:"throttle" type:"structure"`
13251}
13252
13253// String returns the string representation
13254func (s CreateUsagePlanInput) String() string {
13255	return awsutil.Prettify(s)
13256}
13257
13258// GoString returns the string representation
13259func (s CreateUsagePlanInput) GoString() string {
13260	return s.String()
13261}
13262
13263// Validate inspects the fields of the type to determine if they are valid.
13264func (s *CreateUsagePlanInput) Validate() error {
13265	invalidParams := request.ErrInvalidParams{Context: "CreateUsagePlanInput"}
13266	if s.Name == nil {
13267		invalidParams.Add(request.NewErrParamRequired("Name"))
13268	}
13269
13270	if invalidParams.Len() > 0 {
13271		return invalidParams
13272	}
13273	return nil
13274}
13275
13276// SetApiStages sets the ApiStages field's value.
13277func (s *CreateUsagePlanInput) SetApiStages(v []*ApiStage) *CreateUsagePlanInput {
13278	s.ApiStages = v
13279	return s
13280}
13281
13282// SetDescription sets the Description field's value.
13283func (s *CreateUsagePlanInput) SetDescription(v string) *CreateUsagePlanInput {
13284	s.Description = &v
13285	return s
13286}
13287
13288// SetName sets the Name field's value.
13289func (s *CreateUsagePlanInput) SetName(v string) *CreateUsagePlanInput {
13290	s.Name = &v
13291	return s
13292}
13293
13294// SetQuota sets the Quota field's value.
13295func (s *CreateUsagePlanInput) SetQuota(v *QuotaSettings) *CreateUsagePlanInput {
13296	s.Quota = v
13297	return s
13298}
13299
13300// SetTags sets the Tags field's value.
13301func (s *CreateUsagePlanInput) SetTags(v map[string]*string) *CreateUsagePlanInput {
13302	s.Tags = v
13303	return s
13304}
13305
13306// SetThrottle sets the Throttle field's value.
13307func (s *CreateUsagePlanInput) SetThrottle(v *ThrottleSettings) *CreateUsagePlanInput {
13308	s.Throttle = v
13309	return s
13310}
13311
13312// The POST request to create a usage plan key for adding an existing API key
13313// to a usage plan.
13314type CreateUsagePlanKeyInput struct {
13315	_ struct{} `type:"structure"`
13316
13317	// [Required] The identifier of a UsagePlanKey resource for a plan customer.
13318	//
13319	// KeyId is a required field
13320	KeyId *string `locationName:"keyId" type:"string" required:"true"`
13321
13322	// [Required] The type of a UsagePlanKey resource for a plan customer.
13323	//
13324	// KeyType is a required field
13325	KeyType *string `locationName:"keyType" type:"string" required:"true"`
13326
13327	// [Required] The Id of the UsagePlan resource representing the usage plan containing
13328	// the to-be-created UsagePlanKey resource representing a plan customer.
13329	//
13330	// UsagePlanId is a required field
13331	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
13332}
13333
13334// String returns the string representation
13335func (s CreateUsagePlanKeyInput) String() string {
13336	return awsutil.Prettify(s)
13337}
13338
13339// GoString returns the string representation
13340func (s CreateUsagePlanKeyInput) GoString() string {
13341	return s.String()
13342}
13343
13344// Validate inspects the fields of the type to determine if they are valid.
13345func (s *CreateUsagePlanKeyInput) Validate() error {
13346	invalidParams := request.ErrInvalidParams{Context: "CreateUsagePlanKeyInput"}
13347	if s.KeyId == nil {
13348		invalidParams.Add(request.NewErrParamRequired("KeyId"))
13349	}
13350	if s.KeyType == nil {
13351		invalidParams.Add(request.NewErrParamRequired("KeyType"))
13352	}
13353	if s.UsagePlanId == nil {
13354		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
13355	}
13356	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
13357		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
13358	}
13359
13360	if invalidParams.Len() > 0 {
13361		return invalidParams
13362	}
13363	return nil
13364}
13365
13366// SetKeyId sets the KeyId field's value.
13367func (s *CreateUsagePlanKeyInput) SetKeyId(v string) *CreateUsagePlanKeyInput {
13368	s.KeyId = &v
13369	return s
13370}
13371
13372// SetKeyType sets the KeyType field's value.
13373func (s *CreateUsagePlanKeyInput) SetKeyType(v string) *CreateUsagePlanKeyInput {
13374	s.KeyType = &v
13375	return s
13376}
13377
13378// SetUsagePlanId sets the UsagePlanId field's value.
13379func (s *CreateUsagePlanKeyInput) SetUsagePlanId(v string) *CreateUsagePlanKeyInput {
13380	s.UsagePlanId = &v
13381	return s
13382}
13383
13384// Creates a VPC link, under the caller's account in a selected region, in an
13385// asynchronous operation that typically takes 2-4 minutes to complete and become
13386// operational. The caller must have permissions to create and update VPC Endpoint
13387// services.
13388type CreateVpcLinkInput struct {
13389	_ struct{} `type:"structure"`
13390
13391	// The description of the VPC link.
13392	Description *string `locationName:"description" type:"string"`
13393
13394	// [Required] The name used to label and identify the VPC link.
13395	//
13396	// Name is a required field
13397	Name *string `locationName:"name" type:"string" required:"true"`
13398
13399	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13400	// The tag key can be up to 128 characters and must not start with aws:. The
13401	// tag value can be up to 256 characters.
13402	Tags map[string]*string `locationName:"tags" type:"map"`
13403
13404	// [Required] The ARNs of network load balancers of the VPC targeted by the
13405	// VPC link. The network load balancers must be owned by the same AWS account
13406	// of the API owner.
13407	//
13408	// TargetArns is a required field
13409	TargetArns []*string `locationName:"targetArns" type:"list" required:"true"`
13410}
13411
13412// String returns the string representation
13413func (s CreateVpcLinkInput) String() string {
13414	return awsutil.Prettify(s)
13415}
13416
13417// GoString returns the string representation
13418func (s CreateVpcLinkInput) GoString() string {
13419	return s.String()
13420}
13421
13422// Validate inspects the fields of the type to determine if they are valid.
13423func (s *CreateVpcLinkInput) Validate() error {
13424	invalidParams := request.ErrInvalidParams{Context: "CreateVpcLinkInput"}
13425	if s.Name == nil {
13426		invalidParams.Add(request.NewErrParamRequired("Name"))
13427	}
13428	if s.TargetArns == nil {
13429		invalidParams.Add(request.NewErrParamRequired("TargetArns"))
13430	}
13431
13432	if invalidParams.Len() > 0 {
13433		return invalidParams
13434	}
13435	return nil
13436}
13437
13438// SetDescription sets the Description field's value.
13439func (s *CreateVpcLinkInput) SetDescription(v string) *CreateVpcLinkInput {
13440	s.Description = &v
13441	return s
13442}
13443
13444// SetName sets the Name field's value.
13445func (s *CreateVpcLinkInput) SetName(v string) *CreateVpcLinkInput {
13446	s.Name = &v
13447	return s
13448}
13449
13450// SetTags sets the Tags field's value.
13451func (s *CreateVpcLinkInput) SetTags(v map[string]*string) *CreateVpcLinkInput {
13452	s.Tags = v
13453	return s
13454}
13455
13456// SetTargetArns sets the TargetArns field's value.
13457func (s *CreateVpcLinkInput) SetTargetArns(v []*string) *CreateVpcLinkInput {
13458	s.TargetArns = v
13459	return s
13460}
13461
13462// A request to delete the ApiKey resource.
13463type DeleteApiKeyInput struct {
13464	_ struct{} `type:"structure"`
13465
13466	// [Required] The identifier of the ApiKey resource to be deleted.
13467	//
13468	// ApiKey is a required field
13469	ApiKey *string `location:"uri" locationName:"api_Key" type:"string" required:"true"`
13470}
13471
13472// String returns the string representation
13473func (s DeleteApiKeyInput) String() string {
13474	return awsutil.Prettify(s)
13475}
13476
13477// GoString returns the string representation
13478func (s DeleteApiKeyInput) GoString() string {
13479	return s.String()
13480}
13481
13482// Validate inspects the fields of the type to determine if they are valid.
13483func (s *DeleteApiKeyInput) Validate() error {
13484	invalidParams := request.ErrInvalidParams{Context: "DeleteApiKeyInput"}
13485	if s.ApiKey == nil {
13486		invalidParams.Add(request.NewErrParamRequired("ApiKey"))
13487	}
13488	if s.ApiKey != nil && len(*s.ApiKey) < 1 {
13489		invalidParams.Add(request.NewErrParamMinLen("ApiKey", 1))
13490	}
13491
13492	if invalidParams.Len() > 0 {
13493		return invalidParams
13494	}
13495	return nil
13496}
13497
13498// SetApiKey sets the ApiKey field's value.
13499func (s *DeleteApiKeyInput) SetApiKey(v string) *DeleteApiKeyInput {
13500	s.ApiKey = &v
13501	return s
13502}
13503
13504type DeleteApiKeyOutput struct {
13505	_ struct{} `type:"structure"`
13506}
13507
13508// String returns the string representation
13509func (s DeleteApiKeyOutput) String() string {
13510	return awsutil.Prettify(s)
13511}
13512
13513// GoString returns the string representation
13514func (s DeleteApiKeyOutput) GoString() string {
13515	return s.String()
13516}
13517
13518// Request to delete an existing Authorizer resource.
13519type DeleteAuthorizerInput struct {
13520	_ struct{} `type:"structure"`
13521
13522	// [Required] The identifier of the Authorizer resource.
13523	//
13524	// AuthorizerId is a required field
13525	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
13526
13527	// [Required] The string identifier of the associated RestApi.
13528	//
13529	// RestApiId is a required field
13530	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13531}
13532
13533// String returns the string representation
13534func (s DeleteAuthorizerInput) String() string {
13535	return awsutil.Prettify(s)
13536}
13537
13538// GoString returns the string representation
13539func (s DeleteAuthorizerInput) GoString() string {
13540	return s.String()
13541}
13542
13543// Validate inspects the fields of the type to determine if they are valid.
13544func (s *DeleteAuthorizerInput) Validate() error {
13545	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
13546	if s.AuthorizerId == nil {
13547		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
13548	}
13549	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
13550		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
13551	}
13552	if s.RestApiId == nil {
13553		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13554	}
13555	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13556		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13557	}
13558
13559	if invalidParams.Len() > 0 {
13560		return invalidParams
13561	}
13562	return nil
13563}
13564
13565// SetAuthorizerId sets the AuthorizerId field's value.
13566func (s *DeleteAuthorizerInput) SetAuthorizerId(v string) *DeleteAuthorizerInput {
13567	s.AuthorizerId = &v
13568	return s
13569}
13570
13571// SetRestApiId sets the RestApiId field's value.
13572func (s *DeleteAuthorizerInput) SetRestApiId(v string) *DeleteAuthorizerInput {
13573	s.RestApiId = &v
13574	return s
13575}
13576
13577type DeleteAuthorizerOutput struct {
13578	_ struct{} `type:"structure"`
13579}
13580
13581// String returns the string representation
13582func (s DeleteAuthorizerOutput) String() string {
13583	return awsutil.Prettify(s)
13584}
13585
13586// GoString returns the string representation
13587func (s DeleteAuthorizerOutput) GoString() string {
13588	return s.String()
13589}
13590
13591// A request to delete the BasePathMapping resource.
13592type DeleteBasePathMappingInput struct {
13593	_ struct{} `type:"structure"`
13594
13595	// [Required] The base path name of the BasePathMapping resource to delete.
13596	//
13597	// To specify an empty base path, set this parameter to '(none)'.
13598	//
13599	// BasePath is a required field
13600	BasePath *string `location:"uri" locationName:"base_path" type:"string" required:"true"`
13601
13602	// [Required] The domain name of the BasePathMapping resource to delete.
13603	//
13604	// DomainName is a required field
13605	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
13606}
13607
13608// String returns the string representation
13609func (s DeleteBasePathMappingInput) String() string {
13610	return awsutil.Prettify(s)
13611}
13612
13613// GoString returns the string representation
13614func (s DeleteBasePathMappingInput) GoString() string {
13615	return s.String()
13616}
13617
13618// Validate inspects the fields of the type to determine if they are valid.
13619func (s *DeleteBasePathMappingInput) Validate() error {
13620	invalidParams := request.ErrInvalidParams{Context: "DeleteBasePathMappingInput"}
13621	if s.BasePath == nil {
13622		invalidParams.Add(request.NewErrParamRequired("BasePath"))
13623	}
13624	if s.BasePath != nil && len(*s.BasePath) < 1 {
13625		invalidParams.Add(request.NewErrParamMinLen("BasePath", 1))
13626	}
13627	if s.DomainName == nil {
13628		invalidParams.Add(request.NewErrParamRequired("DomainName"))
13629	}
13630	if s.DomainName != nil && len(*s.DomainName) < 1 {
13631		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
13632	}
13633
13634	if invalidParams.Len() > 0 {
13635		return invalidParams
13636	}
13637	return nil
13638}
13639
13640// SetBasePath sets the BasePath field's value.
13641func (s *DeleteBasePathMappingInput) SetBasePath(v string) *DeleteBasePathMappingInput {
13642	s.BasePath = &v
13643	return s
13644}
13645
13646// SetDomainName sets the DomainName field's value.
13647func (s *DeleteBasePathMappingInput) SetDomainName(v string) *DeleteBasePathMappingInput {
13648	s.DomainName = &v
13649	return s
13650}
13651
13652type DeleteBasePathMappingOutput struct {
13653	_ struct{} `type:"structure"`
13654}
13655
13656// String returns the string representation
13657func (s DeleteBasePathMappingOutput) String() string {
13658	return awsutil.Prettify(s)
13659}
13660
13661// GoString returns the string representation
13662func (s DeleteBasePathMappingOutput) GoString() string {
13663	return s.String()
13664}
13665
13666// A request to delete the ClientCertificate resource.
13667type DeleteClientCertificateInput struct {
13668	_ struct{} `type:"structure"`
13669
13670	// [Required] The identifier of the ClientCertificate resource to be deleted.
13671	//
13672	// ClientCertificateId is a required field
13673	ClientCertificateId *string `location:"uri" locationName:"clientcertificate_id" type:"string" required:"true"`
13674}
13675
13676// String returns the string representation
13677func (s DeleteClientCertificateInput) String() string {
13678	return awsutil.Prettify(s)
13679}
13680
13681// GoString returns the string representation
13682func (s DeleteClientCertificateInput) GoString() string {
13683	return s.String()
13684}
13685
13686// Validate inspects the fields of the type to determine if they are valid.
13687func (s *DeleteClientCertificateInput) Validate() error {
13688	invalidParams := request.ErrInvalidParams{Context: "DeleteClientCertificateInput"}
13689	if s.ClientCertificateId == nil {
13690		invalidParams.Add(request.NewErrParamRequired("ClientCertificateId"))
13691	}
13692	if s.ClientCertificateId != nil && len(*s.ClientCertificateId) < 1 {
13693		invalidParams.Add(request.NewErrParamMinLen("ClientCertificateId", 1))
13694	}
13695
13696	if invalidParams.Len() > 0 {
13697		return invalidParams
13698	}
13699	return nil
13700}
13701
13702// SetClientCertificateId sets the ClientCertificateId field's value.
13703func (s *DeleteClientCertificateInput) SetClientCertificateId(v string) *DeleteClientCertificateInput {
13704	s.ClientCertificateId = &v
13705	return s
13706}
13707
13708type DeleteClientCertificateOutput struct {
13709	_ struct{} `type:"structure"`
13710}
13711
13712// String returns the string representation
13713func (s DeleteClientCertificateOutput) String() string {
13714	return awsutil.Prettify(s)
13715}
13716
13717// GoString returns the string representation
13718func (s DeleteClientCertificateOutput) GoString() string {
13719	return s.String()
13720}
13721
13722// Requests API Gateway to delete a Deployment resource.
13723type DeleteDeploymentInput struct {
13724	_ struct{} `type:"structure"`
13725
13726	// [Required] The identifier of the Deployment resource to delete.
13727	//
13728	// DeploymentId is a required field
13729	DeploymentId *string `location:"uri" locationName:"deployment_id" type:"string" required:"true"`
13730
13731	// [Required] The string identifier of the associated RestApi.
13732	//
13733	// RestApiId is a required field
13734	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13735}
13736
13737// String returns the string representation
13738func (s DeleteDeploymentInput) String() string {
13739	return awsutil.Prettify(s)
13740}
13741
13742// GoString returns the string representation
13743func (s DeleteDeploymentInput) GoString() string {
13744	return s.String()
13745}
13746
13747// Validate inspects the fields of the type to determine if they are valid.
13748func (s *DeleteDeploymentInput) Validate() error {
13749	invalidParams := request.ErrInvalidParams{Context: "DeleteDeploymentInput"}
13750	if s.DeploymentId == nil {
13751		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
13752	}
13753	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
13754		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
13755	}
13756	if s.RestApiId == nil {
13757		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13758	}
13759	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13760		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13761	}
13762
13763	if invalidParams.Len() > 0 {
13764		return invalidParams
13765	}
13766	return nil
13767}
13768
13769// SetDeploymentId sets the DeploymentId field's value.
13770func (s *DeleteDeploymentInput) SetDeploymentId(v string) *DeleteDeploymentInput {
13771	s.DeploymentId = &v
13772	return s
13773}
13774
13775// SetRestApiId sets the RestApiId field's value.
13776func (s *DeleteDeploymentInput) SetRestApiId(v string) *DeleteDeploymentInput {
13777	s.RestApiId = &v
13778	return s
13779}
13780
13781type DeleteDeploymentOutput struct {
13782	_ struct{} `type:"structure"`
13783}
13784
13785// String returns the string representation
13786func (s DeleteDeploymentOutput) String() string {
13787	return awsutil.Prettify(s)
13788}
13789
13790// GoString returns the string representation
13791func (s DeleteDeploymentOutput) GoString() string {
13792	return s.String()
13793}
13794
13795// Deletes an existing documentation part of an API.
13796type DeleteDocumentationPartInput struct {
13797	_ struct{} `type:"structure"`
13798
13799	// [Required] The identifier of the to-be-deleted documentation part.
13800	//
13801	// DocumentationPartId is a required field
13802	DocumentationPartId *string `location:"uri" locationName:"part_id" type:"string" required:"true"`
13803
13804	// [Required] The string identifier of the associated RestApi.
13805	//
13806	// RestApiId is a required field
13807	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13808}
13809
13810// String returns the string representation
13811func (s DeleteDocumentationPartInput) String() string {
13812	return awsutil.Prettify(s)
13813}
13814
13815// GoString returns the string representation
13816func (s DeleteDocumentationPartInput) GoString() string {
13817	return s.String()
13818}
13819
13820// Validate inspects the fields of the type to determine if they are valid.
13821func (s *DeleteDocumentationPartInput) Validate() error {
13822	invalidParams := request.ErrInvalidParams{Context: "DeleteDocumentationPartInput"}
13823	if s.DocumentationPartId == nil {
13824		invalidParams.Add(request.NewErrParamRequired("DocumentationPartId"))
13825	}
13826	if s.DocumentationPartId != nil && len(*s.DocumentationPartId) < 1 {
13827		invalidParams.Add(request.NewErrParamMinLen("DocumentationPartId", 1))
13828	}
13829	if s.RestApiId == nil {
13830		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13831	}
13832	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13833		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13834	}
13835
13836	if invalidParams.Len() > 0 {
13837		return invalidParams
13838	}
13839	return nil
13840}
13841
13842// SetDocumentationPartId sets the DocumentationPartId field's value.
13843func (s *DeleteDocumentationPartInput) SetDocumentationPartId(v string) *DeleteDocumentationPartInput {
13844	s.DocumentationPartId = &v
13845	return s
13846}
13847
13848// SetRestApiId sets the RestApiId field's value.
13849func (s *DeleteDocumentationPartInput) SetRestApiId(v string) *DeleteDocumentationPartInput {
13850	s.RestApiId = &v
13851	return s
13852}
13853
13854type DeleteDocumentationPartOutput struct {
13855	_ struct{} `type:"structure"`
13856}
13857
13858// String returns the string representation
13859func (s DeleteDocumentationPartOutput) String() string {
13860	return awsutil.Prettify(s)
13861}
13862
13863// GoString returns the string representation
13864func (s DeleteDocumentationPartOutput) GoString() string {
13865	return s.String()
13866}
13867
13868// Deletes an existing documentation version of an API.
13869type DeleteDocumentationVersionInput struct {
13870	_ struct{} `type:"structure"`
13871
13872	// [Required] The version identifier of a to-be-deleted documentation snapshot.
13873	//
13874	// DocumentationVersion is a required field
13875	DocumentationVersion *string `location:"uri" locationName:"doc_version" type:"string" required:"true"`
13876
13877	// [Required] The string identifier of the associated RestApi.
13878	//
13879	// RestApiId is a required field
13880	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13881}
13882
13883// String returns the string representation
13884func (s DeleteDocumentationVersionInput) String() string {
13885	return awsutil.Prettify(s)
13886}
13887
13888// GoString returns the string representation
13889func (s DeleteDocumentationVersionInput) GoString() string {
13890	return s.String()
13891}
13892
13893// Validate inspects the fields of the type to determine if they are valid.
13894func (s *DeleteDocumentationVersionInput) Validate() error {
13895	invalidParams := request.ErrInvalidParams{Context: "DeleteDocumentationVersionInput"}
13896	if s.DocumentationVersion == nil {
13897		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
13898	}
13899	if s.DocumentationVersion != nil && len(*s.DocumentationVersion) < 1 {
13900		invalidParams.Add(request.NewErrParamMinLen("DocumentationVersion", 1))
13901	}
13902	if s.RestApiId == nil {
13903		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13904	}
13905	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13906		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13907	}
13908
13909	if invalidParams.Len() > 0 {
13910		return invalidParams
13911	}
13912	return nil
13913}
13914
13915// SetDocumentationVersion sets the DocumentationVersion field's value.
13916func (s *DeleteDocumentationVersionInput) SetDocumentationVersion(v string) *DeleteDocumentationVersionInput {
13917	s.DocumentationVersion = &v
13918	return s
13919}
13920
13921// SetRestApiId sets the RestApiId field's value.
13922func (s *DeleteDocumentationVersionInput) SetRestApiId(v string) *DeleteDocumentationVersionInput {
13923	s.RestApiId = &v
13924	return s
13925}
13926
13927type DeleteDocumentationVersionOutput struct {
13928	_ struct{} `type:"structure"`
13929}
13930
13931// String returns the string representation
13932func (s DeleteDocumentationVersionOutput) String() string {
13933	return awsutil.Prettify(s)
13934}
13935
13936// GoString returns the string representation
13937func (s DeleteDocumentationVersionOutput) GoString() string {
13938	return s.String()
13939}
13940
13941// A request to delete the DomainName resource.
13942type DeleteDomainNameInput struct {
13943	_ struct{} `type:"structure"`
13944
13945	// [Required] The name of the DomainName resource to be deleted.
13946	//
13947	// DomainName is a required field
13948	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
13949}
13950
13951// String returns the string representation
13952func (s DeleteDomainNameInput) String() string {
13953	return awsutil.Prettify(s)
13954}
13955
13956// GoString returns the string representation
13957func (s DeleteDomainNameInput) GoString() string {
13958	return s.String()
13959}
13960
13961// Validate inspects the fields of the type to determine if they are valid.
13962func (s *DeleteDomainNameInput) Validate() error {
13963	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainNameInput"}
13964	if s.DomainName == nil {
13965		invalidParams.Add(request.NewErrParamRequired("DomainName"))
13966	}
13967	if s.DomainName != nil && len(*s.DomainName) < 1 {
13968		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
13969	}
13970
13971	if invalidParams.Len() > 0 {
13972		return invalidParams
13973	}
13974	return nil
13975}
13976
13977// SetDomainName sets the DomainName field's value.
13978func (s *DeleteDomainNameInput) SetDomainName(v string) *DeleteDomainNameInput {
13979	s.DomainName = &v
13980	return s
13981}
13982
13983type DeleteDomainNameOutput struct {
13984	_ struct{} `type:"structure"`
13985}
13986
13987// String returns the string representation
13988func (s DeleteDomainNameOutput) String() string {
13989	return awsutil.Prettify(s)
13990}
13991
13992// GoString returns the string representation
13993func (s DeleteDomainNameOutput) GoString() string {
13994	return s.String()
13995}
13996
13997// Clears any customization of a GatewayResponse of a specified response type
13998// on the given RestApi and resets it with the default settings.
13999type DeleteGatewayResponseInput struct {
14000	_ struct{} `type:"structure"`
14001
14002	// [Required]
14003	// The response type of the associated GatewayResponse. Valid values are
14004	//    * ACCESS_DENIED
14005	//
14006	//    * API_CONFIGURATION_ERROR
14007	//
14008	//    * AUTHORIZER_FAILURE
14009	//
14010	//    * AUTHORIZER_CONFIGURATION_ERROR
14011	//
14012	//    * BAD_REQUEST_PARAMETERS
14013	//
14014	//    * BAD_REQUEST_BODY
14015	//
14016	//    * DEFAULT_4XX
14017	//
14018	//    * DEFAULT_5XX
14019	//
14020	//    * EXPIRED_TOKEN
14021	//
14022	//    * INVALID_SIGNATURE
14023	//
14024	//    * INTEGRATION_FAILURE
14025	//
14026	//    * INTEGRATION_TIMEOUT
14027	//
14028	//    * INVALID_API_KEY
14029	//
14030	//    * MISSING_AUTHENTICATION_TOKEN
14031	//
14032	//    * QUOTA_EXCEEDED
14033	//
14034	//    * REQUEST_TOO_LARGE
14035	//
14036	//    * RESOURCE_NOT_FOUND
14037	//
14038	//    * THROTTLED
14039	//
14040	//    * UNAUTHORIZED
14041	//
14042	//    * UNSUPPORTED_MEDIA_TYPE
14043	//
14044	// ResponseType is a required field
14045	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
14046
14047	// [Required] The string identifier of the associated RestApi.
14048	//
14049	// RestApiId is a required field
14050	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14051}
14052
14053// String returns the string representation
14054func (s DeleteGatewayResponseInput) String() string {
14055	return awsutil.Prettify(s)
14056}
14057
14058// GoString returns the string representation
14059func (s DeleteGatewayResponseInput) GoString() string {
14060	return s.String()
14061}
14062
14063// Validate inspects the fields of the type to determine if they are valid.
14064func (s *DeleteGatewayResponseInput) Validate() error {
14065	invalidParams := request.ErrInvalidParams{Context: "DeleteGatewayResponseInput"}
14066	if s.ResponseType == nil {
14067		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
14068	}
14069	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
14070		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
14071	}
14072	if s.RestApiId == nil {
14073		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14074	}
14075	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14076		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14077	}
14078
14079	if invalidParams.Len() > 0 {
14080		return invalidParams
14081	}
14082	return nil
14083}
14084
14085// SetResponseType sets the ResponseType field's value.
14086func (s *DeleteGatewayResponseInput) SetResponseType(v string) *DeleteGatewayResponseInput {
14087	s.ResponseType = &v
14088	return s
14089}
14090
14091// SetRestApiId sets the RestApiId field's value.
14092func (s *DeleteGatewayResponseInput) SetRestApiId(v string) *DeleteGatewayResponseInput {
14093	s.RestApiId = &v
14094	return s
14095}
14096
14097type DeleteGatewayResponseOutput struct {
14098	_ struct{} `type:"structure"`
14099}
14100
14101// String returns the string representation
14102func (s DeleteGatewayResponseOutput) String() string {
14103	return awsutil.Prettify(s)
14104}
14105
14106// GoString returns the string representation
14107func (s DeleteGatewayResponseOutput) GoString() string {
14108	return s.String()
14109}
14110
14111// Represents a delete integration request.
14112type DeleteIntegrationInput struct {
14113	_ struct{} `type:"structure"`
14114
14115	// [Required] Specifies a delete integration request's HTTP method.
14116	//
14117	// HttpMethod is a required field
14118	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
14119
14120	// [Required] Specifies a delete integration request's resource identifier.
14121	//
14122	// ResourceId is a required field
14123	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14124
14125	// [Required] The string identifier of the associated RestApi.
14126	//
14127	// RestApiId is a required field
14128	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14129}
14130
14131// String returns the string representation
14132func (s DeleteIntegrationInput) String() string {
14133	return awsutil.Prettify(s)
14134}
14135
14136// GoString returns the string representation
14137func (s DeleteIntegrationInput) GoString() string {
14138	return s.String()
14139}
14140
14141// Validate inspects the fields of the type to determine if they are valid.
14142func (s *DeleteIntegrationInput) Validate() error {
14143	invalidParams := request.ErrInvalidParams{Context: "DeleteIntegrationInput"}
14144	if s.HttpMethod == nil {
14145		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
14146	}
14147	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
14148		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
14149	}
14150	if s.ResourceId == nil {
14151		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14152	}
14153	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14154		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14155	}
14156	if s.RestApiId == nil {
14157		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14158	}
14159	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14160		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14161	}
14162
14163	if invalidParams.Len() > 0 {
14164		return invalidParams
14165	}
14166	return nil
14167}
14168
14169// SetHttpMethod sets the HttpMethod field's value.
14170func (s *DeleteIntegrationInput) SetHttpMethod(v string) *DeleteIntegrationInput {
14171	s.HttpMethod = &v
14172	return s
14173}
14174
14175// SetResourceId sets the ResourceId field's value.
14176func (s *DeleteIntegrationInput) SetResourceId(v string) *DeleteIntegrationInput {
14177	s.ResourceId = &v
14178	return s
14179}
14180
14181// SetRestApiId sets the RestApiId field's value.
14182func (s *DeleteIntegrationInput) SetRestApiId(v string) *DeleteIntegrationInput {
14183	s.RestApiId = &v
14184	return s
14185}
14186
14187type DeleteIntegrationOutput struct {
14188	_ struct{} `type:"structure"`
14189}
14190
14191// String returns the string representation
14192func (s DeleteIntegrationOutput) String() string {
14193	return awsutil.Prettify(s)
14194}
14195
14196// GoString returns the string representation
14197func (s DeleteIntegrationOutput) GoString() string {
14198	return s.String()
14199}
14200
14201// Represents a delete integration response request.
14202type DeleteIntegrationResponseInput struct {
14203	_ struct{} `type:"structure"`
14204
14205	// [Required] Specifies a delete integration response request's HTTP method.
14206	//
14207	// HttpMethod is a required field
14208	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
14209
14210	// [Required] Specifies a delete integration response request's resource identifier.
14211	//
14212	// ResourceId is a required field
14213	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14214
14215	// [Required] The string identifier of the associated RestApi.
14216	//
14217	// RestApiId is a required field
14218	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14219
14220	// [Required] Specifies a delete integration response request's status code.
14221	//
14222	// StatusCode is a required field
14223	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
14224}
14225
14226// String returns the string representation
14227func (s DeleteIntegrationResponseInput) String() string {
14228	return awsutil.Prettify(s)
14229}
14230
14231// GoString returns the string representation
14232func (s DeleteIntegrationResponseInput) GoString() string {
14233	return s.String()
14234}
14235
14236// Validate inspects the fields of the type to determine if they are valid.
14237func (s *DeleteIntegrationResponseInput) Validate() error {
14238	invalidParams := request.ErrInvalidParams{Context: "DeleteIntegrationResponseInput"}
14239	if s.HttpMethod == nil {
14240		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
14241	}
14242	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
14243		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
14244	}
14245	if s.ResourceId == nil {
14246		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14247	}
14248	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14249		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14250	}
14251	if s.RestApiId == nil {
14252		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14253	}
14254	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14255		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14256	}
14257	if s.StatusCode == nil {
14258		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
14259	}
14260	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
14261		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
14262	}
14263
14264	if invalidParams.Len() > 0 {
14265		return invalidParams
14266	}
14267	return nil
14268}
14269
14270// SetHttpMethod sets the HttpMethod field's value.
14271func (s *DeleteIntegrationResponseInput) SetHttpMethod(v string) *DeleteIntegrationResponseInput {
14272	s.HttpMethod = &v
14273	return s
14274}
14275
14276// SetResourceId sets the ResourceId field's value.
14277func (s *DeleteIntegrationResponseInput) SetResourceId(v string) *DeleteIntegrationResponseInput {
14278	s.ResourceId = &v
14279	return s
14280}
14281
14282// SetRestApiId sets the RestApiId field's value.
14283func (s *DeleteIntegrationResponseInput) SetRestApiId(v string) *DeleteIntegrationResponseInput {
14284	s.RestApiId = &v
14285	return s
14286}
14287
14288// SetStatusCode sets the StatusCode field's value.
14289func (s *DeleteIntegrationResponseInput) SetStatusCode(v string) *DeleteIntegrationResponseInput {
14290	s.StatusCode = &v
14291	return s
14292}
14293
14294type DeleteIntegrationResponseOutput struct {
14295	_ struct{} `type:"structure"`
14296}
14297
14298// String returns the string representation
14299func (s DeleteIntegrationResponseOutput) String() string {
14300	return awsutil.Prettify(s)
14301}
14302
14303// GoString returns the string representation
14304func (s DeleteIntegrationResponseOutput) GoString() string {
14305	return s.String()
14306}
14307
14308// Request to delete an existing Method resource.
14309type DeleteMethodInput struct {
14310	_ struct{} `type:"structure"`
14311
14312	// [Required] The HTTP verb of the Method resource.
14313	//
14314	// HttpMethod is a required field
14315	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
14316
14317	// [Required] The Resource identifier for the Method resource.
14318	//
14319	// ResourceId is a required field
14320	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14321
14322	// [Required] The string identifier of the associated RestApi.
14323	//
14324	// RestApiId is a required field
14325	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14326}
14327
14328// String returns the string representation
14329func (s DeleteMethodInput) String() string {
14330	return awsutil.Prettify(s)
14331}
14332
14333// GoString returns the string representation
14334func (s DeleteMethodInput) GoString() string {
14335	return s.String()
14336}
14337
14338// Validate inspects the fields of the type to determine if they are valid.
14339func (s *DeleteMethodInput) Validate() error {
14340	invalidParams := request.ErrInvalidParams{Context: "DeleteMethodInput"}
14341	if s.HttpMethod == nil {
14342		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
14343	}
14344	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
14345		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
14346	}
14347	if s.ResourceId == nil {
14348		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14349	}
14350	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14351		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14352	}
14353	if s.RestApiId == nil {
14354		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14355	}
14356	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14357		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14358	}
14359
14360	if invalidParams.Len() > 0 {
14361		return invalidParams
14362	}
14363	return nil
14364}
14365
14366// SetHttpMethod sets the HttpMethod field's value.
14367func (s *DeleteMethodInput) SetHttpMethod(v string) *DeleteMethodInput {
14368	s.HttpMethod = &v
14369	return s
14370}
14371
14372// SetResourceId sets the ResourceId field's value.
14373func (s *DeleteMethodInput) SetResourceId(v string) *DeleteMethodInput {
14374	s.ResourceId = &v
14375	return s
14376}
14377
14378// SetRestApiId sets the RestApiId field's value.
14379func (s *DeleteMethodInput) SetRestApiId(v string) *DeleteMethodInput {
14380	s.RestApiId = &v
14381	return s
14382}
14383
14384type DeleteMethodOutput struct {
14385	_ struct{} `type:"structure"`
14386}
14387
14388// String returns the string representation
14389func (s DeleteMethodOutput) String() string {
14390	return awsutil.Prettify(s)
14391}
14392
14393// GoString returns the string representation
14394func (s DeleteMethodOutput) GoString() string {
14395	return s.String()
14396}
14397
14398// A request to delete an existing MethodResponse resource.
14399type DeleteMethodResponseInput struct {
14400	_ struct{} `type:"structure"`
14401
14402	// [Required] The HTTP verb of the Method resource.
14403	//
14404	// HttpMethod is a required field
14405	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
14406
14407	// [Required] The Resource identifier for the MethodResponse resource.
14408	//
14409	// ResourceId is a required field
14410	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14411
14412	// [Required] The string identifier of the associated RestApi.
14413	//
14414	// RestApiId is a required field
14415	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14416
14417	// [Required] The status code identifier for the MethodResponse resource.
14418	//
14419	// StatusCode is a required field
14420	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
14421}
14422
14423// String returns the string representation
14424func (s DeleteMethodResponseInput) String() string {
14425	return awsutil.Prettify(s)
14426}
14427
14428// GoString returns the string representation
14429func (s DeleteMethodResponseInput) GoString() string {
14430	return s.String()
14431}
14432
14433// Validate inspects the fields of the type to determine if they are valid.
14434func (s *DeleteMethodResponseInput) Validate() error {
14435	invalidParams := request.ErrInvalidParams{Context: "DeleteMethodResponseInput"}
14436	if s.HttpMethod == nil {
14437		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
14438	}
14439	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
14440		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
14441	}
14442	if s.ResourceId == nil {
14443		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14444	}
14445	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14446		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14447	}
14448	if s.RestApiId == nil {
14449		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14450	}
14451	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14452		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14453	}
14454	if s.StatusCode == nil {
14455		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
14456	}
14457	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
14458		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
14459	}
14460
14461	if invalidParams.Len() > 0 {
14462		return invalidParams
14463	}
14464	return nil
14465}
14466
14467// SetHttpMethod sets the HttpMethod field's value.
14468func (s *DeleteMethodResponseInput) SetHttpMethod(v string) *DeleteMethodResponseInput {
14469	s.HttpMethod = &v
14470	return s
14471}
14472
14473// SetResourceId sets the ResourceId field's value.
14474func (s *DeleteMethodResponseInput) SetResourceId(v string) *DeleteMethodResponseInput {
14475	s.ResourceId = &v
14476	return s
14477}
14478
14479// SetRestApiId sets the RestApiId field's value.
14480func (s *DeleteMethodResponseInput) SetRestApiId(v string) *DeleteMethodResponseInput {
14481	s.RestApiId = &v
14482	return s
14483}
14484
14485// SetStatusCode sets the StatusCode field's value.
14486func (s *DeleteMethodResponseInput) SetStatusCode(v string) *DeleteMethodResponseInput {
14487	s.StatusCode = &v
14488	return s
14489}
14490
14491type DeleteMethodResponseOutput struct {
14492	_ struct{} `type:"structure"`
14493}
14494
14495// String returns the string representation
14496func (s DeleteMethodResponseOutput) String() string {
14497	return awsutil.Prettify(s)
14498}
14499
14500// GoString returns the string representation
14501func (s DeleteMethodResponseOutput) GoString() string {
14502	return s.String()
14503}
14504
14505// Request to delete an existing model in an existing RestApi resource.
14506type DeleteModelInput struct {
14507	_ struct{} `type:"structure"`
14508
14509	// [Required] The name of the model to delete.
14510	//
14511	// ModelName is a required field
14512	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
14513
14514	// [Required] The string identifier of the associated RestApi.
14515	//
14516	// RestApiId is a required field
14517	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14518}
14519
14520// String returns the string representation
14521func (s DeleteModelInput) String() string {
14522	return awsutil.Prettify(s)
14523}
14524
14525// GoString returns the string representation
14526func (s DeleteModelInput) GoString() string {
14527	return s.String()
14528}
14529
14530// Validate inspects the fields of the type to determine if they are valid.
14531func (s *DeleteModelInput) Validate() error {
14532	invalidParams := request.ErrInvalidParams{Context: "DeleteModelInput"}
14533	if s.ModelName == nil {
14534		invalidParams.Add(request.NewErrParamRequired("ModelName"))
14535	}
14536	if s.ModelName != nil && len(*s.ModelName) < 1 {
14537		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
14538	}
14539	if s.RestApiId == nil {
14540		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14541	}
14542	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14543		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14544	}
14545
14546	if invalidParams.Len() > 0 {
14547		return invalidParams
14548	}
14549	return nil
14550}
14551
14552// SetModelName sets the ModelName field's value.
14553func (s *DeleteModelInput) SetModelName(v string) *DeleteModelInput {
14554	s.ModelName = &v
14555	return s
14556}
14557
14558// SetRestApiId sets the RestApiId field's value.
14559func (s *DeleteModelInput) SetRestApiId(v string) *DeleteModelInput {
14560	s.RestApiId = &v
14561	return s
14562}
14563
14564type DeleteModelOutput struct {
14565	_ struct{} `type:"structure"`
14566}
14567
14568// String returns the string representation
14569func (s DeleteModelOutput) String() string {
14570	return awsutil.Prettify(s)
14571}
14572
14573// GoString returns the string representation
14574func (s DeleteModelOutput) GoString() string {
14575	return s.String()
14576}
14577
14578// Deletes a specified RequestValidator of a given RestApi.
14579type DeleteRequestValidatorInput struct {
14580	_ struct{} `type:"structure"`
14581
14582	// [Required] The identifier of the RequestValidator to be deleted.
14583	//
14584	// RequestValidatorId is a required field
14585	RequestValidatorId *string `location:"uri" locationName:"requestvalidator_id" type:"string" required:"true"`
14586
14587	// [Required] The string identifier of the associated RestApi.
14588	//
14589	// RestApiId is a required field
14590	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14591}
14592
14593// String returns the string representation
14594func (s DeleteRequestValidatorInput) String() string {
14595	return awsutil.Prettify(s)
14596}
14597
14598// GoString returns the string representation
14599func (s DeleteRequestValidatorInput) GoString() string {
14600	return s.String()
14601}
14602
14603// Validate inspects the fields of the type to determine if they are valid.
14604func (s *DeleteRequestValidatorInput) Validate() error {
14605	invalidParams := request.ErrInvalidParams{Context: "DeleteRequestValidatorInput"}
14606	if s.RequestValidatorId == nil {
14607		invalidParams.Add(request.NewErrParamRequired("RequestValidatorId"))
14608	}
14609	if s.RequestValidatorId != nil && len(*s.RequestValidatorId) < 1 {
14610		invalidParams.Add(request.NewErrParamMinLen("RequestValidatorId", 1))
14611	}
14612	if s.RestApiId == nil {
14613		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14614	}
14615	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14616		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14617	}
14618
14619	if invalidParams.Len() > 0 {
14620		return invalidParams
14621	}
14622	return nil
14623}
14624
14625// SetRequestValidatorId sets the RequestValidatorId field's value.
14626func (s *DeleteRequestValidatorInput) SetRequestValidatorId(v string) *DeleteRequestValidatorInput {
14627	s.RequestValidatorId = &v
14628	return s
14629}
14630
14631// SetRestApiId sets the RestApiId field's value.
14632func (s *DeleteRequestValidatorInput) SetRestApiId(v string) *DeleteRequestValidatorInput {
14633	s.RestApiId = &v
14634	return s
14635}
14636
14637type DeleteRequestValidatorOutput struct {
14638	_ struct{} `type:"structure"`
14639}
14640
14641// String returns the string representation
14642func (s DeleteRequestValidatorOutput) String() string {
14643	return awsutil.Prettify(s)
14644}
14645
14646// GoString returns the string representation
14647func (s DeleteRequestValidatorOutput) GoString() string {
14648	return s.String()
14649}
14650
14651// Request to delete a Resource.
14652type DeleteResourceInput struct {
14653	_ struct{} `type:"structure"`
14654
14655	// [Required] The identifier of the Resource resource.
14656	//
14657	// ResourceId is a required field
14658	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14659
14660	// [Required] The string identifier of the associated RestApi.
14661	//
14662	// RestApiId is a required field
14663	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14664}
14665
14666// String returns the string representation
14667func (s DeleteResourceInput) String() string {
14668	return awsutil.Prettify(s)
14669}
14670
14671// GoString returns the string representation
14672func (s DeleteResourceInput) GoString() string {
14673	return s.String()
14674}
14675
14676// Validate inspects the fields of the type to determine if they are valid.
14677func (s *DeleteResourceInput) Validate() error {
14678	invalidParams := request.ErrInvalidParams{Context: "DeleteResourceInput"}
14679	if s.ResourceId == nil {
14680		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14681	}
14682	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14683		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14684	}
14685	if s.RestApiId == nil {
14686		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14687	}
14688	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14689		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14690	}
14691
14692	if invalidParams.Len() > 0 {
14693		return invalidParams
14694	}
14695	return nil
14696}
14697
14698// SetResourceId sets the ResourceId field's value.
14699func (s *DeleteResourceInput) SetResourceId(v string) *DeleteResourceInput {
14700	s.ResourceId = &v
14701	return s
14702}
14703
14704// SetRestApiId sets the RestApiId field's value.
14705func (s *DeleteResourceInput) SetRestApiId(v string) *DeleteResourceInput {
14706	s.RestApiId = &v
14707	return s
14708}
14709
14710type DeleteResourceOutput struct {
14711	_ struct{} `type:"structure"`
14712}
14713
14714// String returns the string representation
14715func (s DeleteResourceOutput) String() string {
14716	return awsutil.Prettify(s)
14717}
14718
14719// GoString returns the string representation
14720func (s DeleteResourceOutput) GoString() string {
14721	return s.String()
14722}
14723
14724// Request to delete the specified API from your collection.
14725type DeleteRestApiInput struct {
14726	_ struct{} `type:"structure"`
14727
14728	// [Required] The string identifier of the associated RestApi.
14729	//
14730	// RestApiId is a required field
14731	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14732}
14733
14734// String returns the string representation
14735func (s DeleteRestApiInput) String() string {
14736	return awsutil.Prettify(s)
14737}
14738
14739// GoString returns the string representation
14740func (s DeleteRestApiInput) GoString() string {
14741	return s.String()
14742}
14743
14744// Validate inspects the fields of the type to determine if they are valid.
14745func (s *DeleteRestApiInput) Validate() error {
14746	invalidParams := request.ErrInvalidParams{Context: "DeleteRestApiInput"}
14747	if s.RestApiId == nil {
14748		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14749	}
14750	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14751		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14752	}
14753
14754	if invalidParams.Len() > 0 {
14755		return invalidParams
14756	}
14757	return nil
14758}
14759
14760// SetRestApiId sets the RestApiId field's value.
14761func (s *DeleteRestApiInput) SetRestApiId(v string) *DeleteRestApiInput {
14762	s.RestApiId = &v
14763	return s
14764}
14765
14766type DeleteRestApiOutput struct {
14767	_ struct{} `type:"structure"`
14768}
14769
14770// String returns the string representation
14771func (s DeleteRestApiOutput) String() string {
14772	return awsutil.Prettify(s)
14773}
14774
14775// GoString returns the string representation
14776func (s DeleteRestApiOutput) GoString() string {
14777	return s.String()
14778}
14779
14780// Requests API Gateway to delete a Stage resource.
14781type DeleteStageInput struct {
14782	_ struct{} `type:"structure"`
14783
14784	// [Required] The string identifier of the associated RestApi.
14785	//
14786	// RestApiId is a required field
14787	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14788
14789	// [Required] The name of the Stage resource to delete.
14790	//
14791	// StageName is a required field
14792	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
14793}
14794
14795// String returns the string representation
14796func (s DeleteStageInput) String() string {
14797	return awsutil.Prettify(s)
14798}
14799
14800// GoString returns the string representation
14801func (s DeleteStageInput) GoString() string {
14802	return s.String()
14803}
14804
14805// Validate inspects the fields of the type to determine if they are valid.
14806func (s *DeleteStageInput) Validate() error {
14807	invalidParams := request.ErrInvalidParams{Context: "DeleteStageInput"}
14808	if s.RestApiId == nil {
14809		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14810	}
14811	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14812		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14813	}
14814	if s.StageName == nil {
14815		invalidParams.Add(request.NewErrParamRequired("StageName"))
14816	}
14817	if s.StageName != nil && len(*s.StageName) < 1 {
14818		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
14819	}
14820
14821	if invalidParams.Len() > 0 {
14822		return invalidParams
14823	}
14824	return nil
14825}
14826
14827// SetRestApiId sets the RestApiId field's value.
14828func (s *DeleteStageInput) SetRestApiId(v string) *DeleteStageInput {
14829	s.RestApiId = &v
14830	return s
14831}
14832
14833// SetStageName sets the StageName field's value.
14834func (s *DeleteStageInput) SetStageName(v string) *DeleteStageInput {
14835	s.StageName = &v
14836	return s
14837}
14838
14839type DeleteStageOutput struct {
14840	_ struct{} `type:"structure"`
14841}
14842
14843// String returns the string representation
14844func (s DeleteStageOutput) String() string {
14845	return awsutil.Prettify(s)
14846}
14847
14848// GoString returns the string representation
14849func (s DeleteStageOutput) GoString() string {
14850	return s.String()
14851}
14852
14853// The DELETE request to delete a usage plan of a given plan Id.
14854type DeleteUsagePlanInput struct {
14855	_ struct{} `type:"structure"`
14856
14857	// [Required] The Id of the to-be-deleted usage plan.
14858	//
14859	// UsagePlanId is a required field
14860	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
14861}
14862
14863// String returns the string representation
14864func (s DeleteUsagePlanInput) String() string {
14865	return awsutil.Prettify(s)
14866}
14867
14868// GoString returns the string representation
14869func (s DeleteUsagePlanInput) GoString() string {
14870	return s.String()
14871}
14872
14873// Validate inspects the fields of the type to determine if they are valid.
14874func (s *DeleteUsagePlanInput) Validate() error {
14875	invalidParams := request.ErrInvalidParams{Context: "DeleteUsagePlanInput"}
14876	if s.UsagePlanId == nil {
14877		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
14878	}
14879	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
14880		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
14881	}
14882
14883	if invalidParams.Len() > 0 {
14884		return invalidParams
14885	}
14886	return nil
14887}
14888
14889// SetUsagePlanId sets the UsagePlanId field's value.
14890func (s *DeleteUsagePlanInput) SetUsagePlanId(v string) *DeleteUsagePlanInput {
14891	s.UsagePlanId = &v
14892	return s
14893}
14894
14895// The DELETE request to delete a usage plan key and remove the underlying API
14896// key from the associated usage plan.
14897type DeleteUsagePlanKeyInput struct {
14898	_ struct{} `type:"structure"`
14899
14900	// [Required] The Id of the UsagePlanKey resource to be deleted.
14901	//
14902	// KeyId is a required field
14903	KeyId *string `location:"uri" locationName:"keyId" type:"string" required:"true"`
14904
14905	// [Required] The Id of the UsagePlan resource representing the usage plan containing
14906	// the to-be-deleted UsagePlanKey resource representing a plan customer.
14907	//
14908	// UsagePlanId is a required field
14909	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
14910}
14911
14912// String returns the string representation
14913func (s DeleteUsagePlanKeyInput) String() string {
14914	return awsutil.Prettify(s)
14915}
14916
14917// GoString returns the string representation
14918func (s DeleteUsagePlanKeyInput) GoString() string {
14919	return s.String()
14920}
14921
14922// Validate inspects the fields of the type to determine if they are valid.
14923func (s *DeleteUsagePlanKeyInput) Validate() error {
14924	invalidParams := request.ErrInvalidParams{Context: "DeleteUsagePlanKeyInput"}
14925	if s.KeyId == nil {
14926		invalidParams.Add(request.NewErrParamRequired("KeyId"))
14927	}
14928	if s.KeyId != nil && len(*s.KeyId) < 1 {
14929		invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
14930	}
14931	if s.UsagePlanId == nil {
14932		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
14933	}
14934	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
14935		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
14936	}
14937
14938	if invalidParams.Len() > 0 {
14939		return invalidParams
14940	}
14941	return nil
14942}
14943
14944// SetKeyId sets the KeyId field's value.
14945func (s *DeleteUsagePlanKeyInput) SetKeyId(v string) *DeleteUsagePlanKeyInput {
14946	s.KeyId = &v
14947	return s
14948}
14949
14950// SetUsagePlanId sets the UsagePlanId field's value.
14951func (s *DeleteUsagePlanKeyInput) SetUsagePlanId(v string) *DeleteUsagePlanKeyInput {
14952	s.UsagePlanId = &v
14953	return s
14954}
14955
14956type DeleteUsagePlanKeyOutput struct {
14957	_ struct{} `type:"structure"`
14958}
14959
14960// String returns the string representation
14961func (s DeleteUsagePlanKeyOutput) String() string {
14962	return awsutil.Prettify(s)
14963}
14964
14965// GoString returns the string representation
14966func (s DeleteUsagePlanKeyOutput) GoString() string {
14967	return s.String()
14968}
14969
14970type DeleteUsagePlanOutput struct {
14971	_ struct{} `type:"structure"`
14972}
14973
14974// String returns the string representation
14975func (s DeleteUsagePlanOutput) String() string {
14976	return awsutil.Prettify(s)
14977}
14978
14979// GoString returns the string representation
14980func (s DeleteUsagePlanOutput) GoString() string {
14981	return s.String()
14982}
14983
14984// Deletes an existing VpcLink of a specified identifier.
14985type DeleteVpcLinkInput struct {
14986	_ struct{} `type:"structure"`
14987
14988	// [Required] The identifier of the VpcLink. It is used in an Integration to
14989	// reference this VpcLink.
14990	//
14991	// VpcLinkId is a required field
14992	VpcLinkId *string `location:"uri" locationName:"vpclink_id" type:"string" required:"true"`
14993}
14994
14995// String returns the string representation
14996func (s DeleteVpcLinkInput) String() string {
14997	return awsutil.Prettify(s)
14998}
14999
15000// GoString returns the string representation
15001func (s DeleteVpcLinkInput) GoString() string {
15002	return s.String()
15003}
15004
15005// Validate inspects the fields of the type to determine if they are valid.
15006func (s *DeleteVpcLinkInput) Validate() error {
15007	invalidParams := request.ErrInvalidParams{Context: "DeleteVpcLinkInput"}
15008	if s.VpcLinkId == nil {
15009		invalidParams.Add(request.NewErrParamRequired("VpcLinkId"))
15010	}
15011	if s.VpcLinkId != nil && len(*s.VpcLinkId) < 1 {
15012		invalidParams.Add(request.NewErrParamMinLen("VpcLinkId", 1))
15013	}
15014
15015	if invalidParams.Len() > 0 {
15016		return invalidParams
15017	}
15018	return nil
15019}
15020
15021// SetVpcLinkId sets the VpcLinkId field's value.
15022func (s *DeleteVpcLinkInput) SetVpcLinkId(v string) *DeleteVpcLinkInput {
15023	s.VpcLinkId = &v
15024	return s
15025}
15026
15027type DeleteVpcLinkOutput struct {
15028	_ struct{} `type:"structure"`
15029}
15030
15031// String returns the string representation
15032func (s DeleteVpcLinkOutput) String() string {
15033	return awsutil.Prettify(s)
15034}
15035
15036// GoString returns the string representation
15037func (s DeleteVpcLinkOutput) GoString() string {
15038	return s.String()
15039}
15040
15041// An immutable representation of a RestApi resource that can be called by users
15042// using Stages. A deployment must be associated with a Stage for it to be callable
15043// over the Internet.
15044//
15045// To create a deployment, call POST on the Deployments resource of a RestApi.
15046// To view, update, or delete a deployment, call GET, PATCH, or DELETE on the
15047// specified deployment resource (/restapis/{restapi_id}/deployments/{deployment_id}).
15048//
15049// RestApi, Deployments, Stage, AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-deployment.html),
15050// AWS SDKs (https://aws.amazon.com/tools/)
15051type Deployment struct {
15052	_ struct{} `type:"structure"`
15053
15054	// A summary of the RestApi at the date and time that the deployment resource
15055	// was created.
15056	ApiSummary map[string]map[string]*MethodSnapshot `locationName:"apiSummary" type:"map"`
15057
15058	// The date and time that the deployment resource was created.
15059	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
15060
15061	// The description for the deployment resource.
15062	Description *string `locationName:"description" type:"string"`
15063
15064	// The identifier for the deployment resource.
15065	Id *string `locationName:"id" type:"string"`
15066}
15067
15068// String returns the string representation
15069func (s Deployment) String() string {
15070	return awsutil.Prettify(s)
15071}
15072
15073// GoString returns the string representation
15074func (s Deployment) GoString() string {
15075	return s.String()
15076}
15077
15078// SetApiSummary sets the ApiSummary field's value.
15079func (s *Deployment) SetApiSummary(v map[string]map[string]*MethodSnapshot) *Deployment {
15080	s.ApiSummary = v
15081	return s
15082}
15083
15084// SetCreatedDate sets the CreatedDate field's value.
15085func (s *Deployment) SetCreatedDate(v time.Time) *Deployment {
15086	s.CreatedDate = &v
15087	return s
15088}
15089
15090// SetDescription sets the Description field's value.
15091func (s *Deployment) SetDescription(v string) *Deployment {
15092	s.Description = &v
15093	return s
15094}
15095
15096// SetId sets the Id field's value.
15097func (s *Deployment) SetId(v string) *Deployment {
15098	s.Id = &v
15099	return s
15100}
15101
15102// The input configuration for a canary deployment.
15103type DeploymentCanarySettings struct {
15104	_ struct{} `type:"structure"`
15105
15106	// The percentage (0.0-100.0) of traffic routed to the canary deployment.
15107	PercentTraffic *float64 `locationName:"percentTraffic" type:"double"`
15108
15109	// A stage variable overrides used for the canary release deployment. They can
15110	// override existing stage variables or add new stage variables for the canary
15111	// release deployment. These stage variables are represented as a string-to-string
15112	// map between stage variable names and their values.
15113	StageVariableOverrides map[string]*string `locationName:"stageVariableOverrides" type:"map"`
15114
15115	// A Boolean flag to indicate whether the canary release deployment uses the
15116	// stage cache or not.
15117	UseStageCache *bool `locationName:"useStageCache" type:"boolean"`
15118}
15119
15120// String returns the string representation
15121func (s DeploymentCanarySettings) String() string {
15122	return awsutil.Prettify(s)
15123}
15124
15125// GoString returns the string representation
15126func (s DeploymentCanarySettings) GoString() string {
15127	return s.String()
15128}
15129
15130// SetPercentTraffic sets the PercentTraffic field's value.
15131func (s *DeploymentCanarySettings) SetPercentTraffic(v float64) *DeploymentCanarySettings {
15132	s.PercentTraffic = &v
15133	return s
15134}
15135
15136// SetStageVariableOverrides sets the StageVariableOverrides field's value.
15137func (s *DeploymentCanarySettings) SetStageVariableOverrides(v map[string]*string) *DeploymentCanarySettings {
15138	s.StageVariableOverrides = v
15139	return s
15140}
15141
15142// SetUseStageCache sets the UseStageCache field's value.
15143func (s *DeploymentCanarySettings) SetUseStageCache(v bool) *DeploymentCanarySettings {
15144	s.UseStageCache = &v
15145	return s
15146}
15147
15148// A documentation part for a targeted API entity.
15149//
15150// A documentation part consists of a content map (properties) and a target
15151// (location). The target specifies an API entity to which the documentation
15152// content applies. The supported API entity types are API, AUTHORIZER, MODEL,
15153// RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY,
15154// RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. Valid location fields depend
15155// on the API entity type. All valid fields are not required.
15156//
15157// The content map is a JSON string of API-specific key-value pairs. Although
15158// an API can use any shape for the content map, only the OpenAPI-compliant
15159// documentation fields will be injected into the associated API entity definition
15160// in the exported OpenAPI definition file.
15161//
15162// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
15163// DocumentationParts
15164type DocumentationPart struct {
15165	_ struct{} `type:"structure"`
15166
15167	// The DocumentationPart identifier, generated by API Gateway when the DocumentationPart
15168	// is created.
15169	Id *string `locationName:"id" type:"string"`
15170
15171	// The location of the API entity to which the documentation applies. Valid
15172	// fields depend on the targeted API entity type. All the valid location fields
15173	// are not required. If not explicitly specified, a valid location field is
15174	// treated as a wildcard and associated documentation content may be inherited
15175	// by matching entities, unless overridden.
15176	Location *DocumentationPartLocation `locationName:"location" type:"structure"`
15177
15178	// A content map of API-specific key-value pairs describing the targeted API
15179	// entity. The map must be encoded as a JSON string, e.g., "{ \"description\":
15180	// \"The API does ...\" }". Only OpenAPI-compliant documentation-related fields
15181	// from the properties map are exported and, hence, published as part of the
15182	// API entity definitions, while the original documentation parts are exported
15183	// in a OpenAPI extension of x-amazon-apigateway-documentation.
15184	Properties *string `locationName:"properties" type:"string"`
15185}
15186
15187// String returns the string representation
15188func (s DocumentationPart) String() string {
15189	return awsutil.Prettify(s)
15190}
15191
15192// GoString returns the string representation
15193func (s DocumentationPart) GoString() string {
15194	return s.String()
15195}
15196
15197// SetId sets the Id field's value.
15198func (s *DocumentationPart) SetId(v string) *DocumentationPart {
15199	s.Id = &v
15200	return s
15201}
15202
15203// SetLocation sets the Location field's value.
15204func (s *DocumentationPart) SetLocation(v *DocumentationPartLocation) *DocumentationPart {
15205	s.Location = v
15206	return s
15207}
15208
15209// SetProperties sets the Properties field's value.
15210func (s *DocumentationPart) SetProperties(v string) *DocumentationPart {
15211	s.Properties = &v
15212	return s
15213}
15214
15215// Specifies the target API entity to which the documentation applies.
15216type DocumentationPartLocation struct {
15217	_ struct{} `type:"structure"`
15218
15219	// The HTTP verb of a method. It is a valid field for the API entity types of
15220	// METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE,
15221	// RESPONSE_HEADER, and RESPONSE_BODY. The default value is * for any method.
15222	// When an applicable child entity inherits the content of an entity of the
15223	// same type with more general specifications of the other location attributes,
15224	// the child entity's method attribute must match that of the parent entity
15225	// exactly.
15226	Method *string `locationName:"method" type:"string"`
15227
15228	// The name of the targeted API entity. It is a valid and required field for
15229	// the API entity types of AUTHORIZER, MODEL, PATH_PARAMETER, QUERY_PARAMETER,
15230	// REQUEST_HEADER, REQUEST_BODY and RESPONSE_HEADER. It is an invalid field
15231	// for any other entity type.
15232	Name *string `locationName:"name" type:"string"`
15233
15234	// The URL path of the target. It is a valid field for the API entity types
15235	// of RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY,
15236	// RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value is / for
15237	// the root resource. When an applicable child entity inherits the content of
15238	// another entity of the same type with more general specifications of the other
15239	// location attributes, the child entity's path attribute must match that of
15240	// the parent entity as a prefix.
15241	Path *string `locationName:"path" type:"string"`
15242
15243	// The HTTP status code of a response. It is a valid field for the API entity
15244	// types of RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value
15245	// is * for any status code. When an applicable child entity inherits the content
15246	// of an entity of the same type with more general specifications of the other
15247	// location attributes, the child entity's statusCode attribute must match that
15248	// of the parent entity exactly.
15249	StatusCode *string `locationName:"statusCode" type:"string"`
15250
15251	// [Required] The type of API entity to which the documentation content applies.
15252	// Valid values are API, AUTHORIZER, MODEL, RESOURCE, METHOD, PATH_PARAMETER,
15253	// QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER,
15254	// and RESPONSE_BODY. Content inheritance does not apply to any entity of the
15255	// API, AUTHORIZER, METHOD, MODEL, REQUEST_BODY, or RESOURCE type.
15256	//
15257	// Type is a required field
15258	Type *string `locationName:"type" type:"string" required:"true" enum:"DocumentationPartType"`
15259}
15260
15261// String returns the string representation
15262func (s DocumentationPartLocation) String() string {
15263	return awsutil.Prettify(s)
15264}
15265
15266// GoString returns the string representation
15267func (s DocumentationPartLocation) GoString() string {
15268	return s.String()
15269}
15270
15271// Validate inspects the fields of the type to determine if they are valid.
15272func (s *DocumentationPartLocation) Validate() error {
15273	invalidParams := request.ErrInvalidParams{Context: "DocumentationPartLocation"}
15274	if s.Type == nil {
15275		invalidParams.Add(request.NewErrParamRequired("Type"))
15276	}
15277
15278	if invalidParams.Len() > 0 {
15279		return invalidParams
15280	}
15281	return nil
15282}
15283
15284// SetMethod sets the Method field's value.
15285func (s *DocumentationPartLocation) SetMethod(v string) *DocumentationPartLocation {
15286	s.Method = &v
15287	return s
15288}
15289
15290// SetName sets the Name field's value.
15291func (s *DocumentationPartLocation) SetName(v string) *DocumentationPartLocation {
15292	s.Name = &v
15293	return s
15294}
15295
15296// SetPath sets the Path field's value.
15297func (s *DocumentationPartLocation) SetPath(v string) *DocumentationPartLocation {
15298	s.Path = &v
15299	return s
15300}
15301
15302// SetStatusCode sets the StatusCode field's value.
15303func (s *DocumentationPartLocation) SetStatusCode(v string) *DocumentationPartLocation {
15304	s.StatusCode = &v
15305	return s
15306}
15307
15308// SetType sets the Type field's value.
15309func (s *DocumentationPartLocation) SetType(v string) *DocumentationPartLocation {
15310	s.Type = &v
15311	return s
15312}
15313
15314// A snapshot of the documentation of an API.
15315//
15316// Publishing API documentation involves creating a documentation version associated
15317// with an API stage and exporting the versioned documentation to an external
15318// (e.g., OpenAPI) file.
15319//
15320// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
15321// DocumentationPart, DocumentationVersions
15322type DocumentationVersion struct {
15323	_ struct{} `type:"structure"`
15324
15325	// The date when the API documentation snapshot is created.
15326	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
15327
15328	// The description of the API documentation snapshot.
15329	Description *string `locationName:"description" type:"string"`
15330
15331	// The version identifier of the API documentation snapshot.
15332	Version *string `locationName:"version" type:"string"`
15333}
15334
15335// String returns the string representation
15336func (s DocumentationVersion) String() string {
15337	return awsutil.Prettify(s)
15338}
15339
15340// GoString returns the string representation
15341func (s DocumentationVersion) GoString() string {
15342	return s.String()
15343}
15344
15345// SetCreatedDate sets the CreatedDate field's value.
15346func (s *DocumentationVersion) SetCreatedDate(v time.Time) *DocumentationVersion {
15347	s.CreatedDate = &v
15348	return s
15349}
15350
15351// SetDescription sets the Description field's value.
15352func (s *DocumentationVersion) SetDescription(v string) *DocumentationVersion {
15353	s.Description = &v
15354	return s
15355}
15356
15357// SetVersion sets the Version field's value.
15358func (s *DocumentationVersion) SetVersion(v string) *DocumentationVersion {
15359	s.Version = &v
15360	return s
15361}
15362
15363// Represents a custom domain name as a user-friendly host name of an API (RestApi).
15364//
15365// When you deploy an API, API Gateway creates a default host name for the API.
15366// This default API host name is of the {restapi-id}.execute-api.{region}.amazonaws.com
15367// format. With the default host name, you can access the API's root resource
15368// with the URL of https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/.
15369// When you set up a custom domain name of apis.example.com for this API, you
15370// can then access the same resource using the URL of the https://apis.examples.com/myApi,
15371// where myApi is the base path mapping (BasePathMapping) of your API under
15372// the custom domain name.
15373//
15374// Set a Custom Host Name for an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
15375type DomainName struct {
15376	_ struct{} `type:"structure"`
15377
15378	// The reference to an AWS-managed certificate that will be used by edge-optimized
15379	// endpoint for this domain name. AWS Certificate Manager is the only supported
15380	// source.
15381	CertificateArn *string `locationName:"certificateArn" type:"string"`
15382
15383	// The name of the certificate that will be used by edge-optimized endpoint
15384	// for this domain name.
15385	CertificateName *string `locationName:"certificateName" type:"string"`
15386
15387	// The timestamp when the certificate that was used by edge-optimized endpoint
15388	// for this domain name was uploaded.
15389	CertificateUploadDate *time.Time `locationName:"certificateUploadDate" type:"timestamp"`
15390
15391	// The domain name of the Amazon CloudFront distribution associated with this
15392	// custom domain name for an edge-optimized endpoint. You set up this association
15393	// when adding a DNS record pointing the custom domain name to this distribution
15394	// name. For more information about CloudFront distributions, see the Amazon
15395	// CloudFront documentation (https://aws.amazon.com/documentation/cloudfront/).
15396	DistributionDomainName *string `locationName:"distributionDomainName" type:"string"`
15397
15398	// The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized
15399	// endpoint. The valid value is Z2FDTNDATAQYW2 for all the regions. For more
15400	// information, see Set up a Regional Custom Domain Name (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html)
15401	// and AWS Regions and Endpoints for API Gateway (https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region).
15402	DistributionHostedZoneId *string `locationName:"distributionHostedZoneId" type:"string"`
15403
15404	// The custom domain name as an API host name, for example, my-api.example.com.
15405	DomainName *string `locationName:"domainName" type:"string"`
15406
15407	// The status of the DomainName migration. The valid values are AVAILABLE and
15408	// UPDATING. If the status is UPDATING, the domain cannot be modified further
15409	// until the existing operation is complete. If it is AVAILABLE, the domain
15410	// can be updated.
15411	DomainNameStatus *string `locationName:"domainNameStatus" type:"string" enum:"DomainNameStatus"`
15412
15413	// An optional text message containing detailed information about status of
15414	// the DomainName migration.
15415	DomainNameStatusMessage *string `locationName:"domainNameStatusMessage" type:"string"`
15416
15417	// The endpoint configuration of this DomainName showing the endpoint types
15418	// of the domain name.
15419	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
15420
15421	// The reference to an AWS-managed certificate that will be used for validating
15422	// the regional domain name. AWS Certificate Manager is the only supported source.
15423	RegionalCertificateArn *string `locationName:"regionalCertificateArn" type:"string"`
15424
15425	// The name of the certificate that will be used for validating the regional
15426	// domain name.
15427	RegionalCertificateName *string `locationName:"regionalCertificateName" type:"string"`
15428
15429	// The domain name associated with the regional endpoint for this custom domain
15430	// name. You set up this association by adding a DNS record that points the
15431	// custom domain name to this regional domain name. The regional domain name
15432	// is returned by API Gateway when you create a regional endpoint.
15433	RegionalDomainName *string `locationName:"regionalDomainName" type:"string"`
15434
15435	// The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint.
15436	// 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)
15437	// and AWS Regions and Endpoints for API Gateway (https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region).
15438	RegionalHostedZoneId *string `locationName:"regionalHostedZoneId" type:"string"`
15439
15440	// The Transport Layer Security (TLS) version + cipher suite for this DomainName.
15441	// The valid values are TLS_1_0 and TLS_1_2.
15442	SecurityPolicy *string `locationName:"securityPolicy" type:"string" enum:"SecurityPolicy"`
15443
15444	// The collection of tags. Each tag element is associated with a given resource.
15445	Tags map[string]*string `locationName:"tags" type:"map"`
15446}
15447
15448// String returns the string representation
15449func (s DomainName) String() string {
15450	return awsutil.Prettify(s)
15451}
15452
15453// GoString returns the string representation
15454func (s DomainName) GoString() string {
15455	return s.String()
15456}
15457
15458// SetCertificateArn sets the CertificateArn field's value.
15459func (s *DomainName) SetCertificateArn(v string) *DomainName {
15460	s.CertificateArn = &v
15461	return s
15462}
15463
15464// SetCertificateName sets the CertificateName field's value.
15465func (s *DomainName) SetCertificateName(v string) *DomainName {
15466	s.CertificateName = &v
15467	return s
15468}
15469
15470// SetCertificateUploadDate sets the CertificateUploadDate field's value.
15471func (s *DomainName) SetCertificateUploadDate(v time.Time) *DomainName {
15472	s.CertificateUploadDate = &v
15473	return s
15474}
15475
15476// SetDistributionDomainName sets the DistributionDomainName field's value.
15477func (s *DomainName) SetDistributionDomainName(v string) *DomainName {
15478	s.DistributionDomainName = &v
15479	return s
15480}
15481
15482// SetDistributionHostedZoneId sets the DistributionHostedZoneId field's value.
15483func (s *DomainName) SetDistributionHostedZoneId(v string) *DomainName {
15484	s.DistributionHostedZoneId = &v
15485	return s
15486}
15487
15488// SetDomainName sets the DomainName field's value.
15489func (s *DomainName) SetDomainName(v string) *DomainName {
15490	s.DomainName = &v
15491	return s
15492}
15493
15494// SetDomainNameStatus sets the DomainNameStatus field's value.
15495func (s *DomainName) SetDomainNameStatus(v string) *DomainName {
15496	s.DomainNameStatus = &v
15497	return s
15498}
15499
15500// SetDomainNameStatusMessage sets the DomainNameStatusMessage field's value.
15501func (s *DomainName) SetDomainNameStatusMessage(v string) *DomainName {
15502	s.DomainNameStatusMessage = &v
15503	return s
15504}
15505
15506// SetEndpointConfiguration sets the EndpointConfiguration field's value.
15507func (s *DomainName) SetEndpointConfiguration(v *EndpointConfiguration) *DomainName {
15508	s.EndpointConfiguration = v
15509	return s
15510}
15511
15512// SetRegionalCertificateArn sets the RegionalCertificateArn field's value.
15513func (s *DomainName) SetRegionalCertificateArn(v string) *DomainName {
15514	s.RegionalCertificateArn = &v
15515	return s
15516}
15517
15518// SetRegionalCertificateName sets the RegionalCertificateName field's value.
15519func (s *DomainName) SetRegionalCertificateName(v string) *DomainName {
15520	s.RegionalCertificateName = &v
15521	return s
15522}
15523
15524// SetRegionalDomainName sets the RegionalDomainName field's value.
15525func (s *DomainName) SetRegionalDomainName(v string) *DomainName {
15526	s.RegionalDomainName = &v
15527	return s
15528}
15529
15530// SetRegionalHostedZoneId sets the RegionalHostedZoneId field's value.
15531func (s *DomainName) SetRegionalHostedZoneId(v string) *DomainName {
15532	s.RegionalHostedZoneId = &v
15533	return s
15534}
15535
15536// SetSecurityPolicy sets the SecurityPolicy field's value.
15537func (s *DomainName) SetSecurityPolicy(v string) *DomainName {
15538	s.SecurityPolicy = &v
15539	return s
15540}
15541
15542// SetTags sets the Tags field's value.
15543func (s *DomainName) SetTags(v map[string]*string) *DomainName {
15544	s.Tags = v
15545	return s
15546}
15547
15548// The endpoint configuration to indicate the types of endpoints an API (RestApi)
15549// or its custom domain name (DomainName) has.
15550type EndpointConfiguration struct {
15551	_ struct{} `type:"structure"`
15552
15553	// A list of endpoint types of an API (RestApi) or its custom domain name (DomainName).
15554	// For an edge-optimized API and its custom domain name, the endpoint type is
15555	// "EDGE". For a regional API and its custom domain name, the endpoint type
15556	// is REGIONAL. For a private API, the endpoint type is PRIVATE.
15557	Types []*string `locationName:"types" type:"list"`
15558
15559	// A list of VpcEndpointIds of an API (RestApi) against which to create Route53
15560	// ALIASes. It is only supported for PRIVATE endpoint type.
15561	VpcEndpointIds []*string `locationName:"vpcEndpointIds" type:"list"`
15562}
15563
15564// String returns the string representation
15565func (s EndpointConfiguration) String() string {
15566	return awsutil.Prettify(s)
15567}
15568
15569// GoString returns the string representation
15570func (s EndpointConfiguration) GoString() string {
15571	return s.String()
15572}
15573
15574// SetTypes sets the Types field's value.
15575func (s *EndpointConfiguration) SetTypes(v []*string) *EndpointConfiguration {
15576	s.Types = v
15577	return s
15578}
15579
15580// SetVpcEndpointIds sets the VpcEndpointIds field's value.
15581func (s *EndpointConfiguration) SetVpcEndpointIds(v []*string) *EndpointConfiguration {
15582	s.VpcEndpointIds = v
15583	return s
15584}
15585
15586// Request to flush authorizer cache entries on a specified stage.
15587type FlushStageAuthorizersCacheInput struct {
15588	_ struct{} `type:"structure"`
15589
15590	// The string identifier of the associated RestApi.
15591	//
15592	// RestApiId is a required field
15593	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15594
15595	// The name of the stage to flush.
15596	//
15597	// StageName is a required field
15598	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
15599}
15600
15601// String returns the string representation
15602func (s FlushStageAuthorizersCacheInput) String() string {
15603	return awsutil.Prettify(s)
15604}
15605
15606// GoString returns the string representation
15607func (s FlushStageAuthorizersCacheInput) GoString() string {
15608	return s.String()
15609}
15610
15611// Validate inspects the fields of the type to determine if they are valid.
15612func (s *FlushStageAuthorizersCacheInput) Validate() error {
15613	invalidParams := request.ErrInvalidParams{Context: "FlushStageAuthorizersCacheInput"}
15614	if s.RestApiId == nil {
15615		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15616	}
15617	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15618		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15619	}
15620	if s.StageName == nil {
15621		invalidParams.Add(request.NewErrParamRequired("StageName"))
15622	}
15623	if s.StageName != nil && len(*s.StageName) < 1 {
15624		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
15625	}
15626
15627	if invalidParams.Len() > 0 {
15628		return invalidParams
15629	}
15630	return nil
15631}
15632
15633// SetRestApiId sets the RestApiId field's value.
15634func (s *FlushStageAuthorizersCacheInput) SetRestApiId(v string) *FlushStageAuthorizersCacheInput {
15635	s.RestApiId = &v
15636	return s
15637}
15638
15639// SetStageName sets the StageName field's value.
15640func (s *FlushStageAuthorizersCacheInput) SetStageName(v string) *FlushStageAuthorizersCacheInput {
15641	s.StageName = &v
15642	return s
15643}
15644
15645type FlushStageAuthorizersCacheOutput struct {
15646	_ struct{} `type:"structure"`
15647}
15648
15649// String returns the string representation
15650func (s FlushStageAuthorizersCacheOutput) String() string {
15651	return awsutil.Prettify(s)
15652}
15653
15654// GoString returns the string representation
15655func (s FlushStageAuthorizersCacheOutput) GoString() string {
15656	return s.String()
15657}
15658
15659// Requests API Gateway to flush a stage's cache.
15660type FlushStageCacheInput struct {
15661	_ struct{} `type:"structure"`
15662
15663	// [Required] The string identifier of the associated RestApi.
15664	//
15665	// RestApiId is a required field
15666	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15667
15668	// [Required] The name of the stage to flush its cache.
15669	//
15670	// StageName is a required field
15671	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
15672}
15673
15674// String returns the string representation
15675func (s FlushStageCacheInput) String() string {
15676	return awsutil.Prettify(s)
15677}
15678
15679// GoString returns the string representation
15680func (s FlushStageCacheInput) GoString() string {
15681	return s.String()
15682}
15683
15684// Validate inspects the fields of the type to determine if they are valid.
15685func (s *FlushStageCacheInput) Validate() error {
15686	invalidParams := request.ErrInvalidParams{Context: "FlushStageCacheInput"}
15687	if s.RestApiId == nil {
15688		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15689	}
15690	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15691		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15692	}
15693	if s.StageName == nil {
15694		invalidParams.Add(request.NewErrParamRequired("StageName"))
15695	}
15696	if s.StageName != nil && len(*s.StageName) < 1 {
15697		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
15698	}
15699
15700	if invalidParams.Len() > 0 {
15701		return invalidParams
15702	}
15703	return nil
15704}
15705
15706// SetRestApiId sets the RestApiId field's value.
15707func (s *FlushStageCacheInput) SetRestApiId(v string) *FlushStageCacheInput {
15708	s.RestApiId = &v
15709	return s
15710}
15711
15712// SetStageName sets the StageName field's value.
15713func (s *FlushStageCacheInput) SetStageName(v string) *FlushStageCacheInput {
15714	s.StageName = &v
15715	return s
15716}
15717
15718type FlushStageCacheOutput struct {
15719	_ struct{} `type:"structure"`
15720}
15721
15722// String returns the string representation
15723func (s FlushStageCacheOutput) String() string {
15724	return awsutil.Prettify(s)
15725}
15726
15727// GoString returns the string representation
15728func (s FlushStageCacheOutput) GoString() string {
15729	return s.String()
15730}
15731
15732// A request to generate a ClientCertificate resource.
15733type GenerateClientCertificateInput struct {
15734	_ struct{} `type:"structure"`
15735
15736	// The description of the ClientCertificate.
15737	Description *string `locationName:"description" type:"string"`
15738
15739	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
15740	// The tag key can be up to 128 characters and must not start with aws:. The
15741	// tag value can be up to 256 characters.
15742	Tags map[string]*string `locationName:"tags" type:"map"`
15743}
15744
15745// String returns the string representation
15746func (s GenerateClientCertificateInput) String() string {
15747	return awsutil.Prettify(s)
15748}
15749
15750// GoString returns the string representation
15751func (s GenerateClientCertificateInput) GoString() string {
15752	return s.String()
15753}
15754
15755// SetDescription sets the Description field's value.
15756func (s *GenerateClientCertificateInput) SetDescription(v string) *GenerateClientCertificateInput {
15757	s.Description = &v
15758	return s
15759}
15760
15761// SetTags sets the Tags field's value.
15762func (s *GenerateClientCertificateInput) SetTags(v map[string]*string) *GenerateClientCertificateInput {
15763	s.Tags = v
15764	return s
15765}
15766
15767// Requests API Gateway to get information about the current Account resource.
15768type GetAccountInput struct {
15769	_ struct{} `type:"structure"`
15770}
15771
15772// String returns the string representation
15773func (s GetAccountInput) String() string {
15774	return awsutil.Prettify(s)
15775}
15776
15777// GoString returns the string representation
15778func (s GetAccountInput) GoString() string {
15779	return s.String()
15780}
15781
15782// A request to get information about the current ApiKey resource.
15783type GetApiKeyInput struct {
15784	_ struct{} `type:"structure"`
15785
15786	// [Required] The identifier of the ApiKey resource.
15787	//
15788	// ApiKey is a required field
15789	ApiKey *string `location:"uri" locationName:"api_Key" type:"string" required:"true"`
15790
15791	// A boolean flag to specify whether (true) or not (false) the result contains
15792	// the key value.
15793	IncludeValue *bool `location:"querystring" locationName:"includeValue" type:"boolean"`
15794}
15795
15796// String returns the string representation
15797func (s GetApiKeyInput) String() string {
15798	return awsutil.Prettify(s)
15799}
15800
15801// GoString returns the string representation
15802func (s GetApiKeyInput) GoString() string {
15803	return s.String()
15804}
15805
15806// Validate inspects the fields of the type to determine if they are valid.
15807func (s *GetApiKeyInput) Validate() error {
15808	invalidParams := request.ErrInvalidParams{Context: "GetApiKeyInput"}
15809	if s.ApiKey == nil {
15810		invalidParams.Add(request.NewErrParamRequired("ApiKey"))
15811	}
15812	if s.ApiKey != nil && len(*s.ApiKey) < 1 {
15813		invalidParams.Add(request.NewErrParamMinLen("ApiKey", 1))
15814	}
15815
15816	if invalidParams.Len() > 0 {
15817		return invalidParams
15818	}
15819	return nil
15820}
15821
15822// SetApiKey sets the ApiKey field's value.
15823func (s *GetApiKeyInput) SetApiKey(v string) *GetApiKeyInput {
15824	s.ApiKey = &v
15825	return s
15826}
15827
15828// SetIncludeValue sets the IncludeValue field's value.
15829func (s *GetApiKeyInput) SetIncludeValue(v bool) *GetApiKeyInput {
15830	s.IncludeValue = &v
15831	return s
15832}
15833
15834// A request to get information about the current ApiKeys resource.
15835type GetApiKeysInput struct {
15836	_ struct{} `type:"structure"`
15837
15838	// The identifier of a customer in AWS Marketplace or an external system, such
15839	// as a developer portal.
15840	CustomerId *string `location:"querystring" locationName:"customerId" type:"string"`
15841
15842	// A boolean flag to specify whether (true) or not (false) the result contains
15843	// key values.
15844	IncludeValues *bool `location:"querystring" locationName:"includeValues" type:"boolean"`
15845
15846	// The maximum number of returned results per page. The default value is 25
15847	// and the maximum value is 500.
15848	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
15849
15850	// The name of queried API keys.
15851	NameQuery *string `location:"querystring" locationName:"name" type:"string"`
15852
15853	// The current pagination position in the paged result set.
15854	Position *string `location:"querystring" locationName:"position" type:"string"`
15855}
15856
15857// String returns the string representation
15858func (s GetApiKeysInput) String() string {
15859	return awsutil.Prettify(s)
15860}
15861
15862// GoString returns the string representation
15863func (s GetApiKeysInput) GoString() string {
15864	return s.String()
15865}
15866
15867// SetCustomerId sets the CustomerId field's value.
15868func (s *GetApiKeysInput) SetCustomerId(v string) *GetApiKeysInput {
15869	s.CustomerId = &v
15870	return s
15871}
15872
15873// SetIncludeValues sets the IncludeValues field's value.
15874func (s *GetApiKeysInput) SetIncludeValues(v bool) *GetApiKeysInput {
15875	s.IncludeValues = &v
15876	return s
15877}
15878
15879// SetLimit sets the Limit field's value.
15880func (s *GetApiKeysInput) SetLimit(v int64) *GetApiKeysInput {
15881	s.Limit = &v
15882	return s
15883}
15884
15885// SetNameQuery sets the NameQuery field's value.
15886func (s *GetApiKeysInput) SetNameQuery(v string) *GetApiKeysInput {
15887	s.NameQuery = &v
15888	return s
15889}
15890
15891// SetPosition sets the Position field's value.
15892func (s *GetApiKeysInput) SetPosition(v string) *GetApiKeysInput {
15893	s.Position = &v
15894	return s
15895}
15896
15897// Represents a collection of API keys as represented by an ApiKeys resource.
15898//
15899// Use API Keys (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html)
15900type GetApiKeysOutput struct {
15901	_ struct{} `type:"structure"`
15902
15903	// The current page of elements from this collection.
15904	Items []*ApiKey `locationName:"item" type:"list"`
15905
15906	Position *string `locationName:"position" type:"string"`
15907
15908	// A list of warning messages logged during the import of API keys when the
15909	// failOnWarnings option is set to true.
15910	Warnings []*string `locationName:"warnings" type:"list"`
15911}
15912
15913// String returns the string representation
15914func (s GetApiKeysOutput) String() string {
15915	return awsutil.Prettify(s)
15916}
15917
15918// GoString returns the string representation
15919func (s GetApiKeysOutput) GoString() string {
15920	return s.String()
15921}
15922
15923// SetItems sets the Items field's value.
15924func (s *GetApiKeysOutput) SetItems(v []*ApiKey) *GetApiKeysOutput {
15925	s.Items = v
15926	return s
15927}
15928
15929// SetPosition sets the Position field's value.
15930func (s *GetApiKeysOutput) SetPosition(v string) *GetApiKeysOutput {
15931	s.Position = &v
15932	return s
15933}
15934
15935// SetWarnings sets the Warnings field's value.
15936func (s *GetApiKeysOutput) SetWarnings(v []*string) *GetApiKeysOutput {
15937	s.Warnings = v
15938	return s
15939}
15940
15941// Request to describe an existing Authorizer resource.
15942type GetAuthorizerInput struct {
15943	_ struct{} `type:"structure"`
15944
15945	// [Required] The identifier of the Authorizer resource.
15946	//
15947	// AuthorizerId is a required field
15948	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
15949
15950	// [Required] The string identifier of the associated RestApi.
15951	//
15952	// RestApiId is a required field
15953	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15954}
15955
15956// String returns the string representation
15957func (s GetAuthorizerInput) String() string {
15958	return awsutil.Prettify(s)
15959}
15960
15961// GoString returns the string representation
15962func (s GetAuthorizerInput) GoString() string {
15963	return s.String()
15964}
15965
15966// Validate inspects the fields of the type to determine if they are valid.
15967func (s *GetAuthorizerInput) Validate() error {
15968	invalidParams := request.ErrInvalidParams{Context: "GetAuthorizerInput"}
15969	if s.AuthorizerId == nil {
15970		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
15971	}
15972	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
15973		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
15974	}
15975	if s.RestApiId == nil {
15976		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15977	}
15978	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15979		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15980	}
15981
15982	if invalidParams.Len() > 0 {
15983		return invalidParams
15984	}
15985	return nil
15986}
15987
15988// SetAuthorizerId sets the AuthorizerId field's value.
15989func (s *GetAuthorizerInput) SetAuthorizerId(v string) *GetAuthorizerInput {
15990	s.AuthorizerId = &v
15991	return s
15992}
15993
15994// SetRestApiId sets the RestApiId field's value.
15995func (s *GetAuthorizerInput) SetRestApiId(v string) *GetAuthorizerInput {
15996	s.RestApiId = &v
15997	return s
15998}
15999
16000// Request to describe an existing Authorizers resource.
16001type GetAuthorizersInput struct {
16002	_ struct{} `type:"structure"`
16003
16004	// The maximum number of returned results per page. The default value is 25
16005	// and the maximum value is 500.
16006	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16007
16008	// The current pagination position in the paged result set.
16009	Position *string `location:"querystring" locationName:"position" type:"string"`
16010
16011	// [Required] The string identifier of the associated RestApi.
16012	//
16013	// RestApiId is a required field
16014	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16015}
16016
16017// String returns the string representation
16018func (s GetAuthorizersInput) String() string {
16019	return awsutil.Prettify(s)
16020}
16021
16022// GoString returns the string representation
16023func (s GetAuthorizersInput) GoString() string {
16024	return s.String()
16025}
16026
16027// Validate inspects the fields of the type to determine if they are valid.
16028func (s *GetAuthorizersInput) Validate() error {
16029	invalidParams := request.ErrInvalidParams{Context: "GetAuthorizersInput"}
16030	if s.RestApiId == nil {
16031		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16032	}
16033	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16034		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16035	}
16036
16037	if invalidParams.Len() > 0 {
16038		return invalidParams
16039	}
16040	return nil
16041}
16042
16043// SetLimit sets the Limit field's value.
16044func (s *GetAuthorizersInput) SetLimit(v int64) *GetAuthorizersInput {
16045	s.Limit = &v
16046	return s
16047}
16048
16049// SetPosition sets the Position field's value.
16050func (s *GetAuthorizersInput) SetPosition(v string) *GetAuthorizersInput {
16051	s.Position = &v
16052	return s
16053}
16054
16055// SetRestApiId sets the RestApiId field's value.
16056func (s *GetAuthorizersInput) SetRestApiId(v string) *GetAuthorizersInput {
16057	s.RestApiId = &v
16058	return s
16059}
16060
16061// Represents a collection of Authorizer resources.
16062//
16063// Use Lambda Function as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)
16064// Use Cognito User Pool as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)
16065type GetAuthorizersOutput struct {
16066	_ struct{} `type:"structure"`
16067
16068	// The current page of elements from this collection.
16069	Items []*Authorizer `locationName:"item" type:"list"`
16070
16071	Position *string `locationName:"position" type:"string"`
16072}
16073
16074// String returns the string representation
16075func (s GetAuthorizersOutput) String() string {
16076	return awsutil.Prettify(s)
16077}
16078
16079// GoString returns the string representation
16080func (s GetAuthorizersOutput) GoString() string {
16081	return s.String()
16082}
16083
16084// SetItems sets the Items field's value.
16085func (s *GetAuthorizersOutput) SetItems(v []*Authorizer) *GetAuthorizersOutput {
16086	s.Items = v
16087	return s
16088}
16089
16090// SetPosition sets the Position field's value.
16091func (s *GetAuthorizersOutput) SetPosition(v string) *GetAuthorizersOutput {
16092	s.Position = &v
16093	return s
16094}
16095
16096// Request to describe a BasePathMapping resource.
16097type GetBasePathMappingInput struct {
16098	_ struct{} `type:"structure"`
16099
16100	// [Required] The base path name that callers of the API must provide as part
16101	// of the URL after the domain name. This value must be unique for all of the
16102	// mappings across a single API. Specify '(none)' if you do not want callers
16103	// to specify any base path name after the domain name.
16104	//
16105	// BasePath is a required field
16106	BasePath *string `location:"uri" locationName:"base_path" type:"string" required:"true"`
16107
16108	// [Required] The domain name of the BasePathMapping resource to be described.
16109	//
16110	// DomainName is a required field
16111	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
16112}
16113
16114// String returns the string representation
16115func (s GetBasePathMappingInput) String() string {
16116	return awsutil.Prettify(s)
16117}
16118
16119// GoString returns the string representation
16120func (s GetBasePathMappingInput) GoString() string {
16121	return s.String()
16122}
16123
16124// Validate inspects the fields of the type to determine if they are valid.
16125func (s *GetBasePathMappingInput) Validate() error {
16126	invalidParams := request.ErrInvalidParams{Context: "GetBasePathMappingInput"}
16127	if s.BasePath == nil {
16128		invalidParams.Add(request.NewErrParamRequired("BasePath"))
16129	}
16130	if s.BasePath != nil && len(*s.BasePath) < 1 {
16131		invalidParams.Add(request.NewErrParamMinLen("BasePath", 1))
16132	}
16133	if s.DomainName == nil {
16134		invalidParams.Add(request.NewErrParamRequired("DomainName"))
16135	}
16136	if s.DomainName != nil && len(*s.DomainName) < 1 {
16137		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
16138	}
16139
16140	if invalidParams.Len() > 0 {
16141		return invalidParams
16142	}
16143	return nil
16144}
16145
16146// SetBasePath sets the BasePath field's value.
16147func (s *GetBasePathMappingInput) SetBasePath(v string) *GetBasePathMappingInput {
16148	s.BasePath = &v
16149	return s
16150}
16151
16152// SetDomainName sets the DomainName field's value.
16153func (s *GetBasePathMappingInput) SetDomainName(v string) *GetBasePathMappingInput {
16154	s.DomainName = &v
16155	return s
16156}
16157
16158// A request to get information about a collection of BasePathMapping resources.
16159type GetBasePathMappingsInput struct {
16160	_ struct{} `type:"structure"`
16161
16162	// [Required] The domain name of a BasePathMapping resource.
16163	//
16164	// DomainName is a required field
16165	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
16166
16167	// The maximum number of returned results per page. The default value is 25
16168	// and the maximum value is 500.
16169	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16170
16171	// The current pagination position in the paged result set.
16172	Position *string `location:"querystring" locationName:"position" type:"string"`
16173}
16174
16175// String returns the string representation
16176func (s GetBasePathMappingsInput) String() string {
16177	return awsutil.Prettify(s)
16178}
16179
16180// GoString returns the string representation
16181func (s GetBasePathMappingsInput) GoString() string {
16182	return s.String()
16183}
16184
16185// Validate inspects the fields of the type to determine if they are valid.
16186func (s *GetBasePathMappingsInput) Validate() error {
16187	invalidParams := request.ErrInvalidParams{Context: "GetBasePathMappingsInput"}
16188	if s.DomainName == nil {
16189		invalidParams.Add(request.NewErrParamRequired("DomainName"))
16190	}
16191	if s.DomainName != nil && len(*s.DomainName) < 1 {
16192		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
16193	}
16194
16195	if invalidParams.Len() > 0 {
16196		return invalidParams
16197	}
16198	return nil
16199}
16200
16201// SetDomainName sets the DomainName field's value.
16202func (s *GetBasePathMappingsInput) SetDomainName(v string) *GetBasePathMappingsInput {
16203	s.DomainName = &v
16204	return s
16205}
16206
16207// SetLimit sets the Limit field's value.
16208func (s *GetBasePathMappingsInput) SetLimit(v int64) *GetBasePathMappingsInput {
16209	s.Limit = &v
16210	return s
16211}
16212
16213// SetPosition sets the Position field's value.
16214func (s *GetBasePathMappingsInput) SetPosition(v string) *GetBasePathMappingsInput {
16215	s.Position = &v
16216	return s
16217}
16218
16219// Represents a collection of BasePathMapping resources.
16220//
16221// Use Custom Domain Names (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
16222type GetBasePathMappingsOutput struct {
16223	_ struct{} `type:"structure"`
16224
16225	// The current page of elements from this collection.
16226	Items []*BasePathMapping `locationName:"item" type:"list"`
16227
16228	Position *string `locationName:"position" type:"string"`
16229}
16230
16231// String returns the string representation
16232func (s GetBasePathMappingsOutput) String() string {
16233	return awsutil.Prettify(s)
16234}
16235
16236// GoString returns the string representation
16237func (s GetBasePathMappingsOutput) GoString() string {
16238	return s.String()
16239}
16240
16241// SetItems sets the Items field's value.
16242func (s *GetBasePathMappingsOutput) SetItems(v []*BasePathMapping) *GetBasePathMappingsOutput {
16243	s.Items = v
16244	return s
16245}
16246
16247// SetPosition sets the Position field's value.
16248func (s *GetBasePathMappingsOutput) SetPosition(v string) *GetBasePathMappingsOutput {
16249	s.Position = &v
16250	return s
16251}
16252
16253// A request to get information about the current ClientCertificate resource.
16254type GetClientCertificateInput struct {
16255	_ struct{} `type:"structure"`
16256
16257	// [Required] The identifier of the ClientCertificate resource to be described.
16258	//
16259	// ClientCertificateId is a required field
16260	ClientCertificateId *string `location:"uri" locationName:"clientcertificate_id" type:"string" required:"true"`
16261}
16262
16263// String returns the string representation
16264func (s GetClientCertificateInput) String() string {
16265	return awsutil.Prettify(s)
16266}
16267
16268// GoString returns the string representation
16269func (s GetClientCertificateInput) GoString() string {
16270	return s.String()
16271}
16272
16273// Validate inspects the fields of the type to determine if they are valid.
16274func (s *GetClientCertificateInput) Validate() error {
16275	invalidParams := request.ErrInvalidParams{Context: "GetClientCertificateInput"}
16276	if s.ClientCertificateId == nil {
16277		invalidParams.Add(request.NewErrParamRequired("ClientCertificateId"))
16278	}
16279	if s.ClientCertificateId != nil && len(*s.ClientCertificateId) < 1 {
16280		invalidParams.Add(request.NewErrParamMinLen("ClientCertificateId", 1))
16281	}
16282
16283	if invalidParams.Len() > 0 {
16284		return invalidParams
16285	}
16286	return nil
16287}
16288
16289// SetClientCertificateId sets the ClientCertificateId field's value.
16290func (s *GetClientCertificateInput) SetClientCertificateId(v string) *GetClientCertificateInput {
16291	s.ClientCertificateId = &v
16292	return s
16293}
16294
16295// A request to get information about a collection of ClientCertificate resources.
16296type GetClientCertificatesInput struct {
16297	_ struct{} `type:"structure"`
16298
16299	// The maximum number of returned results per page. The default value is 25
16300	// and the maximum value is 500.
16301	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16302
16303	// The current pagination position in the paged result set.
16304	Position *string `location:"querystring" locationName:"position" type:"string"`
16305}
16306
16307// String returns the string representation
16308func (s GetClientCertificatesInput) String() string {
16309	return awsutil.Prettify(s)
16310}
16311
16312// GoString returns the string representation
16313func (s GetClientCertificatesInput) GoString() string {
16314	return s.String()
16315}
16316
16317// SetLimit sets the Limit field's value.
16318func (s *GetClientCertificatesInput) SetLimit(v int64) *GetClientCertificatesInput {
16319	s.Limit = &v
16320	return s
16321}
16322
16323// SetPosition sets the Position field's value.
16324func (s *GetClientCertificatesInput) SetPosition(v string) *GetClientCertificatesInput {
16325	s.Position = &v
16326	return s
16327}
16328
16329// Represents a collection of ClientCertificate resources.
16330//
16331// Use Client-Side Certificate (https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html)
16332type GetClientCertificatesOutput struct {
16333	_ struct{} `type:"structure"`
16334
16335	// The current page of elements from this collection.
16336	Items []*ClientCertificate `locationName:"item" type:"list"`
16337
16338	Position *string `locationName:"position" type:"string"`
16339}
16340
16341// String returns the string representation
16342func (s GetClientCertificatesOutput) String() string {
16343	return awsutil.Prettify(s)
16344}
16345
16346// GoString returns the string representation
16347func (s GetClientCertificatesOutput) GoString() string {
16348	return s.String()
16349}
16350
16351// SetItems sets the Items field's value.
16352func (s *GetClientCertificatesOutput) SetItems(v []*ClientCertificate) *GetClientCertificatesOutput {
16353	s.Items = v
16354	return s
16355}
16356
16357// SetPosition sets the Position field's value.
16358func (s *GetClientCertificatesOutput) SetPosition(v string) *GetClientCertificatesOutput {
16359	s.Position = &v
16360	return s
16361}
16362
16363// Requests API Gateway to get information about a Deployment resource.
16364type GetDeploymentInput struct {
16365	_ struct{} `type:"structure"`
16366
16367	// [Required] The identifier of the Deployment resource to get information about.
16368	//
16369	// DeploymentId is a required field
16370	DeploymentId *string `location:"uri" locationName:"deployment_id" type:"string" required:"true"`
16371
16372	// A query parameter to retrieve the specified embedded resources of the returned
16373	// Deployment resource in the response. In a REST API call, this embed parameter
16374	// value is a list of comma-separated strings, as in GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=var1,var2.
16375	// The SDK and other platform-dependent libraries might use a different format
16376	// for the list. Currently, this request supports only retrieval of the embedded
16377	// API summary this way. Hence, the parameter value must be a single-valued
16378	// list containing only the "apisummary" string. For example, GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=apisummary.
16379	Embed []*string `location:"querystring" locationName:"embed" type:"list"`
16380
16381	// [Required] The string identifier of the associated RestApi.
16382	//
16383	// RestApiId is a required field
16384	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16385}
16386
16387// String returns the string representation
16388func (s GetDeploymentInput) String() string {
16389	return awsutil.Prettify(s)
16390}
16391
16392// GoString returns the string representation
16393func (s GetDeploymentInput) GoString() string {
16394	return s.String()
16395}
16396
16397// Validate inspects the fields of the type to determine if they are valid.
16398func (s *GetDeploymentInput) Validate() error {
16399	invalidParams := request.ErrInvalidParams{Context: "GetDeploymentInput"}
16400	if s.DeploymentId == nil {
16401		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
16402	}
16403	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
16404		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
16405	}
16406	if s.RestApiId == nil {
16407		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16408	}
16409	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16410		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16411	}
16412
16413	if invalidParams.Len() > 0 {
16414		return invalidParams
16415	}
16416	return nil
16417}
16418
16419// SetDeploymentId sets the DeploymentId field's value.
16420func (s *GetDeploymentInput) SetDeploymentId(v string) *GetDeploymentInput {
16421	s.DeploymentId = &v
16422	return s
16423}
16424
16425// SetEmbed sets the Embed field's value.
16426func (s *GetDeploymentInput) SetEmbed(v []*string) *GetDeploymentInput {
16427	s.Embed = v
16428	return s
16429}
16430
16431// SetRestApiId sets the RestApiId field's value.
16432func (s *GetDeploymentInput) SetRestApiId(v string) *GetDeploymentInput {
16433	s.RestApiId = &v
16434	return s
16435}
16436
16437// Requests API Gateway to get information about a Deployments collection.
16438type GetDeploymentsInput struct {
16439	_ struct{} `type:"structure"`
16440
16441	// The maximum number of returned results per page. The default value is 25
16442	// and the maximum value is 500.
16443	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16444
16445	// The current pagination position in the paged result set.
16446	Position *string `location:"querystring" locationName:"position" type:"string"`
16447
16448	// [Required] The string identifier of the associated RestApi.
16449	//
16450	// RestApiId is a required field
16451	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16452}
16453
16454// String returns the string representation
16455func (s GetDeploymentsInput) String() string {
16456	return awsutil.Prettify(s)
16457}
16458
16459// GoString returns the string representation
16460func (s GetDeploymentsInput) GoString() string {
16461	return s.String()
16462}
16463
16464// Validate inspects the fields of the type to determine if they are valid.
16465func (s *GetDeploymentsInput) Validate() error {
16466	invalidParams := request.ErrInvalidParams{Context: "GetDeploymentsInput"}
16467	if s.RestApiId == nil {
16468		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16469	}
16470	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16471		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16472	}
16473
16474	if invalidParams.Len() > 0 {
16475		return invalidParams
16476	}
16477	return nil
16478}
16479
16480// SetLimit sets the Limit field's value.
16481func (s *GetDeploymentsInput) SetLimit(v int64) *GetDeploymentsInput {
16482	s.Limit = &v
16483	return s
16484}
16485
16486// SetPosition sets the Position field's value.
16487func (s *GetDeploymentsInput) SetPosition(v string) *GetDeploymentsInput {
16488	s.Position = &v
16489	return s
16490}
16491
16492// SetRestApiId sets the RestApiId field's value.
16493func (s *GetDeploymentsInput) SetRestApiId(v string) *GetDeploymentsInput {
16494	s.RestApiId = &v
16495	return s
16496}
16497
16498// Represents a collection resource that contains zero or more references to
16499// your existing deployments, and links that guide you on how to interact with
16500// your collection. The collection offers a paginated view of the contained
16501// deployments.
16502//
16503// To create a new deployment of a RestApi, make a POST request against this
16504// resource. To view, update, or delete an existing deployment, make a GET,
16505// PATCH, or DELETE request, respectively, on a specified Deployment resource.
16506//
16507// Deploying an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-deploy-api.html),
16508// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-deployment.html),
16509// AWS SDKs (https://aws.amazon.com/tools/)
16510type GetDeploymentsOutput struct {
16511	_ struct{} `type:"structure"`
16512
16513	// The current page of elements from this collection.
16514	Items []*Deployment `locationName:"item" type:"list"`
16515
16516	Position *string `locationName:"position" type:"string"`
16517}
16518
16519// String returns the string representation
16520func (s GetDeploymentsOutput) String() string {
16521	return awsutil.Prettify(s)
16522}
16523
16524// GoString returns the string representation
16525func (s GetDeploymentsOutput) GoString() string {
16526	return s.String()
16527}
16528
16529// SetItems sets the Items field's value.
16530func (s *GetDeploymentsOutput) SetItems(v []*Deployment) *GetDeploymentsOutput {
16531	s.Items = v
16532	return s
16533}
16534
16535// SetPosition sets the Position field's value.
16536func (s *GetDeploymentsOutput) SetPosition(v string) *GetDeploymentsOutput {
16537	s.Position = &v
16538	return s
16539}
16540
16541// Gets a specified documentation part of a given API.
16542type GetDocumentationPartInput struct {
16543	_ struct{} `type:"structure"`
16544
16545	// [Required] The string identifier of the associated RestApi.
16546	//
16547	// DocumentationPartId is a required field
16548	DocumentationPartId *string `location:"uri" locationName:"part_id" type:"string" required:"true"`
16549
16550	// [Required] The string identifier of the associated RestApi.
16551	//
16552	// RestApiId is a required field
16553	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16554}
16555
16556// String returns the string representation
16557func (s GetDocumentationPartInput) String() string {
16558	return awsutil.Prettify(s)
16559}
16560
16561// GoString returns the string representation
16562func (s GetDocumentationPartInput) GoString() string {
16563	return s.String()
16564}
16565
16566// Validate inspects the fields of the type to determine if they are valid.
16567func (s *GetDocumentationPartInput) Validate() error {
16568	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationPartInput"}
16569	if s.DocumentationPartId == nil {
16570		invalidParams.Add(request.NewErrParamRequired("DocumentationPartId"))
16571	}
16572	if s.DocumentationPartId != nil && len(*s.DocumentationPartId) < 1 {
16573		invalidParams.Add(request.NewErrParamMinLen("DocumentationPartId", 1))
16574	}
16575	if s.RestApiId == nil {
16576		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16577	}
16578	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16579		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16580	}
16581
16582	if invalidParams.Len() > 0 {
16583		return invalidParams
16584	}
16585	return nil
16586}
16587
16588// SetDocumentationPartId sets the DocumentationPartId field's value.
16589func (s *GetDocumentationPartInput) SetDocumentationPartId(v string) *GetDocumentationPartInput {
16590	s.DocumentationPartId = &v
16591	return s
16592}
16593
16594// SetRestApiId sets the RestApiId field's value.
16595func (s *GetDocumentationPartInput) SetRestApiId(v string) *GetDocumentationPartInput {
16596	s.RestApiId = &v
16597	return s
16598}
16599
16600// Gets the documentation parts of an API. The result may be filtered by the
16601// type, name, or path of API entities (targets).
16602type GetDocumentationPartsInput struct {
16603	_ struct{} `type:"structure"`
16604
16605	// The maximum number of returned results per page. The default value is 25
16606	// and the maximum value is 500.
16607	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16608
16609	// The status of the API documentation parts to retrieve. Valid values are DOCUMENTED
16610	// for retrieving DocumentationPart resources with content and UNDOCUMENTED
16611	// for DocumentationPart resources without content.
16612	LocationStatus *string `location:"querystring" locationName:"locationStatus" type:"string" enum:"LocationStatusType"`
16613
16614	// The name of API entities of the to-be-retrieved documentation parts.
16615	NameQuery *string `location:"querystring" locationName:"name" type:"string"`
16616
16617	// The path of API entities of the to-be-retrieved documentation parts.
16618	Path *string `location:"querystring" locationName:"path" type:"string"`
16619
16620	// The current pagination position in the paged result set.
16621	Position *string `location:"querystring" locationName:"position" type:"string"`
16622
16623	// [Required] The string identifier of the associated RestApi.
16624	//
16625	// RestApiId is a required field
16626	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16627
16628	// The type of API entities of the to-be-retrieved documentation parts.
16629	Type *string `location:"querystring" locationName:"type" type:"string" enum:"DocumentationPartType"`
16630}
16631
16632// String returns the string representation
16633func (s GetDocumentationPartsInput) String() string {
16634	return awsutil.Prettify(s)
16635}
16636
16637// GoString returns the string representation
16638func (s GetDocumentationPartsInput) GoString() string {
16639	return s.String()
16640}
16641
16642// Validate inspects the fields of the type to determine if they are valid.
16643func (s *GetDocumentationPartsInput) Validate() error {
16644	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationPartsInput"}
16645	if s.RestApiId == nil {
16646		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16647	}
16648	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16649		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16650	}
16651
16652	if invalidParams.Len() > 0 {
16653		return invalidParams
16654	}
16655	return nil
16656}
16657
16658// SetLimit sets the Limit field's value.
16659func (s *GetDocumentationPartsInput) SetLimit(v int64) *GetDocumentationPartsInput {
16660	s.Limit = &v
16661	return s
16662}
16663
16664// SetLocationStatus sets the LocationStatus field's value.
16665func (s *GetDocumentationPartsInput) SetLocationStatus(v string) *GetDocumentationPartsInput {
16666	s.LocationStatus = &v
16667	return s
16668}
16669
16670// SetNameQuery sets the NameQuery field's value.
16671func (s *GetDocumentationPartsInput) SetNameQuery(v string) *GetDocumentationPartsInput {
16672	s.NameQuery = &v
16673	return s
16674}
16675
16676// SetPath sets the Path field's value.
16677func (s *GetDocumentationPartsInput) SetPath(v string) *GetDocumentationPartsInput {
16678	s.Path = &v
16679	return s
16680}
16681
16682// SetPosition sets the Position field's value.
16683func (s *GetDocumentationPartsInput) SetPosition(v string) *GetDocumentationPartsInput {
16684	s.Position = &v
16685	return s
16686}
16687
16688// SetRestApiId sets the RestApiId field's value.
16689func (s *GetDocumentationPartsInput) SetRestApiId(v string) *GetDocumentationPartsInput {
16690	s.RestApiId = &v
16691	return s
16692}
16693
16694// SetType sets the Type field's value.
16695func (s *GetDocumentationPartsInput) SetType(v string) *GetDocumentationPartsInput {
16696	s.Type = &v
16697	return s
16698}
16699
16700// The collection of documentation parts of an API.
16701//
16702// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
16703// DocumentationPart
16704type GetDocumentationPartsOutput struct {
16705	_ struct{} `type:"structure"`
16706
16707	// The current page of elements from this collection.
16708	Items []*DocumentationPart `locationName:"item" type:"list"`
16709
16710	Position *string `locationName:"position" type:"string"`
16711}
16712
16713// String returns the string representation
16714func (s GetDocumentationPartsOutput) String() string {
16715	return awsutil.Prettify(s)
16716}
16717
16718// GoString returns the string representation
16719func (s GetDocumentationPartsOutput) GoString() string {
16720	return s.String()
16721}
16722
16723// SetItems sets the Items field's value.
16724func (s *GetDocumentationPartsOutput) SetItems(v []*DocumentationPart) *GetDocumentationPartsOutput {
16725	s.Items = v
16726	return s
16727}
16728
16729// SetPosition sets the Position field's value.
16730func (s *GetDocumentationPartsOutput) SetPosition(v string) *GetDocumentationPartsOutput {
16731	s.Position = &v
16732	return s
16733}
16734
16735// Gets a documentation snapshot of an API.
16736type GetDocumentationVersionInput struct {
16737	_ struct{} `type:"structure"`
16738
16739	// [Required] The version identifier of the to-be-retrieved documentation snapshot.
16740	//
16741	// DocumentationVersion is a required field
16742	DocumentationVersion *string `location:"uri" locationName:"doc_version" type:"string" required:"true"`
16743
16744	// [Required] The string identifier of the associated RestApi.
16745	//
16746	// RestApiId is a required field
16747	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16748}
16749
16750// String returns the string representation
16751func (s GetDocumentationVersionInput) String() string {
16752	return awsutil.Prettify(s)
16753}
16754
16755// GoString returns the string representation
16756func (s GetDocumentationVersionInput) GoString() string {
16757	return s.String()
16758}
16759
16760// Validate inspects the fields of the type to determine if they are valid.
16761func (s *GetDocumentationVersionInput) Validate() error {
16762	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationVersionInput"}
16763	if s.DocumentationVersion == nil {
16764		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
16765	}
16766	if s.DocumentationVersion != nil && len(*s.DocumentationVersion) < 1 {
16767		invalidParams.Add(request.NewErrParamMinLen("DocumentationVersion", 1))
16768	}
16769	if s.RestApiId == nil {
16770		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16771	}
16772	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16773		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16774	}
16775
16776	if invalidParams.Len() > 0 {
16777		return invalidParams
16778	}
16779	return nil
16780}
16781
16782// SetDocumentationVersion sets the DocumentationVersion field's value.
16783func (s *GetDocumentationVersionInput) SetDocumentationVersion(v string) *GetDocumentationVersionInput {
16784	s.DocumentationVersion = &v
16785	return s
16786}
16787
16788// SetRestApiId sets the RestApiId field's value.
16789func (s *GetDocumentationVersionInput) SetRestApiId(v string) *GetDocumentationVersionInput {
16790	s.RestApiId = &v
16791	return s
16792}
16793
16794// Gets the documentation versions of an API.
16795type GetDocumentationVersionsInput struct {
16796	_ struct{} `type:"structure"`
16797
16798	// The maximum number of returned results per page. The default value is 25
16799	// and the maximum value is 500.
16800	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16801
16802	// The current pagination position in the paged result set.
16803	Position *string `location:"querystring" locationName:"position" type:"string"`
16804
16805	// [Required] The string identifier of the associated RestApi.
16806	//
16807	// RestApiId is a required field
16808	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16809}
16810
16811// String returns the string representation
16812func (s GetDocumentationVersionsInput) String() string {
16813	return awsutil.Prettify(s)
16814}
16815
16816// GoString returns the string representation
16817func (s GetDocumentationVersionsInput) GoString() string {
16818	return s.String()
16819}
16820
16821// Validate inspects the fields of the type to determine if they are valid.
16822func (s *GetDocumentationVersionsInput) Validate() error {
16823	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationVersionsInput"}
16824	if s.RestApiId == nil {
16825		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16826	}
16827	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16828		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16829	}
16830
16831	if invalidParams.Len() > 0 {
16832		return invalidParams
16833	}
16834	return nil
16835}
16836
16837// SetLimit sets the Limit field's value.
16838func (s *GetDocumentationVersionsInput) SetLimit(v int64) *GetDocumentationVersionsInput {
16839	s.Limit = &v
16840	return s
16841}
16842
16843// SetPosition sets the Position field's value.
16844func (s *GetDocumentationVersionsInput) SetPosition(v string) *GetDocumentationVersionsInput {
16845	s.Position = &v
16846	return s
16847}
16848
16849// SetRestApiId sets the RestApiId field's value.
16850func (s *GetDocumentationVersionsInput) SetRestApiId(v string) *GetDocumentationVersionsInput {
16851	s.RestApiId = &v
16852	return s
16853}
16854
16855// The collection of documentation snapshots of an API.
16856//
16857// Use the DocumentationVersions to manage documentation snapshots associated
16858// with various API stages.
16859//
16860// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
16861// DocumentationPart, DocumentationVersion
16862type GetDocumentationVersionsOutput struct {
16863	_ struct{} `type:"structure"`
16864
16865	// The current page of elements from this collection.
16866	Items []*DocumentationVersion `locationName:"item" type:"list"`
16867
16868	Position *string `locationName:"position" type:"string"`
16869}
16870
16871// String returns the string representation
16872func (s GetDocumentationVersionsOutput) String() string {
16873	return awsutil.Prettify(s)
16874}
16875
16876// GoString returns the string representation
16877func (s GetDocumentationVersionsOutput) GoString() string {
16878	return s.String()
16879}
16880
16881// SetItems sets the Items field's value.
16882func (s *GetDocumentationVersionsOutput) SetItems(v []*DocumentationVersion) *GetDocumentationVersionsOutput {
16883	s.Items = v
16884	return s
16885}
16886
16887// SetPosition sets the Position field's value.
16888func (s *GetDocumentationVersionsOutput) SetPosition(v string) *GetDocumentationVersionsOutput {
16889	s.Position = &v
16890	return s
16891}
16892
16893// Request to get the name of a DomainName resource.
16894type GetDomainNameInput struct {
16895	_ struct{} `type:"structure"`
16896
16897	// [Required] The name of the DomainName resource.
16898	//
16899	// DomainName is a required field
16900	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
16901}
16902
16903// String returns the string representation
16904func (s GetDomainNameInput) String() string {
16905	return awsutil.Prettify(s)
16906}
16907
16908// GoString returns the string representation
16909func (s GetDomainNameInput) GoString() string {
16910	return s.String()
16911}
16912
16913// Validate inspects the fields of the type to determine if they are valid.
16914func (s *GetDomainNameInput) Validate() error {
16915	invalidParams := request.ErrInvalidParams{Context: "GetDomainNameInput"}
16916	if s.DomainName == nil {
16917		invalidParams.Add(request.NewErrParamRequired("DomainName"))
16918	}
16919	if s.DomainName != nil && len(*s.DomainName) < 1 {
16920		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
16921	}
16922
16923	if invalidParams.Len() > 0 {
16924		return invalidParams
16925	}
16926	return nil
16927}
16928
16929// SetDomainName sets the DomainName field's value.
16930func (s *GetDomainNameInput) SetDomainName(v string) *GetDomainNameInput {
16931	s.DomainName = &v
16932	return s
16933}
16934
16935// Request to describe a collection of DomainName resources.
16936type GetDomainNamesInput struct {
16937	_ struct{} `type:"structure"`
16938
16939	// The maximum number of returned results per page. The default value is 25
16940	// and the maximum value is 500.
16941	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16942
16943	// The current pagination position in the paged result set.
16944	Position *string `location:"querystring" locationName:"position" type:"string"`
16945}
16946
16947// String returns the string representation
16948func (s GetDomainNamesInput) String() string {
16949	return awsutil.Prettify(s)
16950}
16951
16952// GoString returns the string representation
16953func (s GetDomainNamesInput) GoString() string {
16954	return s.String()
16955}
16956
16957// SetLimit sets the Limit field's value.
16958func (s *GetDomainNamesInput) SetLimit(v int64) *GetDomainNamesInput {
16959	s.Limit = &v
16960	return s
16961}
16962
16963// SetPosition sets the Position field's value.
16964func (s *GetDomainNamesInput) SetPosition(v string) *GetDomainNamesInput {
16965	s.Position = &v
16966	return s
16967}
16968
16969// Represents a collection of DomainName resources.
16970//
16971// Use Client-Side Certificate (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
16972type GetDomainNamesOutput struct {
16973	_ struct{} `type:"structure"`
16974
16975	// The current page of elements from this collection.
16976	Items []*DomainName `locationName:"item" type:"list"`
16977
16978	Position *string `locationName:"position" type:"string"`
16979}
16980
16981// String returns the string representation
16982func (s GetDomainNamesOutput) String() string {
16983	return awsutil.Prettify(s)
16984}
16985
16986// GoString returns the string representation
16987func (s GetDomainNamesOutput) GoString() string {
16988	return s.String()
16989}
16990
16991// SetItems sets the Items field's value.
16992func (s *GetDomainNamesOutput) SetItems(v []*DomainName) *GetDomainNamesOutput {
16993	s.Items = v
16994	return s
16995}
16996
16997// SetPosition sets the Position field's value.
16998func (s *GetDomainNamesOutput) SetPosition(v string) *GetDomainNamesOutput {
16999	s.Position = &v
17000	return s
17001}
17002
17003// Request a new export of a RestApi for a particular Stage.
17004type GetExportInput struct {
17005	_ struct{} `type:"structure"`
17006
17007	// The content-type of the export, for example application/json. Currently application/json
17008	// and application/yaml are supported for exportType ofoas30 and swagger. This
17009	// should be specified in the Accept header for direct API requests.
17010	Accepts *string `location:"header" locationName:"Accept" type:"string"`
17011
17012	// [Required] The type of export. Acceptable values are 'oas30' for OpenAPI
17013	// 3.0.x and 'swagger' for Swagger/OpenAPI 2.0.
17014	//
17015	// ExportType is a required field
17016	ExportType *string `location:"uri" locationName:"export_type" type:"string" required:"true"`
17017
17018	// A key-value map of query string parameters that specify properties of the
17019	// export, depending on the requested exportType. For exportType oas30 and swagger,
17020	// any combination of the following parameters are supported: extensions='integrations'
17021	// or extensions='apigateway' will export the API with x-amazon-apigateway-integration
17022	// extensions. extensions='authorizers' will export the API with x-amazon-apigateway-authorizer
17023	// extensions. postman will export the API with Postman extensions, allowing
17024	// for import to the Postman tool
17025	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
17026
17027	// [Required] The string identifier of the associated RestApi.
17028	//
17029	// RestApiId is a required field
17030	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17031
17032	// [Required] The name of the Stage that will be exported.
17033	//
17034	// StageName is a required field
17035	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
17036}
17037
17038// String returns the string representation
17039func (s GetExportInput) String() string {
17040	return awsutil.Prettify(s)
17041}
17042
17043// GoString returns the string representation
17044func (s GetExportInput) GoString() string {
17045	return s.String()
17046}
17047
17048// Validate inspects the fields of the type to determine if they are valid.
17049func (s *GetExportInput) Validate() error {
17050	invalidParams := request.ErrInvalidParams{Context: "GetExportInput"}
17051	if s.ExportType == nil {
17052		invalidParams.Add(request.NewErrParamRequired("ExportType"))
17053	}
17054	if s.ExportType != nil && len(*s.ExportType) < 1 {
17055		invalidParams.Add(request.NewErrParamMinLen("ExportType", 1))
17056	}
17057	if s.RestApiId == nil {
17058		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17059	}
17060	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17061		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17062	}
17063	if s.StageName == nil {
17064		invalidParams.Add(request.NewErrParamRequired("StageName"))
17065	}
17066	if s.StageName != nil && len(*s.StageName) < 1 {
17067		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
17068	}
17069
17070	if invalidParams.Len() > 0 {
17071		return invalidParams
17072	}
17073	return nil
17074}
17075
17076// SetAccepts sets the Accepts field's value.
17077func (s *GetExportInput) SetAccepts(v string) *GetExportInput {
17078	s.Accepts = &v
17079	return s
17080}
17081
17082// SetExportType sets the ExportType field's value.
17083func (s *GetExportInput) SetExportType(v string) *GetExportInput {
17084	s.ExportType = &v
17085	return s
17086}
17087
17088// SetParameters sets the Parameters field's value.
17089func (s *GetExportInput) SetParameters(v map[string]*string) *GetExportInput {
17090	s.Parameters = v
17091	return s
17092}
17093
17094// SetRestApiId sets the RestApiId field's value.
17095func (s *GetExportInput) SetRestApiId(v string) *GetExportInput {
17096	s.RestApiId = &v
17097	return s
17098}
17099
17100// SetStageName sets the StageName field's value.
17101func (s *GetExportInput) SetStageName(v string) *GetExportInput {
17102	s.StageName = &v
17103	return s
17104}
17105
17106// The binary blob response to GetExport, which contains the generated SDK.
17107type GetExportOutput struct {
17108	_ struct{} `type:"structure" payload:"Body"`
17109
17110	// The binary blob response to GetExport, which contains the export.
17111	Body []byte `locationName:"body" type:"blob"`
17112
17113	// The content-disposition header value in the HTTP response.
17114	ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"`
17115
17116	// The content-type header value in the HTTP response. This will correspond
17117	// to a valid 'accept' type in the request.
17118	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
17119}
17120
17121// String returns the string representation
17122func (s GetExportOutput) String() string {
17123	return awsutil.Prettify(s)
17124}
17125
17126// GoString returns the string representation
17127func (s GetExportOutput) GoString() string {
17128	return s.String()
17129}
17130
17131// SetBody sets the Body field's value.
17132func (s *GetExportOutput) SetBody(v []byte) *GetExportOutput {
17133	s.Body = v
17134	return s
17135}
17136
17137// SetContentDisposition sets the ContentDisposition field's value.
17138func (s *GetExportOutput) SetContentDisposition(v string) *GetExportOutput {
17139	s.ContentDisposition = &v
17140	return s
17141}
17142
17143// SetContentType sets the ContentType field's value.
17144func (s *GetExportOutput) SetContentType(v string) *GetExportOutput {
17145	s.ContentType = &v
17146	return s
17147}
17148
17149// Gets a GatewayResponse of a specified response type on the given RestApi.
17150type GetGatewayResponseInput struct {
17151	_ struct{} `type:"structure"`
17152
17153	// [Required]
17154	// The response type of the associated GatewayResponse. Valid values are
17155	//    * ACCESS_DENIED
17156	//
17157	//    * API_CONFIGURATION_ERROR
17158	//
17159	//    * AUTHORIZER_FAILURE
17160	//
17161	//    * AUTHORIZER_CONFIGURATION_ERROR
17162	//
17163	//    * BAD_REQUEST_PARAMETERS
17164	//
17165	//    * BAD_REQUEST_BODY
17166	//
17167	//    * DEFAULT_4XX
17168	//
17169	//    * DEFAULT_5XX
17170	//
17171	//    * EXPIRED_TOKEN
17172	//
17173	//    * INVALID_SIGNATURE
17174	//
17175	//    * INTEGRATION_FAILURE
17176	//
17177	//    * INTEGRATION_TIMEOUT
17178	//
17179	//    * INVALID_API_KEY
17180	//
17181	//    * MISSING_AUTHENTICATION_TOKEN
17182	//
17183	//    * QUOTA_EXCEEDED
17184	//
17185	//    * REQUEST_TOO_LARGE
17186	//
17187	//    * RESOURCE_NOT_FOUND
17188	//
17189	//    * THROTTLED
17190	//
17191	//    * UNAUTHORIZED
17192	//
17193	//    * UNSUPPORTED_MEDIA_TYPE
17194	//
17195	// ResponseType is a required field
17196	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
17197
17198	// [Required] The string identifier of the associated RestApi.
17199	//
17200	// RestApiId is a required field
17201	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17202}
17203
17204// String returns the string representation
17205func (s GetGatewayResponseInput) String() string {
17206	return awsutil.Prettify(s)
17207}
17208
17209// GoString returns the string representation
17210func (s GetGatewayResponseInput) GoString() string {
17211	return s.String()
17212}
17213
17214// Validate inspects the fields of the type to determine if they are valid.
17215func (s *GetGatewayResponseInput) Validate() error {
17216	invalidParams := request.ErrInvalidParams{Context: "GetGatewayResponseInput"}
17217	if s.ResponseType == nil {
17218		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
17219	}
17220	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
17221		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
17222	}
17223	if s.RestApiId == nil {
17224		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17225	}
17226	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17227		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17228	}
17229
17230	if invalidParams.Len() > 0 {
17231		return invalidParams
17232	}
17233	return nil
17234}
17235
17236// SetResponseType sets the ResponseType field's value.
17237func (s *GetGatewayResponseInput) SetResponseType(v string) *GetGatewayResponseInput {
17238	s.ResponseType = &v
17239	return s
17240}
17241
17242// SetRestApiId sets the RestApiId field's value.
17243func (s *GetGatewayResponseInput) SetRestApiId(v string) *GetGatewayResponseInput {
17244	s.RestApiId = &v
17245	return s
17246}
17247
17248// Gets the GatewayResponses collection on the given RestApi. If an API developer
17249// has not added any definitions for gateway responses, the result will be the
17250// API Gateway-generated default GatewayResponses collection for the supported
17251// response types.
17252type GetGatewayResponsesInput struct {
17253	_ struct{} `type:"structure"`
17254
17255	// The maximum number of returned results per page. The default value is 25
17256	// and the maximum value is 500. The GatewayResponses collection does not support
17257	// pagination and the limit does not apply here.
17258	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
17259
17260	// The current pagination position in the paged result set. The GatewayResponse
17261	// collection does not support pagination and the position does not apply here.
17262	Position *string `location:"querystring" locationName:"position" type:"string"`
17263
17264	// [Required] The string identifier of the associated RestApi.
17265	//
17266	// RestApiId is a required field
17267	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17268}
17269
17270// String returns the string representation
17271func (s GetGatewayResponsesInput) String() string {
17272	return awsutil.Prettify(s)
17273}
17274
17275// GoString returns the string representation
17276func (s GetGatewayResponsesInput) GoString() string {
17277	return s.String()
17278}
17279
17280// Validate inspects the fields of the type to determine if they are valid.
17281func (s *GetGatewayResponsesInput) Validate() error {
17282	invalidParams := request.ErrInvalidParams{Context: "GetGatewayResponsesInput"}
17283	if s.RestApiId == nil {
17284		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17285	}
17286	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17287		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17288	}
17289
17290	if invalidParams.Len() > 0 {
17291		return invalidParams
17292	}
17293	return nil
17294}
17295
17296// SetLimit sets the Limit field's value.
17297func (s *GetGatewayResponsesInput) SetLimit(v int64) *GetGatewayResponsesInput {
17298	s.Limit = &v
17299	return s
17300}
17301
17302// SetPosition sets the Position field's value.
17303func (s *GetGatewayResponsesInput) SetPosition(v string) *GetGatewayResponsesInput {
17304	s.Position = &v
17305	return s
17306}
17307
17308// SetRestApiId sets the RestApiId field's value.
17309func (s *GetGatewayResponsesInput) SetRestApiId(v string) *GetGatewayResponsesInput {
17310	s.RestApiId = &v
17311	return s
17312}
17313
17314// The collection of the GatewayResponse instances of a RestApi as a responseType-to-GatewayResponse
17315// object map of key-value pairs. As such, pagination is not supported for querying
17316// this collection.
17317//
17318// For more information about valid gateway response types, see Gateway Response
17319// Types Supported by API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/supported-gateway-response-types.html)
17320//
17321// Example: Get the collection of gateway responses of an API
17322//
17323// Request
17324//
17325// This example request shows how to retrieve the GatewayResponses collection
17326// from an API.
17327//  GET /restapis/o81lxisefl/gatewayresponses HTTP/1.1 Host: beta-apigateway.us-east-1.amazonaws.com
17328//  Content-Type: application/json X-Amz-Date: 20170503T220604Z Authorization:
17329//  AWS4-HMAC-SHA256 Credential={access-key-id}/20170503/us-east-1/apigateway/aws4_request,
17330//  SignedHeaders=content-type;host;x-amz-date, Signature=59b42fe54a76a5de8adf2c67baa6d39206f8e9ad49a1d77ccc6a5da3103a398a
17331//  Cache-Control: no-cache Postman-Token: 5637af27-dc29-fc5c-9dfe-0645d52cb515
17332//
17333// Response
17334//
17335// The successful operation returns the 200 OK status code and a payload similar
17336// to the following:
17337//  { "_links": { "curies": { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html",
17338//  "name": "gatewayresponse", "templated": true }, "self": { "href": "/restapis/o81lxisefl/gatewayresponses"
17339//  }, "first": { "href": "/restapis/o81lxisefl/gatewayresponses" }, "gatewayresponse:by-type":
17340//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17341//  true }, "item": [ { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE"
17342//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND"
17343//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE" },
17344//  { "href": "/restapis/o81lxisefl/gatewayresponses/THROTTLED" }, { "href":
17345//  "/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE" }, { "href":
17346//  "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR" },
17347//  { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX" }, { "href":
17348//  "/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX" }, { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS"
17349//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY" },
17350//  { "href": "/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN" }, { "href":
17351//  "/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED" }, { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY"
17352//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED" }, { "href":
17353//  "/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR" }, { "href":
17354//  "/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED" }, { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT"
17355//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
17356//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE" },
17357//  { "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE" } ]
17358//  }, "_embedded": { "item": [ { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE"
17359//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17360//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE"
17361//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17362//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17363//  "INTEGRATION_FAILURE", "statusCode": "504" }, { "_links": { "self": { "href":
17364//  "/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND" }, "gatewayresponse:put":
17365//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17366//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND"
17367//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17368//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17369//  "RESOURCE_NOT_FOUND", "statusCode": "404" }, { "_links": { "self": { "href":
17370//  "/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE" }, "gatewayresponse:put":
17371//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17372//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE"
17373//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17374//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17375//  "REQUEST_TOO_LARGE", "statusCode": "413" }, { "_links": { "self": { "href":
17376//  "/restapis/o81lxisefl/gatewayresponses/THROTTLED" }, "gatewayresponse:put":
17377//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17378//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/THROTTLED"
17379//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17380//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17381//  "THROTTLED", "statusCode": "429" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE"
17382//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17383//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE"
17384//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17385//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17386//  "UNSUPPORTED_MEDIA_TYPE", "statusCode": "415" }, { "_links": { "self": {
17387//  "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR"
17388//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17389//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR"
17390//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17391//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17392//  "AUTHORIZER_CONFIGURATION_ERROR", "statusCode": "500" }, { "_links": { "self":
17393//  { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX" }, "gatewayresponse:put":
17394//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17395//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX"
17396//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17397//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17398//  "DEFAULT_5XX" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX"
17399//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17400//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX"
17401//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17402//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17403//  "DEFAULT_4XX" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS"
17404//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17405//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS"
17406//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17407//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17408//  "BAD_REQUEST_PARAMETERS", "statusCode": "400" }, { "_links": { "self": {
17409//  "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY" }, "gatewayresponse:put":
17410//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17411//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY"
17412//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17413//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17414//  "BAD_REQUEST_BODY", "statusCode": "400" }, { "_links": { "self": { "href":
17415//  "/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN" }, "gatewayresponse:put":
17416//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17417//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN"
17418//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17419//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17420//  "EXPIRED_TOKEN", "statusCode": "403" }, { "_links": { "self": { "href":
17421//  "/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED" }, "gatewayresponse:put":
17422//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17423//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED"
17424//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17425//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17426//  "ACCESS_DENIED", "statusCode": "403" }, { "_links": { "self": { "href":
17427//  "/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY" }, "gatewayresponse:put":
17428//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17429//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY"
17430//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17431//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17432//  "INVALID_API_KEY", "statusCode": "403" }, { "_links": { "self": { "href":
17433//  "/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED" }, "gatewayresponse:put":
17434//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17435//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED"
17436//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17437//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17438//  "UNAUTHORIZED", "statusCode": "401" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR"
17439//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17440//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR"
17441//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17442//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17443//  "API_CONFIGURATION_ERROR", "statusCode": "500" }, { "_links": { "self":
17444//  { "href": "/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED" }, "gatewayresponse:put":
17445//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17446//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED"
17447//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17448//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17449//  "QUOTA_EXCEEDED", "statusCode": "429" }, { "_links": { "self": { "href":
17450//  "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT" }, "gatewayresponse:put":
17451//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17452//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT"
17453//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17454//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17455//  "INTEGRATION_TIMEOUT", "statusCode": "504" }, { "_links": { "self": { "href":
17456//  "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN" },
17457//  "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
17458//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
17459//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17460//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17461//  "MISSING_AUTHENTICATION_TOKEN", "statusCode": "403" }, { "_links": { "self":
17462//  { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE" }, "gatewayresponse:put":
17463//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17464//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE"
17465//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17466//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17467//  "INVALID_SIGNATURE", "statusCode": "403" }, { "_links": { "self": { "href":
17468//  "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE" }, "gatewayresponse:put":
17469//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
17470//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE"
17471//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
17472//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
17473//  "AUTHORIZER_FAILURE", "statusCode": "500" } ] } }
17474//
17475// Customize Gateway Responses (https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html)
17476type GetGatewayResponsesOutput struct {
17477	_ struct{} `type:"structure"`
17478
17479	// Returns the entire collection, because of no pagination support.
17480	Items []*UpdateGatewayResponseOutput `locationName:"item" type:"list"`
17481
17482	Position *string `locationName:"position" type:"string"`
17483}
17484
17485// String returns the string representation
17486func (s GetGatewayResponsesOutput) String() string {
17487	return awsutil.Prettify(s)
17488}
17489
17490// GoString returns the string representation
17491func (s GetGatewayResponsesOutput) GoString() string {
17492	return s.String()
17493}
17494
17495// SetItems sets the Items field's value.
17496func (s *GetGatewayResponsesOutput) SetItems(v []*UpdateGatewayResponseOutput) *GetGatewayResponsesOutput {
17497	s.Items = v
17498	return s
17499}
17500
17501// SetPosition sets the Position field's value.
17502func (s *GetGatewayResponsesOutput) SetPosition(v string) *GetGatewayResponsesOutput {
17503	s.Position = &v
17504	return s
17505}
17506
17507// Represents a request to get the integration configuration.
17508type GetIntegrationInput struct {
17509	_ struct{} `type:"structure"`
17510
17511	// [Required] Specifies a get integration request's HTTP method.
17512	//
17513	// HttpMethod is a required field
17514	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
17515
17516	// [Required] Specifies a get integration request's resource identifier
17517	//
17518	// ResourceId is a required field
17519	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
17520
17521	// [Required] The string identifier of the associated RestApi.
17522	//
17523	// RestApiId is a required field
17524	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17525}
17526
17527// String returns the string representation
17528func (s GetIntegrationInput) String() string {
17529	return awsutil.Prettify(s)
17530}
17531
17532// GoString returns the string representation
17533func (s GetIntegrationInput) GoString() string {
17534	return s.String()
17535}
17536
17537// Validate inspects the fields of the type to determine if they are valid.
17538func (s *GetIntegrationInput) Validate() error {
17539	invalidParams := request.ErrInvalidParams{Context: "GetIntegrationInput"}
17540	if s.HttpMethod == nil {
17541		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
17542	}
17543	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
17544		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
17545	}
17546	if s.ResourceId == nil {
17547		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
17548	}
17549	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
17550		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
17551	}
17552	if s.RestApiId == nil {
17553		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17554	}
17555	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17556		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17557	}
17558
17559	if invalidParams.Len() > 0 {
17560		return invalidParams
17561	}
17562	return nil
17563}
17564
17565// SetHttpMethod sets the HttpMethod field's value.
17566func (s *GetIntegrationInput) SetHttpMethod(v string) *GetIntegrationInput {
17567	s.HttpMethod = &v
17568	return s
17569}
17570
17571// SetResourceId sets the ResourceId field's value.
17572func (s *GetIntegrationInput) SetResourceId(v string) *GetIntegrationInput {
17573	s.ResourceId = &v
17574	return s
17575}
17576
17577// SetRestApiId sets the RestApiId field's value.
17578func (s *GetIntegrationInput) SetRestApiId(v string) *GetIntegrationInput {
17579	s.RestApiId = &v
17580	return s
17581}
17582
17583// Represents a get integration response request.
17584type GetIntegrationResponseInput struct {
17585	_ struct{} `type:"structure"`
17586
17587	// [Required] Specifies a get integration response request's HTTP method.
17588	//
17589	// HttpMethod is a required field
17590	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
17591
17592	// [Required] Specifies a get integration response request's resource identifier.
17593	//
17594	// ResourceId is a required field
17595	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
17596
17597	// [Required] The string identifier of the associated RestApi.
17598	//
17599	// RestApiId is a required field
17600	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17601
17602	// [Required] Specifies a get integration response request's status code.
17603	//
17604	// StatusCode is a required field
17605	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
17606}
17607
17608// String returns the string representation
17609func (s GetIntegrationResponseInput) String() string {
17610	return awsutil.Prettify(s)
17611}
17612
17613// GoString returns the string representation
17614func (s GetIntegrationResponseInput) GoString() string {
17615	return s.String()
17616}
17617
17618// Validate inspects the fields of the type to determine if they are valid.
17619func (s *GetIntegrationResponseInput) Validate() error {
17620	invalidParams := request.ErrInvalidParams{Context: "GetIntegrationResponseInput"}
17621	if s.HttpMethod == nil {
17622		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
17623	}
17624	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
17625		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
17626	}
17627	if s.ResourceId == nil {
17628		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
17629	}
17630	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
17631		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
17632	}
17633	if s.RestApiId == nil {
17634		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17635	}
17636	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17637		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17638	}
17639	if s.StatusCode == nil {
17640		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
17641	}
17642	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
17643		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
17644	}
17645
17646	if invalidParams.Len() > 0 {
17647		return invalidParams
17648	}
17649	return nil
17650}
17651
17652// SetHttpMethod sets the HttpMethod field's value.
17653func (s *GetIntegrationResponseInput) SetHttpMethod(v string) *GetIntegrationResponseInput {
17654	s.HttpMethod = &v
17655	return s
17656}
17657
17658// SetResourceId sets the ResourceId field's value.
17659func (s *GetIntegrationResponseInput) SetResourceId(v string) *GetIntegrationResponseInput {
17660	s.ResourceId = &v
17661	return s
17662}
17663
17664// SetRestApiId sets the RestApiId field's value.
17665func (s *GetIntegrationResponseInput) SetRestApiId(v string) *GetIntegrationResponseInput {
17666	s.RestApiId = &v
17667	return s
17668}
17669
17670// SetStatusCode sets the StatusCode field's value.
17671func (s *GetIntegrationResponseInput) SetStatusCode(v string) *GetIntegrationResponseInput {
17672	s.StatusCode = &v
17673	return s
17674}
17675
17676// Request to describe an existing Method resource.
17677type GetMethodInput struct {
17678	_ struct{} `type:"structure"`
17679
17680	// [Required] Specifies the method request's HTTP method type.
17681	//
17682	// HttpMethod is a required field
17683	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
17684
17685	// [Required] The Resource identifier for the Method resource.
17686	//
17687	// ResourceId is a required field
17688	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
17689
17690	// [Required] The string identifier of the associated RestApi.
17691	//
17692	// RestApiId is a required field
17693	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17694}
17695
17696// String returns the string representation
17697func (s GetMethodInput) String() string {
17698	return awsutil.Prettify(s)
17699}
17700
17701// GoString returns the string representation
17702func (s GetMethodInput) GoString() string {
17703	return s.String()
17704}
17705
17706// Validate inspects the fields of the type to determine if they are valid.
17707func (s *GetMethodInput) Validate() error {
17708	invalidParams := request.ErrInvalidParams{Context: "GetMethodInput"}
17709	if s.HttpMethod == nil {
17710		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
17711	}
17712	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
17713		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
17714	}
17715	if s.ResourceId == nil {
17716		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
17717	}
17718	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
17719		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
17720	}
17721	if s.RestApiId == nil {
17722		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17723	}
17724	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17725		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17726	}
17727
17728	if invalidParams.Len() > 0 {
17729		return invalidParams
17730	}
17731	return nil
17732}
17733
17734// SetHttpMethod sets the HttpMethod field's value.
17735func (s *GetMethodInput) SetHttpMethod(v string) *GetMethodInput {
17736	s.HttpMethod = &v
17737	return s
17738}
17739
17740// SetResourceId sets the ResourceId field's value.
17741func (s *GetMethodInput) SetResourceId(v string) *GetMethodInput {
17742	s.ResourceId = &v
17743	return s
17744}
17745
17746// SetRestApiId sets the RestApiId field's value.
17747func (s *GetMethodInput) SetRestApiId(v string) *GetMethodInput {
17748	s.RestApiId = &v
17749	return s
17750}
17751
17752// Request to describe a MethodResponse resource.
17753type GetMethodResponseInput struct {
17754	_ struct{} `type:"structure"`
17755
17756	// [Required] The HTTP verb of the Method resource.
17757	//
17758	// HttpMethod is a required field
17759	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
17760
17761	// [Required] The Resource identifier for the MethodResponse resource.
17762	//
17763	// ResourceId is a required field
17764	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
17765
17766	// [Required] The string identifier of the associated RestApi.
17767	//
17768	// RestApiId is a required field
17769	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17770
17771	// [Required] The status code for the MethodResponse resource.
17772	//
17773	// StatusCode is a required field
17774	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
17775}
17776
17777// String returns the string representation
17778func (s GetMethodResponseInput) String() string {
17779	return awsutil.Prettify(s)
17780}
17781
17782// GoString returns the string representation
17783func (s GetMethodResponseInput) GoString() string {
17784	return s.String()
17785}
17786
17787// Validate inspects the fields of the type to determine if they are valid.
17788func (s *GetMethodResponseInput) Validate() error {
17789	invalidParams := request.ErrInvalidParams{Context: "GetMethodResponseInput"}
17790	if s.HttpMethod == nil {
17791		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
17792	}
17793	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
17794		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
17795	}
17796	if s.ResourceId == nil {
17797		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
17798	}
17799	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
17800		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
17801	}
17802	if s.RestApiId == nil {
17803		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17804	}
17805	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17806		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17807	}
17808	if s.StatusCode == nil {
17809		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
17810	}
17811	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
17812		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
17813	}
17814
17815	if invalidParams.Len() > 0 {
17816		return invalidParams
17817	}
17818	return nil
17819}
17820
17821// SetHttpMethod sets the HttpMethod field's value.
17822func (s *GetMethodResponseInput) SetHttpMethod(v string) *GetMethodResponseInput {
17823	s.HttpMethod = &v
17824	return s
17825}
17826
17827// SetResourceId sets the ResourceId field's value.
17828func (s *GetMethodResponseInput) SetResourceId(v string) *GetMethodResponseInput {
17829	s.ResourceId = &v
17830	return s
17831}
17832
17833// SetRestApiId sets the RestApiId field's value.
17834func (s *GetMethodResponseInput) SetRestApiId(v string) *GetMethodResponseInput {
17835	s.RestApiId = &v
17836	return s
17837}
17838
17839// SetStatusCode sets the StatusCode field's value.
17840func (s *GetMethodResponseInput) SetStatusCode(v string) *GetMethodResponseInput {
17841	s.StatusCode = &v
17842	return s
17843}
17844
17845// Request to list information about a model in an existing RestApi resource.
17846type GetModelInput struct {
17847	_ struct{} `type:"structure"`
17848
17849	// A query parameter of a Boolean value to resolve (true) all external model
17850	// references and returns a flattened model schema or not (false) The default
17851	// is false.
17852	Flatten *bool `location:"querystring" locationName:"flatten" type:"boolean"`
17853
17854	// [Required] The name of the model as an identifier.
17855	//
17856	// ModelName is a required field
17857	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
17858
17859	// [Required] The RestApi identifier under which the Model exists.
17860	//
17861	// RestApiId is a required field
17862	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17863}
17864
17865// String returns the string representation
17866func (s GetModelInput) String() string {
17867	return awsutil.Prettify(s)
17868}
17869
17870// GoString returns the string representation
17871func (s GetModelInput) GoString() string {
17872	return s.String()
17873}
17874
17875// Validate inspects the fields of the type to determine if they are valid.
17876func (s *GetModelInput) Validate() error {
17877	invalidParams := request.ErrInvalidParams{Context: "GetModelInput"}
17878	if s.ModelName == nil {
17879		invalidParams.Add(request.NewErrParamRequired("ModelName"))
17880	}
17881	if s.ModelName != nil && len(*s.ModelName) < 1 {
17882		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
17883	}
17884	if s.RestApiId == nil {
17885		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17886	}
17887	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17888		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17889	}
17890
17891	if invalidParams.Len() > 0 {
17892		return invalidParams
17893	}
17894	return nil
17895}
17896
17897// SetFlatten sets the Flatten field's value.
17898func (s *GetModelInput) SetFlatten(v bool) *GetModelInput {
17899	s.Flatten = &v
17900	return s
17901}
17902
17903// SetModelName sets the ModelName field's value.
17904func (s *GetModelInput) SetModelName(v string) *GetModelInput {
17905	s.ModelName = &v
17906	return s
17907}
17908
17909// SetRestApiId sets the RestApiId field's value.
17910func (s *GetModelInput) SetRestApiId(v string) *GetModelInput {
17911	s.RestApiId = &v
17912	return s
17913}
17914
17915// Request to generate a sample mapping template used to transform the payload.
17916type GetModelTemplateInput struct {
17917	_ struct{} `type:"structure"`
17918
17919	// [Required] The name of the model for which to generate a template.
17920	//
17921	// ModelName is a required field
17922	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
17923
17924	// [Required] The string identifier of the associated RestApi.
17925	//
17926	// RestApiId is a required field
17927	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17928}
17929
17930// String returns the string representation
17931func (s GetModelTemplateInput) String() string {
17932	return awsutil.Prettify(s)
17933}
17934
17935// GoString returns the string representation
17936func (s GetModelTemplateInput) GoString() string {
17937	return s.String()
17938}
17939
17940// Validate inspects the fields of the type to determine if they are valid.
17941func (s *GetModelTemplateInput) Validate() error {
17942	invalidParams := request.ErrInvalidParams{Context: "GetModelTemplateInput"}
17943	if s.ModelName == nil {
17944		invalidParams.Add(request.NewErrParamRequired("ModelName"))
17945	}
17946	if s.ModelName != nil && len(*s.ModelName) < 1 {
17947		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
17948	}
17949	if s.RestApiId == nil {
17950		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17951	}
17952	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17953		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17954	}
17955
17956	if invalidParams.Len() > 0 {
17957		return invalidParams
17958	}
17959	return nil
17960}
17961
17962// SetModelName sets the ModelName field's value.
17963func (s *GetModelTemplateInput) SetModelName(v string) *GetModelTemplateInput {
17964	s.ModelName = &v
17965	return s
17966}
17967
17968// SetRestApiId sets the RestApiId field's value.
17969func (s *GetModelTemplateInput) SetRestApiId(v string) *GetModelTemplateInput {
17970	s.RestApiId = &v
17971	return s
17972}
17973
17974// Represents a mapping template used to transform a payload.
17975//
17976// Mapping Templates (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html#models-mappings-mappings)
17977type GetModelTemplateOutput struct {
17978	_ struct{} `type:"structure"`
17979
17980	// The Apache Velocity Template Language (VTL) (https://velocity.apache.org/engine/devel/vtl-reference-guide.html)
17981	// template content used for the template resource.
17982	Value *string `locationName:"value" type:"string"`
17983}
17984
17985// String returns the string representation
17986func (s GetModelTemplateOutput) String() string {
17987	return awsutil.Prettify(s)
17988}
17989
17990// GoString returns the string representation
17991func (s GetModelTemplateOutput) GoString() string {
17992	return s.String()
17993}
17994
17995// SetValue sets the Value field's value.
17996func (s *GetModelTemplateOutput) SetValue(v string) *GetModelTemplateOutput {
17997	s.Value = &v
17998	return s
17999}
18000
18001// Request to list existing Models defined for a RestApi resource.
18002type GetModelsInput struct {
18003	_ struct{} `type:"structure"`
18004
18005	// The maximum number of returned results per page. The default value is 25
18006	// and the maximum value is 500.
18007	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18008
18009	// The current pagination position in the paged result set.
18010	Position *string `location:"querystring" locationName:"position" type:"string"`
18011
18012	// [Required] The string identifier of the associated RestApi.
18013	//
18014	// RestApiId is a required field
18015	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18016}
18017
18018// String returns the string representation
18019func (s GetModelsInput) String() string {
18020	return awsutil.Prettify(s)
18021}
18022
18023// GoString returns the string representation
18024func (s GetModelsInput) GoString() string {
18025	return s.String()
18026}
18027
18028// Validate inspects the fields of the type to determine if they are valid.
18029func (s *GetModelsInput) Validate() error {
18030	invalidParams := request.ErrInvalidParams{Context: "GetModelsInput"}
18031	if s.RestApiId == nil {
18032		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18033	}
18034	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18035		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18036	}
18037
18038	if invalidParams.Len() > 0 {
18039		return invalidParams
18040	}
18041	return nil
18042}
18043
18044// SetLimit sets the Limit field's value.
18045func (s *GetModelsInput) SetLimit(v int64) *GetModelsInput {
18046	s.Limit = &v
18047	return s
18048}
18049
18050// SetPosition sets the Position field's value.
18051func (s *GetModelsInput) SetPosition(v string) *GetModelsInput {
18052	s.Position = &v
18053	return s
18054}
18055
18056// SetRestApiId sets the RestApiId field's value.
18057func (s *GetModelsInput) SetRestApiId(v string) *GetModelsInput {
18058	s.RestApiId = &v
18059	return s
18060}
18061
18062// Represents a collection of Model resources.
18063//
18064// Method, MethodResponse, Models and Mappings (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html)
18065type GetModelsOutput struct {
18066	_ struct{} `type:"structure"`
18067
18068	// The current page of elements from this collection.
18069	Items []*Model `locationName:"item" type:"list"`
18070
18071	Position *string `locationName:"position" type:"string"`
18072}
18073
18074// String returns the string representation
18075func (s GetModelsOutput) String() string {
18076	return awsutil.Prettify(s)
18077}
18078
18079// GoString returns the string representation
18080func (s GetModelsOutput) GoString() string {
18081	return s.String()
18082}
18083
18084// SetItems sets the Items field's value.
18085func (s *GetModelsOutput) SetItems(v []*Model) *GetModelsOutput {
18086	s.Items = v
18087	return s
18088}
18089
18090// SetPosition sets the Position field's value.
18091func (s *GetModelsOutput) SetPosition(v string) *GetModelsOutput {
18092	s.Position = &v
18093	return s
18094}
18095
18096// Gets a RequestValidator of a given RestApi.
18097type GetRequestValidatorInput struct {
18098	_ struct{} `type:"structure"`
18099
18100	// [Required] The identifier of the RequestValidator to be retrieved.
18101	//
18102	// RequestValidatorId is a required field
18103	RequestValidatorId *string `location:"uri" locationName:"requestvalidator_id" type:"string" required:"true"`
18104
18105	// [Required] The string identifier of the associated RestApi.
18106	//
18107	// RestApiId is a required field
18108	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18109}
18110
18111// String returns the string representation
18112func (s GetRequestValidatorInput) String() string {
18113	return awsutil.Prettify(s)
18114}
18115
18116// GoString returns the string representation
18117func (s GetRequestValidatorInput) GoString() string {
18118	return s.String()
18119}
18120
18121// Validate inspects the fields of the type to determine if they are valid.
18122func (s *GetRequestValidatorInput) Validate() error {
18123	invalidParams := request.ErrInvalidParams{Context: "GetRequestValidatorInput"}
18124	if s.RequestValidatorId == nil {
18125		invalidParams.Add(request.NewErrParamRequired("RequestValidatorId"))
18126	}
18127	if s.RequestValidatorId != nil && len(*s.RequestValidatorId) < 1 {
18128		invalidParams.Add(request.NewErrParamMinLen("RequestValidatorId", 1))
18129	}
18130	if s.RestApiId == nil {
18131		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18132	}
18133	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18134		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18135	}
18136
18137	if invalidParams.Len() > 0 {
18138		return invalidParams
18139	}
18140	return nil
18141}
18142
18143// SetRequestValidatorId sets the RequestValidatorId field's value.
18144func (s *GetRequestValidatorInput) SetRequestValidatorId(v string) *GetRequestValidatorInput {
18145	s.RequestValidatorId = &v
18146	return s
18147}
18148
18149// SetRestApiId sets the RestApiId field's value.
18150func (s *GetRequestValidatorInput) SetRestApiId(v string) *GetRequestValidatorInput {
18151	s.RestApiId = &v
18152	return s
18153}
18154
18155// Gets the RequestValidators collection of a given RestApi.
18156type GetRequestValidatorsInput struct {
18157	_ struct{} `type:"structure"`
18158
18159	// The maximum number of returned results per page. The default value is 25
18160	// and the maximum value is 500.
18161	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18162
18163	// The current pagination position in the paged result set.
18164	Position *string `location:"querystring" locationName:"position" type:"string"`
18165
18166	// [Required] The string identifier of the associated RestApi.
18167	//
18168	// RestApiId is a required field
18169	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18170}
18171
18172// String returns the string representation
18173func (s GetRequestValidatorsInput) String() string {
18174	return awsutil.Prettify(s)
18175}
18176
18177// GoString returns the string representation
18178func (s GetRequestValidatorsInput) GoString() string {
18179	return s.String()
18180}
18181
18182// Validate inspects the fields of the type to determine if they are valid.
18183func (s *GetRequestValidatorsInput) Validate() error {
18184	invalidParams := request.ErrInvalidParams{Context: "GetRequestValidatorsInput"}
18185	if s.RestApiId == nil {
18186		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18187	}
18188	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18189		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18190	}
18191
18192	if invalidParams.Len() > 0 {
18193		return invalidParams
18194	}
18195	return nil
18196}
18197
18198// SetLimit sets the Limit field's value.
18199func (s *GetRequestValidatorsInput) SetLimit(v int64) *GetRequestValidatorsInput {
18200	s.Limit = &v
18201	return s
18202}
18203
18204// SetPosition sets the Position field's value.
18205func (s *GetRequestValidatorsInput) SetPosition(v string) *GetRequestValidatorsInput {
18206	s.Position = &v
18207	return s
18208}
18209
18210// SetRestApiId sets the RestApiId field's value.
18211func (s *GetRequestValidatorsInput) SetRestApiId(v string) *GetRequestValidatorsInput {
18212	s.RestApiId = &v
18213	return s
18214}
18215
18216// A collection of RequestValidator resources of a given RestApi.
18217//
18218// In OpenAPI, the RequestValidators of an API is defined by the x-amazon-apigateway-request-validators
18219// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html#api-gateway-swagger-extensions-request-validators.html)
18220// extension.
18221//
18222// Enable Basic Request Validation in API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html)
18223type GetRequestValidatorsOutput struct {
18224	_ struct{} `type:"structure"`
18225
18226	// The current page of elements from this collection.
18227	Items []*UpdateRequestValidatorOutput `locationName:"item" type:"list"`
18228
18229	Position *string `locationName:"position" type:"string"`
18230}
18231
18232// String returns the string representation
18233func (s GetRequestValidatorsOutput) String() string {
18234	return awsutil.Prettify(s)
18235}
18236
18237// GoString returns the string representation
18238func (s GetRequestValidatorsOutput) GoString() string {
18239	return s.String()
18240}
18241
18242// SetItems sets the Items field's value.
18243func (s *GetRequestValidatorsOutput) SetItems(v []*UpdateRequestValidatorOutput) *GetRequestValidatorsOutput {
18244	s.Items = v
18245	return s
18246}
18247
18248// SetPosition sets the Position field's value.
18249func (s *GetRequestValidatorsOutput) SetPosition(v string) *GetRequestValidatorsOutput {
18250	s.Position = &v
18251	return s
18252}
18253
18254// Request to list information about a resource.
18255type GetResourceInput struct {
18256	_ struct{} `type:"structure"`
18257
18258	// A query parameter to retrieve the specified resources embedded in the returned
18259	// Resource representation in the response. This embed parameter value is a
18260	// list of comma-separated strings. Currently, the request supports only retrieval
18261	// of the embedded Method resources this way. The query parameter value must
18262	// be a single-valued list and contain the "methods" string. For example, GET
18263	// /restapis/{restapi_id}/resources/{resource_id}?embed=methods.
18264	Embed []*string `location:"querystring" locationName:"embed" type:"list"`
18265
18266	// [Required] The identifier for the Resource resource.
18267	//
18268	// ResourceId is a required field
18269	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
18270
18271	// [Required] The string identifier of the associated RestApi.
18272	//
18273	// RestApiId is a required field
18274	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18275}
18276
18277// String returns the string representation
18278func (s GetResourceInput) String() string {
18279	return awsutil.Prettify(s)
18280}
18281
18282// GoString returns the string representation
18283func (s GetResourceInput) GoString() string {
18284	return s.String()
18285}
18286
18287// Validate inspects the fields of the type to determine if they are valid.
18288func (s *GetResourceInput) Validate() error {
18289	invalidParams := request.ErrInvalidParams{Context: "GetResourceInput"}
18290	if s.ResourceId == nil {
18291		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
18292	}
18293	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
18294		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
18295	}
18296	if s.RestApiId == nil {
18297		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18298	}
18299	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18300		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18301	}
18302
18303	if invalidParams.Len() > 0 {
18304		return invalidParams
18305	}
18306	return nil
18307}
18308
18309// SetEmbed sets the Embed field's value.
18310func (s *GetResourceInput) SetEmbed(v []*string) *GetResourceInput {
18311	s.Embed = v
18312	return s
18313}
18314
18315// SetResourceId sets the ResourceId field's value.
18316func (s *GetResourceInput) SetResourceId(v string) *GetResourceInput {
18317	s.ResourceId = &v
18318	return s
18319}
18320
18321// SetRestApiId sets the RestApiId field's value.
18322func (s *GetResourceInput) SetRestApiId(v string) *GetResourceInput {
18323	s.RestApiId = &v
18324	return s
18325}
18326
18327// Request to list information about a collection of resources.
18328type GetResourcesInput struct {
18329	_ struct{} `type:"structure"`
18330
18331	// A query parameter used to retrieve the specified resources embedded in the
18332	// returned Resources resource in the response. This embed parameter value is
18333	// a list of comma-separated strings. Currently, the request supports only retrieval
18334	// of the embedded Method resources this way. The query parameter value must
18335	// be a single-valued list and contain the "methods" string. For example, GET
18336	// /restapis/{restapi_id}/resources?embed=methods.
18337	Embed []*string `location:"querystring" locationName:"embed" type:"list"`
18338
18339	// The maximum number of returned results per page. The default value is 25
18340	// and the maximum value is 500.
18341	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18342
18343	// The current pagination position in the paged result set.
18344	Position *string `location:"querystring" locationName:"position" type:"string"`
18345
18346	// [Required] The string identifier of the associated RestApi.
18347	//
18348	// RestApiId is a required field
18349	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18350}
18351
18352// String returns the string representation
18353func (s GetResourcesInput) String() string {
18354	return awsutil.Prettify(s)
18355}
18356
18357// GoString returns the string representation
18358func (s GetResourcesInput) GoString() string {
18359	return s.String()
18360}
18361
18362// Validate inspects the fields of the type to determine if they are valid.
18363func (s *GetResourcesInput) Validate() error {
18364	invalidParams := request.ErrInvalidParams{Context: "GetResourcesInput"}
18365	if s.RestApiId == nil {
18366		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18367	}
18368	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18369		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18370	}
18371
18372	if invalidParams.Len() > 0 {
18373		return invalidParams
18374	}
18375	return nil
18376}
18377
18378// SetEmbed sets the Embed field's value.
18379func (s *GetResourcesInput) SetEmbed(v []*string) *GetResourcesInput {
18380	s.Embed = v
18381	return s
18382}
18383
18384// SetLimit sets the Limit field's value.
18385func (s *GetResourcesInput) SetLimit(v int64) *GetResourcesInput {
18386	s.Limit = &v
18387	return s
18388}
18389
18390// SetPosition sets the Position field's value.
18391func (s *GetResourcesInput) SetPosition(v string) *GetResourcesInput {
18392	s.Position = &v
18393	return s
18394}
18395
18396// SetRestApiId sets the RestApiId field's value.
18397func (s *GetResourcesInput) SetRestApiId(v string) *GetResourcesInput {
18398	s.RestApiId = &v
18399	return s
18400}
18401
18402// Represents a collection of Resource resources.
18403//
18404// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
18405type GetResourcesOutput struct {
18406	_ struct{} `type:"structure"`
18407
18408	// The current page of elements from this collection.
18409	Items []*Resource `locationName:"item" type:"list"`
18410
18411	Position *string `locationName:"position" type:"string"`
18412}
18413
18414// String returns the string representation
18415func (s GetResourcesOutput) String() string {
18416	return awsutil.Prettify(s)
18417}
18418
18419// GoString returns the string representation
18420func (s GetResourcesOutput) GoString() string {
18421	return s.String()
18422}
18423
18424// SetItems sets the Items field's value.
18425func (s *GetResourcesOutput) SetItems(v []*Resource) *GetResourcesOutput {
18426	s.Items = v
18427	return s
18428}
18429
18430// SetPosition sets the Position field's value.
18431func (s *GetResourcesOutput) SetPosition(v string) *GetResourcesOutput {
18432	s.Position = &v
18433	return s
18434}
18435
18436// The GET request to list an existing RestApi defined for your collection.
18437type GetRestApiInput struct {
18438	_ struct{} `type:"structure"`
18439
18440	// [Required] The string identifier of the associated RestApi.
18441	//
18442	// RestApiId is a required field
18443	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18444}
18445
18446// String returns the string representation
18447func (s GetRestApiInput) String() string {
18448	return awsutil.Prettify(s)
18449}
18450
18451// GoString returns the string representation
18452func (s GetRestApiInput) GoString() string {
18453	return s.String()
18454}
18455
18456// Validate inspects the fields of the type to determine if they are valid.
18457func (s *GetRestApiInput) Validate() error {
18458	invalidParams := request.ErrInvalidParams{Context: "GetRestApiInput"}
18459	if s.RestApiId == nil {
18460		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18461	}
18462	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18463		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18464	}
18465
18466	if invalidParams.Len() > 0 {
18467		return invalidParams
18468	}
18469	return nil
18470}
18471
18472// SetRestApiId sets the RestApiId field's value.
18473func (s *GetRestApiInput) SetRestApiId(v string) *GetRestApiInput {
18474	s.RestApiId = &v
18475	return s
18476}
18477
18478// The GET request to list existing RestApis defined for your collection.
18479type GetRestApisInput struct {
18480	_ struct{} `type:"structure"`
18481
18482	// The maximum number of returned results per page. The default value is 25
18483	// and the maximum value is 500.
18484	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18485
18486	// The current pagination position in the paged result set.
18487	Position *string `location:"querystring" locationName:"position" type:"string"`
18488}
18489
18490// String returns the string representation
18491func (s GetRestApisInput) String() string {
18492	return awsutil.Prettify(s)
18493}
18494
18495// GoString returns the string representation
18496func (s GetRestApisInput) GoString() string {
18497	return s.String()
18498}
18499
18500// SetLimit sets the Limit field's value.
18501func (s *GetRestApisInput) SetLimit(v int64) *GetRestApisInput {
18502	s.Limit = &v
18503	return s
18504}
18505
18506// SetPosition sets the Position field's value.
18507func (s *GetRestApisInput) SetPosition(v string) *GetRestApisInput {
18508	s.Position = &v
18509	return s
18510}
18511
18512// Contains references to your APIs and links that guide you in how to interact
18513// with your collection. A collection offers a paginated view of your APIs.
18514//
18515// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
18516type GetRestApisOutput struct {
18517	_ struct{} `type:"structure"`
18518
18519	// The current page of elements from this collection.
18520	Items []*RestApi `locationName:"item" type:"list"`
18521
18522	Position *string `locationName:"position" type:"string"`
18523}
18524
18525// String returns the string representation
18526func (s GetRestApisOutput) String() string {
18527	return awsutil.Prettify(s)
18528}
18529
18530// GoString returns the string representation
18531func (s GetRestApisOutput) GoString() string {
18532	return s.String()
18533}
18534
18535// SetItems sets the Items field's value.
18536func (s *GetRestApisOutput) SetItems(v []*RestApi) *GetRestApisOutput {
18537	s.Items = v
18538	return s
18539}
18540
18541// SetPosition sets the Position field's value.
18542func (s *GetRestApisOutput) SetPosition(v string) *GetRestApisOutput {
18543	s.Position = &v
18544	return s
18545}
18546
18547// Request a new generated client SDK for a RestApi and Stage.
18548type GetSdkInput struct {
18549	_ struct{} `type:"structure"`
18550
18551	// A string-to-string key-value map of query parameters sdkType-dependent properties
18552	// of the SDK. For sdkType of objectivec or swift, a parameter named classPrefix
18553	// is required. For sdkType of android, parameters named groupId, artifactId,
18554	// artifactVersion, and invokerPackage are required. For sdkType of java, parameters
18555	// named serviceName and javaPackageName are required.
18556	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
18557
18558	// [Required] The string identifier of the associated RestApi.
18559	//
18560	// RestApiId is a required field
18561	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18562
18563	// [Required] The language for the generated SDK. Currently java, javascript,
18564	// android, objectivec (for iOS), swift (for iOS), and ruby are supported.
18565	//
18566	// SdkType is a required field
18567	SdkType *string `location:"uri" locationName:"sdk_type" type:"string" required:"true"`
18568
18569	// [Required] The name of the Stage that the SDK will use.
18570	//
18571	// StageName is a required field
18572	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
18573}
18574
18575// String returns the string representation
18576func (s GetSdkInput) String() string {
18577	return awsutil.Prettify(s)
18578}
18579
18580// GoString returns the string representation
18581func (s GetSdkInput) GoString() string {
18582	return s.String()
18583}
18584
18585// Validate inspects the fields of the type to determine if they are valid.
18586func (s *GetSdkInput) Validate() error {
18587	invalidParams := request.ErrInvalidParams{Context: "GetSdkInput"}
18588	if s.RestApiId == nil {
18589		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18590	}
18591	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18592		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18593	}
18594	if s.SdkType == nil {
18595		invalidParams.Add(request.NewErrParamRequired("SdkType"))
18596	}
18597	if s.SdkType != nil && len(*s.SdkType) < 1 {
18598		invalidParams.Add(request.NewErrParamMinLen("SdkType", 1))
18599	}
18600	if s.StageName == nil {
18601		invalidParams.Add(request.NewErrParamRequired("StageName"))
18602	}
18603	if s.StageName != nil && len(*s.StageName) < 1 {
18604		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
18605	}
18606
18607	if invalidParams.Len() > 0 {
18608		return invalidParams
18609	}
18610	return nil
18611}
18612
18613// SetParameters sets the Parameters field's value.
18614func (s *GetSdkInput) SetParameters(v map[string]*string) *GetSdkInput {
18615	s.Parameters = v
18616	return s
18617}
18618
18619// SetRestApiId sets the RestApiId field's value.
18620func (s *GetSdkInput) SetRestApiId(v string) *GetSdkInput {
18621	s.RestApiId = &v
18622	return s
18623}
18624
18625// SetSdkType sets the SdkType field's value.
18626func (s *GetSdkInput) SetSdkType(v string) *GetSdkInput {
18627	s.SdkType = &v
18628	return s
18629}
18630
18631// SetStageName sets the StageName field's value.
18632func (s *GetSdkInput) SetStageName(v string) *GetSdkInput {
18633	s.StageName = &v
18634	return s
18635}
18636
18637// The binary blob response to GetSdk, which contains the generated SDK.
18638type GetSdkOutput struct {
18639	_ struct{} `type:"structure" payload:"Body"`
18640
18641	// The binary blob response to GetSdk, which contains the generated SDK.
18642	Body []byte `locationName:"body" type:"blob"`
18643
18644	// The content-disposition header value in the HTTP response.
18645	ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"`
18646
18647	// The content-type header value in the HTTP response.
18648	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
18649}
18650
18651// String returns the string representation
18652func (s GetSdkOutput) String() string {
18653	return awsutil.Prettify(s)
18654}
18655
18656// GoString returns the string representation
18657func (s GetSdkOutput) GoString() string {
18658	return s.String()
18659}
18660
18661// SetBody sets the Body field's value.
18662func (s *GetSdkOutput) SetBody(v []byte) *GetSdkOutput {
18663	s.Body = v
18664	return s
18665}
18666
18667// SetContentDisposition sets the ContentDisposition field's value.
18668func (s *GetSdkOutput) SetContentDisposition(v string) *GetSdkOutput {
18669	s.ContentDisposition = &v
18670	return s
18671}
18672
18673// SetContentType sets the ContentType field's value.
18674func (s *GetSdkOutput) SetContentType(v string) *GetSdkOutput {
18675	s.ContentType = &v
18676	return s
18677}
18678
18679// Get an SdkType instance.
18680type GetSdkTypeInput struct {
18681	_ struct{} `type:"structure"`
18682
18683	// [Required] The identifier of the queried SdkType instance.
18684	//
18685	// Id is a required field
18686	Id *string `location:"uri" locationName:"sdktype_id" type:"string" required:"true"`
18687}
18688
18689// String returns the string representation
18690func (s GetSdkTypeInput) String() string {
18691	return awsutil.Prettify(s)
18692}
18693
18694// GoString returns the string representation
18695func (s GetSdkTypeInput) GoString() string {
18696	return s.String()
18697}
18698
18699// Validate inspects the fields of the type to determine if they are valid.
18700func (s *GetSdkTypeInput) Validate() error {
18701	invalidParams := request.ErrInvalidParams{Context: "GetSdkTypeInput"}
18702	if s.Id == nil {
18703		invalidParams.Add(request.NewErrParamRequired("Id"))
18704	}
18705	if s.Id != nil && len(*s.Id) < 1 {
18706		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
18707	}
18708
18709	if invalidParams.Len() > 0 {
18710		return invalidParams
18711	}
18712	return nil
18713}
18714
18715// SetId sets the Id field's value.
18716func (s *GetSdkTypeInput) SetId(v string) *GetSdkTypeInput {
18717	s.Id = &v
18718	return s
18719}
18720
18721// Get the SdkTypes collection.
18722type GetSdkTypesInput struct {
18723	_ struct{} `type:"structure"`
18724
18725	// The maximum number of returned results per page. The default value is 25
18726	// and the maximum value is 500.
18727	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18728
18729	// The current pagination position in the paged result set.
18730	Position *string `location:"querystring" locationName:"position" type:"string"`
18731}
18732
18733// String returns the string representation
18734func (s GetSdkTypesInput) String() string {
18735	return awsutil.Prettify(s)
18736}
18737
18738// GoString returns the string representation
18739func (s GetSdkTypesInput) GoString() string {
18740	return s.String()
18741}
18742
18743// SetLimit sets the Limit field's value.
18744func (s *GetSdkTypesInput) SetLimit(v int64) *GetSdkTypesInput {
18745	s.Limit = &v
18746	return s
18747}
18748
18749// SetPosition sets the Position field's value.
18750func (s *GetSdkTypesInput) SetPosition(v string) *GetSdkTypesInput {
18751	s.Position = &v
18752	return s
18753}
18754
18755// The collection of SdkType instances.
18756type GetSdkTypesOutput struct {
18757	_ struct{} `type:"structure"`
18758
18759	// The current page of elements from this collection.
18760	Items []*SdkType `locationName:"item" type:"list"`
18761
18762	Position *string `locationName:"position" type:"string"`
18763}
18764
18765// String returns the string representation
18766func (s GetSdkTypesOutput) String() string {
18767	return awsutil.Prettify(s)
18768}
18769
18770// GoString returns the string representation
18771func (s GetSdkTypesOutput) GoString() string {
18772	return s.String()
18773}
18774
18775// SetItems sets the Items field's value.
18776func (s *GetSdkTypesOutput) SetItems(v []*SdkType) *GetSdkTypesOutput {
18777	s.Items = v
18778	return s
18779}
18780
18781// SetPosition sets the Position field's value.
18782func (s *GetSdkTypesOutput) SetPosition(v string) *GetSdkTypesOutput {
18783	s.Position = &v
18784	return s
18785}
18786
18787// Requests API Gateway to get information about a Stage resource.
18788type GetStageInput struct {
18789	_ struct{} `type:"structure"`
18790
18791	// [Required] The string identifier of the associated RestApi.
18792	//
18793	// RestApiId is a required field
18794	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18795
18796	// [Required] The name of the Stage resource to get information about.
18797	//
18798	// StageName is a required field
18799	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
18800}
18801
18802// String returns the string representation
18803func (s GetStageInput) String() string {
18804	return awsutil.Prettify(s)
18805}
18806
18807// GoString returns the string representation
18808func (s GetStageInput) GoString() string {
18809	return s.String()
18810}
18811
18812// Validate inspects the fields of the type to determine if they are valid.
18813func (s *GetStageInput) Validate() error {
18814	invalidParams := request.ErrInvalidParams{Context: "GetStageInput"}
18815	if s.RestApiId == nil {
18816		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18817	}
18818	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18819		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18820	}
18821	if s.StageName == nil {
18822		invalidParams.Add(request.NewErrParamRequired("StageName"))
18823	}
18824	if s.StageName != nil && len(*s.StageName) < 1 {
18825		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
18826	}
18827
18828	if invalidParams.Len() > 0 {
18829		return invalidParams
18830	}
18831	return nil
18832}
18833
18834// SetRestApiId sets the RestApiId field's value.
18835func (s *GetStageInput) SetRestApiId(v string) *GetStageInput {
18836	s.RestApiId = &v
18837	return s
18838}
18839
18840// SetStageName sets the StageName field's value.
18841func (s *GetStageInput) SetStageName(v string) *GetStageInput {
18842	s.StageName = &v
18843	return s
18844}
18845
18846// Requests API Gateway to get information about one or more Stage resources.
18847type GetStagesInput struct {
18848	_ struct{} `type:"structure"`
18849
18850	// The stages' deployment identifiers.
18851	DeploymentId *string `location:"querystring" locationName:"deploymentId" type:"string"`
18852
18853	// [Required] The string identifier of the associated RestApi.
18854	//
18855	// RestApiId is a required field
18856	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18857}
18858
18859// String returns the string representation
18860func (s GetStagesInput) String() string {
18861	return awsutil.Prettify(s)
18862}
18863
18864// GoString returns the string representation
18865func (s GetStagesInput) GoString() string {
18866	return s.String()
18867}
18868
18869// Validate inspects the fields of the type to determine if they are valid.
18870func (s *GetStagesInput) Validate() error {
18871	invalidParams := request.ErrInvalidParams{Context: "GetStagesInput"}
18872	if s.RestApiId == nil {
18873		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18874	}
18875	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18876		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18877	}
18878
18879	if invalidParams.Len() > 0 {
18880		return invalidParams
18881	}
18882	return nil
18883}
18884
18885// SetDeploymentId sets the DeploymentId field's value.
18886func (s *GetStagesInput) SetDeploymentId(v string) *GetStagesInput {
18887	s.DeploymentId = &v
18888	return s
18889}
18890
18891// SetRestApiId sets the RestApiId field's value.
18892func (s *GetStagesInput) SetRestApiId(v string) *GetStagesInput {
18893	s.RestApiId = &v
18894	return s
18895}
18896
18897// A list of Stage resources that are associated with the ApiKey resource.
18898//
18899// Deploying API in Stages (https://docs.aws.amazon.com/apigateway/latest/developerguide/stages.html)
18900type GetStagesOutput struct {
18901	_ struct{} `type:"structure"`
18902
18903	// The current page of elements from this collection.
18904	Item []*Stage `locationName:"item" type:"list"`
18905}
18906
18907// String returns the string representation
18908func (s GetStagesOutput) String() string {
18909	return awsutil.Prettify(s)
18910}
18911
18912// GoString returns the string representation
18913func (s GetStagesOutput) GoString() string {
18914	return s.String()
18915}
18916
18917// SetItem sets the Item field's value.
18918func (s *GetStagesOutput) SetItem(v []*Stage) *GetStagesOutput {
18919	s.Item = v
18920	return s
18921}
18922
18923// Gets the Tags collection for a given resource.
18924type GetTagsInput struct {
18925	_ struct{} `type:"structure"`
18926
18927	// (Not currently supported) The maximum number of returned results per page.
18928	// The default value is 25 and the maximum value is 500.
18929	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18930
18931	// (Not currently supported) The current pagination position in the paged result
18932	// set.
18933	Position *string `location:"querystring" locationName:"position" type:"string"`
18934
18935	// [Required] The ARN of a resource that can be tagged. The resource ARN must
18936	// be URL-encoded.
18937	//
18938	// ResourceArn is a required field
18939	ResourceArn *string `location:"uri" locationName:"resource_arn" type:"string" required:"true"`
18940}
18941
18942// String returns the string representation
18943func (s GetTagsInput) String() string {
18944	return awsutil.Prettify(s)
18945}
18946
18947// GoString returns the string representation
18948func (s GetTagsInput) GoString() string {
18949	return s.String()
18950}
18951
18952// Validate inspects the fields of the type to determine if they are valid.
18953func (s *GetTagsInput) Validate() error {
18954	invalidParams := request.ErrInvalidParams{Context: "GetTagsInput"}
18955	if s.ResourceArn == nil {
18956		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
18957	}
18958	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
18959		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
18960	}
18961
18962	if invalidParams.Len() > 0 {
18963		return invalidParams
18964	}
18965	return nil
18966}
18967
18968// SetLimit sets the Limit field's value.
18969func (s *GetTagsInput) SetLimit(v int64) *GetTagsInput {
18970	s.Limit = &v
18971	return s
18972}
18973
18974// SetPosition sets the Position field's value.
18975func (s *GetTagsInput) SetPosition(v string) *GetTagsInput {
18976	s.Position = &v
18977	return s
18978}
18979
18980// SetResourceArn sets the ResourceArn field's value.
18981func (s *GetTagsInput) SetResourceArn(v string) *GetTagsInput {
18982	s.ResourceArn = &v
18983	return s
18984}
18985
18986// The collection of tags. Each tag element is associated with a given resource.
18987type GetTagsOutput struct {
18988	_ struct{} `type:"structure"`
18989
18990	// The collection of tags. Each tag element is associated with a given resource.
18991	Tags map[string]*string `locationName:"tags" type:"map"`
18992}
18993
18994// String returns the string representation
18995func (s GetTagsOutput) String() string {
18996	return awsutil.Prettify(s)
18997}
18998
18999// GoString returns the string representation
19000func (s GetTagsOutput) GoString() string {
19001	return s.String()
19002}
19003
19004// SetTags sets the Tags field's value.
19005func (s *GetTagsOutput) SetTags(v map[string]*string) *GetTagsOutput {
19006	s.Tags = v
19007	return s
19008}
19009
19010// The GET request to get the usage data of a usage plan in a specified time
19011// interval.
19012type GetUsageInput struct {
19013	_ struct{} `type:"structure"`
19014
19015	// [Required] The ending date (e.g., 2016-12-31) of the usage data.
19016	//
19017	// EndDate is a required field
19018	EndDate *string `location:"querystring" locationName:"endDate" type:"string" required:"true"`
19019
19020	// The Id of the API key associated with the resultant usage data.
19021	KeyId *string `location:"querystring" locationName:"keyId" type:"string"`
19022
19023	// The maximum number of returned results per page. The default value is 25
19024	// and the maximum value is 500.
19025	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19026
19027	// The current pagination position in the paged result set.
19028	Position *string `location:"querystring" locationName:"position" type:"string"`
19029
19030	// [Required] The starting date (e.g., 2016-01-01) of the usage data.
19031	//
19032	// StartDate is a required field
19033	StartDate *string `location:"querystring" locationName:"startDate" type:"string" required:"true"`
19034
19035	// [Required] The Id of the usage plan associated with the usage data.
19036	//
19037	// UsagePlanId is a required field
19038	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
19039}
19040
19041// String returns the string representation
19042func (s GetUsageInput) String() string {
19043	return awsutil.Prettify(s)
19044}
19045
19046// GoString returns the string representation
19047func (s GetUsageInput) GoString() string {
19048	return s.String()
19049}
19050
19051// Validate inspects the fields of the type to determine if they are valid.
19052func (s *GetUsageInput) Validate() error {
19053	invalidParams := request.ErrInvalidParams{Context: "GetUsageInput"}
19054	if s.EndDate == nil {
19055		invalidParams.Add(request.NewErrParamRequired("EndDate"))
19056	}
19057	if s.StartDate == nil {
19058		invalidParams.Add(request.NewErrParamRequired("StartDate"))
19059	}
19060	if s.UsagePlanId == nil {
19061		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
19062	}
19063	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
19064		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
19065	}
19066
19067	if invalidParams.Len() > 0 {
19068		return invalidParams
19069	}
19070	return nil
19071}
19072
19073// SetEndDate sets the EndDate field's value.
19074func (s *GetUsageInput) SetEndDate(v string) *GetUsageInput {
19075	s.EndDate = &v
19076	return s
19077}
19078
19079// SetKeyId sets the KeyId field's value.
19080func (s *GetUsageInput) SetKeyId(v string) *GetUsageInput {
19081	s.KeyId = &v
19082	return s
19083}
19084
19085// SetLimit sets the Limit field's value.
19086func (s *GetUsageInput) SetLimit(v int64) *GetUsageInput {
19087	s.Limit = &v
19088	return s
19089}
19090
19091// SetPosition sets the Position field's value.
19092func (s *GetUsageInput) SetPosition(v string) *GetUsageInput {
19093	s.Position = &v
19094	return s
19095}
19096
19097// SetStartDate sets the StartDate field's value.
19098func (s *GetUsageInput) SetStartDate(v string) *GetUsageInput {
19099	s.StartDate = &v
19100	return s
19101}
19102
19103// SetUsagePlanId sets the UsagePlanId field's value.
19104func (s *GetUsageInput) SetUsagePlanId(v string) *GetUsageInput {
19105	s.UsagePlanId = &v
19106	return s
19107}
19108
19109// The GET request to get a usage plan of a given plan identifier.
19110type GetUsagePlanInput struct {
19111	_ struct{} `type:"structure"`
19112
19113	// [Required] The identifier of the UsagePlan resource to be retrieved.
19114	//
19115	// UsagePlanId is a required field
19116	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
19117}
19118
19119// String returns the string representation
19120func (s GetUsagePlanInput) String() string {
19121	return awsutil.Prettify(s)
19122}
19123
19124// GoString returns the string representation
19125func (s GetUsagePlanInput) GoString() string {
19126	return s.String()
19127}
19128
19129// Validate inspects the fields of the type to determine if they are valid.
19130func (s *GetUsagePlanInput) Validate() error {
19131	invalidParams := request.ErrInvalidParams{Context: "GetUsagePlanInput"}
19132	if s.UsagePlanId == nil {
19133		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
19134	}
19135	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
19136		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
19137	}
19138
19139	if invalidParams.Len() > 0 {
19140		return invalidParams
19141	}
19142	return nil
19143}
19144
19145// SetUsagePlanId sets the UsagePlanId field's value.
19146func (s *GetUsagePlanInput) SetUsagePlanId(v string) *GetUsagePlanInput {
19147	s.UsagePlanId = &v
19148	return s
19149}
19150
19151// The GET request to get a usage plan key of a given key identifier.
19152type GetUsagePlanKeyInput struct {
19153	_ struct{} `type:"structure"`
19154
19155	// [Required] The key Id of the to-be-retrieved UsagePlanKey resource representing
19156	// a plan customer.
19157	//
19158	// KeyId is a required field
19159	KeyId *string `location:"uri" locationName:"keyId" type:"string" required:"true"`
19160
19161	// [Required] The Id of the UsagePlan resource representing the usage plan containing
19162	// the to-be-retrieved UsagePlanKey resource representing a plan customer.
19163	//
19164	// UsagePlanId is a required field
19165	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
19166}
19167
19168// String returns the string representation
19169func (s GetUsagePlanKeyInput) String() string {
19170	return awsutil.Prettify(s)
19171}
19172
19173// GoString returns the string representation
19174func (s GetUsagePlanKeyInput) GoString() string {
19175	return s.String()
19176}
19177
19178// Validate inspects the fields of the type to determine if they are valid.
19179func (s *GetUsagePlanKeyInput) Validate() error {
19180	invalidParams := request.ErrInvalidParams{Context: "GetUsagePlanKeyInput"}
19181	if s.KeyId == nil {
19182		invalidParams.Add(request.NewErrParamRequired("KeyId"))
19183	}
19184	if s.KeyId != nil && len(*s.KeyId) < 1 {
19185		invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
19186	}
19187	if s.UsagePlanId == nil {
19188		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
19189	}
19190	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
19191		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
19192	}
19193
19194	if invalidParams.Len() > 0 {
19195		return invalidParams
19196	}
19197	return nil
19198}
19199
19200// SetKeyId sets the KeyId field's value.
19201func (s *GetUsagePlanKeyInput) SetKeyId(v string) *GetUsagePlanKeyInput {
19202	s.KeyId = &v
19203	return s
19204}
19205
19206// SetUsagePlanId sets the UsagePlanId field's value.
19207func (s *GetUsagePlanKeyInput) SetUsagePlanId(v string) *GetUsagePlanKeyInput {
19208	s.UsagePlanId = &v
19209	return s
19210}
19211
19212// The GET request to get all the usage plan keys representing the API keys
19213// added to a specified usage plan.
19214type GetUsagePlanKeysInput struct {
19215	_ struct{} `type:"structure"`
19216
19217	// The maximum number of returned results per page. The default value is 25
19218	// and the maximum value is 500.
19219	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19220
19221	// A query parameter specifying the name of the to-be-returned usage plan keys.
19222	NameQuery *string `location:"querystring" locationName:"name" type:"string"`
19223
19224	// The current pagination position in the paged result set.
19225	Position *string `location:"querystring" locationName:"position" type:"string"`
19226
19227	// [Required] The Id of the UsagePlan resource representing the usage plan containing
19228	// the to-be-retrieved UsagePlanKey resource representing a plan customer.
19229	//
19230	// UsagePlanId is a required field
19231	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
19232}
19233
19234// String returns the string representation
19235func (s GetUsagePlanKeysInput) String() string {
19236	return awsutil.Prettify(s)
19237}
19238
19239// GoString returns the string representation
19240func (s GetUsagePlanKeysInput) GoString() string {
19241	return s.String()
19242}
19243
19244// Validate inspects the fields of the type to determine if they are valid.
19245func (s *GetUsagePlanKeysInput) Validate() error {
19246	invalidParams := request.ErrInvalidParams{Context: "GetUsagePlanKeysInput"}
19247	if s.UsagePlanId == nil {
19248		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
19249	}
19250	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
19251		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
19252	}
19253
19254	if invalidParams.Len() > 0 {
19255		return invalidParams
19256	}
19257	return nil
19258}
19259
19260// SetLimit sets the Limit field's value.
19261func (s *GetUsagePlanKeysInput) SetLimit(v int64) *GetUsagePlanKeysInput {
19262	s.Limit = &v
19263	return s
19264}
19265
19266// SetNameQuery sets the NameQuery field's value.
19267func (s *GetUsagePlanKeysInput) SetNameQuery(v string) *GetUsagePlanKeysInput {
19268	s.NameQuery = &v
19269	return s
19270}
19271
19272// SetPosition sets the Position field's value.
19273func (s *GetUsagePlanKeysInput) SetPosition(v string) *GetUsagePlanKeysInput {
19274	s.Position = &v
19275	return s
19276}
19277
19278// SetUsagePlanId sets the UsagePlanId field's value.
19279func (s *GetUsagePlanKeysInput) SetUsagePlanId(v string) *GetUsagePlanKeysInput {
19280	s.UsagePlanId = &v
19281	return s
19282}
19283
19284// Represents the collection of usage plan keys added to usage plans for the
19285// associated API keys and, possibly, other types of keys.
19286//
19287// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
19288type GetUsagePlanKeysOutput struct {
19289	_ struct{} `type:"structure"`
19290
19291	// The current page of elements from this collection.
19292	Items []*UsagePlanKey `locationName:"item" type:"list"`
19293
19294	Position *string `locationName:"position" type:"string"`
19295}
19296
19297// String returns the string representation
19298func (s GetUsagePlanKeysOutput) String() string {
19299	return awsutil.Prettify(s)
19300}
19301
19302// GoString returns the string representation
19303func (s GetUsagePlanKeysOutput) GoString() string {
19304	return s.String()
19305}
19306
19307// SetItems sets the Items field's value.
19308func (s *GetUsagePlanKeysOutput) SetItems(v []*UsagePlanKey) *GetUsagePlanKeysOutput {
19309	s.Items = v
19310	return s
19311}
19312
19313// SetPosition sets the Position field's value.
19314func (s *GetUsagePlanKeysOutput) SetPosition(v string) *GetUsagePlanKeysOutput {
19315	s.Position = &v
19316	return s
19317}
19318
19319// The GET request to get all the usage plans of the caller's account.
19320type GetUsagePlansInput struct {
19321	_ struct{} `type:"structure"`
19322
19323	// The identifier of the API key associated with the usage plans.
19324	KeyId *string `location:"querystring" locationName:"keyId" type:"string"`
19325
19326	// The maximum number of returned results per page. The default value is 25
19327	// and the maximum value is 500.
19328	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19329
19330	// The current pagination position in the paged result set.
19331	Position *string `location:"querystring" locationName:"position" type:"string"`
19332}
19333
19334// String returns the string representation
19335func (s GetUsagePlansInput) String() string {
19336	return awsutil.Prettify(s)
19337}
19338
19339// GoString returns the string representation
19340func (s GetUsagePlansInput) GoString() string {
19341	return s.String()
19342}
19343
19344// SetKeyId sets the KeyId field's value.
19345func (s *GetUsagePlansInput) SetKeyId(v string) *GetUsagePlansInput {
19346	s.KeyId = &v
19347	return s
19348}
19349
19350// SetLimit sets the Limit field's value.
19351func (s *GetUsagePlansInput) SetLimit(v int64) *GetUsagePlansInput {
19352	s.Limit = &v
19353	return s
19354}
19355
19356// SetPosition sets the Position field's value.
19357func (s *GetUsagePlansInput) SetPosition(v string) *GetUsagePlansInput {
19358	s.Position = &v
19359	return s
19360}
19361
19362// Represents a collection of usage plans for an AWS account.
19363//
19364// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
19365type GetUsagePlansOutput struct {
19366	_ struct{} `type:"structure"`
19367
19368	// The current page of elements from this collection.
19369	Items []*UsagePlan `locationName:"item" type:"list"`
19370
19371	Position *string `locationName:"position" type:"string"`
19372}
19373
19374// String returns the string representation
19375func (s GetUsagePlansOutput) String() string {
19376	return awsutil.Prettify(s)
19377}
19378
19379// GoString returns the string representation
19380func (s GetUsagePlansOutput) GoString() string {
19381	return s.String()
19382}
19383
19384// SetItems sets the Items field's value.
19385func (s *GetUsagePlansOutput) SetItems(v []*UsagePlan) *GetUsagePlansOutput {
19386	s.Items = v
19387	return s
19388}
19389
19390// SetPosition sets the Position field's value.
19391func (s *GetUsagePlansOutput) SetPosition(v string) *GetUsagePlansOutput {
19392	s.Position = &v
19393	return s
19394}
19395
19396// Gets a specified VPC link under the caller's account in a region.
19397type GetVpcLinkInput struct {
19398	_ struct{} `type:"structure"`
19399
19400	// [Required] The identifier of the VpcLink. It is used in an Integration to
19401	// reference this VpcLink.
19402	//
19403	// VpcLinkId is a required field
19404	VpcLinkId *string `location:"uri" locationName:"vpclink_id" type:"string" required:"true"`
19405}
19406
19407// String returns the string representation
19408func (s GetVpcLinkInput) String() string {
19409	return awsutil.Prettify(s)
19410}
19411
19412// GoString returns the string representation
19413func (s GetVpcLinkInput) GoString() string {
19414	return s.String()
19415}
19416
19417// Validate inspects the fields of the type to determine if they are valid.
19418func (s *GetVpcLinkInput) Validate() error {
19419	invalidParams := request.ErrInvalidParams{Context: "GetVpcLinkInput"}
19420	if s.VpcLinkId == nil {
19421		invalidParams.Add(request.NewErrParamRequired("VpcLinkId"))
19422	}
19423	if s.VpcLinkId != nil && len(*s.VpcLinkId) < 1 {
19424		invalidParams.Add(request.NewErrParamMinLen("VpcLinkId", 1))
19425	}
19426
19427	if invalidParams.Len() > 0 {
19428		return invalidParams
19429	}
19430	return nil
19431}
19432
19433// SetVpcLinkId sets the VpcLinkId field's value.
19434func (s *GetVpcLinkInput) SetVpcLinkId(v string) *GetVpcLinkInput {
19435	s.VpcLinkId = &v
19436	return s
19437}
19438
19439// Gets the VpcLinks collection under the caller's account in a selected region.
19440type GetVpcLinksInput struct {
19441	_ struct{} `type:"structure"`
19442
19443	// The maximum number of returned results per page. The default value is 25
19444	// and the maximum value is 500.
19445	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19446
19447	// The current pagination position in the paged result set.
19448	Position *string `location:"querystring" locationName:"position" type:"string"`
19449}
19450
19451// String returns the string representation
19452func (s GetVpcLinksInput) String() string {
19453	return awsutil.Prettify(s)
19454}
19455
19456// GoString returns the string representation
19457func (s GetVpcLinksInput) GoString() string {
19458	return s.String()
19459}
19460
19461// SetLimit sets the Limit field's value.
19462func (s *GetVpcLinksInput) SetLimit(v int64) *GetVpcLinksInput {
19463	s.Limit = &v
19464	return s
19465}
19466
19467// SetPosition sets the Position field's value.
19468func (s *GetVpcLinksInput) SetPosition(v string) *GetVpcLinksInput {
19469	s.Position = &v
19470	return s
19471}
19472
19473// The collection of VPC links under the caller's account in a region.
19474//
19475// Getting Started with Private Integrations (https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-with-private-integration.html),
19476// Set up Private Integrations (https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-private-integration.html)
19477type GetVpcLinksOutput struct {
19478	_ struct{} `type:"structure"`
19479
19480	// The current page of elements from this collection.
19481	Items []*UpdateVpcLinkOutput `locationName:"item" type:"list"`
19482
19483	Position *string `locationName:"position" type:"string"`
19484}
19485
19486// String returns the string representation
19487func (s GetVpcLinksOutput) String() string {
19488	return awsutil.Prettify(s)
19489}
19490
19491// GoString returns the string representation
19492func (s GetVpcLinksOutput) GoString() string {
19493	return s.String()
19494}
19495
19496// SetItems sets the Items field's value.
19497func (s *GetVpcLinksOutput) SetItems(v []*UpdateVpcLinkOutput) *GetVpcLinksOutput {
19498	s.Items = v
19499	return s
19500}
19501
19502// SetPosition sets the Position field's value.
19503func (s *GetVpcLinksOutput) SetPosition(v string) *GetVpcLinksOutput {
19504	s.Position = &v
19505	return s
19506}
19507
19508// The POST request to import API keys from an external source, such as a CSV-formatted
19509// file.
19510type ImportApiKeysInput struct {
19511	_ struct{} `type:"structure" payload:"Body"`
19512
19513	// The payload of the POST request to import API keys. For the payload format,
19514	// see API Key File Format (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-key-file-format.html).
19515	//
19516	// Body is a required field
19517	Body []byte `locationName:"body" type:"blob" required:"true"`
19518
19519	// A query parameter to indicate whether to rollback ApiKey importation (true)
19520	// or not (false) when error is encountered.
19521	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
19522
19523	// A query parameter to specify the input format to imported API keys. Currently,
19524	// only the csv format is supported.
19525	//
19526	// Format is a required field
19527	Format *string `location:"querystring" locationName:"format" type:"string" required:"true" enum:"ApiKeysFormat"`
19528}
19529
19530// String returns the string representation
19531func (s ImportApiKeysInput) String() string {
19532	return awsutil.Prettify(s)
19533}
19534
19535// GoString returns the string representation
19536func (s ImportApiKeysInput) GoString() string {
19537	return s.String()
19538}
19539
19540// Validate inspects the fields of the type to determine if they are valid.
19541func (s *ImportApiKeysInput) Validate() error {
19542	invalidParams := request.ErrInvalidParams{Context: "ImportApiKeysInput"}
19543	if s.Body == nil {
19544		invalidParams.Add(request.NewErrParamRequired("Body"))
19545	}
19546	if s.Format == nil {
19547		invalidParams.Add(request.NewErrParamRequired("Format"))
19548	}
19549
19550	if invalidParams.Len() > 0 {
19551		return invalidParams
19552	}
19553	return nil
19554}
19555
19556// SetBody sets the Body field's value.
19557func (s *ImportApiKeysInput) SetBody(v []byte) *ImportApiKeysInput {
19558	s.Body = v
19559	return s
19560}
19561
19562// SetFailOnWarnings sets the FailOnWarnings field's value.
19563func (s *ImportApiKeysInput) SetFailOnWarnings(v bool) *ImportApiKeysInput {
19564	s.FailOnWarnings = &v
19565	return s
19566}
19567
19568// SetFormat sets the Format field's value.
19569func (s *ImportApiKeysInput) SetFormat(v string) *ImportApiKeysInput {
19570	s.Format = &v
19571	return s
19572}
19573
19574// The identifier of an ApiKey used in a UsagePlan.
19575type ImportApiKeysOutput struct {
19576	_ struct{} `type:"structure"`
19577
19578	// A list of all the ApiKey identifiers.
19579	Ids []*string `locationName:"ids" type:"list"`
19580
19581	// A list of warning messages.
19582	Warnings []*string `locationName:"warnings" type:"list"`
19583}
19584
19585// String returns the string representation
19586func (s ImportApiKeysOutput) String() string {
19587	return awsutil.Prettify(s)
19588}
19589
19590// GoString returns the string representation
19591func (s ImportApiKeysOutput) GoString() string {
19592	return s.String()
19593}
19594
19595// SetIds sets the Ids field's value.
19596func (s *ImportApiKeysOutput) SetIds(v []*string) *ImportApiKeysOutput {
19597	s.Ids = v
19598	return s
19599}
19600
19601// SetWarnings sets the Warnings field's value.
19602func (s *ImportApiKeysOutput) SetWarnings(v []*string) *ImportApiKeysOutput {
19603	s.Warnings = v
19604	return s
19605}
19606
19607// Import documentation parts from an external (e.g., OpenAPI) definition file.
19608type ImportDocumentationPartsInput struct {
19609	_ struct{} `type:"structure" payload:"Body"`
19610
19611	// [Required] Raw byte array representing the to-be-imported documentation parts.
19612	// To import from an OpenAPI file, this is a JSON object.
19613	//
19614	// Body is a required field
19615	Body []byte `locationName:"body" type:"blob" required:"true"`
19616
19617	// A query parameter to specify whether to rollback the documentation importation
19618	// (true) or not (false) when a warning is encountered. The default value is
19619	// false.
19620	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
19621
19622	// A query parameter to indicate whether to overwrite (OVERWRITE) any existing
19623	// DocumentationParts definition or to merge (MERGE) the new definition into
19624	// the existing one. The default value is MERGE.
19625	Mode *string `location:"querystring" locationName:"mode" type:"string" enum:"PutMode"`
19626
19627	// [Required] The string identifier of the associated RestApi.
19628	//
19629	// RestApiId is a required field
19630	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19631}
19632
19633// String returns the string representation
19634func (s ImportDocumentationPartsInput) String() string {
19635	return awsutil.Prettify(s)
19636}
19637
19638// GoString returns the string representation
19639func (s ImportDocumentationPartsInput) GoString() string {
19640	return s.String()
19641}
19642
19643// Validate inspects the fields of the type to determine if they are valid.
19644func (s *ImportDocumentationPartsInput) Validate() error {
19645	invalidParams := request.ErrInvalidParams{Context: "ImportDocumentationPartsInput"}
19646	if s.Body == nil {
19647		invalidParams.Add(request.NewErrParamRequired("Body"))
19648	}
19649	if s.RestApiId == nil {
19650		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19651	}
19652	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19653		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19654	}
19655
19656	if invalidParams.Len() > 0 {
19657		return invalidParams
19658	}
19659	return nil
19660}
19661
19662// SetBody sets the Body field's value.
19663func (s *ImportDocumentationPartsInput) SetBody(v []byte) *ImportDocumentationPartsInput {
19664	s.Body = v
19665	return s
19666}
19667
19668// SetFailOnWarnings sets the FailOnWarnings field's value.
19669func (s *ImportDocumentationPartsInput) SetFailOnWarnings(v bool) *ImportDocumentationPartsInput {
19670	s.FailOnWarnings = &v
19671	return s
19672}
19673
19674// SetMode sets the Mode field's value.
19675func (s *ImportDocumentationPartsInput) SetMode(v string) *ImportDocumentationPartsInput {
19676	s.Mode = &v
19677	return s
19678}
19679
19680// SetRestApiId sets the RestApiId field's value.
19681func (s *ImportDocumentationPartsInput) SetRestApiId(v string) *ImportDocumentationPartsInput {
19682	s.RestApiId = &v
19683	return s
19684}
19685
19686// A collection of the imported DocumentationPart identifiers.
19687//
19688// This is used to return the result when documentation parts in an external
19689// (e.g., OpenAPI) file are imported into API Gateway
19690//
19691// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
19692// documentationpart:import (https://docs.aws.amazon.com/apigateway/api-reference/link-relation/documentationpart-import/),
19693// DocumentationPart
19694type ImportDocumentationPartsOutput struct {
19695	_ struct{} `type:"structure"`
19696
19697	// A list of the returned documentation part identifiers.
19698	Ids []*string `locationName:"ids" type:"list"`
19699
19700	// A list of warning messages reported during import of documentation parts.
19701	Warnings []*string `locationName:"warnings" type:"list"`
19702}
19703
19704// String returns the string representation
19705func (s ImportDocumentationPartsOutput) String() string {
19706	return awsutil.Prettify(s)
19707}
19708
19709// GoString returns the string representation
19710func (s ImportDocumentationPartsOutput) GoString() string {
19711	return s.String()
19712}
19713
19714// SetIds sets the Ids field's value.
19715func (s *ImportDocumentationPartsOutput) SetIds(v []*string) *ImportDocumentationPartsOutput {
19716	s.Ids = v
19717	return s
19718}
19719
19720// SetWarnings sets the Warnings field's value.
19721func (s *ImportDocumentationPartsOutput) SetWarnings(v []*string) *ImportDocumentationPartsOutput {
19722	s.Warnings = v
19723	return s
19724}
19725
19726// A POST request to import an API to API Gateway using an input of an API definition
19727// file.
19728type ImportRestApiInput struct {
19729	_ struct{} `type:"structure" payload:"Body"`
19730
19731	// [Required] The POST request body containing external API definitions. Currently,
19732	// only OpenAPI definition JSON/YAML files are supported. The maximum size of
19733	// the API definition file is 2MB.
19734	//
19735	// Body is a required field
19736	Body []byte `locationName:"body" type:"blob" required:"true"`
19737
19738	// A query parameter to indicate whether to rollback the API creation (true)
19739	// or not (false) when a warning is encountered. The default value is false.
19740	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
19741
19742	// A key-value map of context-specific query string parameters specifying the
19743	// behavior of different API importing operations. The following shows operation-specific
19744	// parameters and their supported values.
19745	//
19746	// To exclude DocumentationParts from the import, set parameters as ignore=documentation.
19747	//
19748	// To configure the endpoint type, set parameters as endpointConfigurationTypes=EDGE,
19749	// endpointConfigurationTypes=REGIONAL, or endpointConfigurationTypes=PRIVATE.
19750	// The default endpoint type is EDGE.
19751	//
19752	// To handle imported basepath, set parameters as basepath=ignore, basepath=prepend
19753	// or basepath=split.
19754	//
19755	// For example, the AWS CLI command to exclude documentation from the imported
19756	// API is:
19757	//
19758	//    aws apigateway import-rest-api --parameters ignore=documentation --body
19759	//    'file:///path/to/imported-api-body.json'
19760	//
19761	// The AWS CLI command to set the regional endpoint on the imported API is:
19762	//
19763	//    aws apigateway import-rest-api --parameters endpointConfigurationTypes=REGIONAL
19764	//    --body 'file:///path/to/imported-api-body.json'
19765	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
19766}
19767
19768// String returns the string representation
19769func (s ImportRestApiInput) String() string {
19770	return awsutil.Prettify(s)
19771}
19772
19773// GoString returns the string representation
19774func (s ImportRestApiInput) GoString() string {
19775	return s.String()
19776}
19777
19778// Validate inspects the fields of the type to determine if they are valid.
19779func (s *ImportRestApiInput) Validate() error {
19780	invalidParams := request.ErrInvalidParams{Context: "ImportRestApiInput"}
19781	if s.Body == nil {
19782		invalidParams.Add(request.NewErrParamRequired("Body"))
19783	}
19784
19785	if invalidParams.Len() > 0 {
19786		return invalidParams
19787	}
19788	return nil
19789}
19790
19791// SetBody sets the Body field's value.
19792func (s *ImportRestApiInput) SetBody(v []byte) *ImportRestApiInput {
19793	s.Body = v
19794	return s
19795}
19796
19797// SetFailOnWarnings sets the FailOnWarnings field's value.
19798func (s *ImportRestApiInput) SetFailOnWarnings(v bool) *ImportRestApiInput {
19799	s.FailOnWarnings = &v
19800	return s
19801}
19802
19803// SetParameters sets the Parameters field's value.
19804func (s *ImportRestApiInput) SetParameters(v map[string]*string) *ImportRestApiInput {
19805	s.Parameters = v
19806	return s
19807}
19808
19809// Represents an HTTP, HTTP_PROXY, AWS, AWS_PROXY, or Mock integration.
19810//
19811// In the API Gateway console, the built-in Lambda integration is an AWS integration.
19812//
19813// Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
19814type Integration struct {
19815	_ struct{} `type:"structure"`
19816
19817	// A list of request parameters whose values API Gateway caches. To be valid
19818	// values for cacheKeyParameters, these parameters must also be specified for
19819	// Method requestParameters.
19820	CacheKeyParameters []*string `locationName:"cacheKeyParameters" type:"list"`
19821
19822	// An API-specific tag group of related cached parameters. To be valid values
19823	// for cacheKeyParameters, these parameters must also be specified for Method
19824	// requestParameters.
19825	CacheNamespace *string `locationName:"cacheNamespace" type:"string"`
19826
19827	// The (id (https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id))
19828	// of the VpcLink used for the integration when connectionType=VPC_LINK and
19829	// undefined, otherwise.
19830	ConnectionId *string `locationName:"connectionId" type:"string"`
19831
19832	// The type of the network connection to the integration endpoint. The valid
19833	// value is INTERNET for connections through the public routable internet or
19834	// VPC_LINK for private connections between API Gateway and a network load balancer
19835	// in a VPC. The default value is INTERNET.
19836	ConnectionType *string `locationName:"connectionType" type:"string" enum:"ConnectionType"`
19837
19838	// Specifies how to handle request payload content type conversions. Supported
19839	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
19840	//
19841	//    * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded
19842	//    string to the corresponding binary blob.
19843	//
19844	//    * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a
19845	//    Base64-encoded string.
19846	//
19847	// If this property is not defined, the request payload will be passed through
19848	// from the method request to integration request without modification, provided
19849	// that the passthroughBehavior is configured to support payload pass-through.
19850	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
19851
19852	// Specifies the credentials required for the integration, if any. For AWS integrations,
19853	// three options are available. To specify an IAM Role for API Gateway to assume,
19854	// use the role's Amazon Resource Name (ARN). To require that the caller's identity
19855	// be passed through from the request, specify the string arn:aws:iam::\*:user/\*.
19856	// To use resource-based permissions on supported AWS services, specify null.
19857	Credentials *string `locationName:"credentials" type:"string"`
19858
19859	// Specifies the integration's HTTP method type.
19860	HttpMethod *string `locationName:"httpMethod" type:"string"`
19861
19862	// Specifies the integration's responses.
19863	//
19864	// Example: Get integration responses of a method
19865	//
19866	// Request
19867	//   GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200
19868	//   HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
19869	//   X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request,
19870	//   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
19871	// Response
19872	//
19873	// The successful response returns 200 OK status and a payload as follows:
19874	//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
19875	//  "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
19876	//  "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
19877	//  }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
19878	//  } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'"
19879	//  }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream
19880	//  in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n"
19881	//  }, "statusCode": "200" }
19882	//
19883	// Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
19884	IntegrationResponses map[string]*IntegrationResponse `locationName:"integrationResponses" type:"map"`
19885
19886	// Specifies how the method request body of an unmapped content type will be
19887	// passed through the integration request to the back end without transformation.
19888	// A content type is unmapped if no mapping template is defined in the integration
19889	// or the content type does not match any of the mapped content types, as specified
19890	// in requestTemplates. The valid value is one of the following:
19891	//
19892	//    * WHEN_NO_MATCH: passes the method request body through the integration
19893	//    request to the back end without transformation when the method request
19894	//    content type does not match any content type associated with the mapping
19895	//    templates defined in the integration request.
19896	//
19897	//    * WHEN_NO_TEMPLATES: passes the method request body through the integration
19898	//    request to the back end without transformation when no mapping template
19899	//    is defined in the integration request. If a template is defined when this
19900	//    option is selected, the method request of an unmapped content-type will
19901	//    be rejected with an HTTP 415 Unsupported Media Type response.
19902	//
19903	//    * NEVER: rejects the method request with an HTTP 415 Unsupported Media
19904	//    Type response when either the method request content type does not match
19905	//    any content type associated with the mapping templates defined in the
19906	//    integration request or no mapping template is defined in the integration
19907	//    request.
19908	PassthroughBehavior *string `locationName:"passthroughBehavior" type:"string"`
19909
19910	// A key-value map specifying request parameters that are passed from the method
19911	// request to the back end. The key is an integration request parameter name
19912	// and the associated value is a method request parameter value or static value
19913	// that must be enclosed within single quotes and pre-encoded as required by
19914	// the back end. The method request parameter value must match the pattern of
19915	// method.request.{location}.{name}, where location is querystring, path, or
19916	// header and name must be a valid and unique method request parameter name.
19917	RequestParameters map[string]*string `locationName:"requestParameters" type:"map"`
19918
19919	// Represents a map of Velocity templates that are applied on the request payload
19920	// based on the value of the Content-Type header sent by the client. The content
19921	// type value is the key in this map, and the template (as a String) is the
19922	// value.
19923	RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
19924
19925	// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000
19926	// milliseconds or 29 seconds.
19927	TimeoutInMillis *int64 `locationName:"timeoutInMillis" type:"integer"`
19928
19929	// Specifies an API method integration type. The valid value is one of the following:
19930	//
19931	//    * AWS: for integrating the API method request with an AWS service action,
19932	//    including the Lambda function-invoking action. With the Lambda function-invoking
19933	//    action, this is referred to as the Lambda custom integration. With any
19934	//    other AWS service action, this is known as AWS integration.
19935	//
19936	//    * AWS_PROXY: for integrating the API method request with the Lambda function-invoking
19937	//    action with the client request passed through as-is. This integration
19938	//    is also referred to as the Lambda proxy integration.
19939	//
19940	//    * HTTP: for integrating the API method request with an HTTP endpoint,
19941	//    including a private HTTP endpoint within a VPC. This integration is also
19942	//    referred to as the HTTP custom integration.
19943	//
19944	//    * HTTP_PROXY: for integrating the API method request with an HTTP endpoint,
19945	//    including a private HTTP endpoint within a VPC, with the client request
19946	//    passed through as-is. This is also referred to as the HTTP proxy integration.
19947	//
19948	//    * MOCK: for integrating the API method request with API Gateway as a "loop-back"
19949	//    endpoint without invoking any backend.
19950	//
19951	// For the HTTP and HTTP proxy integrations, each integration can specify a
19952	// protocol (http/https), port and path. Standard 80 and 443 ports are supported
19953	// as well as custom ports above 1024. An HTTP or HTTP proxy integration with
19954	// a connectionType of VPC_LINK is referred to as a private integration and
19955	// uses a VpcLink to connect API Gateway to a network load balancer of a VPC.
19956	Type *string `locationName:"type" type:"string" enum:"IntegrationType"`
19957
19958	// Specifies Uniform Resource Identifier (URI) of the integration endpoint.
19959	//
19960	//    * For HTTP or HTTP_PROXY integrations, the URI must be a fully formed,
19961	//    encoded HTTP(S) URL according to the RFC-3986 specification (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier),
19962	//    for either standard integration, where connectionType is not VPC_LINK,
19963	//    or private integration, where connectionType is VPC_LINK. For a private
19964	//    HTTP integration, the URI is not used for routing.
19965	//
19966	//    * For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}.
19967	//    Here, {Region} is the API Gateway region (e.g., us-east-1); {service}
19968	//    is the name of the integrated AWS service (e.g., s3); and {subdomain}
19969	//    is a designated subdomain supported by certain AWS service for fast host-name
19970	//    lookup. action can be used for an AWS service action-based API, using
19971	//    an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api}
19972	//    refers to a supported action {name} plus any required input parameters.
19973	//    Alternatively, path can be used for an AWS service path-based API. The
19974	//    ensuing service_api refers to the path to an AWS service resource, including
19975	//    the region of the integrated AWS service, if applicable. For example,
19976	//    for integration with the S3 API of GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html),
19977	//    the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}
19978	//    or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}
19979	Uri *string `locationName:"uri" type:"string"`
19980}
19981
19982// String returns the string representation
19983func (s Integration) String() string {
19984	return awsutil.Prettify(s)
19985}
19986
19987// GoString returns the string representation
19988func (s Integration) GoString() string {
19989	return s.String()
19990}
19991
19992// SetCacheKeyParameters sets the CacheKeyParameters field's value.
19993func (s *Integration) SetCacheKeyParameters(v []*string) *Integration {
19994	s.CacheKeyParameters = v
19995	return s
19996}
19997
19998// SetCacheNamespace sets the CacheNamespace field's value.
19999func (s *Integration) SetCacheNamespace(v string) *Integration {
20000	s.CacheNamespace = &v
20001	return s
20002}
20003
20004// SetConnectionId sets the ConnectionId field's value.
20005func (s *Integration) SetConnectionId(v string) *Integration {
20006	s.ConnectionId = &v
20007	return s
20008}
20009
20010// SetConnectionType sets the ConnectionType field's value.
20011func (s *Integration) SetConnectionType(v string) *Integration {
20012	s.ConnectionType = &v
20013	return s
20014}
20015
20016// SetContentHandling sets the ContentHandling field's value.
20017func (s *Integration) SetContentHandling(v string) *Integration {
20018	s.ContentHandling = &v
20019	return s
20020}
20021
20022// SetCredentials sets the Credentials field's value.
20023func (s *Integration) SetCredentials(v string) *Integration {
20024	s.Credentials = &v
20025	return s
20026}
20027
20028// SetHttpMethod sets the HttpMethod field's value.
20029func (s *Integration) SetHttpMethod(v string) *Integration {
20030	s.HttpMethod = &v
20031	return s
20032}
20033
20034// SetIntegrationResponses sets the IntegrationResponses field's value.
20035func (s *Integration) SetIntegrationResponses(v map[string]*IntegrationResponse) *Integration {
20036	s.IntegrationResponses = v
20037	return s
20038}
20039
20040// SetPassthroughBehavior sets the PassthroughBehavior field's value.
20041func (s *Integration) SetPassthroughBehavior(v string) *Integration {
20042	s.PassthroughBehavior = &v
20043	return s
20044}
20045
20046// SetRequestParameters sets the RequestParameters field's value.
20047func (s *Integration) SetRequestParameters(v map[string]*string) *Integration {
20048	s.RequestParameters = v
20049	return s
20050}
20051
20052// SetRequestTemplates sets the RequestTemplates field's value.
20053func (s *Integration) SetRequestTemplates(v map[string]*string) *Integration {
20054	s.RequestTemplates = v
20055	return s
20056}
20057
20058// SetTimeoutInMillis sets the TimeoutInMillis field's value.
20059func (s *Integration) SetTimeoutInMillis(v int64) *Integration {
20060	s.TimeoutInMillis = &v
20061	return s
20062}
20063
20064// SetType sets the Type field's value.
20065func (s *Integration) SetType(v string) *Integration {
20066	s.Type = &v
20067	return s
20068}
20069
20070// SetUri sets the Uri field's value.
20071func (s *Integration) SetUri(v string) *Integration {
20072	s.Uri = &v
20073	return s
20074}
20075
20076// Represents an integration response. The status code must map to an existing
20077// MethodResponse, and parameters and templates can be used to transform the
20078// back-end response.
20079//
20080// Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
20081type IntegrationResponse struct {
20082	_ struct{} `type:"structure"`
20083
20084	// Specifies how to handle response payload content type conversions. Supported
20085	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
20086	//
20087	//    * CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded
20088	//    string to the corresponding binary blob.
20089	//
20090	//    * CONVERT_TO_TEXT: Converts a response payload from a binary blob to a
20091	//    Base64-encoded string.
20092	//
20093	// If this property is not defined, the response payload will be passed through
20094	// from the integration response to the method response without modification.
20095	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
20096
20097	// A key-value map specifying response parameters that are passed to the method
20098	// response from the back end. The key is a method response header parameter
20099	// name and the mapped value is an integration response header value, a static
20100	// value enclosed within a pair of single quotes, or a JSON expression from
20101	// the integration response body. The mapping key must match the pattern of
20102	// method.response.header.{name}, where name is a valid and unique header name.
20103	// The mapped non-static value must match the pattern of integration.response.header.{name}
20104	// or integration.response.body.{JSON-expression}, where name is a valid and
20105	// unique response header name and JSON-expression is a valid JSON expression
20106	// without the $ prefix.
20107	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
20108
20109	// Specifies the templates used to transform the integration response body.
20110	// Response templates are represented as a key/value map, with a content-type
20111	// as the key and a template as the value.
20112	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
20113
20114	// Specifies the regular expression (regex) pattern used to choose an integration
20115	// response based on the response from the back end. For example, if the success
20116	// response returns nothing and the error response returns some string, you
20117	// could use the .+ regex to match error response. However, make sure that the
20118	// error response does not contain any newline (\n) character in such cases.
20119	// If the back end is an AWS Lambda function, the AWS Lambda function error
20120	// header is matched. For all other HTTP and AWS back ends, the HTTP status
20121	// code is matched.
20122	SelectionPattern *string `locationName:"selectionPattern" type:"string"`
20123
20124	// Specifies the status code that is used to map the integration response to
20125	// an existing MethodResponse.
20126	StatusCode *string `locationName:"statusCode" type:"string"`
20127}
20128
20129// String returns the string representation
20130func (s IntegrationResponse) String() string {
20131	return awsutil.Prettify(s)
20132}
20133
20134// GoString returns the string representation
20135func (s IntegrationResponse) GoString() string {
20136	return s.String()
20137}
20138
20139// SetContentHandling sets the ContentHandling field's value.
20140func (s *IntegrationResponse) SetContentHandling(v string) *IntegrationResponse {
20141	s.ContentHandling = &v
20142	return s
20143}
20144
20145// SetResponseParameters sets the ResponseParameters field's value.
20146func (s *IntegrationResponse) SetResponseParameters(v map[string]*string) *IntegrationResponse {
20147	s.ResponseParameters = v
20148	return s
20149}
20150
20151// SetResponseTemplates sets the ResponseTemplates field's value.
20152func (s *IntegrationResponse) SetResponseTemplates(v map[string]*string) *IntegrationResponse {
20153	s.ResponseTemplates = v
20154	return s
20155}
20156
20157// SetSelectionPattern sets the SelectionPattern field's value.
20158func (s *IntegrationResponse) SetSelectionPattern(v string) *IntegrationResponse {
20159	s.SelectionPattern = &v
20160	return s
20161}
20162
20163// SetStatusCode sets the StatusCode field's value.
20164func (s *IntegrationResponse) SetStatusCode(v string) *IntegrationResponse {
20165	s.StatusCode = &v
20166	return s
20167}
20168
20169// Represents a client-facing interface by which the client calls the API to
20170// access back-end resources. A Method resource is integrated with an Integration
20171// resource. Both consist of a request and one or more responses. The method
20172// request takes the client input that is passed to the back end through the
20173// integration request. A method response returns the output from the back end
20174// to the client through an integration response. A method request is embodied
20175// in a Method resource, whereas an integration request is embodied in an Integration
20176// resource. On the other hand, a method response is represented by a MethodResponse
20177// resource, whereas an integration response is represented by an IntegrationResponse
20178// resource.
20179//
20180// Example: Retrive the GET method on a specified resource
20181//
20182// Request
20183//
20184// The following example request retrieves the information about the GET method
20185// on an API resource (3kzxbg5sa2) of an API (fugvjdxtri).
20186//  GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET HTTP/1.1 Content-Type:
20187//  application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T210259Z
20188//  Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request,
20189//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
20190// Response
20191//
20192// The successful response returns a 200 OK status code and a payload similar
20193// to the following:
20194//  { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html",
20195//  "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
20196//  "name": "integrationresponse", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html",
20197//  "name": "method", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
20198//  "name": "methodresponse", "templated": true } ], "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET",
20199//  "name": "GET", "title": "GET" }, "integration:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
20200//  }, "method:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
20201//  }, "method:integration": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
20202//  }, "method:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
20203//  "name": "200", "title": "200" }, "method:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
20204//  }, "methodresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}",
20205//  "templated": true } }, "apiKeyRequired": true, "authorizationType": "NONE",
20206//  "httpMethod": "GET", "_embedded": { "method:integration": { "_links": {
20207//  "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
20208//  }, "integration:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
20209//  }, "integration:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
20210//  "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
20211//  }, "integrationresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}",
20212//  "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "3kzxbg5sa2",
20213//  "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod":
20214//  "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": { "integration.request.header.Content-Type":
20215//  "'application/x-amz-json-1.1'" }, "requestTemplates": { "application/json":
20216//  "{\n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams",
20217//  "_embedded": { "integration:responses": { "_links": { "self": { "href":
20218//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
20219//  "name": "200", "title": "200" }, "integrationresponse:delete": { "href":
20220//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
20221//  }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
20222//  } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'"
20223//  }, "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\")"
20224//  }, "statusCode": "200" } } }, "method:responses": { "_links": { "self":
20225//  { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
20226//  "name": "200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
20227//  }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
20228//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
20229//  { "method.response.header.Content-Type": false }, "statusCode": "200" }
20230//  } }
20231// In the example above, the response template for the 200 OK response maps
20232// the JSON output from the ListStreams action in the back end to an XML output.
20233// 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
20234// 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)
20235// helper function.
20236//
20237// MethodResponse, Integration, IntegrationResponse, Resource, Set up an API's
20238// method (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings.html)
20239type Method struct {
20240	_ struct{} `type:"structure"`
20241
20242	// A boolean flag specifying whether a valid ApiKey is required to invoke this
20243	// method.
20244	ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"`
20245
20246	// A list of authorization scopes configured on the method. The scopes are used
20247	// with a COGNITO_USER_POOLS authorizer to authorize the method invocation.
20248	// The authorization works by matching the method scopes against the scopes
20249	// parsed from the access token in the incoming request. The method invocation
20250	// is authorized if any method scopes matches a claimed scope in the access
20251	// token. Otherwise, the invocation is not authorized. When the method scope
20252	// is configured, the client must provide an access token instead of an identity
20253	// token for authorization purposes.
20254	AuthorizationScopes []*string `locationName:"authorizationScopes" type:"list"`
20255
20256	// The method's authorization type. Valid values are NONE for open access, AWS_IAM
20257	// for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS
20258	// for using a Cognito user pool.
20259	AuthorizationType *string `locationName:"authorizationType" type:"string"`
20260
20261	// The identifier of an Authorizer to use on this method. The authorizationType
20262	// must be CUSTOM.
20263	AuthorizerId *string `locationName:"authorizerId" type:"string"`
20264
20265	// The method's HTTP verb.
20266	HttpMethod *string `locationName:"httpMethod" type:"string"`
20267
20268	// Gets the method's integration responsible for passing the client-submitted
20269	// request to the back end and performing necessary transformations to make
20270	// the request compliant with the back end.
20271	//
20272	// Example:
20273	//
20274	// Request
20275	//   GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration HTTP/1.1
20276	//   Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
20277	//   Content-Length: 117 X-Amz-Date: 20160613T213210Z Authorization: AWS4-HMAC-SHA256
20278	//   Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request,
20279	//   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
20280	// Response
20281	//
20282	// The successful response returns a 200 OK status code and a payload similar
20283	// to the following:
20284	//  { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html",
20285	//  "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
20286	//  "name": "integrationresponse", "templated": true } ], "self": { "href":
20287	//  "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:delete":
20288	//  { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration"
20289	//  }, "integration:responses": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200",
20290	//  "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration"
20291	//  }, "integrationresponse:put": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/{status_code}",
20292	//  "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "0cjtch",
20293	//  "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod":
20294	//  "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestTemplates": { "application/json":
20295	//  "{\n \"a\": \"$input.params('operand1')\",\n \"b\": \"$input.params('operand2')\",
20296	//  \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",
20297	//  "_embedded": { "integration:responses": { "_links": { "self": { "href":
20298	//  "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200",
20299	//  "name": "200", "title": "200" }, "integrationresponse:delete": { "href":
20300	//  "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200"
20301	//  }, "integrationresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200"
20302	//  } }, "responseParameters": { "method.response.header.operator": "integration.response.body.op",
20303	//  "method.response.header.operand_2": "integration.response.body.b", "method.response.header.operand_1":
20304	//  "integration.response.body.a" }, "responseTemplates": { "application/json":
20305	//  "#set($res = $input.path('$'))\n{\n \"result\": \"$res.a, $res.b, $res.op
20306	//  => $res.c\",\n \"a\" : \"$res.a\",\n \"b\" : \"$res.b\",\n \"op\" : \"$res.op\",\n
20307	//  \"c\" : \"$res.c\"\n}" }, "selectionPattern": "", "statusCode": "200" }
20308	//  } }
20309	//
20310	// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-integration.html)
20311	MethodIntegration *Integration `locationName:"methodIntegration" type:"structure"`
20312
20313	// Gets a method response associated with a given HTTP status code.
20314	//
20315	// The collection of method responses are encapsulated in a key-value map, where
20316	// the key is a response's HTTP status code and the value is a MethodResponse
20317	// resource that specifies the response returned to the caller from the back
20318	// end through the integration response.
20319	//
20320	// Example: Get a 200 OK response of a GET method
20321	//
20322	// Request
20323	//   GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200 HTTP/1.1
20324	//   Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
20325	//   Content-Length: 117 X-Amz-Date: 20160613T215008Z Authorization: AWS4-HMAC-SHA256
20326	//   Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request,
20327	//   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
20328	// Response
20329	//
20330	// The successful response returns a 200 OK status code and a payload similar
20331	// to the following:
20332	//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
20333	//  "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200",
20334	//  "title": "200" }, "methodresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200"
20335	//  }, "methodresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200"
20336	//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
20337	//  { "method.response.header.operator": false, "method.response.header.operand_2":
20338	//  false, "method.response.header.operand_1": false }, "statusCode": "200"
20339	//  }
20340	//
20341	// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-method-response.html)
20342	MethodResponses map[string]*MethodResponse `locationName:"methodResponses" type:"map"`
20343
20344	// A human-friendly operation identifier for the method. For example, you can
20345	// assign the operationName of ListPets for the GET /pets method in the PetStore
20346	// example.
20347	OperationName *string `locationName:"operationName" type:"string"`
20348
20349	// A key-value map specifying data schemas, represented by Model resources,
20350	// (as the mapped value) of the request payloads of given content types (as
20351	// the mapping key).
20352	RequestModels map[string]*string `locationName:"requestModels" type:"map"`
20353
20354	// A key-value map defining required or optional method request parameters that
20355	// can be accepted by API Gateway. A key is a method request parameter name
20356	// matching the pattern of method.request.{location}.{name}, where location
20357	// is querystring, path, or header and name is a valid and unique parameter
20358	// name. The value associated with the key is a Boolean flag indicating whether
20359	// the parameter is required (true) or optional (false). The method request
20360	// parameter names defined here are available in Integration to be mapped to
20361	// integration request parameters or templates.
20362	RequestParameters map[string]*bool `locationName:"requestParameters" type:"map"`
20363
20364	// The identifier of a RequestValidator for request validation.
20365	RequestValidatorId *string `locationName:"requestValidatorId" type:"string"`
20366}
20367
20368// String returns the string representation
20369func (s Method) String() string {
20370	return awsutil.Prettify(s)
20371}
20372
20373// GoString returns the string representation
20374func (s Method) GoString() string {
20375	return s.String()
20376}
20377
20378// SetApiKeyRequired sets the ApiKeyRequired field's value.
20379func (s *Method) SetApiKeyRequired(v bool) *Method {
20380	s.ApiKeyRequired = &v
20381	return s
20382}
20383
20384// SetAuthorizationScopes sets the AuthorizationScopes field's value.
20385func (s *Method) SetAuthorizationScopes(v []*string) *Method {
20386	s.AuthorizationScopes = v
20387	return s
20388}
20389
20390// SetAuthorizationType sets the AuthorizationType field's value.
20391func (s *Method) SetAuthorizationType(v string) *Method {
20392	s.AuthorizationType = &v
20393	return s
20394}
20395
20396// SetAuthorizerId sets the AuthorizerId field's value.
20397func (s *Method) SetAuthorizerId(v string) *Method {
20398	s.AuthorizerId = &v
20399	return s
20400}
20401
20402// SetHttpMethod sets the HttpMethod field's value.
20403func (s *Method) SetHttpMethod(v string) *Method {
20404	s.HttpMethod = &v
20405	return s
20406}
20407
20408// SetMethodIntegration sets the MethodIntegration field's value.
20409func (s *Method) SetMethodIntegration(v *Integration) *Method {
20410	s.MethodIntegration = v
20411	return s
20412}
20413
20414// SetMethodResponses sets the MethodResponses field's value.
20415func (s *Method) SetMethodResponses(v map[string]*MethodResponse) *Method {
20416	s.MethodResponses = v
20417	return s
20418}
20419
20420// SetOperationName sets the OperationName field's value.
20421func (s *Method) SetOperationName(v string) *Method {
20422	s.OperationName = &v
20423	return s
20424}
20425
20426// SetRequestModels sets the RequestModels field's value.
20427func (s *Method) SetRequestModels(v map[string]*string) *Method {
20428	s.RequestModels = v
20429	return s
20430}
20431
20432// SetRequestParameters sets the RequestParameters field's value.
20433func (s *Method) SetRequestParameters(v map[string]*bool) *Method {
20434	s.RequestParameters = v
20435	return s
20436}
20437
20438// SetRequestValidatorId sets the RequestValidatorId field's value.
20439func (s *Method) SetRequestValidatorId(v string) *Method {
20440	s.RequestValidatorId = &v
20441	return s
20442}
20443
20444// Represents a method response of a given HTTP status code returned to the
20445// client. The method response is passed from the back end through the associated
20446// integration response that can be transformed using a mapping template.
20447//
20448// Example: A MethodResponse instance of an API
20449//
20450// Request
20451//
20452// The example request retrieves a MethodResponse of the 200 status code.
20453//  GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200
20454//  HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
20455//  X-Amz-Date: 20160603T222952Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request,
20456//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
20457// Response
20458//
20459// The successful response returns 200 OK status and a payload as follows:
20460//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
20461//  "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
20462//  "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
20463//  }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
20464//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
20465//  { "method.response.header.Content-Type": false }, "statusCode": "200" }
20466//
20467// Method, IntegrationResponse, Integration Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
20468type MethodResponse struct {
20469	_ struct{} `type:"structure"`
20470
20471	// Specifies the Model resources used for the response's content-type. Response
20472	// models are represented as a key/value map, with a content-type as the key
20473	// and a Model name as the value.
20474	ResponseModels map[string]*string `locationName:"responseModels" type:"map"`
20475
20476	// A key-value map specifying required or optional response parameters that
20477	// API Gateway can send back to the caller. A key defines a method response
20478	// header and the value specifies whether the associated method response header
20479	// is required or not. The expression of the key must match the pattern method.response.header.{name},
20480	// where name is a valid and unique header name. API Gateway passes certain
20481	// integration response data to the method response headers specified here according
20482	// to the mapping you prescribe in the API's IntegrationResponse. The integration
20483	// response data that can be mapped include an integration response header expressed
20484	// in integration.response.header.{name}, a static value enclosed within a pair
20485	// of single quotes (e.g., 'application/json'), or a JSON expression from the
20486	// back-end response payload in the form of integration.response.body.{JSON-expression},
20487	// where JSON-expression is a valid JSON expression without the $ prefix.)
20488	ResponseParameters map[string]*bool `locationName:"responseParameters" type:"map"`
20489
20490	// The method response's status code.
20491	StatusCode *string `locationName:"statusCode" type:"string"`
20492}
20493
20494// String returns the string representation
20495func (s MethodResponse) String() string {
20496	return awsutil.Prettify(s)
20497}
20498
20499// GoString returns the string representation
20500func (s MethodResponse) GoString() string {
20501	return s.String()
20502}
20503
20504// SetResponseModels sets the ResponseModels field's value.
20505func (s *MethodResponse) SetResponseModels(v map[string]*string) *MethodResponse {
20506	s.ResponseModels = v
20507	return s
20508}
20509
20510// SetResponseParameters sets the ResponseParameters field's value.
20511func (s *MethodResponse) SetResponseParameters(v map[string]*bool) *MethodResponse {
20512	s.ResponseParameters = v
20513	return s
20514}
20515
20516// SetStatusCode sets the StatusCode field's value.
20517func (s *MethodResponse) SetStatusCode(v string) *MethodResponse {
20518	s.StatusCode = &v
20519	return s
20520}
20521
20522// Specifies the method setting properties.
20523type MethodSetting struct {
20524	_ struct{} `type:"structure"`
20525
20526	// Specifies whether the cached responses are encrypted. The PATCH path for
20527	// this setting is /{method_setting_key}/caching/dataEncrypted, and the value
20528	// is a Boolean.
20529	CacheDataEncrypted *bool `locationName:"cacheDataEncrypted" type:"boolean"`
20530
20531	// Specifies the time to live (TTL), in seconds, for cached responses. The higher
20532	// the TTL, the longer the response will be cached. The PATCH path for this
20533	// setting is /{method_setting_key}/caching/ttlInSeconds, and the value is an
20534	// integer.
20535	CacheTtlInSeconds *int64 `locationName:"cacheTtlInSeconds" type:"integer"`
20536
20537	// Specifies whether responses should be cached and returned for requests. A
20538	// cache cluster must be enabled on the stage for responses to be cached. The
20539	// PATCH path for this setting is /{method_setting_key}/caching/enabled, and
20540	// the value is a Boolean.
20541	CachingEnabled *bool `locationName:"cachingEnabled" type:"boolean"`
20542
20543	// Specifies whether data trace logging is enabled for this method, which affects
20544	// the log entries pushed to Amazon CloudWatch Logs. The PATCH path for this
20545	// setting is /{method_setting_key}/logging/dataTrace, and the value is a Boolean.
20546	DataTraceEnabled *bool `locationName:"dataTraceEnabled" type:"boolean"`
20547
20548	// Specifies the logging level for this method, which affects the log entries
20549	// pushed to Amazon CloudWatch Logs. The PATCH path for this setting is /{method_setting_key}/logging/loglevel,
20550	// and the available levels are OFF, ERROR, and INFO.
20551	LoggingLevel *string `locationName:"loggingLevel" type:"string"`
20552
20553	// Specifies whether Amazon CloudWatch metrics are enabled for this method.
20554	// The PATCH path for this setting is /{method_setting_key}/metrics/enabled,
20555	// and the value is a Boolean.
20556	MetricsEnabled *bool `locationName:"metricsEnabled" type:"boolean"`
20557
20558	// Specifies whether authorization is required for a cache invalidation request.
20559	// The PATCH path for this setting is /{method_setting_key}/caching/requireAuthorizationForCacheControl,
20560	// and the value is a Boolean.
20561	RequireAuthorizationForCacheControl *bool `locationName:"requireAuthorizationForCacheControl" type:"boolean"`
20562
20563	// Specifies the throttling burst limit. The PATCH path for this setting is
20564	// /{method_setting_key}/throttling/burstLimit, and the value is an integer.
20565	ThrottlingBurstLimit *int64 `locationName:"throttlingBurstLimit" type:"integer"`
20566
20567	// Specifies the throttling rate limit. The PATCH path for this setting is /{method_setting_key}/throttling/rateLimit,
20568	// and the value is a double.
20569	ThrottlingRateLimit *float64 `locationName:"throttlingRateLimit" type:"double"`
20570
20571	// Specifies how to handle unauthorized requests for cache invalidation. The
20572	// PATCH path for this setting is /{method_setting_key}/caching/unauthorizedCacheControlHeaderStrategy,
20573	// and the available values are FAIL_WITH_403, SUCCEED_WITH_RESPONSE_HEADER,
20574	// SUCCEED_WITHOUT_RESPONSE_HEADER.
20575	UnauthorizedCacheControlHeaderStrategy *string `locationName:"unauthorizedCacheControlHeaderStrategy" type:"string" enum:"UnauthorizedCacheControlHeaderStrategy"`
20576}
20577
20578// String returns the string representation
20579func (s MethodSetting) String() string {
20580	return awsutil.Prettify(s)
20581}
20582
20583// GoString returns the string representation
20584func (s MethodSetting) GoString() string {
20585	return s.String()
20586}
20587
20588// SetCacheDataEncrypted sets the CacheDataEncrypted field's value.
20589func (s *MethodSetting) SetCacheDataEncrypted(v bool) *MethodSetting {
20590	s.CacheDataEncrypted = &v
20591	return s
20592}
20593
20594// SetCacheTtlInSeconds sets the CacheTtlInSeconds field's value.
20595func (s *MethodSetting) SetCacheTtlInSeconds(v int64) *MethodSetting {
20596	s.CacheTtlInSeconds = &v
20597	return s
20598}
20599
20600// SetCachingEnabled sets the CachingEnabled field's value.
20601func (s *MethodSetting) SetCachingEnabled(v bool) *MethodSetting {
20602	s.CachingEnabled = &v
20603	return s
20604}
20605
20606// SetDataTraceEnabled sets the DataTraceEnabled field's value.
20607func (s *MethodSetting) SetDataTraceEnabled(v bool) *MethodSetting {
20608	s.DataTraceEnabled = &v
20609	return s
20610}
20611
20612// SetLoggingLevel sets the LoggingLevel field's value.
20613func (s *MethodSetting) SetLoggingLevel(v string) *MethodSetting {
20614	s.LoggingLevel = &v
20615	return s
20616}
20617
20618// SetMetricsEnabled sets the MetricsEnabled field's value.
20619func (s *MethodSetting) SetMetricsEnabled(v bool) *MethodSetting {
20620	s.MetricsEnabled = &v
20621	return s
20622}
20623
20624// SetRequireAuthorizationForCacheControl sets the RequireAuthorizationForCacheControl field's value.
20625func (s *MethodSetting) SetRequireAuthorizationForCacheControl(v bool) *MethodSetting {
20626	s.RequireAuthorizationForCacheControl = &v
20627	return s
20628}
20629
20630// SetThrottlingBurstLimit sets the ThrottlingBurstLimit field's value.
20631func (s *MethodSetting) SetThrottlingBurstLimit(v int64) *MethodSetting {
20632	s.ThrottlingBurstLimit = &v
20633	return s
20634}
20635
20636// SetThrottlingRateLimit sets the ThrottlingRateLimit field's value.
20637func (s *MethodSetting) SetThrottlingRateLimit(v float64) *MethodSetting {
20638	s.ThrottlingRateLimit = &v
20639	return s
20640}
20641
20642// SetUnauthorizedCacheControlHeaderStrategy sets the UnauthorizedCacheControlHeaderStrategy field's value.
20643func (s *MethodSetting) SetUnauthorizedCacheControlHeaderStrategy(v string) *MethodSetting {
20644	s.UnauthorizedCacheControlHeaderStrategy = &v
20645	return s
20646}
20647
20648// Represents a summary of a Method resource, given a particular date and time.
20649type MethodSnapshot struct {
20650	_ struct{} `type:"structure"`
20651
20652	// Specifies whether the method requires a valid ApiKey.
20653	ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"`
20654
20655	// The method's authorization type. Valid values are NONE for open access, AWS_IAM
20656	// for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS
20657	// for using a Cognito user pool.
20658	AuthorizationType *string `locationName:"authorizationType" type:"string"`
20659}
20660
20661// String returns the string representation
20662func (s MethodSnapshot) String() string {
20663	return awsutil.Prettify(s)
20664}
20665
20666// GoString returns the string representation
20667func (s MethodSnapshot) GoString() string {
20668	return s.String()
20669}
20670
20671// SetApiKeyRequired sets the ApiKeyRequired field's value.
20672func (s *MethodSnapshot) SetApiKeyRequired(v bool) *MethodSnapshot {
20673	s.ApiKeyRequired = &v
20674	return s
20675}
20676
20677// SetAuthorizationType sets the AuthorizationType field's value.
20678func (s *MethodSnapshot) SetAuthorizationType(v string) *MethodSnapshot {
20679	s.AuthorizationType = &v
20680	return s
20681}
20682
20683// Represents the data structure of a method's request or response payload.
20684//
20685// A request model defines the data structure of the client-supplied request
20686// payload. A response model defines the data structure of the response payload
20687// returned by the back end. Although not required, models are useful for mapping
20688// payloads between the front end and back end.
20689//
20690// A model is used for generating an API's SDK, validating the input request
20691// body, and creating a skeletal mapping template.
20692//
20693// Method, MethodResponse, Models and Mappings (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html)
20694type Model struct {
20695	_ struct{} `type:"structure"`
20696
20697	// The content-type for the model.
20698	ContentType *string `locationName:"contentType" type:"string"`
20699
20700	// The description of the model.
20701	Description *string `locationName:"description" type:"string"`
20702
20703	// The identifier for the model resource.
20704	Id *string `locationName:"id" type:"string"`
20705
20706	// The name of the model. Must be an alphanumeric string.
20707	Name *string `locationName:"name" type:"string"`
20708
20709	// The schema for the model. For application/json models, this should be JSON
20710	// schema draft 4 (https://tools.ietf.org/html/draft-zyp-json-schema-04) model.
20711	// Do not include "\*/" characters in the description of any properties because
20712	// such "\*/" characters may be interpreted as the closing marker for comments
20713	// in some languages, such as Java or JavaScript, causing the installation of
20714	// your API's SDK generated by API Gateway to fail.
20715	Schema *string `locationName:"schema" type:"string"`
20716}
20717
20718// String returns the string representation
20719func (s Model) String() string {
20720	return awsutil.Prettify(s)
20721}
20722
20723// GoString returns the string representation
20724func (s Model) GoString() string {
20725	return s.String()
20726}
20727
20728// SetContentType sets the ContentType field's value.
20729func (s *Model) SetContentType(v string) *Model {
20730	s.ContentType = &v
20731	return s
20732}
20733
20734// SetDescription sets the Description field's value.
20735func (s *Model) SetDescription(v string) *Model {
20736	s.Description = &v
20737	return s
20738}
20739
20740// SetId sets the Id field's value.
20741func (s *Model) SetId(v string) *Model {
20742	s.Id = &v
20743	return s
20744}
20745
20746// SetName sets the Name field's value.
20747func (s *Model) SetName(v string) *Model {
20748	s.Name = &v
20749	return s
20750}
20751
20752// SetSchema sets the Schema field's value.
20753func (s *Model) SetSchema(v string) *Model {
20754	s.Schema = &v
20755	return s
20756}
20757
20758// A single patch operation to apply to the specified resource. Please refer
20759// to http://tools.ietf.org/html/rfc6902#section-4 for an explanation of how
20760// each operation is used.
20761type PatchOperation struct {
20762	_ struct{} `type:"structure"`
20763
20764	// The copy update operation's source as identified by a JSON-Pointer value
20765	// referencing the location within the targeted resource to copy the value from.
20766	// For example, to promote a canary deployment, you copy the canary deployment
20767	// ID to the affiliated deployment ID by calling a PATCH request on a Stage
20768	// resource with "op":"copy", "from":"/canarySettings/deploymentId" and "path":"/deploymentId".
20769	From *string `locationName:"from" type:"string"`
20770
20771	// An update operation to be performed with this PATCH request. The valid value
20772	// can be add, remove, replace or copy. Not all valid operations are supported
20773	// for a given resource. Support of the operations depends on specific operational
20774	// contexts. Attempts to apply an unsupported operation on a resource will return
20775	// an error message.
20776	Op *string `locationName:"op" type:"string" enum:"Op"`
20777
20778	// The op operation's target, as identified by a JSON Pointer (https://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-08)
20779	// value that references a location within the targeted resource. For example,
20780	// if the target resource has an updateable property of {"name":"value"}, the
20781	// path for this property is /name. If the name property value is a JSON object
20782	// (e.g., {"name": {"child/name": "child-value"}}), the path for the child/name
20783	// property will be /name/child~1name. Any slash ("/") character appearing in
20784	// path names must be escaped with "~1", as shown in the example above. Each
20785	// op operation can have only one path associated with it.
20786	Path *string `locationName:"path" type:"string"`
20787
20788	// The new target value of the update operation. It is applicable for the add
20789	// or replace operation. When using AWS CLI to update a property of a JSON value,
20790	// enclose the JSON object with a pair of single quotes in a Linux shell, e.g.,
20791	// '{"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).
20792	Value *string `locationName:"value" type:"string"`
20793}
20794
20795// String returns the string representation
20796func (s PatchOperation) String() string {
20797	return awsutil.Prettify(s)
20798}
20799
20800// GoString returns the string representation
20801func (s PatchOperation) GoString() string {
20802	return s.String()
20803}
20804
20805// SetFrom sets the From field's value.
20806func (s *PatchOperation) SetFrom(v string) *PatchOperation {
20807	s.From = &v
20808	return s
20809}
20810
20811// SetOp sets the Op field's value.
20812func (s *PatchOperation) SetOp(v string) *PatchOperation {
20813	s.Op = &v
20814	return s
20815}
20816
20817// SetPath sets the Path field's value.
20818func (s *PatchOperation) SetPath(v string) *PatchOperation {
20819	s.Path = &v
20820	return s
20821}
20822
20823// SetValue sets the Value field's value.
20824func (s *PatchOperation) SetValue(v string) *PatchOperation {
20825	s.Value = &v
20826	return s
20827}
20828
20829// Creates a customization of a GatewayResponse of a specified response type
20830// and status code on the given RestApi.
20831type PutGatewayResponseInput struct {
20832	_ struct{} `type:"structure"`
20833
20834	// Response parameters (paths, query strings and headers) of the GatewayResponse
20835	// as a string-to-string map of key-value pairs.
20836	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
20837
20838	// Response templates of the GatewayResponse as a string-to-string map of key-value
20839	// pairs.
20840	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
20841
20842	// [Required]
20843	// The response type of the associated GatewayResponse. Valid values are
20844	//    * ACCESS_DENIED
20845	//
20846	//    * API_CONFIGURATION_ERROR
20847	//
20848	//    * AUTHORIZER_FAILURE
20849	//
20850	//    * AUTHORIZER_CONFIGURATION_ERROR
20851	//
20852	//    * BAD_REQUEST_PARAMETERS
20853	//
20854	//    * BAD_REQUEST_BODY
20855	//
20856	//    * DEFAULT_4XX
20857	//
20858	//    * DEFAULT_5XX
20859	//
20860	//    * EXPIRED_TOKEN
20861	//
20862	//    * INVALID_SIGNATURE
20863	//
20864	//    * INTEGRATION_FAILURE
20865	//
20866	//    * INTEGRATION_TIMEOUT
20867	//
20868	//    * INVALID_API_KEY
20869	//
20870	//    * MISSING_AUTHENTICATION_TOKEN
20871	//
20872	//    * QUOTA_EXCEEDED
20873	//
20874	//    * REQUEST_TOO_LARGE
20875	//
20876	//    * RESOURCE_NOT_FOUND
20877	//
20878	//    * THROTTLED
20879	//
20880	//    * UNAUTHORIZED
20881	//
20882	//    * UNSUPPORTED_MEDIA_TYPE
20883	//
20884	// ResponseType is a required field
20885	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
20886
20887	// [Required] The string identifier of the associated RestApi.
20888	//
20889	// RestApiId is a required field
20890	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
20891
20892	// The HTTP status code of the GatewayResponse.
20893	StatusCode *string `locationName:"statusCode" type:"string"`
20894}
20895
20896// String returns the string representation
20897func (s PutGatewayResponseInput) String() string {
20898	return awsutil.Prettify(s)
20899}
20900
20901// GoString returns the string representation
20902func (s PutGatewayResponseInput) GoString() string {
20903	return s.String()
20904}
20905
20906// Validate inspects the fields of the type to determine if they are valid.
20907func (s *PutGatewayResponseInput) Validate() error {
20908	invalidParams := request.ErrInvalidParams{Context: "PutGatewayResponseInput"}
20909	if s.ResponseType == nil {
20910		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
20911	}
20912	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
20913		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
20914	}
20915	if s.RestApiId == nil {
20916		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
20917	}
20918	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
20919		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
20920	}
20921
20922	if invalidParams.Len() > 0 {
20923		return invalidParams
20924	}
20925	return nil
20926}
20927
20928// SetResponseParameters sets the ResponseParameters field's value.
20929func (s *PutGatewayResponseInput) SetResponseParameters(v map[string]*string) *PutGatewayResponseInput {
20930	s.ResponseParameters = v
20931	return s
20932}
20933
20934// SetResponseTemplates sets the ResponseTemplates field's value.
20935func (s *PutGatewayResponseInput) SetResponseTemplates(v map[string]*string) *PutGatewayResponseInput {
20936	s.ResponseTemplates = v
20937	return s
20938}
20939
20940// SetResponseType sets the ResponseType field's value.
20941func (s *PutGatewayResponseInput) SetResponseType(v string) *PutGatewayResponseInput {
20942	s.ResponseType = &v
20943	return s
20944}
20945
20946// SetRestApiId sets the RestApiId field's value.
20947func (s *PutGatewayResponseInput) SetRestApiId(v string) *PutGatewayResponseInput {
20948	s.RestApiId = &v
20949	return s
20950}
20951
20952// SetStatusCode sets the StatusCode field's value.
20953func (s *PutGatewayResponseInput) SetStatusCode(v string) *PutGatewayResponseInput {
20954	s.StatusCode = &v
20955	return s
20956}
20957
20958// Sets up a method's integration.
20959type PutIntegrationInput struct {
20960	_ struct{} `type:"structure"`
20961
20962	// An API-specific tag group of related cached parameters.
20963	CacheKeyParameters []*string `locationName:"cacheKeyParameters" type:"list"`
20964
20965	// A list of request parameters whose values are to be cached.
20966	CacheNamespace *string `locationName:"cacheNamespace" type:"string"`
20967
20968	// The (id (https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id))
20969	// of the VpcLink used for the integration when connectionType=VPC_LINK and
20970	// undefined, otherwise.
20971	ConnectionId *string `locationName:"connectionId" type:"string"`
20972
20973	// The type of the network connection to the integration endpoint. The valid
20974	// value is INTERNET for connections through the public routable internet or
20975	// VPC_LINK for private connections between API Gateway and a network load balancer
20976	// in a VPC. The default value is INTERNET.
20977	ConnectionType *string `locationName:"connectionType" type:"string" enum:"ConnectionType"`
20978
20979	// Specifies how to handle request payload content type conversions. Supported
20980	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
20981	//
20982	//    * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded
20983	//    string to the corresponding binary blob.
20984	//
20985	//    * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a
20986	//    Base64-encoded string.
20987	//
20988	// If this property is not defined, the request payload will be passed through
20989	// from the method request to integration request without modification, provided
20990	// that the passthroughBehavior is configured to support payload pass-through.
20991	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
20992
20993	// Specifies whether credentials are required for a put integration.
20994	Credentials *string `locationName:"credentials" type:"string"`
20995
20996	// [Required] Specifies a put integration request's HTTP method.
20997	//
20998	// HttpMethod is a required field
20999	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
21000
21001	// Specifies a put integration HTTP method. When the integration type is HTTP
21002	// or AWS, this field is required.
21003	IntegrationHttpMethod *string `locationName:"httpMethod" type:"string"`
21004
21005	// Specifies the pass-through behavior for incoming requests based on the Content-Type
21006	// header in the request, and the available mapping templates specified as the
21007	// requestTemplates property on the Integration resource. There are three valid
21008	// values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER.
21009	//
21010	//    * WHEN_NO_MATCH passes the request body for unmapped content types through
21011	//    to the integration back end without transformation.
21012	//
21013	//    * NEVER rejects unmapped content types with an HTTP 415 'Unsupported Media
21014	//    Type' response.
21015	//
21016	//    * WHEN_NO_TEMPLATES allows pass-through when the integration has NO content
21017	//    types mapped to templates. However if there is at least one content type
21018	//    defined, unmapped content types will be rejected with the same 415 response.
21019	PassthroughBehavior *string `locationName:"passthroughBehavior" type:"string"`
21020
21021	// A key-value map specifying request parameters that are passed from the method
21022	// request to the back end. The key is an integration request parameter name
21023	// and the associated value is a method request parameter value or static value
21024	// that must be enclosed within single quotes and pre-encoded as required by
21025	// the back end. The method request parameter value must match the pattern of
21026	// method.request.{location}.{name}, where location is querystring, path, or
21027	// header and name must be a valid and unique method request parameter name.
21028	RequestParameters map[string]*string `locationName:"requestParameters" type:"map"`
21029
21030	// Represents a map of Velocity templates that are applied on the request payload
21031	// based on the value of the Content-Type header sent by the client. The content
21032	// type value is the key in this map, and the template (as a String) is the
21033	// value.
21034	RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
21035
21036	// [Required] Specifies a put integration request's resource ID.
21037	//
21038	// ResourceId is a required field
21039	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
21040
21041	// [Required] The string identifier of the associated RestApi.
21042	//
21043	// RestApiId is a required field
21044	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
21045
21046	// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000
21047	// milliseconds or 29 seconds.
21048	TimeoutInMillis *int64 `locationName:"timeoutInMillis" type:"integer"`
21049
21050	// [Required] Specifies a put integration input's type.
21051	//
21052	// Type is a required field
21053	Type *string `locationName:"type" type:"string" required:"true" enum:"IntegrationType"`
21054
21055	// Specifies Uniform Resource Identifier (URI) of the integration endpoint.
21056	//
21057	//    * For HTTP or HTTP_PROXY integrations, the URI must be a fully formed,
21058	//    encoded HTTP(S) URL according to the RFC-3986 specification (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier),
21059	//    for either standard integration, where connectionType is not VPC_LINK,
21060	//    or private integration, where connectionType is VPC_LINK. For a private
21061	//    HTTP integration, the URI is not used for routing.
21062	//
21063	//    * For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}.
21064	//    Here, {Region} is the API Gateway region (e.g., us-east-1); {service}
21065	//    is the name of the integrated AWS service (e.g., s3); and {subdomain}
21066	//    is a designated subdomain supported by certain AWS service for fast host-name
21067	//    lookup. action can be used for an AWS service action-based API, using
21068	//    an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api}
21069	//    refers to a supported action {name} plus any required input parameters.
21070	//    Alternatively, path can be used for an AWS service path-based API. The
21071	//    ensuing service_api refers to the path to an AWS service resource, including
21072	//    the region of the integrated AWS service, if applicable. For example,
21073	//    for integration with the S3 API of GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html),
21074	//    the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}
21075	//    or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}
21076	Uri *string `locationName:"uri" type:"string"`
21077}
21078
21079// String returns the string representation
21080func (s PutIntegrationInput) String() string {
21081	return awsutil.Prettify(s)
21082}
21083
21084// GoString returns the string representation
21085func (s PutIntegrationInput) GoString() string {
21086	return s.String()
21087}
21088
21089// Validate inspects the fields of the type to determine if they are valid.
21090func (s *PutIntegrationInput) Validate() error {
21091	invalidParams := request.ErrInvalidParams{Context: "PutIntegrationInput"}
21092	if s.HttpMethod == nil {
21093		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
21094	}
21095	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
21096		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
21097	}
21098	if s.ResourceId == nil {
21099		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
21100	}
21101	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
21102		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
21103	}
21104	if s.RestApiId == nil {
21105		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
21106	}
21107	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
21108		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
21109	}
21110	if s.Type == nil {
21111		invalidParams.Add(request.NewErrParamRequired("Type"))
21112	}
21113
21114	if invalidParams.Len() > 0 {
21115		return invalidParams
21116	}
21117	return nil
21118}
21119
21120// SetCacheKeyParameters sets the CacheKeyParameters field's value.
21121func (s *PutIntegrationInput) SetCacheKeyParameters(v []*string) *PutIntegrationInput {
21122	s.CacheKeyParameters = v
21123	return s
21124}
21125
21126// SetCacheNamespace sets the CacheNamespace field's value.
21127func (s *PutIntegrationInput) SetCacheNamespace(v string) *PutIntegrationInput {
21128	s.CacheNamespace = &v
21129	return s
21130}
21131
21132// SetConnectionId sets the ConnectionId field's value.
21133func (s *PutIntegrationInput) SetConnectionId(v string) *PutIntegrationInput {
21134	s.ConnectionId = &v
21135	return s
21136}
21137
21138// SetConnectionType sets the ConnectionType field's value.
21139func (s *PutIntegrationInput) SetConnectionType(v string) *PutIntegrationInput {
21140	s.ConnectionType = &v
21141	return s
21142}
21143
21144// SetContentHandling sets the ContentHandling field's value.
21145func (s *PutIntegrationInput) SetContentHandling(v string) *PutIntegrationInput {
21146	s.ContentHandling = &v
21147	return s
21148}
21149
21150// SetCredentials sets the Credentials field's value.
21151func (s *PutIntegrationInput) SetCredentials(v string) *PutIntegrationInput {
21152	s.Credentials = &v
21153	return s
21154}
21155
21156// SetHttpMethod sets the HttpMethod field's value.
21157func (s *PutIntegrationInput) SetHttpMethod(v string) *PutIntegrationInput {
21158	s.HttpMethod = &v
21159	return s
21160}
21161
21162// SetIntegrationHttpMethod sets the IntegrationHttpMethod field's value.
21163func (s *PutIntegrationInput) SetIntegrationHttpMethod(v string) *PutIntegrationInput {
21164	s.IntegrationHttpMethod = &v
21165	return s
21166}
21167
21168// SetPassthroughBehavior sets the PassthroughBehavior field's value.
21169func (s *PutIntegrationInput) SetPassthroughBehavior(v string) *PutIntegrationInput {
21170	s.PassthroughBehavior = &v
21171	return s
21172}
21173
21174// SetRequestParameters sets the RequestParameters field's value.
21175func (s *PutIntegrationInput) SetRequestParameters(v map[string]*string) *PutIntegrationInput {
21176	s.RequestParameters = v
21177	return s
21178}
21179
21180// SetRequestTemplates sets the RequestTemplates field's value.
21181func (s *PutIntegrationInput) SetRequestTemplates(v map[string]*string) *PutIntegrationInput {
21182	s.RequestTemplates = v
21183	return s
21184}
21185
21186// SetResourceId sets the ResourceId field's value.
21187func (s *PutIntegrationInput) SetResourceId(v string) *PutIntegrationInput {
21188	s.ResourceId = &v
21189	return s
21190}
21191
21192// SetRestApiId sets the RestApiId field's value.
21193func (s *PutIntegrationInput) SetRestApiId(v string) *PutIntegrationInput {
21194	s.RestApiId = &v
21195	return s
21196}
21197
21198// SetTimeoutInMillis sets the TimeoutInMillis field's value.
21199func (s *PutIntegrationInput) SetTimeoutInMillis(v int64) *PutIntegrationInput {
21200	s.TimeoutInMillis = &v
21201	return s
21202}
21203
21204// SetType sets the Type field's value.
21205func (s *PutIntegrationInput) SetType(v string) *PutIntegrationInput {
21206	s.Type = &v
21207	return s
21208}
21209
21210// SetUri sets the Uri field's value.
21211func (s *PutIntegrationInput) SetUri(v string) *PutIntegrationInput {
21212	s.Uri = &v
21213	return s
21214}
21215
21216// Represents a put integration response request.
21217type PutIntegrationResponseInput struct {
21218	_ struct{} `type:"structure"`
21219
21220	// Specifies how to handle response payload content type conversions. Supported
21221	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
21222	//
21223	//    * CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded
21224	//    string to the corresponding binary blob.
21225	//
21226	//    * CONVERT_TO_TEXT: Converts a response payload from a binary blob to a
21227	//    Base64-encoded string.
21228	//
21229	// If this property is not defined, the response payload will be passed through
21230	// from the integration response to the method response without modification.
21231	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
21232
21233	// [Required] Specifies a put integration response request's HTTP method.
21234	//
21235	// HttpMethod is a required field
21236	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
21237
21238	// [Required] Specifies a put integration response request's resource identifier.
21239	//
21240	// ResourceId is a required field
21241	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
21242
21243	// A key-value map specifying response parameters that are passed to the method
21244	// response from the back end. The key is a method response header parameter
21245	// name and the mapped value is an integration response header value, a static
21246	// value enclosed within a pair of single quotes, or a JSON expression from
21247	// the integration response body. The mapping key must match the pattern of
21248	// method.response.header.{name}, where name is a valid and unique header name.
21249	// The mapped non-static value must match the pattern of integration.response.header.{name}
21250	// or integration.response.body.{JSON-expression}, where name must be a valid
21251	// and unique response header name and JSON-expression a valid JSON expression
21252	// without the $ prefix.
21253	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
21254
21255	// Specifies a put integration response's templates.
21256	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
21257
21258	// [Required] The string identifier of the associated RestApi.
21259	//
21260	// RestApiId is a required field
21261	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
21262
21263	// Specifies the selection pattern of a put integration response.
21264	SelectionPattern *string `locationName:"selectionPattern" type:"string"`
21265
21266	// [Required] Specifies the status code that is used to map the integration
21267	// response to an existing MethodResponse.
21268	//
21269	// StatusCode is a required field
21270	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
21271}
21272
21273// String returns the string representation
21274func (s PutIntegrationResponseInput) String() string {
21275	return awsutil.Prettify(s)
21276}
21277
21278// GoString returns the string representation
21279func (s PutIntegrationResponseInput) GoString() string {
21280	return s.String()
21281}
21282
21283// Validate inspects the fields of the type to determine if they are valid.
21284func (s *PutIntegrationResponseInput) Validate() error {
21285	invalidParams := request.ErrInvalidParams{Context: "PutIntegrationResponseInput"}
21286	if s.HttpMethod == nil {
21287		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
21288	}
21289	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
21290		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
21291	}
21292	if s.ResourceId == nil {
21293		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
21294	}
21295	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
21296		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
21297	}
21298	if s.RestApiId == nil {
21299		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
21300	}
21301	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
21302		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
21303	}
21304	if s.StatusCode == nil {
21305		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
21306	}
21307	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
21308		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
21309	}
21310
21311	if invalidParams.Len() > 0 {
21312		return invalidParams
21313	}
21314	return nil
21315}
21316
21317// SetContentHandling sets the ContentHandling field's value.
21318func (s *PutIntegrationResponseInput) SetContentHandling(v string) *PutIntegrationResponseInput {
21319	s.ContentHandling = &v
21320	return s
21321}
21322
21323// SetHttpMethod sets the HttpMethod field's value.
21324func (s *PutIntegrationResponseInput) SetHttpMethod(v string) *PutIntegrationResponseInput {
21325	s.HttpMethod = &v
21326	return s
21327}
21328
21329// SetResourceId sets the ResourceId field's value.
21330func (s *PutIntegrationResponseInput) SetResourceId(v string) *PutIntegrationResponseInput {
21331	s.ResourceId = &v
21332	return s
21333}
21334
21335// SetResponseParameters sets the ResponseParameters field's value.
21336func (s *PutIntegrationResponseInput) SetResponseParameters(v map[string]*string) *PutIntegrationResponseInput {
21337	s.ResponseParameters = v
21338	return s
21339}
21340
21341// SetResponseTemplates sets the ResponseTemplates field's value.
21342func (s *PutIntegrationResponseInput) SetResponseTemplates(v map[string]*string) *PutIntegrationResponseInput {
21343	s.ResponseTemplates = v
21344	return s
21345}
21346
21347// SetRestApiId sets the RestApiId field's value.
21348func (s *PutIntegrationResponseInput) SetRestApiId(v string) *PutIntegrationResponseInput {
21349	s.RestApiId = &v
21350	return s
21351}
21352
21353// SetSelectionPattern sets the SelectionPattern field's value.
21354func (s *PutIntegrationResponseInput) SetSelectionPattern(v string) *PutIntegrationResponseInput {
21355	s.SelectionPattern = &v
21356	return s
21357}
21358
21359// SetStatusCode sets the StatusCode field's value.
21360func (s *PutIntegrationResponseInput) SetStatusCode(v string) *PutIntegrationResponseInput {
21361	s.StatusCode = &v
21362	return s
21363}
21364
21365// Request to add a method to an existing Resource resource.
21366type PutMethodInput struct {
21367	_ struct{} `type:"structure"`
21368
21369	// Specifies whether the method required a valid ApiKey.
21370	ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"`
21371
21372	// A list of authorization scopes configured on the method. The scopes are used
21373	// with a COGNITO_USER_POOLS authorizer to authorize the method invocation.
21374	// The authorization works by matching the method scopes against the scopes
21375	// parsed from the access token in the incoming request. The method invocation
21376	// is authorized if any method scopes matches a claimed scope in the access
21377	// token. Otherwise, the invocation is not authorized. When the method scope
21378	// is configured, the client must provide an access token instead of an identity
21379	// token for authorization purposes.
21380	AuthorizationScopes []*string `locationName:"authorizationScopes" type:"list"`
21381
21382	// [Required] The method's authorization type. Valid values are NONE for open
21383	// access, AWS_IAM for using AWS IAM permissions, CUSTOM for using a custom
21384	// authorizer, or COGNITO_USER_POOLS for using a Cognito user pool.
21385	//
21386	// AuthorizationType is a required field
21387	AuthorizationType *string `locationName:"authorizationType" type:"string" required:"true"`
21388
21389	// Specifies the identifier of an Authorizer to use on this Method, if the type
21390	// is CUSTOM or COGNITO_USER_POOLS. The authorizer identifier is generated by
21391	// API Gateway when you created the authorizer.
21392	AuthorizerId *string `locationName:"authorizerId" type:"string"`
21393
21394	// [Required] Specifies the method request's HTTP method type.
21395	//
21396	// HttpMethod is a required field
21397	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
21398
21399	// A human-friendly operation identifier for the method. For example, you can
21400	// assign the operationName of ListPets for the GET /pets method in the PetStore
21401	// example.
21402	OperationName *string `locationName:"operationName" type:"string"`
21403
21404	// Specifies the Model resources used for the request's content type. Request
21405	// models are represented as a key/value map, with a content type as the key
21406	// and a Model name as the value.
21407	RequestModels map[string]*string `locationName:"requestModels" type:"map"`
21408
21409	// A key-value map defining required or optional method request parameters that
21410	// can be accepted by API Gateway. A key defines a method request parameter
21411	// name matching the pattern of method.request.{location}.{name}, where location
21412	// is querystring, path, or header and name is a valid and unique parameter
21413	// name. The value associated with the key is a Boolean flag indicating whether
21414	// the parameter is required (true) or optional (false). The method request
21415	// parameter names defined here are available in Integration to be mapped to
21416	// integration request parameters or body-mapping templates.
21417	RequestParameters map[string]*bool `locationName:"requestParameters" type:"map"`
21418
21419	// The identifier of a RequestValidator for validating the method request.
21420	RequestValidatorId *string `locationName:"requestValidatorId" type:"string"`
21421
21422	// [Required] The Resource identifier for the new Method resource.
21423	//
21424	// ResourceId is a required field
21425	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
21426
21427	// [Required] The string identifier of the associated RestApi.
21428	//
21429	// RestApiId is a required field
21430	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
21431}
21432
21433// String returns the string representation
21434func (s PutMethodInput) String() string {
21435	return awsutil.Prettify(s)
21436}
21437
21438// GoString returns the string representation
21439func (s PutMethodInput) GoString() string {
21440	return s.String()
21441}
21442
21443// Validate inspects the fields of the type to determine if they are valid.
21444func (s *PutMethodInput) Validate() error {
21445	invalidParams := request.ErrInvalidParams{Context: "PutMethodInput"}
21446	if s.AuthorizationType == nil {
21447		invalidParams.Add(request.NewErrParamRequired("AuthorizationType"))
21448	}
21449	if s.HttpMethod == nil {
21450		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
21451	}
21452	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
21453		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
21454	}
21455	if s.ResourceId == nil {
21456		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
21457	}
21458	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
21459		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
21460	}
21461	if s.RestApiId == nil {
21462		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
21463	}
21464	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
21465		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
21466	}
21467
21468	if invalidParams.Len() > 0 {
21469		return invalidParams
21470	}
21471	return nil
21472}
21473
21474// SetApiKeyRequired sets the ApiKeyRequired field's value.
21475func (s *PutMethodInput) SetApiKeyRequired(v bool) *PutMethodInput {
21476	s.ApiKeyRequired = &v
21477	return s
21478}
21479
21480// SetAuthorizationScopes sets the AuthorizationScopes field's value.
21481func (s *PutMethodInput) SetAuthorizationScopes(v []*string) *PutMethodInput {
21482	s.AuthorizationScopes = v
21483	return s
21484}
21485
21486// SetAuthorizationType sets the AuthorizationType field's value.
21487func (s *PutMethodInput) SetAuthorizationType(v string) *PutMethodInput {
21488	s.AuthorizationType = &v
21489	return s
21490}
21491
21492// SetAuthorizerId sets the AuthorizerId field's value.
21493func (s *PutMethodInput) SetAuthorizerId(v string) *PutMethodInput {
21494	s.AuthorizerId = &v
21495	return s
21496}
21497
21498// SetHttpMethod sets the HttpMethod field's value.
21499func (s *PutMethodInput) SetHttpMethod(v string) *PutMethodInput {
21500	s.HttpMethod = &v
21501	return s
21502}
21503
21504// SetOperationName sets the OperationName field's value.
21505func (s *PutMethodInput) SetOperationName(v string) *PutMethodInput {
21506	s.OperationName = &v
21507	return s
21508}
21509
21510// SetRequestModels sets the RequestModels field's value.
21511func (s *PutMethodInput) SetRequestModels(v map[string]*string) *PutMethodInput {
21512	s.RequestModels = v
21513	return s
21514}
21515
21516// SetRequestParameters sets the RequestParameters field's value.
21517func (s *PutMethodInput) SetRequestParameters(v map[string]*bool) *PutMethodInput {
21518	s.RequestParameters = v
21519	return s
21520}
21521
21522// SetRequestValidatorId sets the RequestValidatorId field's value.
21523func (s *PutMethodInput) SetRequestValidatorId(v string) *PutMethodInput {
21524	s.RequestValidatorId = &v
21525	return s
21526}
21527
21528// SetResourceId sets the ResourceId field's value.
21529func (s *PutMethodInput) SetResourceId(v string) *PutMethodInput {
21530	s.ResourceId = &v
21531	return s
21532}
21533
21534// SetRestApiId sets the RestApiId field's value.
21535func (s *PutMethodInput) SetRestApiId(v string) *PutMethodInput {
21536	s.RestApiId = &v
21537	return s
21538}
21539
21540// Request to add a MethodResponse to an existing Method resource.
21541type PutMethodResponseInput struct {
21542	_ struct{} `type:"structure"`
21543
21544	// [Required] The HTTP verb of the Method resource.
21545	//
21546	// HttpMethod is a required field
21547	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
21548
21549	// [Required] The Resource identifier for the Method resource.
21550	//
21551	// ResourceId is a required field
21552	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
21553
21554	// Specifies the Model resources used for the response's content type. Response
21555	// models are represented as a key/value map, with a content type as the key
21556	// and a Model name as the value.
21557	ResponseModels map[string]*string `locationName:"responseModels" type:"map"`
21558
21559	// A key-value map specifying required or optional response parameters that
21560	// API Gateway can send back to the caller. A key defines a method response
21561	// header name and the associated value is a Boolean flag indicating whether
21562	// the method response parameter is required or not. The method response header
21563	// names must match the pattern of method.response.header.{name}, where name
21564	// is a valid and unique header name. The response parameter names defined here
21565	// are available in the integration response to be mapped from an integration
21566	// response header expressed in integration.response.header.{name}, a static
21567	// value enclosed within a pair of single quotes (e.g., 'application/json'),
21568	// or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression},
21569	// where JSON-expression is a valid JSON expression without the $ prefix.)
21570	ResponseParameters map[string]*bool `locationName:"responseParameters" type:"map"`
21571
21572	// [Required] The string identifier of the associated RestApi.
21573	//
21574	// RestApiId is a required field
21575	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
21576
21577	// [Required] The method response's status code.
21578	//
21579	// StatusCode is a required field
21580	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
21581}
21582
21583// String returns the string representation
21584func (s PutMethodResponseInput) String() string {
21585	return awsutil.Prettify(s)
21586}
21587
21588// GoString returns the string representation
21589func (s PutMethodResponseInput) GoString() string {
21590	return s.String()
21591}
21592
21593// Validate inspects the fields of the type to determine if they are valid.
21594func (s *PutMethodResponseInput) Validate() error {
21595	invalidParams := request.ErrInvalidParams{Context: "PutMethodResponseInput"}
21596	if s.HttpMethod == nil {
21597		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
21598	}
21599	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
21600		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
21601	}
21602	if s.ResourceId == nil {
21603		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
21604	}
21605	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
21606		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
21607	}
21608	if s.RestApiId == nil {
21609		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
21610	}
21611	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
21612		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
21613	}
21614	if s.StatusCode == nil {
21615		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
21616	}
21617	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
21618		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
21619	}
21620
21621	if invalidParams.Len() > 0 {
21622		return invalidParams
21623	}
21624	return nil
21625}
21626
21627// SetHttpMethod sets the HttpMethod field's value.
21628func (s *PutMethodResponseInput) SetHttpMethod(v string) *PutMethodResponseInput {
21629	s.HttpMethod = &v
21630	return s
21631}
21632
21633// SetResourceId sets the ResourceId field's value.
21634func (s *PutMethodResponseInput) SetResourceId(v string) *PutMethodResponseInput {
21635	s.ResourceId = &v
21636	return s
21637}
21638
21639// SetResponseModels sets the ResponseModels field's value.
21640func (s *PutMethodResponseInput) SetResponseModels(v map[string]*string) *PutMethodResponseInput {
21641	s.ResponseModels = v
21642	return s
21643}
21644
21645// SetResponseParameters sets the ResponseParameters field's value.
21646func (s *PutMethodResponseInput) SetResponseParameters(v map[string]*bool) *PutMethodResponseInput {
21647	s.ResponseParameters = v
21648	return s
21649}
21650
21651// SetRestApiId sets the RestApiId field's value.
21652func (s *PutMethodResponseInput) SetRestApiId(v string) *PutMethodResponseInput {
21653	s.RestApiId = &v
21654	return s
21655}
21656
21657// SetStatusCode sets the StatusCode field's value.
21658func (s *PutMethodResponseInput) SetStatusCode(v string) *PutMethodResponseInput {
21659	s.StatusCode = &v
21660	return s
21661}
21662
21663// A PUT request to update an existing API, with external API definitions specified
21664// as the request body.
21665type PutRestApiInput struct {
21666	_ struct{} `type:"structure" payload:"Body"`
21667
21668	// [Required] The PUT request body containing external API definitions. Currently,
21669	// only OpenAPI definition JSON/YAML files are supported. The maximum size of
21670	// the API definition file is 2MB.
21671	//
21672	// Body is a required field
21673	Body []byte `locationName:"body" type:"blob" required:"true"`
21674
21675	// A query parameter to indicate whether to rollback the API update (true) or
21676	// not (false) when a warning is encountered. The default value is false.
21677	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
21678
21679	// The mode query parameter to specify the update mode. Valid values are "merge"
21680	// and "overwrite". By default, the update mode is "merge".
21681	Mode *string `location:"querystring" locationName:"mode" type:"string" enum:"PutMode"`
21682
21683	// Custom header parameters as part of the request. For example, to exclude
21684	// DocumentationParts from an imported API, set ignore=documentation as a parameters
21685	// value, as in the AWS CLI command of aws apigateway import-rest-api --parameters
21686	// ignore=documentation --body 'file:///path/to/imported-api-body.json'.
21687	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
21688
21689	// [Required] The string identifier of the associated RestApi.
21690	//
21691	// RestApiId is a required field
21692	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
21693}
21694
21695// String returns the string representation
21696func (s PutRestApiInput) String() string {
21697	return awsutil.Prettify(s)
21698}
21699
21700// GoString returns the string representation
21701func (s PutRestApiInput) GoString() string {
21702	return s.String()
21703}
21704
21705// Validate inspects the fields of the type to determine if they are valid.
21706func (s *PutRestApiInput) Validate() error {
21707	invalidParams := request.ErrInvalidParams{Context: "PutRestApiInput"}
21708	if s.Body == nil {
21709		invalidParams.Add(request.NewErrParamRequired("Body"))
21710	}
21711	if s.RestApiId == nil {
21712		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
21713	}
21714	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
21715		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
21716	}
21717
21718	if invalidParams.Len() > 0 {
21719		return invalidParams
21720	}
21721	return nil
21722}
21723
21724// SetBody sets the Body field's value.
21725func (s *PutRestApiInput) SetBody(v []byte) *PutRestApiInput {
21726	s.Body = v
21727	return s
21728}
21729
21730// SetFailOnWarnings sets the FailOnWarnings field's value.
21731func (s *PutRestApiInput) SetFailOnWarnings(v bool) *PutRestApiInput {
21732	s.FailOnWarnings = &v
21733	return s
21734}
21735
21736// SetMode sets the Mode field's value.
21737func (s *PutRestApiInput) SetMode(v string) *PutRestApiInput {
21738	s.Mode = &v
21739	return s
21740}
21741
21742// SetParameters sets the Parameters field's value.
21743func (s *PutRestApiInput) SetParameters(v map[string]*string) *PutRestApiInput {
21744	s.Parameters = v
21745	return s
21746}
21747
21748// SetRestApiId sets the RestApiId field's value.
21749func (s *PutRestApiInput) SetRestApiId(v string) *PutRestApiInput {
21750	s.RestApiId = &v
21751	return s
21752}
21753
21754// Quotas configured for a usage plan.
21755type QuotaSettings struct {
21756	_ struct{} `type:"structure"`
21757
21758	// The maximum number of requests that can be made in a given time period.
21759	Limit *int64 `locationName:"limit" type:"integer"`
21760
21761	// The number of requests subtracted from the given limit in the initial time
21762	// period.
21763	Offset *int64 `locationName:"offset" type:"integer"`
21764
21765	// The time period in which the limit applies. Valid values are "DAY", "WEEK"
21766	// or "MONTH".
21767	Period *string `locationName:"period" type:"string" enum:"QuotaPeriodType"`
21768}
21769
21770// String returns the string representation
21771func (s QuotaSettings) String() string {
21772	return awsutil.Prettify(s)
21773}
21774
21775// GoString returns the string representation
21776func (s QuotaSettings) GoString() string {
21777	return s.String()
21778}
21779
21780// SetLimit sets the Limit field's value.
21781func (s *QuotaSettings) SetLimit(v int64) *QuotaSettings {
21782	s.Limit = &v
21783	return s
21784}
21785
21786// SetOffset sets the Offset field's value.
21787func (s *QuotaSettings) SetOffset(v int64) *QuotaSettings {
21788	s.Offset = &v
21789	return s
21790}
21791
21792// SetPeriod sets the Period field's value.
21793func (s *QuotaSettings) SetPeriod(v string) *QuotaSettings {
21794	s.Period = &v
21795	return s
21796}
21797
21798// Represents an API resource.
21799//
21800// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
21801type Resource struct {
21802	_ struct{} `type:"structure"`
21803
21804	// The resource's identifier.
21805	Id *string `locationName:"id" type:"string"`
21806
21807	// The parent resource's identifier.
21808	ParentId *string `locationName:"parentId" type:"string"`
21809
21810	// The full path for this resource.
21811	Path *string `locationName:"path" type:"string"`
21812
21813	// The last path segment for this resource.
21814	PathPart *string `locationName:"pathPart" type:"string"`
21815
21816	// Gets an API resource's method of a given HTTP verb.
21817	//
21818	// The resource methods are a map of methods indexed by methods' HTTP verbs
21819	// enabled on the resource. This method map is included in the 200 OK response
21820	// of the GET /restapis/{restapi_id}/resources/{resource_id} or GET /restapis/{restapi_id}/resources/{resource_id}?embed=methods
21821	// request.
21822	//
21823	// Example: Get the GET method of an API resource
21824	//
21825	// Request
21826	//  GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET HTTP/1.1 Content-Type:
21827	//  application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20170223T031827Z
21828	//  Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20170223/us-east-1/apigateway/aws4_request,
21829	//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
21830	// Response
21831	//  { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html",
21832	//  "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
21833	//  "name": "integrationresponse", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html",
21834	//  "name": "method", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
21835	//  "name": "methodresponse", "templated": true } ], "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET",
21836	//  "name": "GET", "title": "GET" }, "integration:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
21837	//  }, "method:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
21838	//  }, "method:integration": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
21839	//  }, "method:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
21840	//  "name": "200", "title": "200" }, "method:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
21841	//  }, "methodresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}",
21842	//  "templated": true } }, "apiKeyRequired": false, "authorizationType": "NONE",
21843	//  "httpMethod": "GET", "_embedded": { "method:integration": { "_links": {
21844	//  "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
21845	//  }, "integration:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
21846	//  }, "integration:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
21847	//  "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
21848	//  }, "integrationresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}",
21849	//  "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "3kzxbg5sa2",
21850	//  "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod":
21851	//  "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": { "integration.request.header.Content-Type":
21852	//  "'application/x-amz-json-1.1'" }, "requestTemplates": { "application/json":
21853	//  "{\n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams",
21854	//  "_embedded": { "integration:responses": { "_links": { "self": { "href":
21855	//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
21856	//  "name": "200", "title": "200" }, "integrationresponse:delete": { "href":
21857	//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
21858	//  }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
21859	//  } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'"
21860	//  }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream
21861	//  in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n"
21862	//  }, "statusCode": "200" } } }, "method:responses": { "_links": { "self":
21863	//  { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
21864	//  "name": "200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
21865	//  }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
21866	//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
21867	//  { "method.response.header.Content-Type": false }, "statusCode": "200" }
21868	//  } }
21869	// If the OPTIONS is enabled on the resource, you can follow the example here
21870	// to get that method. Just replace the GET of the last path segment in the
21871	// request URL with OPTIONS.
21872	ResourceMethods map[string]*Method `locationName:"resourceMethods" type:"map"`
21873}
21874
21875// String returns the string representation
21876func (s Resource) String() string {
21877	return awsutil.Prettify(s)
21878}
21879
21880// GoString returns the string representation
21881func (s Resource) GoString() string {
21882	return s.String()
21883}
21884
21885// SetId sets the Id field's value.
21886func (s *Resource) SetId(v string) *Resource {
21887	s.Id = &v
21888	return s
21889}
21890
21891// SetParentId sets the ParentId field's value.
21892func (s *Resource) SetParentId(v string) *Resource {
21893	s.ParentId = &v
21894	return s
21895}
21896
21897// SetPath sets the Path field's value.
21898func (s *Resource) SetPath(v string) *Resource {
21899	s.Path = &v
21900	return s
21901}
21902
21903// SetPathPart sets the PathPart field's value.
21904func (s *Resource) SetPathPart(v string) *Resource {
21905	s.PathPart = &v
21906	return s
21907}
21908
21909// SetResourceMethods sets the ResourceMethods field's value.
21910func (s *Resource) SetResourceMethods(v map[string]*Method) *Resource {
21911	s.ResourceMethods = v
21912	return s
21913}
21914
21915// Represents a REST API.
21916//
21917// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
21918type RestApi struct {
21919	_ struct{} `type:"structure"`
21920
21921	// The source of the API key for metering requests according to a usage plan.
21922	// Valid values are:
21923	//    * HEADER to read the API key from the X-API-Key header of a request.
21924	//
21925	//    * AUTHORIZER to read the API key from the UsageIdentifierKey from a custom
21926	//    authorizer.
21927	ApiKeySource *string `locationName:"apiKeySource" type:"string" enum:"ApiKeySourceType"`
21928
21929	// The list of binary media types supported by the RestApi. By default, the
21930	// RestApi supports only UTF-8-encoded text payloads.
21931	BinaryMediaTypes []*string `locationName:"binaryMediaTypes" type:"list"`
21932
21933	// The timestamp when the API was created.
21934	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
21935
21936	// The API's description.
21937	Description *string `locationName:"description" type:"string"`
21938
21939	// The endpoint configuration of this RestApi showing the endpoint types of
21940	// the API.
21941	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
21942
21943	// The API's identifier. This identifier is unique across all of your APIs in
21944	// API Gateway.
21945	Id *string `locationName:"id" type:"string"`
21946
21947	// A nullable integer that is used to enable compression (with non-negative
21948	// between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with
21949	// a null value) on an API. When compression is enabled, compression or decompression
21950	// is not applied on the payload if the payload size is smaller than this value.
21951	// Setting it to zero allows compression for any payload size.
21952	MinimumCompressionSize *int64 `locationName:"minimumCompressionSize" type:"integer"`
21953
21954	// The API's name.
21955	Name *string `locationName:"name" type:"string"`
21956
21957	// A stringified JSON policy document that applies to this RestApi regardless
21958	// of the caller and Method configuration.
21959	Policy *string `locationName:"policy" type:"string"`
21960
21961	// The collection of tags. Each tag element is associated with a given resource.
21962	Tags map[string]*string `locationName:"tags" type:"map"`
21963
21964	// A version identifier for the API.
21965	Version *string `locationName:"version" type:"string"`
21966
21967	// The warning messages reported when failonwarnings is turned on during API
21968	// import.
21969	Warnings []*string `locationName:"warnings" type:"list"`
21970}
21971
21972// String returns the string representation
21973func (s RestApi) String() string {
21974	return awsutil.Prettify(s)
21975}
21976
21977// GoString returns the string representation
21978func (s RestApi) GoString() string {
21979	return s.String()
21980}
21981
21982// SetApiKeySource sets the ApiKeySource field's value.
21983func (s *RestApi) SetApiKeySource(v string) *RestApi {
21984	s.ApiKeySource = &v
21985	return s
21986}
21987
21988// SetBinaryMediaTypes sets the BinaryMediaTypes field's value.
21989func (s *RestApi) SetBinaryMediaTypes(v []*string) *RestApi {
21990	s.BinaryMediaTypes = v
21991	return s
21992}
21993
21994// SetCreatedDate sets the CreatedDate field's value.
21995func (s *RestApi) SetCreatedDate(v time.Time) *RestApi {
21996	s.CreatedDate = &v
21997	return s
21998}
21999
22000// SetDescription sets the Description field's value.
22001func (s *RestApi) SetDescription(v string) *RestApi {
22002	s.Description = &v
22003	return s
22004}
22005
22006// SetEndpointConfiguration sets the EndpointConfiguration field's value.
22007func (s *RestApi) SetEndpointConfiguration(v *EndpointConfiguration) *RestApi {
22008	s.EndpointConfiguration = v
22009	return s
22010}
22011
22012// SetId sets the Id field's value.
22013func (s *RestApi) SetId(v string) *RestApi {
22014	s.Id = &v
22015	return s
22016}
22017
22018// SetMinimumCompressionSize sets the MinimumCompressionSize field's value.
22019func (s *RestApi) SetMinimumCompressionSize(v int64) *RestApi {
22020	s.MinimumCompressionSize = &v
22021	return s
22022}
22023
22024// SetName sets the Name field's value.
22025func (s *RestApi) SetName(v string) *RestApi {
22026	s.Name = &v
22027	return s
22028}
22029
22030// SetPolicy sets the Policy field's value.
22031func (s *RestApi) SetPolicy(v string) *RestApi {
22032	s.Policy = &v
22033	return s
22034}
22035
22036// SetTags sets the Tags field's value.
22037func (s *RestApi) SetTags(v map[string]*string) *RestApi {
22038	s.Tags = v
22039	return s
22040}
22041
22042// SetVersion sets the Version field's value.
22043func (s *RestApi) SetVersion(v string) *RestApi {
22044	s.Version = &v
22045	return s
22046}
22047
22048// SetWarnings sets the Warnings field's value.
22049func (s *RestApi) SetWarnings(v []*string) *RestApi {
22050	s.Warnings = v
22051	return s
22052}
22053
22054// A configuration property of an SDK type.
22055type SdkConfigurationProperty struct {
22056	_ struct{} `type:"structure"`
22057
22058	// The default value of an SdkType configuration property.
22059	DefaultValue *string `locationName:"defaultValue" type:"string"`
22060
22061	// The description of an SdkType configuration property.
22062	Description *string `locationName:"description" type:"string"`
22063
22064	// The user-friendly name of an SdkType configuration property.
22065	FriendlyName *string `locationName:"friendlyName" type:"string"`
22066
22067	// The name of a an SdkType configuration property.
22068	Name *string `locationName:"name" type:"string"`
22069
22070	// A boolean flag of an SdkType configuration property to indicate if the associated
22071	// SDK configuration property is required (true) or not (false).
22072	Required *bool `locationName:"required" type:"boolean"`
22073}
22074
22075// String returns the string representation
22076func (s SdkConfigurationProperty) String() string {
22077	return awsutil.Prettify(s)
22078}
22079
22080// GoString returns the string representation
22081func (s SdkConfigurationProperty) GoString() string {
22082	return s.String()
22083}
22084
22085// SetDefaultValue sets the DefaultValue field's value.
22086func (s *SdkConfigurationProperty) SetDefaultValue(v string) *SdkConfigurationProperty {
22087	s.DefaultValue = &v
22088	return s
22089}
22090
22091// SetDescription sets the Description field's value.
22092func (s *SdkConfigurationProperty) SetDescription(v string) *SdkConfigurationProperty {
22093	s.Description = &v
22094	return s
22095}
22096
22097// SetFriendlyName sets the FriendlyName field's value.
22098func (s *SdkConfigurationProperty) SetFriendlyName(v string) *SdkConfigurationProperty {
22099	s.FriendlyName = &v
22100	return s
22101}
22102
22103// SetName sets the Name field's value.
22104func (s *SdkConfigurationProperty) SetName(v string) *SdkConfigurationProperty {
22105	s.Name = &v
22106	return s
22107}
22108
22109// SetRequired sets the Required field's value.
22110func (s *SdkConfigurationProperty) SetRequired(v bool) *SdkConfigurationProperty {
22111	s.Required = &v
22112	return s
22113}
22114
22115// A type of SDK that API Gateway can generate.
22116type SdkType struct {
22117	_ struct{} `type:"structure"`
22118
22119	// A list of configuration properties of an SdkType.
22120	ConfigurationProperties []*SdkConfigurationProperty `locationName:"configurationProperties" type:"list"`
22121
22122	// The description of an SdkType.
22123	Description *string `locationName:"description" type:"string"`
22124
22125	// The user-friendly name of an SdkType instance.
22126	FriendlyName *string `locationName:"friendlyName" type:"string"`
22127
22128	// The identifier of an SdkType instance.
22129	Id *string `locationName:"id" type:"string"`
22130}
22131
22132// String returns the string representation
22133func (s SdkType) String() string {
22134	return awsutil.Prettify(s)
22135}
22136
22137// GoString returns the string representation
22138func (s SdkType) GoString() string {
22139	return s.String()
22140}
22141
22142// SetConfigurationProperties sets the ConfigurationProperties field's value.
22143func (s *SdkType) SetConfigurationProperties(v []*SdkConfigurationProperty) *SdkType {
22144	s.ConfigurationProperties = v
22145	return s
22146}
22147
22148// SetDescription sets the Description field's value.
22149func (s *SdkType) SetDescription(v string) *SdkType {
22150	s.Description = &v
22151	return s
22152}
22153
22154// SetFriendlyName sets the FriendlyName field's value.
22155func (s *SdkType) SetFriendlyName(v string) *SdkType {
22156	s.FriendlyName = &v
22157	return s
22158}
22159
22160// SetId sets the Id field's value.
22161func (s *SdkType) SetId(v string) *SdkType {
22162	s.Id = &v
22163	return s
22164}
22165
22166// Represents a unique identifier for a version of a deployed RestApi that is
22167// callable by users.
22168//
22169// Deploy an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-deploy-api.html)
22170type Stage struct {
22171	_ struct{} `type:"structure"`
22172
22173	// Settings for logging access in this stage.
22174	AccessLogSettings *AccessLogSettings `locationName:"accessLogSettings" type:"structure"`
22175
22176	// Specifies whether a cache cluster is enabled for the stage.
22177	CacheClusterEnabled *bool `locationName:"cacheClusterEnabled" type:"boolean"`
22178
22179	// The size of the cache cluster for the stage, if enabled.
22180	CacheClusterSize *string `locationName:"cacheClusterSize" type:"string" enum:"CacheClusterSize"`
22181
22182	// The status of the cache cluster for the stage, if enabled.
22183	CacheClusterStatus *string `locationName:"cacheClusterStatus" type:"string" enum:"CacheClusterStatus"`
22184
22185	// Settings for the canary deployment in this stage.
22186	CanarySettings *CanarySettings `locationName:"canarySettings" type:"structure"`
22187
22188	// The identifier of a client certificate for an API stage.
22189	ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
22190
22191	// The timestamp when the stage was created.
22192	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
22193
22194	// The identifier of the Deployment that the stage points to.
22195	DeploymentId *string `locationName:"deploymentId" type:"string"`
22196
22197	// The stage's description.
22198	Description *string `locationName:"description" type:"string"`
22199
22200	// The version of the associated API documentation.
22201	DocumentationVersion *string `locationName:"documentationVersion" type:"string"`
22202
22203	// The timestamp when the stage last updated.
22204	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
22205
22206	// A map that defines the method settings for a Stage resource. Keys (designated
22207	// as /{method_setting_key below) are method paths defined as {resource_path}/{http_method}
22208	// for an individual method override, or /\*/\* for overriding all methods in
22209	// the stage.
22210	MethodSettings map[string]*MethodSetting `locationName:"methodSettings" type:"map"`
22211
22212	// The name of the stage is the first path segment in the Uniform Resource Identifier
22213	// (URI) of a call to API Gateway. Stage names can only contain alphanumeric
22214	// characters, hyphens, and underscores. Maximum length is 128 characters.
22215	StageName *string `locationName:"stageName" type:"string"`
22216
22217	// The collection of tags. Each tag element is associated with a given resource.
22218	Tags map[string]*string `locationName:"tags" type:"map"`
22219
22220	// Specifies whether active tracing with X-ray is enabled for the Stage.
22221	TracingEnabled *bool `locationName:"tracingEnabled" type:"boolean"`
22222
22223	// A map that defines the stage variables for a Stage resource. Variable names
22224	// can have alphanumeric and underscore characters, and the values must match
22225	// [A-Za-z0-9-._~:/?#&=,]+.
22226	Variables map[string]*string `locationName:"variables" type:"map"`
22227
22228	// The ARN of the WebAcl associated with the Stage.
22229	WebAclArn *string `locationName:"webAclArn" type:"string"`
22230}
22231
22232// String returns the string representation
22233func (s Stage) String() string {
22234	return awsutil.Prettify(s)
22235}
22236
22237// GoString returns the string representation
22238func (s Stage) GoString() string {
22239	return s.String()
22240}
22241
22242// SetAccessLogSettings sets the AccessLogSettings field's value.
22243func (s *Stage) SetAccessLogSettings(v *AccessLogSettings) *Stage {
22244	s.AccessLogSettings = v
22245	return s
22246}
22247
22248// SetCacheClusterEnabled sets the CacheClusterEnabled field's value.
22249func (s *Stage) SetCacheClusterEnabled(v bool) *Stage {
22250	s.CacheClusterEnabled = &v
22251	return s
22252}
22253
22254// SetCacheClusterSize sets the CacheClusterSize field's value.
22255func (s *Stage) SetCacheClusterSize(v string) *Stage {
22256	s.CacheClusterSize = &v
22257	return s
22258}
22259
22260// SetCacheClusterStatus sets the CacheClusterStatus field's value.
22261func (s *Stage) SetCacheClusterStatus(v string) *Stage {
22262	s.CacheClusterStatus = &v
22263	return s
22264}
22265
22266// SetCanarySettings sets the CanarySettings field's value.
22267func (s *Stage) SetCanarySettings(v *CanarySettings) *Stage {
22268	s.CanarySettings = v
22269	return s
22270}
22271
22272// SetClientCertificateId sets the ClientCertificateId field's value.
22273func (s *Stage) SetClientCertificateId(v string) *Stage {
22274	s.ClientCertificateId = &v
22275	return s
22276}
22277
22278// SetCreatedDate sets the CreatedDate field's value.
22279func (s *Stage) SetCreatedDate(v time.Time) *Stage {
22280	s.CreatedDate = &v
22281	return s
22282}
22283
22284// SetDeploymentId sets the DeploymentId field's value.
22285func (s *Stage) SetDeploymentId(v string) *Stage {
22286	s.DeploymentId = &v
22287	return s
22288}
22289
22290// SetDescription sets the Description field's value.
22291func (s *Stage) SetDescription(v string) *Stage {
22292	s.Description = &v
22293	return s
22294}
22295
22296// SetDocumentationVersion sets the DocumentationVersion field's value.
22297func (s *Stage) SetDocumentationVersion(v string) *Stage {
22298	s.DocumentationVersion = &v
22299	return s
22300}
22301
22302// SetLastUpdatedDate sets the LastUpdatedDate field's value.
22303func (s *Stage) SetLastUpdatedDate(v time.Time) *Stage {
22304	s.LastUpdatedDate = &v
22305	return s
22306}
22307
22308// SetMethodSettings sets the MethodSettings field's value.
22309func (s *Stage) SetMethodSettings(v map[string]*MethodSetting) *Stage {
22310	s.MethodSettings = v
22311	return s
22312}
22313
22314// SetStageName sets the StageName field's value.
22315func (s *Stage) SetStageName(v string) *Stage {
22316	s.StageName = &v
22317	return s
22318}
22319
22320// SetTags sets the Tags field's value.
22321func (s *Stage) SetTags(v map[string]*string) *Stage {
22322	s.Tags = v
22323	return s
22324}
22325
22326// SetTracingEnabled sets the TracingEnabled field's value.
22327func (s *Stage) SetTracingEnabled(v bool) *Stage {
22328	s.TracingEnabled = &v
22329	return s
22330}
22331
22332// SetVariables sets the Variables field's value.
22333func (s *Stage) SetVariables(v map[string]*string) *Stage {
22334	s.Variables = v
22335	return s
22336}
22337
22338// SetWebAclArn sets the WebAclArn field's value.
22339func (s *Stage) SetWebAclArn(v string) *Stage {
22340	s.WebAclArn = &v
22341	return s
22342}
22343
22344// A reference to a unique stage identified in the format {restApiId}/{stage}.
22345type StageKey struct {
22346	_ struct{} `type:"structure"`
22347
22348	// The string identifier of the associated RestApi.
22349	RestApiId *string `locationName:"restApiId" type:"string"`
22350
22351	// The stage name associated with the stage key.
22352	StageName *string `locationName:"stageName" type:"string"`
22353}
22354
22355// String returns the string representation
22356func (s StageKey) String() string {
22357	return awsutil.Prettify(s)
22358}
22359
22360// GoString returns the string representation
22361func (s StageKey) GoString() string {
22362	return s.String()
22363}
22364
22365// SetRestApiId sets the RestApiId field's value.
22366func (s *StageKey) SetRestApiId(v string) *StageKey {
22367	s.RestApiId = &v
22368	return s
22369}
22370
22371// SetStageName sets the StageName field's value.
22372func (s *StageKey) SetStageName(v string) *StageKey {
22373	s.StageName = &v
22374	return s
22375}
22376
22377// Adds or updates a tag on a given resource.
22378type TagResourceInput struct {
22379	_ struct{} `type:"structure"`
22380
22381	// [Required] The ARN of a resource that can be tagged. The resource ARN must
22382	// be URL-encoded.
22383	//
22384	// ResourceArn is a required field
22385	ResourceArn *string `location:"uri" locationName:"resource_arn" type:"string" required:"true"`
22386
22387	// [Required] The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
22388	// The tag key can be up to 128 characters and must not start with aws:. The
22389	// tag value can be up to 256 characters.
22390	//
22391	// Tags is a required field
22392	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
22393}
22394
22395// String returns the string representation
22396func (s TagResourceInput) String() string {
22397	return awsutil.Prettify(s)
22398}
22399
22400// GoString returns the string representation
22401func (s TagResourceInput) GoString() string {
22402	return s.String()
22403}
22404
22405// Validate inspects the fields of the type to determine if they are valid.
22406func (s *TagResourceInput) Validate() error {
22407	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
22408	if s.ResourceArn == nil {
22409		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
22410	}
22411	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
22412		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
22413	}
22414	if s.Tags == nil {
22415		invalidParams.Add(request.NewErrParamRequired("Tags"))
22416	}
22417
22418	if invalidParams.Len() > 0 {
22419		return invalidParams
22420	}
22421	return nil
22422}
22423
22424// SetResourceArn sets the ResourceArn field's value.
22425func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
22426	s.ResourceArn = &v
22427	return s
22428}
22429
22430// SetTags sets the Tags field's value.
22431func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
22432	s.Tags = v
22433	return s
22434}
22435
22436type TagResourceOutput struct {
22437	_ struct{} `type:"structure"`
22438}
22439
22440// String returns the string representation
22441func (s TagResourceOutput) String() string {
22442	return awsutil.Prettify(s)
22443}
22444
22445// GoString returns the string representation
22446func (s TagResourceOutput) GoString() string {
22447	return s.String()
22448}
22449
22450// Make a request to simulate the execution of an Authorizer.
22451type TestInvokeAuthorizerInput struct {
22452	_ struct{} `type:"structure"`
22453
22454	// [Optional] A key-value map of additional context variables.
22455	AdditionalContext map[string]*string `locationName:"additionalContext" type:"map"`
22456
22457	// [Required] Specifies a test invoke authorizer request's Authorizer ID.
22458	//
22459	// AuthorizerId is a required field
22460	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
22461
22462	// [Optional] The simulated request body of an incoming invocation request.
22463	Body *string `locationName:"body" type:"string"`
22464
22465	// [Required] A key-value map of headers to simulate an incoming invocation
22466	// request. This is where the incoming authorization token, or identity source,
22467	// should be specified.
22468	Headers map[string]*string `locationName:"headers" type:"map"`
22469
22470	// [Optional] The headers as a map from string to list of values to simulate
22471	// an incoming invocation request. This is where the incoming authorization
22472	// token, or identity source, may be specified.
22473	MultiValueHeaders map[string][]*string `locationName:"multiValueHeaders" type:"map"`
22474
22475	// [Optional] The URI path, including query string, of the simulated invocation
22476	// request. Use this to specify path parameters and query string parameters.
22477	PathWithQueryString *string `locationName:"pathWithQueryString" type:"string"`
22478
22479	// [Required] The string identifier of the associated RestApi.
22480	//
22481	// RestApiId is a required field
22482	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
22483
22484	// A key-value map of stage variables to simulate an invocation on a deployed
22485	// Stage.
22486	StageVariables map[string]*string `locationName:"stageVariables" type:"map"`
22487}
22488
22489// String returns the string representation
22490func (s TestInvokeAuthorizerInput) String() string {
22491	return awsutil.Prettify(s)
22492}
22493
22494// GoString returns the string representation
22495func (s TestInvokeAuthorizerInput) GoString() string {
22496	return s.String()
22497}
22498
22499// Validate inspects the fields of the type to determine if they are valid.
22500func (s *TestInvokeAuthorizerInput) Validate() error {
22501	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
22502	if s.AuthorizerId == nil {
22503		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
22504	}
22505	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
22506		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
22507	}
22508	if s.RestApiId == nil {
22509		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
22510	}
22511	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
22512		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
22513	}
22514
22515	if invalidParams.Len() > 0 {
22516		return invalidParams
22517	}
22518	return nil
22519}
22520
22521// SetAdditionalContext sets the AdditionalContext field's value.
22522func (s *TestInvokeAuthorizerInput) SetAdditionalContext(v map[string]*string) *TestInvokeAuthorizerInput {
22523	s.AdditionalContext = v
22524	return s
22525}
22526
22527// SetAuthorizerId sets the AuthorizerId field's value.
22528func (s *TestInvokeAuthorizerInput) SetAuthorizerId(v string) *TestInvokeAuthorizerInput {
22529	s.AuthorizerId = &v
22530	return s
22531}
22532
22533// SetBody sets the Body field's value.
22534func (s *TestInvokeAuthorizerInput) SetBody(v string) *TestInvokeAuthorizerInput {
22535	s.Body = &v
22536	return s
22537}
22538
22539// SetHeaders sets the Headers field's value.
22540func (s *TestInvokeAuthorizerInput) SetHeaders(v map[string]*string) *TestInvokeAuthorizerInput {
22541	s.Headers = v
22542	return s
22543}
22544
22545// SetMultiValueHeaders sets the MultiValueHeaders field's value.
22546func (s *TestInvokeAuthorizerInput) SetMultiValueHeaders(v map[string][]*string) *TestInvokeAuthorizerInput {
22547	s.MultiValueHeaders = v
22548	return s
22549}
22550
22551// SetPathWithQueryString sets the PathWithQueryString field's value.
22552func (s *TestInvokeAuthorizerInput) SetPathWithQueryString(v string) *TestInvokeAuthorizerInput {
22553	s.PathWithQueryString = &v
22554	return s
22555}
22556
22557// SetRestApiId sets the RestApiId field's value.
22558func (s *TestInvokeAuthorizerInput) SetRestApiId(v string) *TestInvokeAuthorizerInput {
22559	s.RestApiId = &v
22560	return s
22561}
22562
22563// SetStageVariables sets the StageVariables field's value.
22564func (s *TestInvokeAuthorizerInput) SetStageVariables(v map[string]*string) *TestInvokeAuthorizerInput {
22565	s.StageVariables = v
22566	return s
22567}
22568
22569// Represents the response of the test invoke request for a custom Authorizer
22570type TestInvokeAuthorizerOutput struct {
22571	_ struct{} `type:"structure"`
22572
22573	Authorization map[string][]*string `locationName:"authorization" type:"map"`
22574
22575	// The open identity claims (https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims),
22576	// with any supported custom attributes, returned from the Cognito Your User
22577	// Pool configured for the API.
22578	Claims map[string]*string `locationName:"claims" type:"map"`
22579
22580	// The HTTP status code that the client would have received. Value is 0 if the
22581	// authorizer succeeded.
22582	ClientStatus *int64 `locationName:"clientStatus" type:"integer"`
22583
22584	// The execution latency of the test authorizer request.
22585	Latency *int64 `locationName:"latency" type:"long"`
22586
22587	// The API Gateway execution log for the test authorizer request.
22588	Log *string `locationName:"log" type:"string"`
22589
22590	// The JSON policy document returned by the Authorizer
22591	Policy *string `locationName:"policy" type:"string"`
22592
22593	// The principal identity returned by the Authorizer
22594	PrincipalId *string `locationName:"principalId" type:"string"`
22595}
22596
22597// String returns the string representation
22598func (s TestInvokeAuthorizerOutput) String() string {
22599	return awsutil.Prettify(s)
22600}
22601
22602// GoString returns the string representation
22603func (s TestInvokeAuthorizerOutput) GoString() string {
22604	return s.String()
22605}
22606
22607// SetAuthorization sets the Authorization field's value.
22608func (s *TestInvokeAuthorizerOutput) SetAuthorization(v map[string][]*string) *TestInvokeAuthorizerOutput {
22609	s.Authorization = v
22610	return s
22611}
22612
22613// SetClaims sets the Claims field's value.
22614func (s *TestInvokeAuthorizerOutput) SetClaims(v map[string]*string) *TestInvokeAuthorizerOutput {
22615	s.Claims = v
22616	return s
22617}
22618
22619// SetClientStatus sets the ClientStatus field's value.
22620func (s *TestInvokeAuthorizerOutput) SetClientStatus(v int64) *TestInvokeAuthorizerOutput {
22621	s.ClientStatus = &v
22622	return s
22623}
22624
22625// SetLatency sets the Latency field's value.
22626func (s *TestInvokeAuthorizerOutput) SetLatency(v int64) *TestInvokeAuthorizerOutput {
22627	s.Latency = &v
22628	return s
22629}
22630
22631// SetLog sets the Log field's value.
22632func (s *TestInvokeAuthorizerOutput) SetLog(v string) *TestInvokeAuthorizerOutput {
22633	s.Log = &v
22634	return s
22635}
22636
22637// SetPolicy sets the Policy field's value.
22638func (s *TestInvokeAuthorizerOutput) SetPolicy(v string) *TestInvokeAuthorizerOutput {
22639	s.Policy = &v
22640	return s
22641}
22642
22643// SetPrincipalId sets the PrincipalId field's value.
22644func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
22645	s.PrincipalId = &v
22646	return s
22647}
22648
22649// Make a request to simulate the execution of a Method.
22650type TestInvokeMethodInput struct {
22651	_ struct{} `type:"structure"`
22652
22653	// The simulated request body of an incoming invocation request.
22654	Body *string `locationName:"body" type:"string"`
22655
22656	// A ClientCertificate identifier to use in the test invocation. API Gateway
22657	// will use the certificate when making the HTTPS request to the defined back-end
22658	// endpoint.
22659	ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
22660
22661	// A key-value map of headers to simulate an incoming invocation request.
22662	Headers map[string]*string `locationName:"headers" type:"map"`
22663
22664	// [Required] Specifies a test invoke method request's HTTP method.
22665	//
22666	// HttpMethod is a required field
22667	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
22668
22669	// The headers as a map from string to list of values to simulate an incoming
22670	// invocation request.
22671	MultiValueHeaders map[string][]*string `locationName:"multiValueHeaders" type:"map"`
22672
22673	// The URI path, including query string, of the simulated invocation request.
22674	// Use this to specify path parameters and query string parameters.
22675	PathWithQueryString *string `locationName:"pathWithQueryString" type:"string"`
22676
22677	// [Required] Specifies a test invoke method request's resource ID.
22678	//
22679	// ResourceId is a required field
22680	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
22681
22682	// [Required] The string identifier of the associated RestApi.
22683	//
22684	// RestApiId is a required field
22685	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
22686
22687	// A key-value map of stage variables to simulate an invocation on a deployed
22688	// Stage.
22689	StageVariables map[string]*string `locationName:"stageVariables" type:"map"`
22690}
22691
22692// String returns the string representation
22693func (s TestInvokeMethodInput) String() string {
22694	return awsutil.Prettify(s)
22695}
22696
22697// GoString returns the string representation
22698func (s TestInvokeMethodInput) GoString() string {
22699	return s.String()
22700}
22701
22702// Validate inspects the fields of the type to determine if they are valid.
22703func (s *TestInvokeMethodInput) Validate() error {
22704	invalidParams := request.ErrInvalidParams{Context: "TestInvokeMethodInput"}
22705	if s.HttpMethod == nil {
22706		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
22707	}
22708	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
22709		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
22710	}
22711	if s.ResourceId == nil {
22712		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
22713	}
22714	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
22715		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
22716	}
22717	if s.RestApiId == nil {
22718		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
22719	}
22720	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
22721		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
22722	}
22723
22724	if invalidParams.Len() > 0 {
22725		return invalidParams
22726	}
22727	return nil
22728}
22729
22730// SetBody sets the Body field's value.
22731func (s *TestInvokeMethodInput) SetBody(v string) *TestInvokeMethodInput {
22732	s.Body = &v
22733	return s
22734}
22735
22736// SetClientCertificateId sets the ClientCertificateId field's value.
22737func (s *TestInvokeMethodInput) SetClientCertificateId(v string) *TestInvokeMethodInput {
22738	s.ClientCertificateId = &v
22739	return s
22740}
22741
22742// SetHeaders sets the Headers field's value.
22743func (s *TestInvokeMethodInput) SetHeaders(v map[string]*string) *TestInvokeMethodInput {
22744	s.Headers = v
22745	return s
22746}
22747
22748// SetHttpMethod sets the HttpMethod field's value.
22749func (s *TestInvokeMethodInput) SetHttpMethod(v string) *TestInvokeMethodInput {
22750	s.HttpMethod = &v
22751	return s
22752}
22753
22754// SetMultiValueHeaders sets the MultiValueHeaders field's value.
22755func (s *TestInvokeMethodInput) SetMultiValueHeaders(v map[string][]*string) *TestInvokeMethodInput {
22756	s.MultiValueHeaders = v
22757	return s
22758}
22759
22760// SetPathWithQueryString sets the PathWithQueryString field's value.
22761func (s *TestInvokeMethodInput) SetPathWithQueryString(v string) *TestInvokeMethodInput {
22762	s.PathWithQueryString = &v
22763	return s
22764}
22765
22766// SetResourceId sets the ResourceId field's value.
22767func (s *TestInvokeMethodInput) SetResourceId(v string) *TestInvokeMethodInput {
22768	s.ResourceId = &v
22769	return s
22770}
22771
22772// SetRestApiId sets the RestApiId field's value.
22773func (s *TestInvokeMethodInput) SetRestApiId(v string) *TestInvokeMethodInput {
22774	s.RestApiId = &v
22775	return s
22776}
22777
22778// SetStageVariables sets the StageVariables field's value.
22779func (s *TestInvokeMethodInput) SetStageVariables(v map[string]*string) *TestInvokeMethodInput {
22780	s.StageVariables = v
22781	return s
22782}
22783
22784// Represents the response of the test invoke request in the HTTP method.
22785//
22786// 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)
22787type TestInvokeMethodOutput struct {
22788	_ struct{} `type:"structure"`
22789
22790	// The body of the HTTP response.
22791	Body *string `locationName:"body" type:"string"`
22792
22793	// The headers of the HTTP response.
22794	Headers map[string]*string `locationName:"headers" type:"map"`
22795
22796	// The execution latency of the test invoke request.
22797	Latency *int64 `locationName:"latency" type:"long"`
22798
22799	// The API Gateway execution log for the test invoke request.
22800	Log *string `locationName:"log" type:"string"`
22801
22802	// The headers of the HTTP response as a map from string to list of values.
22803	MultiValueHeaders map[string][]*string `locationName:"multiValueHeaders" type:"map"`
22804
22805	// The HTTP status code.
22806	Status *int64 `locationName:"status" type:"integer"`
22807}
22808
22809// String returns the string representation
22810func (s TestInvokeMethodOutput) String() string {
22811	return awsutil.Prettify(s)
22812}
22813
22814// GoString returns the string representation
22815func (s TestInvokeMethodOutput) GoString() string {
22816	return s.String()
22817}
22818
22819// SetBody sets the Body field's value.
22820func (s *TestInvokeMethodOutput) SetBody(v string) *TestInvokeMethodOutput {
22821	s.Body = &v
22822	return s
22823}
22824
22825// SetHeaders sets the Headers field's value.
22826func (s *TestInvokeMethodOutput) SetHeaders(v map[string]*string) *TestInvokeMethodOutput {
22827	s.Headers = v
22828	return s
22829}
22830
22831// SetLatency sets the Latency field's value.
22832func (s *TestInvokeMethodOutput) SetLatency(v int64) *TestInvokeMethodOutput {
22833	s.Latency = &v
22834	return s
22835}
22836
22837// SetLog sets the Log field's value.
22838func (s *TestInvokeMethodOutput) SetLog(v string) *TestInvokeMethodOutput {
22839	s.Log = &v
22840	return s
22841}
22842
22843// SetMultiValueHeaders sets the MultiValueHeaders field's value.
22844func (s *TestInvokeMethodOutput) SetMultiValueHeaders(v map[string][]*string) *TestInvokeMethodOutput {
22845	s.MultiValueHeaders = v
22846	return s
22847}
22848
22849// SetStatus sets the Status field's value.
22850func (s *TestInvokeMethodOutput) SetStatus(v int64) *TestInvokeMethodOutput {
22851	s.Status = &v
22852	return s
22853}
22854
22855// The API request rate limits.
22856type ThrottleSettings struct {
22857	_ struct{} `type:"structure"`
22858
22859	// The API request burst limit, the maximum rate limit over a time ranging from
22860	// one to a few seconds, depending upon whether the underlying token bucket
22861	// is at its full capacity.
22862	BurstLimit *int64 `locationName:"burstLimit" type:"integer"`
22863
22864	// The API request steady-state rate limit.
22865	RateLimit *float64 `locationName:"rateLimit" type:"double"`
22866}
22867
22868// String returns the string representation
22869func (s ThrottleSettings) String() string {
22870	return awsutil.Prettify(s)
22871}
22872
22873// GoString returns the string representation
22874func (s ThrottleSettings) GoString() string {
22875	return s.String()
22876}
22877
22878// SetBurstLimit sets the BurstLimit field's value.
22879func (s *ThrottleSettings) SetBurstLimit(v int64) *ThrottleSettings {
22880	s.BurstLimit = &v
22881	return s
22882}
22883
22884// SetRateLimit sets the RateLimit field's value.
22885func (s *ThrottleSettings) SetRateLimit(v float64) *ThrottleSettings {
22886	s.RateLimit = &v
22887	return s
22888}
22889
22890// Removes a tag from a given resource.
22891type UntagResourceInput struct {
22892	_ struct{} `type:"structure"`
22893
22894	// [Required] The ARN of a resource that can be tagged. The resource ARN must
22895	// be URL-encoded.
22896	//
22897	// ResourceArn is a required field
22898	ResourceArn *string `location:"uri" locationName:"resource_arn" type:"string" required:"true"`
22899
22900	// [Required] The Tag keys to delete.
22901	//
22902	// TagKeys is a required field
22903	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
22904}
22905
22906// String returns the string representation
22907func (s UntagResourceInput) String() string {
22908	return awsutil.Prettify(s)
22909}
22910
22911// GoString returns the string representation
22912func (s UntagResourceInput) GoString() string {
22913	return s.String()
22914}
22915
22916// Validate inspects the fields of the type to determine if they are valid.
22917func (s *UntagResourceInput) Validate() error {
22918	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
22919	if s.ResourceArn == nil {
22920		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
22921	}
22922	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
22923		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
22924	}
22925	if s.TagKeys == nil {
22926		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
22927	}
22928
22929	if invalidParams.Len() > 0 {
22930		return invalidParams
22931	}
22932	return nil
22933}
22934
22935// SetResourceArn sets the ResourceArn field's value.
22936func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
22937	s.ResourceArn = &v
22938	return s
22939}
22940
22941// SetTagKeys sets the TagKeys field's value.
22942func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
22943	s.TagKeys = v
22944	return s
22945}
22946
22947type UntagResourceOutput struct {
22948	_ struct{} `type:"structure"`
22949}
22950
22951// String returns the string representation
22952func (s UntagResourceOutput) String() string {
22953	return awsutil.Prettify(s)
22954}
22955
22956// GoString returns the string representation
22957func (s UntagResourceOutput) GoString() string {
22958	return s.String()
22959}
22960
22961// Requests API Gateway to change information about the current Account resource.
22962type UpdateAccountInput struct {
22963	_ struct{} `type:"structure"`
22964
22965	// A list of update operations to be applied to the specified resource and in
22966	// the order specified in this list.
22967	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
22968}
22969
22970// String returns the string representation
22971func (s UpdateAccountInput) String() string {
22972	return awsutil.Prettify(s)
22973}
22974
22975// GoString returns the string representation
22976func (s UpdateAccountInput) GoString() string {
22977	return s.String()
22978}
22979
22980// SetPatchOperations sets the PatchOperations field's value.
22981func (s *UpdateAccountInput) SetPatchOperations(v []*PatchOperation) *UpdateAccountInput {
22982	s.PatchOperations = v
22983	return s
22984}
22985
22986// A request to change information about an ApiKey resource.
22987type UpdateApiKeyInput struct {
22988	_ struct{} `type:"structure"`
22989
22990	// [Required] The identifier of the ApiKey resource to be updated.
22991	//
22992	// ApiKey is a required field
22993	ApiKey *string `location:"uri" locationName:"api_Key" type:"string" required:"true"`
22994
22995	// A list of update operations to be applied to the specified resource and in
22996	// the order specified in this list.
22997	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
22998}
22999
23000// String returns the string representation
23001func (s UpdateApiKeyInput) String() string {
23002	return awsutil.Prettify(s)
23003}
23004
23005// GoString returns the string representation
23006func (s UpdateApiKeyInput) GoString() string {
23007	return s.String()
23008}
23009
23010// Validate inspects the fields of the type to determine if they are valid.
23011func (s *UpdateApiKeyInput) Validate() error {
23012	invalidParams := request.ErrInvalidParams{Context: "UpdateApiKeyInput"}
23013	if s.ApiKey == nil {
23014		invalidParams.Add(request.NewErrParamRequired("ApiKey"))
23015	}
23016	if s.ApiKey != nil && len(*s.ApiKey) < 1 {
23017		invalidParams.Add(request.NewErrParamMinLen("ApiKey", 1))
23018	}
23019
23020	if invalidParams.Len() > 0 {
23021		return invalidParams
23022	}
23023	return nil
23024}
23025
23026// SetApiKey sets the ApiKey field's value.
23027func (s *UpdateApiKeyInput) SetApiKey(v string) *UpdateApiKeyInput {
23028	s.ApiKey = &v
23029	return s
23030}
23031
23032// SetPatchOperations sets the PatchOperations field's value.
23033func (s *UpdateApiKeyInput) SetPatchOperations(v []*PatchOperation) *UpdateApiKeyInput {
23034	s.PatchOperations = v
23035	return s
23036}
23037
23038// Request to update an existing Authorizer resource.
23039type UpdateAuthorizerInput struct {
23040	_ struct{} `type:"structure"`
23041
23042	// [Required] The identifier of the Authorizer resource.
23043	//
23044	// AuthorizerId is a required field
23045	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
23046
23047	// A list of update operations to be applied to the specified resource and in
23048	// the order specified in this list.
23049	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23050
23051	// [Required] The string identifier of the associated RestApi.
23052	//
23053	// RestApiId is a required field
23054	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23055}
23056
23057// String returns the string representation
23058func (s UpdateAuthorizerInput) String() string {
23059	return awsutil.Prettify(s)
23060}
23061
23062// GoString returns the string representation
23063func (s UpdateAuthorizerInput) GoString() string {
23064	return s.String()
23065}
23066
23067// Validate inspects the fields of the type to determine if they are valid.
23068func (s *UpdateAuthorizerInput) Validate() error {
23069	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
23070	if s.AuthorizerId == nil {
23071		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
23072	}
23073	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
23074		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
23075	}
23076	if s.RestApiId == nil {
23077		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23078	}
23079	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23080		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23081	}
23082
23083	if invalidParams.Len() > 0 {
23084		return invalidParams
23085	}
23086	return nil
23087}
23088
23089// SetAuthorizerId sets the AuthorizerId field's value.
23090func (s *UpdateAuthorizerInput) SetAuthorizerId(v string) *UpdateAuthorizerInput {
23091	s.AuthorizerId = &v
23092	return s
23093}
23094
23095// SetPatchOperations sets the PatchOperations field's value.
23096func (s *UpdateAuthorizerInput) SetPatchOperations(v []*PatchOperation) *UpdateAuthorizerInput {
23097	s.PatchOperations = v
23098	return s
23099}
23100
23101// SetRestApiId sets the RestApiId field's value.
23102func (s *UpdateAuthorizerInput) SetRestApiId(v string) *UpdateAuthorizerInput {
23103	s.RestApiId = &v
23104	return s
23105}
23106
23107// A request to change information about the BasePathMapping resource.
23108type UpdateBasePathMappingInput struct {
23109	_ struct{} `type:"structure"`
23110
23111	// [Required] The base path of the BasePathMapping resource to change.
23112	//
23113	// To specify an empty base path, set this parameter to '(none)'.
23114	//
23115	// BasePath is a required field
23116	BasePath *string `location:"uri" locationName:"base_path" type:"string" required:"true"`
23117
23118	// [Required] The domain name of the BasePathMapping resource to change.
23119	//
23120	// DomainName is a required field
23121	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
23122
23123	// A list of update operations to be applied to the specified resource and in
23124	// the order specified in this list.
23125	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23126}
23127
23128// String returns the string representation
23129func (s UpdateBasePathMappingInput) String() string {
23130	return awsutil.Prettify(s)
23131}
23132
23133// GoString returns the string representation
23134func (s UpdateBasePathMappingInput) GoString() string {
23135	return s.String()
23136}
23137
23138// Validate inspects the fields of the type to determine if they are valid.
23139func (s *UpdateBasePathMappingInput) Validate() error {
23140	invalidParams := request.ErrInvalidParams{Context: "UpdateBasePathMappingInput"}
23141	if s.BasePath == nil {
23142		invalidParams.Add(request.NewErrParamRequired("BasePath"))
23143	}
23144	if s.BasePath != nil && len(*s.BasePath) < 1 {
23145		invalidParams.Add(request.NewErrParamMinLen("BasePath", 1))
23146	}
23147	if s.DomainName == nil {
23148		invalidParams.Add(request.NewErrParamRequired("DomainName"))
23149	}
23150	if s.DomainName != nil && len(*s.DomainName) < 1 {
23151		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
23152	}
23153
23154	if invalidParams.Len() > 0 {
23155		return invalidParams
23156	}
23157	return nil
23158}
23159
23160// SetBasePath sets the BasePath field's value.
23161func (s *UpdateBasePathMappingInput) SetBasePath(v string) *UpdateBasePathMappingInput {
23162	s.BasePath = &v
23163	return s
23164}
23165
23166// SetDomainName sets the DomainName field's value.
23167func (s *UpdateBasePathMappingInput) SetDomainName(v string) *UpdateBasePathMappingInput {
23168	s.DomainName = &v
23169	return s
23170}
23171
23172// SetPatchOperations sets the PatchOperations field's value.
23173func (s *UpdateBasePathMappingInput) SetPatchOperations(v []*PatchOperation) *UpdateBasePathMappingInput {
23174	s.PatchOperations = v
23175	return s
23176}
23177
23178// A request to change information about an ClientCertificate resource.
23179type UpdateClientCertificateInput struct {
23180	_ struct{} `type:"structure"`
23181
23182	// [Required] The identifier of the ClientCertificate resource to be updated.
23183	//
23184	// ClientCertificateId is a required field
23185	ClientCertificateId *string `location:"uri" locationName:"clientcertificate_id" type:"string" required:"true"`
23186
23187	// A list of update operations to be applied to the specified resource and in
23188	// the order specified in this list.
23189	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23190}
23191
23192// String returns the string representation
23193func (s UpdateClientCertificateInput) String() string {
23194	return awsutil.Prettify(s)
23195}
23196
23197// GoString returns the string representation
23198func (s UpdateClientCertificateInput) GoString() string {
23199	return s.String()
23200}
23201
23202// Validate inspects the fields of the type to determine if they are valid.
23203func (s *UpdateClientCertificateInput) Validate() error {
23204	invalidParams := request.ErrInvalidParams{Context: "UpdateClientCertificateInput"}
23205	if s.ClientCertificateId == nil {
23206		invalidParams.Add(request.NewErrParamRequired("ClientCertificateId"))
23207	}
23208	if s.ClientCertificateId != nil && len(*s.ClientCertificateId) < 1 {
23209		invalidParams.Add(request.NewErrParamMinLen("ClientCertificateId", 1))
23210	}
23211
23212	if invalidParams.Len() > 0 {
23213		return invalidParams
23214	}
23215	return nil
23216}
23217
23218// SetClientCertificateId sets the ClientCertificateId field's value.
23219func (s *UpdateClientCertificateInput) SetClientCertificateId(v string) *UpdateClientCertificateInput {
23220	s.ClientCertificateId = &v
23221	return s
23222}
23223
23224// SetPatchOperations sets the PatchOperations field's value.
23225func (s *UpdateClientCertificateInput) SetPatchOperations(v []*PatchOperation) *UpdateClientCertificateInput {
23226	s.PatchOperations = v
23227	return s
23228}
23229
23230// Requests API Gateway to change information about a Deployment resource.
23231type UpdateDeploymentInput struct {
23232	_ struct{} `type:"structure"`
23233
23234	// The replacement identifier for the Deployment resource to change information
23235	// about.
23236	//
23237	// DeploymentId is a required field
23238	DeploymentId *string `location:"uri" locationName:"deployment_id" type:"string" required:"true"`
23239
23240	// A list of update operations to be applied to the specified resource and in
23241	// the order specified in this list.
23242	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23243
23244	// [Required] The string identifier of the associated RestApi.
23245	//
23246	// RestApiId is a required field
23247	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23248}
23249
23250// String returns the string representation
23251func (s UpdateDeploymentInput) String() string {
23252	return awsutil.Prettify(s)
23253}
23254
23255// GoString returns the string representation
23256func (s UpdateDeploymentInput) GoString() string {
23257	return s.String()
23258}
23259
23260// Validate inspects the fields of the type to determine if they are valid.
23261func (s *UpdateDeploymentInput) Validate() error {
23262	invalidParams := request.ErrInvalidParams{Context: "UpdateDeploymentInput"}
23263	if s.DeploymentId == nil {
23264		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
23265	}
23266	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
23267		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
23268	}
23269	if s.RestApiId == nil {
23270		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23271	}
23272	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23273		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23274	}
23275
23276	if invalidParams.Len() > 0 {
23277		return invalidParams
23278	}
23279	return nil
23280}
23281
23282// SetDeploymentId sets the DeploymentId field's value.
23283func (s *UpdateDeploymentInput) SetDeploymentId(v string) *UpdateDeploymentInput {
23284	s.DeploymentId = &v
23285	return s
23286}
23287
23288// SetPatchOperations sets the PatchOperations field's value.
23289func (s *UpdateDeploymentInput) SetPatchOperations(v []*PatchOperation) *UpdateDeploymentInput {
23290	s.PatchOperations = v
23291	return s
23292}
23293
23294// SetRestApiId sets the RestApiId field's value.
23295func (s *UpdateDeploymentInput) SetRestApiId(v string) *UpdateDeploymentInput {
23296	s.RestApiId = &v
23297	return s
23298}
23299
23300// Updates an existing documentation part of a given API.
23301type UpdateDocumentationPartInput struct {
23302	_ struct{} `type:"structure"`
23303
23304	// [Required] The identifier of the to-be-updated documentation part.
23305	//
23306	// DocumentationPartId is a required field
23307	DocumentationPartId *string `location:"uri" locationName:"part_id" type:"string" required:"true"`
23308
23309	// A list of update operations to be applied to the specified resource and in
23310	// the order specified in this list.
23311	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23312
23313	// [Required] The string identifier of the associated RestApi.
23314	//
23315	// RestApiId is a required field
23316	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23317}
23318
23319// String returns the string representation
23320func (s UpdateDocumentationPartInput) String() string {
23321	return awsutil.Prettify(s)
23322}
23323
23324// GoString returns the string representation
23325func (s UpdateDocumentationPartInput) GoString() string {
23326	return s.String()
23327}
23328
23329// Validate inspects the fields of the type to determine if they are valid.
23330func (s *UpdateDocumentationPartInput) Validate() error {
23331	invalidParams := request.ErrInvalidParams{Context: "UpdateDocumentationPartInput"}
23332	if s.DocumentationPartId == nil {
23333		invalidParams.Add(request.NewErrParamRequired("DocumentationPartId"))
23334	}
23335	if s.DocumentationPartId != nil && len(*s.DocumentationPartId) < 1 {
23336		invalidParams.Add(request.NewErrParamMinLen("DocumentationPartId", 1))
23337	}
23338	if s.RestApiId == nil {
23339		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23340	}
23341	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23342		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23343	}
23344
23345	if invalidParams.Len() > 0 {
23346		return invalidParams
23347	}
23348	return nil
23349}
23350
23351// SetDocumentationPartId sets the DocumentationPartId field's value.
23352func (s *UpdateDocumentationPartInput) SetDocumentationPartId(v string) *UpdateDocumentationPartInput {
23353	s.DocumentationPartId = &v
23354	return s
23355}
23356
23357// SetPatchOperations sets the PatchOperations field's value.
23358func (s *UpdateDocumentationPartInput) SetPatchOperations(v []*PatchOperation) *UpdateDocumentationPartInput {
23359	s.PatchOperations = v
23360	return s
23361}
23362
23363// SetRestApiId sets the RestApiId field's value.
23364func (s *UpdateDocumentationPartInput) SetRestApiId(v string) *UpdateDocumentationPartInput {
23365	s.RestApiId = &v
23366	return s
23367}
23368
23369// Updates an existing documentation version of an API.
23370type UpdateDocumentationVersionInput struct {
23371	_ struct{} `type:"structure"`
23372
23373	// [Required] The version identifier of the to-be-updated documentation version.
23374	//
23375	// DocumentationVersion is a required field
23376	DocumentationVersion *string `location:"uri" locationName:"doc_version" type:"string" required:"true"`
23377
23378	// A list of update operations to be applied to the specified resource and in
23379	// the order specified in this list.
23380	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23381
23382	// [Required] The string identifier of the associated RestApi..
23383	//
23384	// RestApiId is a required field
23385	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23386}
23387
23388// String returns the string representation
23389func (s UpdateDocumentationVersionInput) String() string {
23390	return awsutil.Prettify(s)
23391}
23392
23393// GoString returns the string representation
23394func (s UpdateDocumentationVersionInput) GoString() string {
23395	return s.String()
23396}
23397
23398// Validate inspects the fields of the type to determine if they are valid.
23399func (s *UpdateDocumentationVersionInput) Validate() error {
23400	invalidParams := request.ErrInvalidParams{Context: "UpdateDocumentationVersionInput"}
23401	if s.DocumentationVersion == nil {
23402		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
23403	}
23404	if s.DocumentationVersion != nil && len(*s.DocumentationVersion) < 1 {
23405		invalidParams.Add(request.NewErrParamMinLen("DocumentationVersion", 1))
23406	}
23407	if s.RestApiId == nil {
23408		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23409	}
23410	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23411		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23412	}
23413
23414	if invalidParams.Len() > 0 {
23415		return invalidParams
23416	}
23417	return nil
23418}
23419
23420// SetDocumentationVersion sets the DocumentationVersion field's value.
23421func (s *UpdateDocumentationVersionInput) SetDocumentationVersion(v string) *UpdateDocumentationVersionInput {
23422	s.DocumentationVersion = &v
23423	return s
23424}
23425
23426// SetPatchOperations sets the PatchOperations field's value.
23427func (s *UpdateDocumentationVersionInput) SetPatchOperations(v []*PatchOperation) *UpdateDocumentationVersionInput {
23428	s.PatchOperations = v
23429	return s
23430}
23431
23432// SetRestApiId sets the RestApiId field's value.
23433func (s *UpdateDocumentationVersionInput) SetRestApiId(v string) *UpdateDocumentationVersionInput {
23434	s.RestApiId = &v
23435	return s
23436}
23437
23438// A request to change information about the DomainName resource.
23439type UpdateDomainNameInput struct {
23440	_ struct{} `type:"structure"`
23441
23442	// [Required] The name of the DomainName resource to be changed.
23443	//
23444	// DomainName is a required field
23445	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
23446
23447	// A list of update operations to be applied to the specified resource and in
23448	// the order specified in this list.
23449	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23450}
23451
23452// String returns the string representation
23453func (s UpdateDomainNameInput) String() string {
23454	return awsutil.Prettify(s)
23455}
23456
23457// GoString returns the string representation
23458func (s UpdateDomainNameInput) GoString() string {
23459	return s.String()
23460}
23461
23462// Validate inspects the fields of the type to determine if they are valid.
23463func (s *UpdateDomainNameInput) Validate() error {
23464	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainNameInput"}
23465	if s.DomainName == nil {
23466		invalidParams.Add(request.NewErrParamRequired("DomainName"))
23467	}
23468	if s.DomainName != nil && len(*s.DomainName) < 1 {
23469		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
23470	}
23471
23472	if invalidParams.Len() > 0 {
23473		return invalidParams
23474	}
23475	return nil
23476}
23477
23478// SetDomainName sets the DomainName field's value.
23479func (s *UpdateDomainNameInput) SetDomainName(v string) *UpdateDomainNameInput {
23480	s.DomainName = &v
23481	return s
23482}
23483
23484// SetPatchOperations sets the PatchOperations field's value.
23485func (s *UpdateDomainNameInput) SetPatchOperations(v []*PatchOperation) *UpdateDomainNameInput {
23486	s.PatchOperations = v
23487	return s
23488}
23489
23490// Updates a GatewayResponse of a specified response type on the given RestApi.
23491type UpdateGatewayResponseInput struct {
23492	_ struct{} `type:"structure"`
23493
23494	// A list of update operations to be applied to the specified resource and in
23495	// the order specified in this list.
23496	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23497
23498	// [Required]
23499	// The response type of the associated GatewayResponse. Valid values are
23500	//    * ACCESS_DENIED
23501	//
23502	//    * API_CONFIGURATION_ERROR
23503	//
23504	//    * AUTHORIZER_FAILURE
23505	//
23506	//    * AUTHORIZER_CONFIGURATION_ERROR
23507	//
23508	//    * BAD_REQUEST_PARAMETERS
23509	//
23510	//    * BAD_REQUEST_BODY
23511	//
23512	//    * DEFAULT_4XX
23513	//
23514	//    * DEFAULT_5XX
23515	//
23516	//    * EXPIRED_TOKEN
23517	//
23518	//    * INVALID_SIGNATURE
23519	//
23520	//    * INTEGRATION_FAILURE
23521	//
23522	//    * INTEGRATION_TIMEOUT
23523	//
23524	//    * INVALID_API_KEY
23525	//
23526	//    * MISSING_AUTHENTICATION_TOKEN
23527	//
23528	//    * QUOTA_EXCEEDED
23529	//
23530	//    * REQUEST_TOO_LARGE
23531	//
23532	//    * RESOURCE_NOT_FOUND
23533	//
23534	//    * THROTTLED
23535	//
23536	//    * UNAUTHORIZED
23537	//
23538	//    * UNSUPPORTED_MEDIA_TYPE
23539	//
23540	// ResponseType is a required field
23541	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
23542
23543	// [Required] The string identifier of the associated RestApi.
23544	//
23545	// RestApiId is a required field
23546	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23547}
23548
23549// String returns the string representation
23550func (s UpdateGatewayResponseInput) String() string {
23551	return awsutil.Prettify(s)
23552}
23553
23554// GoString returns the string representation
23555func (s UpdateGatewayResponseInput) GoString() string {
23556	return s.String()
23557}
23558
23559// Validate inspects the fields of the type to determine if they are valid.
23560func (s *UpdateGatewayResponseInput) Validate() error {
23561	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewayResponseInput"}
23562	if s.ResponseType == nil {
23563		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
23564	}
23565	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
23566		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
23567	}
23568	if s.RestApiId == nil {
23569		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23570	}
23571	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23572		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23573	}
23574
23575	if invalidParams.Len() > 0 {
23576		return invalidParams
23577	}
23578	return nil
23579}
23580
23581// SetPatchOperations sets the PatchOperations field's value.
23582func (s *UpdateGatewayResponseInput) SetPatchOperations(v []*PatchOperation) *UpdateGatewayResponseInput {
23583	s.PatchOperations = v
23584	return s
23585}
23586
23587// SetResponseType sets the ResponseType field's value.
23588func (s *UpdateGatewayResponseInput) SetResponseType(v string) *UpdateGatewayResponseInput {
23589	s.ResponseType = &v
23590	return s
23591}
23592
23593// SetRestApiId sets the RestApiId field's value.
23594func (s *UpdateGatewayResponseInput) SetRestApiId(v string) *UpdateGatewayResponseInput {
23595	s.RestApiId = &v
23596	return s
23597}
23598
23599// A gateway response of a given response type and status code, with optional
23600// response parameters and mapping templates.
23601//
23602// For more information about valid gateway response types, see Gateway Response
23603// Types Supported by API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/supported-gateway-response-types.html)
23604//
23605// Example: Get a Gateway Response of a given response type
23606//
23607// Request
23608//
23609// This example shows how to get a gateway response of the MISSING_AUTHENTICATION_TOKEN
23610// type.
23611//  GET /restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN HTTP/1.1
23612//  Host: beta-apigateway.us-east-1.amazonaws.com Content-Type: application/json
23613//  X-Amz-Date: 20170503T202516Z Authorization: AWS4-HMAC-SHA256 Credential={access-key-id}/20170503/us-east-1/apigateway/aws4_request,
23614//  SignedHeaders=content-type;host;x-amz-date, Signature=1b52460e3159c1a26cff29093855d50ea141c1c5b937528fecaf60f51129697a
23615//  Cache-Control: no-cache Postman-Token: 3b2a1ce9-c848-2e26-2e2f-9c2caefbed45
23616// The response type is specified as a URL path.
23617//
23618// Response
23619//
23620// The successful operation returns the 200 OK status code and a payload similar
23621// to the following:
23622//  { "_links": { "curies": { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html",
23623//  "name": "gatewayresponse", "templated": true }, "self": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
23624//  }, "gatewayresponse:delete": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
23625//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
23626//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
23627//  } }, "defaultResponse": false, "responseParameters": { "gatewayresponse.header.x-request-path":
23628//  "method.request.path.petId", "gatewayresponse.header.Access-Control-Allow-Origin":
23629//  "'a.b.c'", "gatewayresponse.header.x-request-query": "method.request.querystring.q",
23630//  "gatewayresponse.header.x-request-header": "method.request.header.Accept"
23631//  }, "responseTemplates": { "application/json": "{\n \"message\": $context.error.messageString,\n
23632//  \"type\": \"$context.error.responseType\",\n \"stage\": \"$context.stage\",\n
23633//  \"resourcePath\": \"$context.resourcePath\",\n \"stageVariables.a\": \"$stageVariables.a\",\n
23634//  \"statusCode\": \"'404'\"\n}" }, "responseType": "MISSING_AUTHENTICATION_TOKEN",
23635//  "statusCode": "404" }
23636//
23637// Customize Gateway Responses (https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html)
23638type UpdateGatewayResponseOutput struct {
23639	_ struct{} `type:"structure"`
23640
23641	// A Boolean flag to indicate whether this GatewayResponse is the default gateway
23642	// response (true) or not (false). A default gateway response is one generated
23643	// by API Gateway without any customization by an API developer.
23644	DefaultResponse *bool `locationName:"defaultResponse" type:"boolean"`
23645
23646	// Response parameters (paths, query strings and headers) of the GatewayResponse
23647	// as a string-to-string map of key-value pairs.
23648	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
23649
23650	// Response templates of the GatewayResponse as a string-to-string map of key-value
23651	// pairs.
23652	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
23653
23654	// The response type of the associated GatewayResponse. Valid values are
23655	//    * ACCESS_DENIED
23656	//
23657	//    * API_CONFIGURATION_ERROR
23658	//
23659	//    * AUTHORIZER_FAILURE
23660	//
23661	//    * AUTHORIZER_CONFIGURATION_ERROR
23662	//
23663	//    * BAD_REQUEST_PARAMETERS
23664	//
23665	//    * BAD_REQUEST_BODY
23666	//
23667	//    * DEFAULT_4XX
23668	//
23669	//    * DEFAULT_5XX
23670	//
23671	//    * EXPIRED_TOKEN
23672	//
23673	//    * INVALID_SIGNATURE
23674	//
23675	//    * INTEGRATION_FAILURE
23676	//
23677	//    * INTEGRATION_TIMEOUT
23678	//
23679	//    * INVALID_API_KEY
23680	//
23681	//    * MISSING_AUTHENTICATION_TOKEN
23682	//
23683	//    * QUOTA_EXCEEDED
23684	//
23685	//    * REQUEST_TOO_LARGE
23686	//
23687	//    * RESOURCE_NOT_FOUND
23688	//
23689	//    * THROTTLED
23690	//
23691	//    * UNAUTHORIZED
23692	//
23693	//    * UNSUPPORTED_MEDIA_TYPE
23694	ResponseType *string `locationName:"responseType" type:"string" enum:"GatewayResponseType"`
23695
23696	// The HTTP status code for this GatewayResponse.
23697	StatusCode *string `locationName:"statusCode" type:"string"`
23698}
23699
23700// String returns the string representation
23701func (s UpdateGatewayResponseOutput) String() string {
23702	return awsutil.Prettify(s)
23703}
23704
23705// GoString returns the string representation
23706func (s UpdateGatewayResponseOutput) GoString() string {
23707	return s.String()
23708}
23709
23710// SetDefaultResponse sets the DefaultResponse field's value.
23711func (s *UpdateGatewayResponseOutput) SetDefaultResponse(v bool) *UpdateGatewayResponseOutput {
23712	s.DefaultResponse = &v
23713	return s
23714}
23715
23716// SetResponseParameters sets the ResponseParameters field's value.
23717func (s *UpdateGatewayResponseOutput) SetResponseParameters(v map[string]*string) *UpdateGatewayResponseOutput {
23718	s.ResponseParameters = v
23719	return s
23720}
23721
23722// SetResponseTemplates sets the ResponseTemplates field's value.
23723func (s *UpdateGatewayResponseOutput) SetResponseTemplates(v map[string]*string) *UpdateGatewayResponseOutput {
23724	s.ResponseTemplates = v
23725	return s
23726}
23727
23728// SetResponseType sets the ResponseType field's value.
23729func (s *UpdateGatewayResponseOutput) SetResponseType(v string) *UpdateGatewayResponseOutput {
23730	s.ResponseType = &v
23731	return s
23732}
23733
23734// SetStatusCode sets the StatusCode field's value.
23735func (s *UpdateGatewayResponseOutput) SetStatusCode(v string) *UpdateGatewayResponseOutput {
23736	s.StatusCode = &v
23737	return s
23738}
23739
23740// Represents an update integration request.
23741type UpdateIntegrationInput struct {
23742	_ struct{} `type:"structure"`
23743
23744	// [Required] Represents an update integration request's HTTP method.
23745	//
23746	// HttpMethod is a required field
23747	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
23748
23749	// A list of update operations to be applied to the specified resource and in
23750	// the order specified in this list.
23751	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23752
23753	// [Required] Represents an update integration request's resource identifier.
23754	//
23755	// ResourceId is a required field
23756	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
23757
23758	// [Required] The string identifier of the associated RestApi.
23759	//
23760	// RestApiId is a required field
23761	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23762}
23763
23764// String returns the string representation
23765func (s UpdateIntegrationInput) String() string {
23766	return awsutil.Prettify(s)
23767}
23768
23769// GoString returns the string representation
23770func (s UpdateIntegrationInput) GoString() string {
23771	return s.String()
23772}
23773
23774// Validate inspects the fields of the type to determine if they are valid.
23775func (s *UpdateIntegrationInput) Validate() error {
23776	invalidParams := request.ErrInvalidParams{Context: "UpdateIntegrationInput"}
23777	if s.HttpMethod == nil {
23778		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
23779	}
23780	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
23781		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
23782	}
23783	if s.ResourceId == nil {
23784		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
23785	}
23786	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
23787		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
23788	}
23789	if s.RestApiId == nil {
23790		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23791	}
23792	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23793		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23794	}
23795
23796	if invalidParams.Len() > 0 {
23797		return invalidParams
23798	}
23799	return nil
23800}
23801
23802// SetHttpMethod sets the HttpMethod field's value.
23803func (s *UpdateIntegrationInput) SetHttpMethod(v string) *UpdateIntegrationInput {
23804	s.HttpMethod = &v
23805	return s
23806}
23807
23808// SetPatchOperations sets the PatchOperations field's value.
23809func (s *UpdateIntegrationInput) SetPatchOperations(v []*PatchOperation) *UpdateIntegrationInput {
23810	s.PatchOperations = v
23811	return s
23812}
23813
23814// SetResourceId sets the ResourceId field's value.
23815func (s *UpdateIntegrationInput) SetResourceId(v string) *UpdateIntegrationInput {
23816	s.ResourceId = &v
23817	return s
23818}
23819
23820// SetRestApiId sets the RestApiId field's value.
23821func (s *UpdateIntegrationInput) SetRestApiId(v string) *UpdateIntegrationInput {
23822	s.RestApiId = &v
23823	return s
23824}
23825
23826// Represents an update integration response request.
23827type UpdateIntegrationResponseInput struct {
23828	_ struct{} `type:"structure"`
23829
23830	// [Required] Specifies an update integration response request's HTTP method.
23831	//
23832	// HttpMethod is a required field
23833	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
23834
23835	// A list of update operations to be applied to the specified resource and in
23836	// the order specified in this list.
23837	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23838
23839	// [Required] Specifies an update integration response request's resource identifier.
23840	//
23841	// ResourceId is a required field
23842	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
23843
23844	// [Required] The string identifier of the associated RestApi.
23845	//
23846	// RestApiId is a required field
23847	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23848
23849	// [Required] Specifies an update integration response request's status code.
23850	//
23851	// StatusCode is a required field
23852	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
23853}
23854
23855// String returns the string representation
23856func (s UpdateIntegrationResponseInput) String() string {
23857	return awsutil.Prettify(s)
23858}
23859
23860// GoString returns the string representation
23861func (s UpdateIntegrationResponseInput) GoString() string {
23862	return s.String()
23863}
23864
23865// Validate inspects the fields of the type to determine if they are valid.
23866func (s *UpdateIntegrationResponseInput) Validate() error {
23867	invalidParams := request.ErrInvalidParams{Context: "UpdateIntegrationResponseInput"}
23868	if s.HttpMethod == nil {
23869		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
23870	}
23871	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
23872		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
23873	}
23874	if s.ResourceId == nil {
23875		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
23876	}
23877	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
23878		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
23879	}
23880	if s.RestApiId == nil {
23881		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23882	}
23883	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23884		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23885	}
23886	if s.StatusCode == nil {
23887		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
23888	}
23889	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
23890		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
23891	}
23892
23893	if invalidParams.Len() > 0 {
23894		return invalidParams
23895	}
23896	return nil
23897}
23898
23899// SetHttpMethod sets the HttpMethod field's value.
23900func (s *UpdateIntegrationResponseInput) SetHttpMethod(v string) *UpdateIntegrationResponseInput {
23901	s.HttpMethod = &v
23902	return s
23903}
23904
23905// SetPatchOperations sets the PatchOperations field's value.
23906func (s *UpdateIntegrationResponseInput) SetPatchOperations(v []*PatchOperation) *UpdateIntegrationResponseInput {
23907	s.PatchOperations = v
23908	return s
23909}
23910
23911// SetResourceId sets the ResourceId field's value.
23912func (s *UpdateIntegrationResponseInput) SetResourceId(v string) *UpdateIntegrationResponseInput {
23913	s.ResourceId = &v
23914	return s
23915}
23916
23917// SetRestApiId sets the RestApiId field's value.
23918func (s *UpdateIntegrationResponseInput) SetRestApiId(v string) *UpdateIntegrationResponseInput {
23919	s.RestApiId = &v
23920	return s
23921}
23922
23923// SetStatusCode sets the StatusCode field's value.
23924func (s *UpdateIntegrationResponseInput) SetStatusCode(v string) *UpdateIntegrationResponseInput {
23925	s.StatusCode = &v
23926	return s
23927}
23928
23929// Request to update an existing Method resource.
23930type UpdateMethodInput struct {
23931	_ struct{} `type:"structure"`
23932
23933	// [Required] The HTTP verb of the Method resource.
23934	//
23935	// HttpMethod is a required field
23936	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
23937
23938	// A list of update operations to be applied to the specified resource and in
23939	// the order specified in this list.
23940	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
23941
23942	// [Required] The Resource identifier for the Method resource.
23943	//
23944	// ResourceId is a required field
23945	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
23946
23947	// [Required] The string identifier of the associated RestApi.
23948	//
23949	// RestApiId is a required field
23950	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23951}
23952
23953// String returns the string representation
23954func (s UpdateMethodInput) String() string {
23955	return awsutil.Prettify(s)
23956}
23957
23958// GoString returns the string representation
23959func (s UpdateMethodInput) GoString() string {
23960	return s.String()
23961}
23962
23963// Validate inspects the fields of the type to determine if they are valid.
23964func (s *UpdateMethodInput) Validate() error {
23965	invalidParams := request.ErrInvalidParams{Context: "UpdateMethodInput"}
23966	if s.HttpMethod == nil {
23967		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
23968	}
23969	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
23970		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
23971	}
23972	if s.ResourceId == nil {
23973		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
23974	}
23975	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
23976		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
23977	}
23978	if s.RestApiId == nil {
23979		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23980	}
23981	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23982		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23983	}
23984
23985	if invalidParams.Len() > 0 {
23986		return invalidParams
23987	}
23988	return nil
23989}
23990
23991// SetHttpMethod sets the HttpMethod field's value.
23992func (s *UpdateMethodInput) SetHttpMethod(v string) *UpdateMethodInput {
23993	s.HttpMethod = &v
23994	return s
23995}
23996
23997// SetPatchOperations sets the PatchOperations field's value.
23998func (s *UpdateMethodInput) SetPatchOperations(v []*PatchOperation) *UpdateMethodInput {
23999	s.PatchOperations = v
24000	return s
24001}
24002
24003// SetResourceId sets the ResourceId field's value.
24004func (s *UpdateMethodInput) SetResourceId(v string) *UpdateMethodInput {
24005	s.ResourceId = &v
24006	return s
24007}
24008
24009// SetRestApiId sets the RestApiId field's value.
24010func (s *UpdateMethodInput) SetRestApiId(v string) *UpdateMethodInput {
24011	s.RestApiId = &v
24012	return s
24013}
24014
24015// A request to update an existing MethodResponse resource.
24016type UpdateMethodResponseInput struct {
24017	_ struct{} `type:"structure"`
24018
24019	// [Required] The HTTP verb of the Method resource.
24020	//
24021	// HttpMethod is a required field
24022	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
24023
24024	// A list of update operations to be applied to the specified resource and in
24025	// the order specified in this list.
24026	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24027
24028	// [Required] The Resource identifier for the MethodResponse resource.
24029	//
24030	// ResourceId is a required field
24031	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
24032
24033	// [Required] The string identifier of the associated RestApi.
24034	//
24035	// RestApiId is a required field
24036	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24037
24038	// [Required] The status code for the MethodResponse resource.
24039	//
24040	// StatusCode is a required field
24041	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
24042}
24043
24044// String returns the string representation
24045func (s UpdateMethodResponseInput) String() string {
24046	return awsutil.Prettify(s)
24047}
24048
24049// GoString returns the string representation
24050func (s UpdateMethodResponseInput) GoString() string {
24051	return s.String()
24052}
24053
24054// Validate inspects the fields of the type to determine if they are valid.
24055func (s *UpdateMethodResponseInput) Validate() error {
24056	invalidParams := request.ErrInvalidParams{Context: "UpdateMethodResponseInput"}
24057	if s.HttpMethod == nil {
24058		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
24059	}
24060	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
24061		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
24062	}
24063	if s.ResourceId == nil {
24064		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
24065	}
24066	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
24067		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
24068	}
24069	if s.RestApiId == nil {
24070		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24071	}
24072	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24073		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24074	}
24075	if s.StatusCode == nil {
24076		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
24077	}
24078	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
24079		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
24080	}
24081
24082	if invalidParams.Len() > 0 {
24083		return invalidParams
24084	}
24085	return nil
24086}
24087
24088// SetHttpMethod sets the HttpMethod field's value.
24089func (s *UpdateMethodResponseInput) SetHttpMethod(v string) *UpdateMethodResponseInput {
24090	s.HttpMethod = &v
24091	return s
24092}
24093
24094// SetPatchOperations sets the PatchOperations field's value.
24095func (s *UpdateMethodResponseInput) SetPatchOperations(v []*PatchOperation) *UpdateMethodResponseInput {
24096	s.PatchOperations = v
24097	return s
24098}
24099
24100// SetResourceId sets the ResourceId field's value.
24101func (s *UpdateMethodResponseInput) SetResourceId(v string) *UpdateMethodResponseInput {
24102	s.ResourceId = &v
24103	return s
24104}
24105
24106// SetRestApiId sets the RestApiId field's value.
24107func (s *UpdateMethodResponseInput) SetRestApiId(v string) *UpdateMethodResponseInput {
24108	s.RestApiId = &v
24109	return s
24110}
24111
24112// SetStatusCode sets the StatusCode field's value.
24113func (s *UpdateMethodResponseInput) SetStatusCode(v string) *UpdateMethodResponseInput {
24114	s.StatusCode = &v
24115	return s
24116}
24117
24118// Request to update an existing model in an existing RestApi resource.
24119type UpdateModelInput struct {
24120	_ struct{} `type:"structure"`
24121
24122	// [Required] The name of the model to update.
24123	//
24124	// ModelName is a required field
24125	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
24126
24127	// A list of update operations to be applied to the specified resource and in
24128	// the order specified in this list.
24129	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24130
24131	// [Required] The string identifier of the associated RestApi.
24132	//
24133	// RestApiId is a required field
24134	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24135}
24136
24137// String returns the string representation
24138func (s UpdateModelInput) String() string {
24139	return awsutil.Prettify(s)
24140}
24141
24142// GoString returns the string representation
24143func (s UpdateModelInput) GoString() string {
24144	return s.String()
24145}
24146
24147// Validate inspects the fields of the type to determine if they are valid.
24148func (s *UpdateModelInput) Validate() error {
24149	invalidParams := request.ErrInvalidParams{Context: "UpdateModelInput"}
24150	if s.ModelName == nil {
24151		invalidParams.Add(request.NewErrParamRequired("ModelName"))
24152	}
24153	if s.ModelName != nil && len(*s.ModelName) < 1 {
24154		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
24155	}
24156	if s.RestApiId == nil {
24157		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24158	}
24159	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24160		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24161	}
24162
24163	if invalidParams.Len() > 0 {
24164		return invalidParams
24165	}
24166	return nil
24167}
24168
24169// SetModelName sets the ModelName field's value.
24170func (s *UpdateModelInput) SetModelName(v string) *UpdateModelInput {
24171	s.ModelName = &v
24172	return s
24173}
24174
24175// SetPatchOperations sets the PatchOperations field's value.
24176func (s *UpdateModelInput) SetPatchOperations(v []*PatchOperation) *UpdateModelInput {
24177	s.PatchOperations = v
24178	return s
24179}
24180
24181// SetRestApiId sets the RestApiId field's value.
24182func (s *UpdateModelInput) SetRestApiId(v string) *UpdateModelInput {
24183	s.RestApiId = &v
24184	return s
24185}
24186
24187// Updates a RequestValidator of a given RestApi.
24188type UpdateRequestValidatorInput struct {
24189	_ struct{} `type:"structure"`
24190
24191	// A list of update operations to be applied to the specified resource and in
24192	// the order specified in this list.
24193	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24194
24195	// [Required] The identifier of RequestValidator to be updated.
24196	//
24197	// RequestValidatorId is a required field
24198	RequestValidatorId *string `location:"uri" locationName:"requestvalidator_id" type:"string" required:"true"`
24199
24200	// [Required] The string identifier of the associated RestApi.
24201	//
24202	// RestApiId is a required field
24203	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24204}
24205
24206// String returns the string representation
24207func (s UpdateRequestValidatorInput) String() string {
24208	return awsutil.Prettify(s)
24209}
24210
24211// GoString returns the string representation
24212func (s UpdateRequestValidatorInput) GoString() string {
24213	return s.String()
24214}
24215
24216// Validate inspects the fields of the type to determine if they are valid.
24217func (s *UpdateRequestValidatorInput) Validate() error {
24218	invalidParams := request.ErrInvalidParams{Context: "UpdateRequestValidatorInput"}
24219	if s.RequestValidatorId == nil {
24220		invalidParams.Add(request.NewErrParamRequired("RequestValidatorId"))
24221	}
24222	if s.RequestValidatorId != nil && len(*s.RequestValidatorId) < 1 {
24223		invalidParams.Add(request.NewErrParamMinLen("RequestValidatorId", 1))
24224	}
24225	if s.RestApiId == nil {
24226		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24227	}
24228	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24229		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24230	}
24231
24232	if invalidParams.Len() > 0 {
24233		return invalidParams
24234	}
24235	return nil
24236}
24237
24238// SetPatchOperations sets the PatchOperations field's value.
24239func (s *UpdateRequestValidatorInput) SetPatchOperations(v []*PatchOperation) *UpdateRequestValidatorInput {
24240	s.PatchOperations = v
24241	return s
24242}
24243
24244// SetRequestValidatorId sets the RequestValidatorId field's value.
24245func (s *UpdateRequestValidatorInput) SetRequestValidatorId(v string) *UpdateRequestValidatorInput {
24246	s.RequestValidatorId = &v
24247	return s
24248}
24249
24250// SetRestApiId sets the RestApiId field's value.
24251func (s *UpdateRequestValidatorInput) SetRestApiId(v string) *UpdateRequestValidatorInput {
24252	s.RestApiId = &v
24253	return s
24254}
24255
24256// A set of validation rules for incoming Method requests.
24257//
24258// In OpenAPI, a RequestValidator of an API is defined by the x-amazon-apigateway-request-validators.requestValidator
24259// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html#api-gateway-swagger-extensions-request-validators.requestValidator.html)
24260// object. It the referenced using the x-amazon-apigateway-request-validator
24261// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html#api-gateway-swagger-extensions-request-validator)
24262// property.
24263//
24264// Enable Basic Request Validation in API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html)
24265type UpdateRequestValidatorOutput struct {
24266	_ struct{} `type:"structure"`
24267
24268	// The identifier of this RequestValidator.
24269	Id *string `locationName:"id" type:"string"`
24270
24271	// The name of this RequestValidator
24272	Name *string `locationName:"name" type:"string"`
24273
24274	// A Boolean flag to indicate whether to validate a request body according to
24275	// the configured Model schema.
24276	ValidateRequestBody *bool `locationName:"validateRequestBody" type:"boolean"`
24277
24278	// A Boolean flag to indicate whether to validate request parameters (true)
24279	// or not (false).
24280	ValidateRequestParameters *bool `locationName:"validateRequestParameters" type:"boolean"`
24281}
24282
24283// String returns the string representation
24284func (s UpdateRequestValidatorOutput) String() string {
24285	return awsutil.Prettify(s)
24286}
24287
24288// GoString returns the string representation
24289func (s UpdateRequestValidatorOutput) GoString() string {
24290	return s.String()
24291}
24292
24293// SetId sets the Id field's value.
24294func (s *UpdateRequestValidatorOutput) SetId(v string) *UpdateRequestValidatorOutput {
24295	s.Id = &v
24296	return s
24297}
24298
24299// SetName sets the Name field's value.
24300func (s *UpdateRequestValidatorOutput) SetName(v string) *UpdateRequestValidatorOutput {
24301	s.Name = &v
24302	return s
24303}
24304
24305// SetValidateRequestBody sets the ValidateRequestBody field's value.
24306func (s *UpdateRequestValidatorOutput) SetValidateRequestBody(v bool) *UpdateRequestValidatorOutput {
24307	s.ValidateRequestBody = &v
24308	return s
24309}
24310
24311// SetValidateRequestParameters sets the ValidateRequestParameters field's value.
24312func (s *UpdateRequestValidatorOutput) SetValidateRequestParameters(v bool) *UpdateRequestValidatorOutput {
24313	s.ValidateRequestParameters = &v
24314	return s
24315}
24316
24317// Request to change information about a Resource resource.
24318type UpdateResourceInput struct {
24319	_ struct{} `type:"structure"`
24320
24321	// A list of update operations to be applied to the specified resource and in
24322	// the order specified in this list.
24323	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24324
24325	// [Required] The identifier of the Resource resource.
24326	//
24327	// ResourceId is a required field
24328	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
24329
24330	// [Required] The string identifier of the associated RestApi.
24331	//
24332	// RestApiId is a required field
24333	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24334}
24335
24336// String returns the string representation
24337func (s UpdateResourceInput) String() string {
24338	return awsutil.Prettify(s)
24339}
24340
24341// GoString returns the string representation
24342func (s UpdateResourceInput) GoString() string {
24343	return s.String()
24344}
24345
24346// Validate inspects the fields of the type to determine if they are valid.
24347func (s *UpdateResourceInput) Validate() error {
24348	invalidParams := request.ErrInvalidParams{Context: "UpdateResourceInput"}
24349	if s.ResourceId == nil {
24350		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
24351	}
24352	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
24353		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
24354	}
24355	if s.RestApiId == nil {
24356		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24357	}
24358	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24359		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24360	}
24361
24362	if invalidParams.Len() > 0 {
24363		return invalidParams
24364	}
24365	return nil
24366}
24367
24368// SetPatchOperations sets the PatchOperations field's value.
24369func (s *UpdateResourceInput) SetPatchOperations(v []*PatchOperation) *UpdateResourceInput {
24370	s.PatchOperations = v
24371	return s
24372}
24373
24374// SetResourceId sets the ResourceId field's value.
24375func (s *UpdateResourceInput) SetResourceId(v string) *UpdateResourceInput {
24376	s.ResourceId = &v
24377	return s
24378}
24379
24380// SetRestApiId sets the RestApiId field's value.
24381func (s *UpdateResourceInput) SetRestApiId(v string) *UpdateResourceInput {
24382	s.RestApiId = &v
24383	return s
24384}
24385
24386// Request to update an existing RestApi resource in your collection.
24387type UpdateRestApiInput struct {
24388	_ struct{} `type:"structure"`
24389
24390	// A list of update operations to be applied to the specified resource and in
24391	// the order specified in this list.
24392	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24393
24394	// [Required] The string identifier of the associated RestApi.
24395	//
24396	// RestApiId is a required field
24397	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24398}
24399
24400// String returns the string representation
24401func (s UpdateRestApiInput) String() string {
24402	return awsutil.Prettify(s)
24403}
24404
24405// GoString returns the string representation
24406func (s UpdateRestApiInput) GoString() string {
24407	return s.String()
24408}
24409
24410// Validate inspects the fields of the type to determine if they are valid.
24411func (s *UpdateRestApiInput) Validate() error {
24412	invalidParams := request.ErrInvalidParams{Context: "UpdateRestApiInput"}
24413	if s.RestApiId == nil {
24414		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24415	}
24416	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24417		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24418	}
24419
24420	if invalidParams.Len() > 0 {
24421		return invalidParams
24422	}
24423	return nil
24424}
24425
24426// SetPatchOperations sets the PatchOperations field's value.
24427func (s *UpdateRestApiInput) SetPatchOperations(v []*PatchOperation) *UpdateRestApiInput {
24428	s.PatchOperations = v
24429	return s
24430}
24431
24432// SetRestApiId sets the RestApiId field's value.
24433func (s *UpdateRestApiInput) SetRestApiId(v string) *UpdateRestApiInput {
24434	s.RestApiId = &v
24435	return s
24436}
24437
24438// Requests API Gateway to change information about a Stage resource.
24439type UpdateStageInput struct {
24440	_ struct{} `type:"structure"`
24441
24442	// A list of update operations to be applied to the specified resource and in
24443	// the order specified in this list.
24444	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24445
24446	// [Required] The string identifier of the associated RestApi.
24447	//
24448	// RestApiId is a required field
24449	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24450
24451	// [Required] The name of the Stage resource to change information about.
24452	//
24453	// StageName is a required field
24454	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
24455}
24456
24457// String returns the string representation
24458func (s UpdateStageInput) String() string {
24459	return awsutil.Prettify(s)
24460}
24461
24462// GoString returns the string representation
24463func (s UpdateStageInput) GoString() string {
24464	return s.String()
24465}
24466
24467// Validate inspects the fields of the type to determine if they are valid.
24468func (s *UpdateStageInput) Validate() error {
24469	invalidParams := request.ErrInvalidParams{Context: "UpdateStageInput"}
24470	if s.RestApiId == nil {
24471		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24472	}
24473	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24474		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24475	}
24476	if s.StageName == nil {
24477		invalidParams.Add(request.NewErrParamRequired("StageName"))
24478	}
24479	if s.StageName != nil && len(*s.StageName) < 1 {
24480		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
24481	}
24482
24483	if invalidParams.Len() > 0 {
24484		return invalidParams
24485	}
24486	return nil
24487}
24488
24489// SetPatchOperations sets the PatchOperations field's value.
24490func (s *UpdateStageInput) SetPatchOperations(v []*PatchOperation) *UpdateStageInput {
24491	s.PatchOperations = v
24492	return s
24493}
24494
24495// SetRestApiId sets the RestApiId field's value.
24496func (s *UpdateStageInput) SetRestApiId(v string) *UpdateStageInput {
24497	s.RestApiId = &v
24498	return s
24499}
24500
24501// SetStageName sets the StageName field's value.
24502func (s *UpdateStageInput) SetStageName(v string) *UpdateStageInput {
24503	s.StageName = &v
24504	return s
24505}
24506
24507// The PATCH request to grant a temporary extension to the remaining quota of
24508// a usage plan associated with a specified API key.
24509type UpdateUsageInput struct {
24510	_ struct{} `type:"structure"`
24511
24512	// [Required] The identifier of the API key associated with the usage plan in
24513	// which a temporary extension is granted to the remaining quota.
24514	//
24515	// KeyId is a required field
24516	KeyId *string `location:"uri" locationName:"keyId" type:"string" required:"true"`
24517
24518	// A list of update operations to be applied to the specified resource and in
24519	// the order specified in this list.
24520	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24521
24522	// [Required] The Id of the usage plan associated with the usage data.
24523	//
24524	// UsagePlanId is a required field
24525	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
24526}
24527
24528// String returns the string representation
24529func (s UpdateUsageInput) String() string {
24530	return awsutil.Prettify(s)
24531}
24532
24533// GoString returns the string representation
24534func (s UpdateUsageInput) GoString() string {
24535	return s.String()
24536}
24537
24538// Validate inspects the fields of the type to determine if they are valid.
24539func (s *UpdateUsageInput) Validate() error {
24540	invalidParams := request.ErrInvalidParams{Context: "UpdateUsageInput"}
24541	if s.KeyId == nil {
24542		invalidParams.Add(request.NewErrParamRequired("KeyId"))
24543	}
24544	if s.KeyId != nil && len(*s.KeyId) < 1 {
24545		invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
24546	}
24547	if s.UsagePlanId == nil {
24548		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
24549	}
24550	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
24551		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
24552	}
24553
24554	if invalidParams.Len() > 0 {
24555		return invalidParams
24556	}
24557	return nil
24558}
24559
24560// SetKeyId sets the KeyId field's value.
24561func (s *UpdateUsageInput) SetKeyId(v string) *UpdateUsageInput {
24562	s.KeyId = &v
24563	return s
24564}
24565
24566// SetPatchOperations sets the PatchOperations field's value.
24567func (s *UpdateUsageInput) SetPatchOperations(v []*PatchOperation) *UpdateUsageInput {
24568	s.PatchOperations = v
24569	return s
24570}
24571
24572// SetUsagePlanId sets the UsagePlanId field's value.
24573func (s *UpdateUsageInput) SetUsagePlanId(v string) *UpdateUsageInput {
24574	s.UsagePlanId = &v
24575	return s
24576}
24577
24578// The PATCH request to update a usage plan of a given plan Id.
24579type UpdateUsagePlanInput struct {
24580	_ struct{} `type:"structure"`
24581
24582	// A list of update operations to be applied to the specified resource and in
24583	// the order specified in this list.
24584	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24585
24586	// [Required] The Id of the to-be-updated usage plan.
24587	//
24588	// UsagePlanId is a required field
24589	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
24590}
24591
24592// String returns the string representation
24593func (s UpdateUsagePlanInput) String() string {
24594	return awsutil.Prettify(s)
24595}
24596
24597// GoString returns the string representation
24598func (s UpdateUsagePlanInput) GoString() string {
24599	return s.String()
24600}
24601
24602// Validate inspects the fields of the type to determine if they are valid.
24603func (s *UpdateUsagePlanInput) Validate() error {
24604	invalidParams := request.ErrInvalidParams{Context: "UpdateUsagePlanInput"}
24605	if s.UsagePlanId == nil {
24606		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
24607	}
24608	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
24609		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
24610	}
24611
24612	if invalidParams.Len() > 0 {
24613		return invalidParams
24614	}
24615	return nil
24616}
24617
24618// SetPatchOperations sets the PatchOperations field's value.
24619func (s *UpdateUsagePlanInput) SetPatchOperations(v []*PatchOperation) *UpdateUsagePlanInput {
24620	s.PatchOperations = v
24621	return s
24622}
24623
24624// SetUsagePlanId sets the UsagePlanId field's value.
24625func (s *UpdateUsagePlanInput) SetUsagePlanId(v string) *UpdateUsagePlanInput {
24626	s.UsagePlanId = &v
24627	return s
24628}
24629
24630// Updates an existing VpcLink of a specified identifier.
24631type UpdateVpcLinkInput struct {
24632	_ struct{} `type:"structure"`
24633
24634	// A list of update operations to be applied to the specified resource and in
24635	// the order specified in this list.
24636	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
24637
24638	// [Required] The identifier of the VpcLink. It is used in an Integration to
24639	// reference this VpcLink.
24640	//
24641	// VpcLinkId is a required field
24642	VpcLinkId *string `location:"uri" locationName:"vpclink_id" type:"string" required:"true"`
24643}
24644
24645// String returns the string representation
24646func (s UpdateVpcLinkInput) String() string {
24647	return awsutil.Prettify(s)
24648}
24649
24650// GoString returns the string representation
24651func (s UpdateVpcLinkInput) GoString() string {
24652	return s.String()
24653}
24654
24655// Validate inspects the fields of the type to determine if they are valid.
24656func (s *UpdateVpcLinkInput) Validate() error {
24657	invalidParams := request.ErrInvalidParams{Context: "UpdateVpcLinkInput"}
24658	if s.VpcLinkId == nil {
24659		invalidParams.Add(request.NewErrParamRequired("VpcLinkId"))
24660	}
24661	if s.VpcLinkId != nil && len(*s.VpcLinkId) < 1 {
24662		invalidParams.Add(request.NewErrParamMinLen("VpcLinkId", 1))
24663	}
24664
24665	if invalidParams.Len() > 0 {
24666		return invalidParams
24667	}
24668	return nil
24669}
24670
24671// SetPatchOperations sets the PatchOperations field's value.
24672func (s *UpdateVpcLinkInput) SetPatchOperations(v []*PatchOperation) *UpdateVpcLinkInput {
24673	s.PatchOperations = v
24674	return s
24675}
24676
24677// SetVpcLinkId sets the VpcLinkId field's value.
24678func (s *UpdateVpcLinkInput) SetVpcLinkId(v string) *UpdateVpcLinkInput {
24679	s.VpcLinkId = &v
24680	return s
24681}
24682
24683// A API Gateway VPC link for a RestApi to access resources in an Amazon Virtual
24684// Private Cloud (VPC).
24685//
24686// To enable access to a resource in an Amazon Virtual Private Cloud through
24687// Amazon API Gateway, you, as an API developer, create a VpcLink resource targeted
24688// for one or more network load balancers of the VPC and then integrate an API
24689// method with a private integration that uses the VpcLink. The private integration
24690// has an integration type of HTTP or HTTP_PROXY and has a connection type of
24691// VPC_LINK. The integration uses the connectionId property to identify the
24692// VpcLink used.
24693type UpdateVpcLinkOutput struct {
24694	_ struct{} `type:"structure"`
24695
24696	// The description of the VPC link.
24697	Description *string `locationName:"description" type:"string"`
24698
24699	// The identifier of the VpcLink. It is used in an Integration to reference
24700	// this VpcLink.
24701	Id *string `locationName:"id" type:"string"`
24702
24703	// The name used to label and identify the VPC link.
24704	Name *string `locationName:"name" type:"string"`
24705
24706	// The status of the VPC link. The valid values are AVAILABLE, PENDING, DELETING,
24707	// or FAILED. Deploying an API will wait if the status is PENDING and will fail
24708	// if the status is DELETING.
24709	Status *string `locationName:"status" type:"string" enum:"VpcLinkStatus"`
24710
24711	// A description about the VPC link status.
24712	StatusMessage *string `locationName:"statusMessage" type:"string"`
24713
24714	// The collection of tags. Each tag element is associated with a given resource.
24715	Tags map[string]*string `locationName:"tags" type:"map"`
24716
24717	// The ARNs of network load balancers of the VPC targeted by the VPC link. The
24718	// network load balancers must be owned by the same AWS account of the API owner.
24719	TargetArns []*string `locationName:"targetArns" type:"list"`
24720}
24721
24722// String returns the string representation
24723func (s UpdateVpcLinkOutput) String() string {
24724	return awsutil.Prettify(s)
24725}
24726
24727// GoString returns the string representation
24728func (s UpdateVpcLinkOutput) GoString() string {
24729	return s.String()
24730}
24731
24732// SetDescription sets the Description field's value.
24733func (s *UpdateVpcLinkOutput) SetDescription(v string) *UpdateVpcLinkOutput {
24734	s.Description = &v
24735	return s
24736}
24737
24738// SetId sets the Id field's value.
24739func (s *UpdateVpcLinkOutput) SetId(v string) *UpdateVpcLinkOutput {
24740	s.Id = &v
24741	return s
24742}
24743
24744// SetName sets the Name field's value.
24745func (s *UpdateVpcLinkOutput) SetName(v string) *UpdateVpcLinkOutput {
24746	s.Name = &v
24747	return s
24748}
24749
24750// SetStatus sets the Status field's value.
24751func (s *UpdateVpcLinkOutput) SetStatus(v string) *UpdateVpcLinkOutput {
24752	s.Status = &v
24753	return s
24754}
24755
24756// SetStatusMessage sets the StatusMessage field's value.
24757func (s *UpdateVpcLinkOutput) SetStatusMessage(v string) *UpdateVpcLinkOutput {
24758	s.StatusMessage = &v
24759	return s
24760}
24761
24762// SetTags sets the Tags field's value.
24763func (s *UpdateVpcLinkOutput) SetTags(v map[string]*string) *UpdateVpcLinkOutput {
24764	s.Tags = v
24765	return s
24766}
24767
24768// SetTargetArns sets the TargetArns field's value.
24769func (s *UpdateVpcLinkOutput) SetTargetArns(v []*string) *UpdateVpcLinkOutput {
24770	s.TargetArns = v
24771	return s
24772}
24773
24774// Represents the usage data of a usage plan.
24775//
24776// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html),
24777// 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)
24778type Usage struct {
24779	_ struct{} `type:"structure"`
24780
24781	// The ending date of the usage data.
24782	EndDate *string `locationName:"endDate" type:"string"`
24783
24784	// The usage data, as daily logs of used and remaining quotas, over the specified
24785	// time interval indexed over the API keys in a usage plan. For example, {...,
24786	// "values" : { "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}, where {api_key}
24787	// stands for an API key value and the daily log entry is of the format [used
24788	// quota, remaining quota].
24789	Items map[string][][]*int64 `locationName:"values" type:"map"`
24790
24791	Position *string `locationName:"position" type:"string"`
24792
24793	// The starting date of the usage data.
24794	StartDate *string `locationName:"startDate" type:"string"`
24795
24796	// The plan Id associated with this usage data.
24797	UsagePlanId *string `locationName:"usagePlanId" type:"string"`
24798}
24799
24800// String returns the string representation
24801func (s Usage) String() string {
24802	return awsutil.Prettify(s)
24803}
24804
24805// GoString returns the string representation
24806func (s Usage) GoString() string {
24807	return s.String()
24808}
24809
24810// SetEndDate sets the EndDate field's value.
24811func (s *Usage) SetEndDate(v string) *Usage {
24812	s.EndDate = &v
24813	return s
24814}
24815
24816// SetItems sets the Items field's value.
24817func (s *Usage) SetItems(v map[string][][]*int64) *Usage {
24818	s.Items = v
24819	return s
24820}
24821
24822// SetPosition sets the Position field's value.
24823func (s *Usage) SetPosition(v string) *Usage {
24824	s.Position = &v
24825	return s
24826}
24827
24828// SetStartDate sets the StartDate field's value.
24829func (s *Usage) SetStartDate(v string) *Usage {
24830	s.StartDate = &v
24831	return s
24832}
24833
24834// SetUsagePlanId sets the UsagePlanId field's value.
24835func (s *Usage) SetUsagePlanId(v string) *Usage {
24836	s.UsagePlanId = &v
24837	return s
24838}
24839
24840// Represents a usage plan than can specify who can assess associated API stages
24841// with specified request limits and quotas.
24842//
24843// In a usage plan, you associate an API by specifying the API's Id and a stage
24844// name of the specified API. You add plan customers by adding API keys to the
24845// plan.
24846//
24847// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
24848type UsagePlan struct {
24849	_ struct{} `type:"structure"`
24850
24851	// The associated API stages of a usage plan.
24852	ApiStages []*ApiStage `locationName:"apiStages" type:"list"`
24853
24854	// The description of a usage plan.
24855	Description *string `locationName:"description" type:"string"`
24856
24857	// The identifier of a UsagePlan resource.
24858	Id *string `locationName:"id" type:"string"`
24859
24860	// The name of a usage plan.
24861	Name *string `locationName:"name" type:"string"`
24862
24863	// The AWS Markeplace product identifier to associate with the usage plan as
24864	// a SaaS product on AWS Marketplace.
24865	ProductCode *string `locationName:"productCode" type:"string"`
24866
24867	// The maximum number of permitted requests per a given unit time interval.
24868	Quota *QuotaSettings `locationName:"quota" type:"structure"`
24869
24870	// The collection of tags. Each tag element is associated with a given resource.
24871	Tags map[string]*string `locationName:"tags" type:"map"`
24872
24873	// The request throttle limits of a usage plan.
24874	Throttle *ThrottleSettings `locationName:"throttle" type:"structure"`
24875}
24876
24877// String returns the string representation
24878func (s UsagePlan) String() string {
24879	return awsutil.Prettify(s)
24880}
24881
24882// GoString returns the string representation
24883func (s UsagePlan) GoString() string {
24884	return s.String()
24885}
24886
24887// SetApiStages sets the ApiStages field's value.
24888func (s *UsagePlan) SetApiStages(v []*ApiStage) *UsagePlan {
24889	s.ApiStages = v
24890	return s
24891}
24892
24893// SetDescription sets the Description field's value.
24894func (s *UsagePlan) SetDescription(v string) *UsagePlan {
24895	s.Description = &v
24896	return s
24897}
24898
24899// SetId sets the Id field's value.
24900func (s *UsagePlan) SetId(v string) *UsagePlan {
24901	s.Id = &v
24902	return s
24903}
24904
24905// SetName sets the Name field's value.
24906func (s *UsagePlan) SetName(v string) *UsagePlan {
24907	s.Name = &v
24908	return s
24909}
24910
24911// SetProductCode sets the ProductCode field's value.
24912func (s *UsagePlan) SetProductCode(v string) *UsagePlan {
24913	s.ProductCode = &v
24914	return s
24915}
24916
24917// SetQuota sets the Quota field's value.
24918func (s *UsagePlan) SetQuota(v *QuotaSettings) *UsagePlan {
24919	s.Quota = v
24920	return s
24921}
24922
24923// SetTags sets the Tags field's value.
24924func (s *UsagePlan) SetTags(v map[string]*string) *UsagePlan {
24925	s.Tags = v
24926	return s
24927}
24928
24929// SetThrottle sets the Throttle field's value.
24930func (s *UsagePlan) SetThrottle(v *ThrottleSettings) *UsagePlan {
24931	s.Throttle = v
24932	return s
24933}
24934
24935// Represents a usage plan key to identify a plan customer.
24936//
24937// To associate an API stage with a selected API key in a usage plan, you must
24938// create a UsagePlanKey resource to represent the selected ApiKey.
24939//
24940// "
24941// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
24942type UsagePlanKey struct {
24943	_ struct{} `type:"structure"`
24944
24945	// The Id of a usage plan key.
24946	Id *string `locationName:"id" type:"string"`
24947
24948	// The name of a usage plan key.
24949	Name *string `locationName:"name" type:"string"`
24950
24951	// The type of a usage plan key. Currently, the valid key type is API_KEY.
24952	Type *string `locationName:"type" type:"string"`
24953
24954	// The value of a usage plan key.
24955	Value *string `locationName:"value" type:"string"`
24956}
24957
24958// String returns the string representation
24959func (s UsagePlanKey) String() string {
24960	return awsutil.Prettify(s)
24961}
24962
24963// GoString returns the string representation
24964func (s UsagePlanKey) GoString() string {
24965	return s.String()
24966}
24967
24968// SetId sets the Id field's value.
24969func (s *UsagePlanKey) SetId(v string) *UsagePlanKey {
24970	s.Id = &v
24971	return s
24972}
24973
24974// SetName sets the Name field's value.
24975func (s *UsagePlanKey) SetName(v string) *UsagePlanKey {
24976	s.Name = &v
24977	return s
24978}
24979
24980// SetType sets the Type field's value.
24981func (s *UsagePlanKey) SetType(v string) *UsagePlanKey {
24982	s.Type = &v
24983	return s
24984}
24985
24986// SetValue sets the Value field's value.
24987func (s *UsagePlanKey) SetValue(v string) *UsagePlanKey {
24988	s.Value = &v
24989	return s
24990}
24991
24992const (
24993	// ApiKeySourceTypeHeader is a ApiKeySourceType enum value
24994	ApiKeySourceTypeHeader = "HEADER"
24995
24996	// ApiKeySourceTypeAuthorizer is a ApiKeySourceType enum value
24997	ApiKeySourceTypeAuthorizer = "AUTHORIZER"
24998)
24999
25000const (
25001	// ApiKeysFormatCsv is a ApiKeysFormat enum value
25002	ApiKeysFormatCsv = "csv"
25003)
25004
25005// The authorizer type. Valid values are TOKEN for a Lambda function using a
25006// single authorization token submitted in a custom header, REQUEST for a Lambda
25007// function using incoming request parameters, and COGNITO_USER_POOLS for using
25008// an Amazon Cognito user pool.
25009const (
25010	// AuthorizerTypeToken is a AuthorizerType enum value
25011	AuthorizerTypeToken = "TOKEN"
25012
25013	// AuthorizerTypeRequest is a AuthorizerType enum value
25014	AuthorizerTypeRequest = "REQUEST"
25015
25016	// AuthorizerTypeCognitoUserPools is a AuthorizerType enum value
25017	AuthorizerTypeCognitoUserPools = "COGNITO_USER_POOLS"
25018)
25019
25020// Returns the size of the CacheCluster.
25021const (
25022	// CacheClusterSize05 is a CacheClusterSize enum value
25023	CacheClusterSize05 = "0.5"
25024
25025	// CacheClusterSize16 is a CacheClusterSize enum value
25026	CacheClusterSize16 = "1.6"
25027
25028	// CacheClusterSize61 is a CacheClusterSize enum value
25029	CacheClusterSize61 = "6.1"
25030
25031	// CacheClusterSize135 is a CacheClusterSize enum value
25032	CacheClusterSize135 = "13.5"
25033
25034	// CacheClusterSize284 is a CacheClusterSize enum value
25035	CacheClusterSize284 = "28.4"
25036
25037	// CacheClusterSize582 is a CacheClusterSize enum value
25038	CacheClusterSize582 = "58.2"
25039
25040	// CacheClusterSize118 is a CacheClusterSize enum value
25041	CacheClusterSize118 = "118"
25042
25043	// CacheClusterSize237 is a CacheClusterSize enum value
25044	CacheClusterSize237 = "237"
25045)
25046
25047// Returns the status of the CacheCluster.
25048const (
25049	// CacheClusterStatusCreateInProgress is a CacheClusterStatus enum value
25050	CacheClusterStatusCreateInProgress = "CREATE_IN_PROGRESS"
25051
25052	// CacheClusterStatusAvailable is a CacheClusterStatus enum value
25053	CacheClusterStatusAvailable = "AVAILABLE"
25054
25055	// CacheClusterStatusDeleteInProgress is a CacheClusterStatus enum value
25056	CacheClusterStatusDeleteInProgress = "DELETE_IN_PROGRESS"
25057
25058	// CacheClusterStatusNotAvailable is a CacheClusterStatus enum value
25059	CacheClusterStatusNotAvailable = "NOT_AVAILABLE"
25060
25061	// CacheClusterStatusFlushInProgress is a CacheClusterStatus enum value
25062	CacheClusterStatusFlushInProgress = "FLUSH_IN_PROGRESS"
25063)
25064
25065const (
25066	// ConnectionTypeInternet is a ConnectionType enum value
25067	ConnectionTypeInternet = "INTERNET"
25068
25069	// ConnectionTypeVpcLink is a ConnectionType enum value
25070	ConnectionTypeVpcLink = "VPC_LINK"
25071)
25072
25073const (
25074	// ContentHandlingStrategyConvertToBinary is a ContentHandlingStrategy enum value
25075	ContentHandlingStrategyConvertToBinary = "CONVERT_TO_BINARY"
25076
25077	// ContentHandlingStrategyConvertToText is a ContentHandlingStrategy enum value
25078	ContentHandlingStrategyConvertToText = "CONVERT_TO_TEXT"
25079)
25080
25081const (
25082	// DocumentationPartTypeApi is a DocumentationPartType enum value
25083	DocumentationPartTypeApi = "API"
25084
25085	// DocumentationPartTypeAuthorizer is a DocumentationPartType enum value
25086	DocumentationPartTypeAuthorizer = "AUTHORIZER"
25087
25088	// DocumentationPartTypeModel is a DocumentationPartType enum value
25089	DocumentationPartTypeModel = "MODEL"
25090
25091	// DocumentationPartTypeResource is a DocumentationPartType enum value
25092	DocumentationPartTypeResource = "RESOURCE"
25093
25094	// DocumentationPartTypeMethod is a DocumentationPartType enum value
25095	DocumentationPartTypeMethod = "METHOD"
25096
25097	// DocumentationPartTypePathParameter is a DocumentationPartType enum value
25098	DocumentationPartTypePathParameter = "PATH_PARAMETER"
25099
25100	// DocumentationPartTypeQueryParameter is a DocumentationPartType enum value
25101	DocumentationPartTypeQueryParameter = "QUERY_PARAMETER"
25102
25103	// DocumentationPartTypeRequestHeader is a DocumentationPartType enum value
25104	DocumentationPartTypeRequestHeader = "REQUEST_HEADER"
25105
25106	// DocumentationPartTypeRequestBody is a DocumentationPartType enum value
25107	DocumentationPartTypeRequestBody = "REQUEST_BODY"
25108
25109	// DocumentationPartTypeResponse is a DocumentationPartType enum value
25110	DocumentationPartTypeResponse = "RESPONSE"
25111
25112	// DocumentationPartTypeResponseHeader is a DocumentationPartType enum value
25113	DocumentationPartTypeResponseHeader = "RESPONSE_HEADER"
25114
25115	// DocumentationPartTypeResponseBody is a DocumentationPartType enum value
25116	DocumentationPartTypeResponseBody = "RESPONSE_BODY"
25117)
25118
25119const (
25120	// DomainNameStatusAvailable is a DomainNameStatus enum value
25121	DomainNameStatusAvailable = "AVAILABLE"
25122
25123	// DomainNameStatusUpdating is a DomainNameStatus enum value
25124	DomainNameStatusUpdating = "UPDATING"
25125
25126	// DomainNameStatusPending is a DomainNameStatus enum value
25127	DomainNameStatusPending = "PENDING"
25128)
25129
25130// The endpoint type. The valid values are EDGE for edge-optimized API setup,
25131// most suitable for mobile applications; REGIONAL for regional API endpoint
25132// setup, most suitable for calling from AWS Region; and PRIVATE for private
25133// APIs.
25134const (
25135	// EndpointTypeRegional is a EndpointType enum value
25136	EndpointTypeRegional = "REGIONAL"
25137
25138	// EndpointTypeEdge is a EndpointType enum value
25139	EndpointTypeEdge = "EDGE"
25140
25141	// EndpointTypePrivate is a EndpointType enum value
25142	EndpointTypePrivate = "PRIVATE"
25143)
25144
25145const (
25146	// GatewayResponseTypeDefault4xx is a GatewayResponseType enum value
25147	GatewayResponseTypeDefault4xx = "DEFAULT_4XX"
25148
25149	// GatewayResponseTypeDefault5xx is a GatewayResponseType enum value
25150	GatewayResponseTypeDefault5xx = "DEFAULT_5XX"
25151
25152	// GatewayResponseTypeResourceNotFound is a GatewayResponseType enum value
25153	GatewayResponseTypeResourceNotFound = "RESOURCE_NOT_FOUND"
25154
25155	// GatewayResponseTypeUnauthorized is a GatewayResponseType enum value
25156	GatewayResponseTypeUnauthorized = "UNAUTHORIZED"
25157
25158	// GatewayResponseTypeInvalidApiKey is a GatewayResponseType enum value
25159	GatewayResponseTypeInvalidApiKey = "INVALID_API_KEY"
25160
25161	// GatewayResponseTypeAccessDenied is a GatewayResponseType enum value
25162	GatewayResponseTypeAccessDenied = "ACCESS_DENIED"
25163
25164	// GatewayResponseTypeAuthorizerFailure is a GatewayResponseType enum value
25165	GatewayResponseTypeAuthorizerFailure = "AUTHORIZER_FAILURE"
25166
25167	// GatewayResponseTypeAuthorizerConfigurationError is a GatewayResponseType enum value
25168	GatewayResponseTypeAuthorizerConfigurationError = "AUTHORIZER_CONFIGURATION_ERROR"
25169
25170	// GatewayResponseTypeInvalidSignature is a GatewayResponseType enum value
25171	GatewayResponseTypeInvalidSignature = "INVALID_SIGNATURE"
25172
25173	// GatewayResponseTypeExpiredToken is a GatewayResponseType enum value
25174	GatewayResponseTypeExpiredToken = "EXPIRED_TOKEN"
25175
25176	// GatewayResponseTypeMissingAuthenticationToken is a GatewayResponseType enum value
25177	GatewayResponseTypeMissingAuthenticationToken = "MISSING_AUTHENTICATION_TOKEN"
25178
25179	// GatewayResponseTypeIntegrationFailure is a GatewayResponseType enum value
25180	GatewayResponseTypeIntegrationFailure = "INTEGRATION_FAILURE"
25181
25182	// GatewayResponseTypeIntegrationTimeout is a GatewayResponseType enum value
25183	GatewayResponseTypeIntegrationTimeout = "INTEGRATION_TIMEOUT"
25184
25185	// GatewayResponseTypeApiConfigurationError is a GatewayResponseType enum value
25186	GatewayResponseTypeApiConfigurationError = "API_CONFIGURATION_ERROR"
25187
25188	// GatewayResponseTypeUnsupportedMediaType is a GatewayResponseType enum value
25189	GatewayResponseTypeUnsupportedMediaType = "UNSUPPORTED_MEDIA_TYPE"
25190
25191	// GatewayResponseTypeBadRequestParameters is a GatewayResponseType enum value
25192	GatewayResponseTypeBadRequestParameters = "BAD_REQUEST_PARAMETERS"
25193
25194	// GatewayResponseTypeBadRequestBody is a GatewayResponseType enum value
25195	GatewayResponseTypeBadRequestBody = "BAD_REQUEST_BODY"
25196
25197	// GatewayResponseTypeRequestTooLarge is a GatewayResponseType enum value
25198	GatewayResponseTypeRequestTooLarge = "REQUEST_TOO_LARGE"
25199
25200	// GatewayResponseTypeThrottled is a GatewayResponseType enum value
25201	GatewayResponseTypeThrottled = "THROTTLED"
25202
25203	// GatewayResponseTypeQuotaExceeded is a GatewayResponseType enum value
25204	GatewayResponseTypeQuotaExceeded = "QUOTA_EXCEEDED"
25205)
25206
25207// The integration type. The valid value is HTTP for integrating an API method
25208// with an HTTP backend; AWS with any AWS service endpoints; MOCK for testing
25209// without actually invoking the backend; HTTP_PROXY for integrating with the
25210// HTTP proxy integration; AWS_PROXY for integrating with the Lambda proxy integration.
25211const (
25212	// IntegrationTypeHttp is a IntegrationType enum value
25213	IntegrationTypeHttp = "HTTP"
25214
25215	// IntegrationTypeAws is a IntegrationType enum value
25216	IntegrationTypeAws = "AWS"
25217
25218	// IntegrationTypeMock is a IntegrationType enum value
25219	IntegrationTypeMock = "MOCK"
25220
25221	// IntegrationTypeHttpProxy is a IntegrationType enum value
25222	IntegrationTypeHttpProxy = "HTTP_PROXY"
25223
25224	// IntegrationTypeAwsProxy is a IntegrationType enum value
25225	IntegrationTypeAwsProxy = "AWS_PROXY"
25226)
25227
25228const (
25229	// LocationStatusTypeDocumented is a LocationStatusType enum value
25230	LocationStatusTypeDocumented = "DOCUMENTED"
25231
25232	// LocationStatusTypeUndocumented is a LocationStatusType enum value
25233	LocationStatusTypeUndocumented = "UNDOCUMENTED"
25234)
25235
25236const (
25237	// OpAdd is a Op enum value
25238	OpAdd = "add"
25239
25240	// OpRemove is a Op enum value
25241	OpRemove = "remove"
25242
25243	// OpReplace is a Op enum value
25244	OpReplace = "replace"
25245
25246	// OpMove is a Op enum value
25247	OpMove = "move"
25248
25249	// OpCopy is a Op enum value
25250	OpCopy = "copy"
25251
25252	// OpTest is a Op enum value
25253	OpTest = "test"
25254)
25255
25256const (
25257	// PutModeMerge is a PutMode enum value
25258	PutModeMerge = "merge"
25259
25260	// PutModeOverwrite is a PutMode enum value
25261	PutModeOverwrite = "overwrite"
25262)
25263
25264const (
25265	// QuotaPeriodTypeDay is a QuotaPeriodType enum value
25266	QuotaPeriodTypeDay = "DAY"
25267
25268	// QuotaPeriodTypeWeek is a QuotaPeriodType enum value
25269	QuotaPeriodTypeWeek = "WEEK"
25270
25271	// QuotaPeriodTypeMonth is a QuotaPeriodType enum value
25272	QuotaPeriodTypeMonth = "MONTH"
25273)
25274
25275const (
25276	// SecurityPolicyTls10 is a SecurityPolicy enum value
25277	SecurityPolicyTls10 = "TLS_1_0"
25278
25279	// SecurityPolicyTls12 is a SecurityPolicy enum value
25280	SecurityPolicyTls12 = "TLS_1_2"
25281)
25282
25283const (
25284	// UnauthorizedCacheControlHeaderStrategyFailWith403 is a UnauthorizedCacheControlHeaderStrategy enum value
25285	UnauthorizedCacheControlHeaderStrategyFailWith403 = "FAIL_WITH_403"
25286
25287	// UnauthorizedCacheControlHeaderStrategySucceedWithResponseHeader is a UnauthorizedCacheControlHeaderStrategy enum value
25288	UnauthorizedCacheControlHeaderStrategySucceedWithResponseHeader = "SUCCEED_WITH_RESPONSE_HEADER"
25289
25290	// UnauthorizedCacheControlHeaderStrategySucceedWithoutResponseHeader is a UnauthorizedCacheControlHeaderStrategy enum value
25291	UnauthorizedCacheControlHeaderStrategySucceedWithoutResponseHeader = "SUCCEED_WITHOUT_RESPONSE_HEADER"
25292)
25293
25294const (
25295	// VpcLinkStatusAvailable is a VpcLinkStatus enum value
25296	VpcLinkStatusAvailable = "AVAILABLE"
25297
25298	// VpcLinkStatusPending is a VpcLinkStatus enum value
25299	VpcLinkStatusPending = "PENDING"
25300
25301	// VpcLinkStatusDeleting is a VpcLinkStatus enum value
25302	VpcLinkStatusDeleting = "DELETING"
25303
25304	// VpcLinkStatusFailed is a VpcLinkStatus enum value
25305	VpcLinkStatusFailed = "FAILED"
25306)
25307