1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package apigateway
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opCreateApiKey = "CreateApiKey"
17
18// CreateApiKeyRequest generates a "aws/request.Request" representing the
19// client's request for the CreateApiKey operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateApiKey for more information on using the CreateApiKey
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CreateApiKeyRequest method.
34//    req, resp := client.CreateApiKeyRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40func (c *APIGateway) CreateApiKeyRequest(input *CreateApiKeyInput) (req *request.Request, output *ApiKey) {
41	op := &request.Operation{
42		Name:       opCreateApiKey,
43		HTTPMethod: "POST",
44		HTTPPath:   "/apikeys",
45	}
46
47	if input == nil {
48		input = &CreateApiKeyInput{}
49	}
50
51	output = &ApiKey{}
52	req = c.newRequest(op, input, output)
53	return
54}
55
56// CreateApiKey API operation for Amazon API Gateway.
57//
58// Create an ApiKey resource.
59//
60// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-api-key.html)
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for Amazon API Gateway's
67// API operation CreateApiKey for usage and error information.
68//
69// Returned Error Types:
70//   * BadRequestException
71//   The submitted request is not valid, for example, the input is incomplete
72//   or incorrect. See the accompanying error message for details.
73//
74//   * ConflictException
75//   The request configuration has conflicts. For details, see the accompanying
76//   error message.
77//
78//   * LimitExceededException
79//   The request exceeded the rate limit. Retry after the specified time period.
80//
81//   * NotFoundException
82//   The requested resource is not found. Make sure that the request URI is correct.
83//
84//   * UnauthorizedException
85//   The request is denied because the caller has insufficient permissions.
86//
87//   * TooManyRequestsException
88//   The request has reached its throttling limit. Retry after the specified time
89//   period.
90//
91func (c *APIGateway) CreateApiKey(input *CreateApiKeyInput) (*ApiKey, error) {
92	req, out := c.CreateApiKeyRequest(input)
93	return out, req.Send()
94}
95
96// CreateApiKeyWithContext is the same as CreateApiKey with the addition of
97// the ability to pass a context and additional request options.
98//
99// See CreateApiKey for details on how to use this API operation.
100//
101// The context must be non-nil and will be used for request cancellation. If
102// the context is nil a panic will occur. In the future the SDK may create
103// sub-contexts for http.Requests. See https://golang.org/pkg/context/
104// for more information on using Contexts.
105func (c *APIGateway) CreateApiKeyWithContext(ctx aws.Context, input *CreateApiKeyInput, opts ...request.Option) (*ApiKey, error) {
106	req, out := c.CreateApiKeyRequest(input)
107	req.SetContext(ctx)
108	req.ApplyOptions(opts...)
109	return out, req.Send()
110}
111
112const opCreateAuthorizer = "CreateAuthorizer"
113
114// CreateAuthorizerRequest generates a "aws/request.Request" representing the
115// client's request for the CreateAuthorizer operation. The "output" return
116// value will be populated with the request's response once the request completes
117// successfully.
118//
119// Use "Send" method on the returned Request to send the API call to the service.
120// the "output" return value is not valid until after Send returns without error.
121//
122// See CreateAuthorizer for more information on using the CreateAuthorizer
123// API call, and error handling.
124//
125// This method is useful when you want to inject custom logic or configuration
126// into the SDK's request lifecycle. Such as custom headers, or retry logic.
127//
128//
129//    // Example sending a request using the CreateAuthorizerRequest method.
130//    req, resp := client.CreateAuthorizerRequest(params)
131//
132//    err := req.Send()
133//    if err == nil { // resp is now filled
134//        fmt.Println(resp)
135//    }
136func (c *APIGateway) CreateAuthorizerRequest(input *CreateAuthorizerInput) (req *request.Request, output *Authorizer) {
137	op := &request.Operation{
138		Name:       opCreateAuthorizer,
139		HTTPMethod: "POST",
140		HTTPPath:   "/restapis/{restapi_id}/authorizers",
141	}
142
143	if input == nil {
144		input = &CreateAuthorizerInput{}
145	}
146
147	output = &Authorizer{}
148	req = c.newRequest(op, input, output)
149	return
150}
151
152// CreateAuthorizer API operation for Amazon API Gateway.
153//
154// Adds a new Authorizer resource to an existing RestApi resource.
155//
156// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html)
157//
158// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
159// with awserr.Error's Code and Message methods to get detailed information about
160// the error.
161//
162// See the AWS API reference guide for Amazon API Gateway's
163// API operation CreateAuthorizer for usage and error information.
164//
165// Returned Error Types:
166//   * BadRequestException
167//   The submitted request is not valid, for example, the input is incomplete
168//   or incorrect. See the accompanying error message for details.
169//
170//   * ConflictException
171//   The request configuration has conflicts. For details, see the accompanying
172//   error message.
173//
174//   * LimitExceededException
175//   The request exceeded the rate limit. Retry after the specified time period.
176//
177//   * NotFoundException
178//   The requested resource is not found. Make sure that the request URI is correct.
179//
180//   * UnauthorizedException
181//   The request is denied because the caller has insufficient permissions.
182//
183//   * TooManyRequestsException
184//   The request has reached its throttling limit. Retry after the specified time
185//   period.
186//
187func (c *APIGateway) CreateAuthorizer(input *CreateAuthorizerInput) (*Authorizer, error) {
188	req, out := c.CreateAuthorizerRequest(input)
189	return out, req.Send()
190}
191
192// CreateAuthorizerWithContext is the same as CreateAuthorizer with the addition of
193// the ability to pass a context and additional request options.
194//
195// See CreateAuthorizer for details on how to use this API operation.
196//
197// The context must be non-nil and will be used for request cancellation. If
198// the context is nil a panic will occur. In the future the SDK may create
199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
200// for more information on using Contexts.
201func (c *APIGateway) CreateAuthorizerWithContext(ctx aws.Context, input *CreateAuthorizerInput, opts ...request.Option) (*Authorizer, error) {
202	req, out := c.CreateAuthorizerRequest(input)
203	req.SetContext(ctx)
204	req.ApplyOptions(opts...)
205	return out, req.Send()
206}
207
208const opCreateBasePathMapping = "CreateBasePathMapping"
209
210// CreateBasePathMappingRequest generates a "aws/request.Request" representing the
211// client's request for the CreateBasePathMapping operation. The "output" return
212// value will be populated with the request's response once the request completes
213// successfully.
214//
215// Use "Send" method on the returned Request to send the API call to the service.
216// the "output" return value is not valid until after Send returns without error.
217//
218// See CreateBasePathMapping for more information on using the CreateBasePathMapping
219// API call, and error handling.
220//
221// This method is useful when you want to inject custom logic or configuration
222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
223//
224//
225//    // Example sending a request using the CreateBasePathMappingRequest method.
226//    req, resp := client.CreateBasePathMappingRequest(params)
227//
228//    err := req.Send()
229//    if err == nil { // resp is now filled
230//        fmt.Println(resp)
231//    }
232func (c *APIGateway) CreateBasePathMappingRequest(input *CreateBasePathMappingInput) (req *request.Request, output *BasePathMapping) {
233	op := &request.Operation{
234		Name:       opCreateBasePathMapping,
235		HTTPMethod: "POST",
236		HTTPPath:   "/domainnames/{domain_name}/basepathmappings",
237	}
238
239	if input == nil {
240		input = &CreateBasePathMappingInput{}
241	}
242
243	output = &BasePathMapping{}
244	req = c.newRequest(op, input, output)
245	return
246}
247
248// CreateBasePathMapping API operation for Amazon API Gateway.
249//
250// Creates a new BasePathMapping resource.
251//
252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
253// with awserr.Error's Code and Message methods to get detailed information about
254// the error.
255//
256// See the AWS API reference guide for Amazon API Gateway's
257// API operation CreateBasePathMapping for usage and error information.
258//
259// Returned Error Types:
260//   * BadRequestException
261//   The submitted request is not valid, for example, the input is incomplete
262//   or incorrect. See the accompanying error message for details.
263//
264//   * ConflictException
265//   The request configuration has conflicts. For details, see the accompanying
266//   error message.
267//
268//   * LimitExceededException
269//   The request exceeded the rate limit. Retry after the specified time period.
270//
271//   * NotFoundException
272//   The requested resource is not found. Make sure that the request URI is correct.
273//
274//   * UnauthorizedException
275//   The request is denied because the caller has insufficient permissions.
276//
277//   * TooManyRequestsException
278//   The request has reached its throttling limit. Retry after the specified time
279//   period.
280//
281func (c *APIGateway) CreateBasePathMapping(input *CreateBasePathMappingInput) (*BasePathMapping, error) {
282	req, out := c.CreateBasePathMappingRequest(input)
283	return out, req.Send()
284}
285
286// CreateBasePathMappingWithContext is the same as CreateBasePathMapping with the addition of
287// the ability to pass a context and additional request options.
288//
289// See CreateBasePathMapping for details on how to use this API operation.
290//
291// The context must be non-nil and will be used for request cancellation. If
292// the context is nil a panic will occur. In the future the SDK may create
293// sub-contexts for http.Requests. See https://golang.org/pkg/context/
294// for more information on using Contexts.
295func (c *APIGateway) CreateBasePathMappingWithContext(ctx aws.Context, input *CreateBasePathMappingInput, opts ...request.Option) (*BasePathMapping, error) {
296	req, out := c.CreateBasePathMappingRequest(input)
297	req.SetContext(ctx)
298	req.ApplyOptions(opts...)
299	return out, req.Send()
300}
301
302const opCreateDeployment = "CreateDeployment"
303
304// CreateDeploymentRequest generates a "aws/request.Request" representing the
305// client's request for the CreateDeployment operation. The "output" return
306// value will be populated with the request's response once the request completes
307// successfully.
308//
309// Use "Send" method on the returned Request to send the API call to the service.
310// the "output" return value is not valid until after Send returns without error.
311//
312// See CreateDeployment for more information on using the CreateDeployment
313// API call, and error handling.
314//
315// This method is useful when you want to inject custom logic or configuration
316// into the SDK's request lifecycle. Such as custom headers, or retry logic.
317//
318//
319//    // Example sending a request using the CreateDeploymentRequest method.
320//    req, resp := client.CreateDeploymentRequest(params)
321//
322//    err := req.Send()
323//    if err == nil { // resp is now filled
324//        fmt.Println(resp)
325//    }
326func (c *APIGateway) CreateDeploymentRequest(input *CreateDeploymentInput) (req *request.Request, output *Deployment) {
327	op := &request.Operation{
328		Name:       opCreateDeployment,
329		HTTPMethod: "POST",
330		HTTPPath:   "/restapis/{restapi_id}/deployments",
331	}
332
333	if input == nil {
334		input = &CreateDeploymentInput{}
335	}
336
337	output = &Deployment{}
338	req = c.newRequest(op, input, output)
339	return
340}
341
342// CreateDeployment API operation for Amazon API Gateway.
343//
344// Creates a Deployment resource, which makes a specified RestApi callable over
345// the internet.
346//
347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
348// with awserr.Error's Code and Message methods to get detailed information about
349// the error.
350//
351// See the AWS API reference guide for Amazon API Gateway's
352// API operation CreateDeployment for usage and error information.
353//
354// Returned Error Types:
355//   * BadRequestException
356//   The submitted request is not valid, for example, the input is incomplete
357//   or incorrect. See the accompanying error message for details.
358//
359//   * ConflictException
360//   The request configuration has conflicts. For details, see the accompanying
361//   error message.
362//
363//   * LimitExceededException
364//   The request exceeded the rate limit. Retry after the specified time period.
365//
366//   * NotFoundException
367//   The requested resource is not found. Make sure that the request URI is correct.
368//
369//   * UnauthorizedException
370//   The request is denied because the caller has insufficient permissions.
371//
372//   * TooManyRequestsException
373//   The request has reached its throttling limit. Retry after the specified time
374//   period.
375//
376//   * ServiceUnavailableException
377//   The requested service is not available. For details see the accompanying
378//   error message. Retry after the specified time period.
379//
380func (c *APIGateway) CreateDeployment(input *CreateDeploymentInput) (*Deployment, error) {
381	req, out := c.CreateDeploymentRequest(input)
382	return out, req.Send()
383}
384
385// CreateDeploymentWithContext is the same as CreateDeployment with the addition of
386// the ability to pass a context and additional request options.
387//
388// See CreateDeployment for details on how to use this API operation.
389//
390// The context must be non-nil and will be used for request cancellation. If
391// the context is nil a panic will occur. In the future the SDK may create
392// sub-contexts for http.Requests. See https://golang.org/pkg/context/
393// for more information on using Contexts.
394func (c *APIGateway) CreateDeploymentWithContext(ctx aws.Context, input *CreateDeploymentInput, opts ...request.Option) (*Deployment, error) {
395	req, out := c.CreateDeploymentRequest(input)
396	req.SetContext(ctx)
397	req.ApplyOptions(opts...)
398	return out, req.Send()
399}
400
401const opCreateDocumentationPart = "CreateDocumentationPart"
402
403// CreateDocumentationPartRequest generates a "aws/request.Request" representing the
404// client's request for the CreateDocumentationPart operation. The "output" return
405// value will be populated with the request's response once the request completes
406// successfully.
407//
408// Use "Send" method on the returned Request to send the API call to the service.
409// the "output" return value is not valid until after Send returns without error.
410//
411// See CreateDocumentationPart for more information on using the CreateDocumentationPart
412// API call, and error handling.
413//
414// This method is useful when you want to inject custom logic or configuration
415// into the SDK's request lifecycle. Such as custom headers, or retry logic.
416//
417//
418//    // Example sending a request using the CreateDocumentationPartRequest method.
419//    req, resp := client.CreateDocumentationPartRequest(params)
420//
421//    err := req.Send()
422//    if err == nil { // resp is now filled
423//        fmt.Println(resp)
424//    }
425func (c *APIGateway) CreateDocumentationPartRequest(input *CreateDocumentationPartInput) (req *request.Request, output *DocumentationPart) {
426	op := &request.Operation{
427		Name:       opCreateDocumentationPart,
428		HTTPMethod: "POST",
429		HTTPPath:   "/restapis/{restapi_id}/documentation/parts",
430	}
431
432	if input == nil {
433		input = &CreateDocumentationPartInput{}
434	}
435
436	output = &DocumentationPart{}
437	req = c.newRequest(op, input, output)
438	return
439}
440
441// CreateDocumentationPart API operation for Amazon API Gateway.
442//
443// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
444// with awserr.Error's Code and Message methods to get detailed information about
445// the error.
446//
447// See the AWS API reference guide for Amazon API Gateway's
448// API operation CreateDocumentationPart for usage and error information.
449//
450// Returned Error Types:
451//   * BadRequestException
452//   The submitted request is not valid, for example, the input is incomplete
453//   or incorrect. See the accompanying error message for details.
454//
455//   * ConflictException
456//   The request configuration has conflicts. For details, see the accompanying
457//   error message.
458//
459//   * LimitExceededException
460//   The request exceeded the rate limit. Retry after the specified time period.
461//
462//   * NotFoundException
463//   The requested resource is not found. Make sure that the request URI is correct.
464//
465//   * UnauthorizedException
466//   The request is denied because the caller has insufficient permissions.
467//
468//   * TooManyRequestsException
469//   The request has reached its throttling limit. Retry after the specified time
470//   period.
471//
472func (c *APIGateway) CreateDocumentationPart(input *CreateDocumentationPartInput) (*DocumentationPart, error) {
473	req, out := c.CreateDocumentationPartRequest(input)
474	return out, req.Send()
475}
476
477// CreateDocumentationPartWithContext is the same as CreateDocumentationPart with the addition of
478// the ability to pass a context and additional request options.
479//
480// See CreateDocumentationPart for details on how to use this API operation.
481//
482// The context must be non-nil and will be used for request cancellation. If
483// the context is nil a panic will occur. In the future the SDK may create
484// sub-contexts for http.Requests. See https://golang.org/pkg/context/
485// for more information on using Contexts.
486func (c *APIGateway) CreateDocumentationPartWithContext(ctx aws.Context, input *CreateDocumentationPartInput, opts ...request.Option) (*DocumentationPart, error) {
487	req, out := c.CreateDocumentationPartRequest(input)
488	req.SetContext(ctx)
489	req.ApplyOptions(opts...)
490	return out, req.Send()
491}
492
493const opCreateDocumentationVersion = "CreateDocumentationVersion"
494
495// CreateDocumentationVersionRequest generates a "aws/request.Request" representing the
496// client's request for the CreateDocumentationVersion operation. The "output" return
497// value will be populated with the request's response once the request completes
498// successfully.
499//
500// Use "Send" method on the returned Request to send the API call to the service.
501// the "output" return value is not valid until after Send returns without error.
502//
503// See CreateDocumentationVersion for more information on using the CreateDocumentationVersion
504// API call, and error handling.
505//
506// This method is useful when you want to inject custom logic or configuration
507// into the SDK's request lifecycle. Such as custom headers, or retry logic.
508//
509//
510//    // Example sending a request using the CreateDocumentationVersionRequest method.
511//    req, resp := client.CreateDocumentationVersionRequest(params)
512//
513//    err := req.Send()
514//    if err == nil { // resp is now filled
515//        fmt.Println(resp)
516//    }
517func (c *APIGateway) CreateDocumentationVersionRequest(input *CreateDocumentationVersionInput) (req *request.Request, output *DocumentationVersion) {
518	op := &request.Operation{
519		Name:       opCreateDocumentationVersion,
520		HTTPMethod: "POST",
521		HTTPPath:   "/restapis/{restapi_id}/documentation/versions",
522	}
523
524	if input == nil {
525		input = &CreateDocumentationVersionInput{}
526	}
527
528	output = &DocumentationVersion{}
529	req = c.newRequest(op, input, output)
530	return
531}
532
533// CreateDocumentationVersion API operation for Amazon API Gateway.
534//
535// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
536// with awserr.Error's Code and Message methods to get detailed information about
537// the error.
538//
539// See the AWS API reference guide for Amazon API Gateway's
540// API operation CreateDocumentationVersion for usage and error information.
541//
542// Returned Error Types:
543//   * BadRequestException
544//   The submitted request is not valid, for example, the input is incomplete
545//   or incorrect. See the accompanying error message for details.
546//
547//   * ConflictException
548//   The request configuration has conflicts. For details, see the accompanying
549//   error message.
550//
551//   * LimitExceededException
552//   The request exceeded the rate limit. Retry after the specified time period.
553//
554//   * NotFoundException
555//   The requested resource is not found. Make sure that the request URI is correct.
556//
557//   * UnauthorizedException
558//   The request is denied because the caller has insufficient permissions.
559//
560//   * TooManyRequestsException
561//   The request has reached its throttling limit. Retry after the specified time
562//   period.
563//
564func (c *APIGateway) CreateDocumentationVersion(input *CreateDocumentationVersionInput) (*DocumentationVersion, error) {
565	req, out := c.CreateDocumentationVersionRequest(input)
566	return out, req.Send()
567}
568
569// CreateDocumentationVersionWithContext is the same as CreateDocumentationVersion with the addition of
570// the ability to pass a context and additional request options.
571//
572// See CreateDocumentationVersion for details on how to use this API operation.
573//
574// The context must be non-nil and will be used for request cancellation. If
575// the context is nil a panic will occur. In the future the SDK may create
576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
577// for more information on using Contexts.
578func (c *APIGateway) CreateDocumentationVersionWithContext(ctx aws.Context, input *CreateDocumentationVersionInput, opts ...request.Option) (*DocumentationVersion, error) {
579	req, out := c.CreateDocumentationVersionRequest(input)
580	req.SetContext(ctx)
581	req.ApplyOptions(opts...)
582	return out, req.Send()
583}
584
585const opCreateDomainName = "CreateDomainName"
586
587// CreateDomainNameRequest generates a "aws/request.Request" representing the
588// client's request for the CreateDomainName operation. The "output" return
589// value will be populated with the request's response once the request completes
590// successfully.
591//
592// Use "Send" method on the returned Request to send the API call to the service.
593// the "output" return value is not valid until after Send returns without error.
594//
595// See CreateDomainName for more information on using the CreateDomainName
596// API call, and error handling.
597//
598// This method is useful when you want to inject custom logic or configuration
599// into the SDK's request lifecycle. Such as custom headers, or retry logic.
600//
601//
602//    // Example sending a request using the CreateDomainNameRequest method.
603//    req, resp := client.CreateDomainNameRequest(params)
604//
605//    err := req.Send()
606//    if err == nil { // resp is now filled
607//        fmt.Println(resp)
608//    }
609func (c *APIGateway) CreateDomainNameRequest(input *CreateDomainNameInput) (req *request.Request, output *DomainName) {
610	op := &request.Operation{
611		Name:       opCreateDomainName,
612		HTTPMethod: "POST",
613		HTTPPath:   "/domainnames",
614	}
615
616	if input == nil {
617		input = &CreateDomainNameInput{}
618	}
619
620	output = &DomainName{}
621	req = c.newRequest(op, input, output)
622	return
623}
624
625// CreateDomainName API operation for Amazon API Gateway.
626//
627// Creates a new domain name.
628//
629// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
630// with awserr.Error's Code and Message methods to get detailed information about
631// the error.
632//
633// See the AWS API reference guide for Amazon API Gateway's
634// API operation CreateDomainName for usage and error information.
635//
636// Returned Error Types:
637//   * BadRequestException
638//   The submitted request is not valid, for example, the input is incomplete
639//   or incorrect. See the accompanying error message for details.
640//
641//   * ConflictException
642//   The request configuration has conflicts. For details, see the accompanying
643//   error message.
644//
645//   * LimitExceededException
646//   The request exceeded the rate limit. Retry after the specified time period.
647//
648//   * UnauthorizedException
649//   The request is denied because the caller has insufficient permissions.
650//
651//   * TooManyRequestsException
652//   The request has reached its throttling limit. Retry after the specified time
653//   period.
654//
655func (c *APIGateway) CreateDomainName(input *CreateDomainNameInput) (*DomainName, error) {
656	req, out := c.CreateDomainNameRequest(input)
657	return out, req.Send()
658}
659
660// CreateDomainNameWithContext is the same as CreateDomainName with the addition of
661// the ability to pass a context and additional request options.
662//
663// See CreateDomainName for details on how to use this API operation.
664//
665// The context must be non-nil and will be used for request cancellation. If
666// the context is nil a panic will occur. In the future the SDK may create
667// sub-contexts for http.Requests. See https://golang.org/pkg/context/
668// for more information on using Contexts.
669func (c *APIGateway) CreateDomainNameWithContext(ctx aws.Context, input *CreateDomainNameInput, opts ...request.Option) (*DomainName, error) {
670	req, out := c.CreateDomainNameRequest(input)
671	req.SetContext(ctx)
672	req.ApplyOptions(opts...)
673	return out, req.Send()
674}
675
676const opCreateModel = "CreateModel"
677
678// CreateModelRequest generates a "aws/request.Request" representing the
679// client's request for the CreateModel operation. The "output" return
680// value will be populated with the request's response once the request completes
681// successfully.
682//
683// Use "Send" method on the returned Request to send the API call to the service.
684// the "output" return value is not valid until after Send returns without error.
685//
686// See CreateModel for more information on using the CreateModel
687// API call, and error handling.
688//
689// This method is useful when you want to inject custom logic or configuration
690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
691//
692//
693//    // Example sending a request using the CreateModelRequest method.
694//    req, resp := client.CreateModelRequest(params)
695//
696//    err := req.Send()
697//    if err == nil { // resp is now filled
698//        fmt.Println(resp)
699//    }
700func (c *APIGateway) CreateModelRequest(input *CreateModelInput) (req *request.Request, output *Model) {
701	op := &request.Operation{
702		Name:       opCreateModel,
703		HTTPMethod: "POST",
704		HTTPPath:   "/restapis/{restapi_id}/models",
705	}
706
707	if input == nil {
708		input = &CreateModelInput{}
709	}
710
711	output = &Model{}
712	req = c.newRequest(op, input, output)
713	return
714}
715
716// CreateModel API operation for Amazon API Gateway.
717//
718// Adds a new Model resource to an existing RestApi resource.
719//
720// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
721// with awserr.Error's Code and Message methods to get detailed information about
722// the error.
723//
724// See the AWS API reference guide for Amazon API Gateway's
725// API operation CreateModel for usage and error information.
726//
727// Returned Error Types:
728//   * BadRequestException
729//   The submitted request is not valid, for example, the input is incomplete
730//   or incorrect. See the accompanying error message for details.
731//
732//   * ConflictException
733//   The request configuration has conflicts. For details, see the accompanying
734//   error message.
735//
736//   * LimitExceededException
737//   The request exceeded the rate limit. Retry after the specified time period.
738//
739//   * NotFoundException
740//   The requested resource is not found. Make sure that the request URI is correct.
741//
742//   * UnauthorizedException
743//   The request is denied because the caller has insufficient permissions.
744//
745//   * TooManyRequestsException
746//   The request has reached its throttling limit. Retry after the specified time
747//   period.
748//
749func (c *APIGateway) CreateModel(input *CreateModelInput) (*Model, error) {
750	req, out := c.CreateModelRequest(input)
751	return out, req.Send()
752}
753
754// CreateModelWithContext is the same as CreateModel with the addition of
755// the ability to pass a context and additional request options.
756//
757// See CreateModel for details on how to use this API operation.
758//
759// The context must be non-nil and will be used for request cancellation. If
760// the context is nil a panic will occur. In the future the SDK may create
761// sub-contexts for http.Requests. See https://golang.org/pkg/context/
762// for more information on using Contexts.
763func (c *APIGateway) CreateModelWithContext(ctx aws.Context, input *CreateModelInput, opts ...request.Option) (*Model, error) {
764	req, out := c.CreateModelRequest(input)
765	req.SetContext(ctx)
766	req.ApplyOptions(opts...)
767	return out, req.Send()
768}
769
770const opCreateRequestValidator = "CreateRequestValidator"
771
772// CreateRequestValidatorRequest generates a "aws/request.Request" representing the
773// client's request for the CreateRequestValidator operation. The "output" return
774// value will be populated with the request's response once the request completes
775// successfully.
776//
777// Use "Send" method on the returned Request to send the API call to the service.
778// the "output" return value is not valid until after Send returns without error.
779//
780// See CreateRequestValidator for more information on using the CreateRequestValidator
781// API call, and error handling.
782//
783// This method is useful when you want to inject custom logic or configuration
784// into the SDK's request lifecycle. Such as custom headers, or retry logic.
785//
786//
787//    // Example sending a request using the CreateRequestValidatorRequest method.
788//    req, resp := client.CreateRequestValidatorRequest(params)
789//
790//    err := req.Send()
791//    if err == nil { // resp is now filled
792//        fmt.Println(resp)
793//    }
794func (c *APIGateway) CreateRequestValidatorRequest(input *CreateRequestValidatorInput) (req *request.Request, output *UpdateRequestValidatorOutput) {
795	op := &request.Operation{
796		Name:       opCreateRequestValidator,
797		HTTPMethod: "POST",
798		HTTPPath:   "/restapis/{restapi_id}/requestvalidators",
799	}
800
801	if input == nil {
802		input = &CreateRequestValidatorInput{}
803	}
804
805	output = &UpdateRequestValidatorOutput{}
806	req = c.newRequest(op, input, output)
807	return
808}
809
810// CreateRequestValidator API operation for Amazon API Gateway.
811//
812// Creates a ReqeustValidator of a given RestApi.
813//
814// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
815// with awserr.Error's Code and Message methods to get detailed information about
816// the error.
817//
818// See the AWS API reference guide for Amazon API Gateway's
819// API operation CreateRequestValidator for usage and error information.
820//
821// Returned Error Types:
822//   * BadRequestException
823//   The submitted request is not valid, for example, the input is incomplete
824//   or incorrect. See the accompanying error message for details.
825//
826//   * ConflictException
827//   The request configuration has conflicts. For details, see the accompanying
828//   error message.
829//
830//   * LimitExceededException
831//   The request exceeded the rate limit. Retry after the specified time period.
832//
833//   * NotFoundException
834//   The requested resource is not found. Make sure that the request URI is correct.
835//
836//   * UnauthorizedException
837//   The request is denied because the caller has insufficient permissions.
838//
839//   * TooManyRequestsException
840//   The request has reached its throttling limit. Retry after the specified time
841//   period.
842//
843func (c *APIGateway) CreateRequestValidator(input *CreateRequestValidatorInput) (*UpdateRequestValidatorOutput, error) {
844	req, out := c.CreateRequestValidatorRequest(input)
845	return out, req.Send()
846}
847
848// CreateRequestValidatorWithContext is the same as CreateRequestValidator with the addition of
849// the ability to pass a context and additional request options.
850//
851// See CreateRequestValidator for details on how to use this API operation.
852//
853// The context must be non-nil and will be used for request cancellation. If
854// the context is nil a panic will occur. In the future the SDK may create
855// sub-contexts for http.Requests. See https://golang.org/pkg/context/
856// for more information on using Contexts.
857func (c *APIGateway) CreateRequestValidatorWithContext(ctx aws.Context, input *CreateRequestValidatorInput, opts ...request.Option) (*UpdateRequestValidatorOutput, error) {
858	req, out := c.CreateRequestValidatorRequest(input)
859	req.SetContext(ctx)
860	req.ApplyOptions(opts...)
861	return out, req.Send()
862}
863
864const opCreateResource = "CreateResource"
865
866// CreateResourceRequest generates a "aws/request.Request" representing the
867// client's request for the CreateResource operation. The "output" return
868// value will be populated with the request's response once the request completes
869// successfully.
870//
871// Use "Send" method on the returned Request to send the API call to the service.
872// the "output" return value is not valid until after Send returns without error.
873//
874// See CreateResource for more information on using the CreateResource
875// API call, and error handling.
876//
877// This method is useful when you want to inject custom logic or configuration
878// into the SDK's request lifecycle. Such as custom headers, or retry logic.
879//
880//
881//    // Example sending a request using the CreateResourceRequest method.
882//    req, resp := client.CreateResourceRequest(params)
883//
884//    err := req.Send()
885//    if err == nil { // resp is now filled
886//        fmt.Println(resp)
887//    }
888func (c *APIGateway) CreateResourceRequest(input *CreateResourceInput) (req *request.Request, output *Resource) {
889	op := &request.Operation{
890		Name:       opCreateResource,
891		HTTPMethod: "POST",
892		HTTPPath:   "/restapis/{restapi_id}/resources/{parent_id}",
893	}
894
895	if input == nil {
896		input = &CreateResourceInput{}
897	}
898
899	output = &Resource{}
900	req = c.newRequest(op, input, output)
901	return
902}
903
904// CreateResource API operation for Amazon API Gateway.
905//
906// Creates a Resource resource.
907//
908// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
909// with awserr.Error's Code and Message methods to get detailed information about
910// the error.
911//
912// See the AWS API reference guide for Amazon API Gateway's
913// API operation CreateResource for usage and error information.
914//
915// Returned Error Types:
916//   * UnauthorizedException
917//   The request is denied because the caller has insufficient permissions.
918//
919//   * NotFoundException
920//   The requested resource is not found. Make sure that the request URI is correct.
921//
922//   * ConflictException
923//   The request configuration has conflicts. For details, see the accompanying
924//   error message.
925//
926//   * LimitExceededException
927//   The request exceeded the rate limit. Retry after the specified time period.
928//
929//   * BadRequestException
930//   The submitted request is not valid, for example, the input is incomplete
931//   or incorrect. See the accompanying error message for details.
932//
933//   * TooManyRequestsException
934//   The request has reached its throttling limit. Retry after the specified time
935//   period.
936//
937func (c *APIGateway) CreateResource(input *CreateResourceInput) (*Resource, error) {
938	req, out := c.CreateResourceRequest(input)
939	return out, req.Send()
940}
941
942// CreateResourceWithContext is the same as CreateResource with the addition of
943// the ability to pass a context and additional request options.
944//
945// See CreateResource for details on how to use this API operation.
946//
947// The context must be non-nil and will be used for request cancellation. If
948// the context is nil a panic will occur. In the future the SDK may create
949// sub-contexts for http.Requests. See https://golang.org/pkg/context/
950// for more information on using Contexts.
951func (c *APIGateway) CreateResourceWithContext(ctx aws.Context, input *CreateResourceInput, opts ...request.Option) (*Resource, error) {
952	req, out := c.CreateResourceRequest(input)
953	req.SetContext(ctx)
954	req.ApplyOptions(opts...)
955	return out, req.Send()
956}
957
958const opCreateRestApi = "CreateRestApi"
959
960// CreateRestApiRequest generates a "aws/request.Request" representing the
961// client's request for the CreateRestApi operation. The "output" return
962// value will be populated with the request's response once the request completes
963// successfully.
964//
965// Use "Send" method on the returned Request to send the API call to the service.
966// the "output" return value is not valid until after Send returns without error.
967//
968// See CreateRestApi for more information on using the CreateRestApi
969// API call, and error handling.
970//
971// This method is useful when you want to inject custom logic or configuration
972// into the SDK's request lifecycle. Such as custom headers, or retry logic.
973//
974//
975//    // Example sending a request using the CreateRestApiRequest method.
976//    req, resp := client.CreateRestApiRequest(params)
977//
978//    err := req.Send()
979//    if err == nil { // resp is now filled
980//        fmt.Println(resp)
981//    }
982func (c *APIGateway) CreateRestApiRequest(input *CreateRestApiInput) (req *request.Request, output *RestApi) {
983	op := &request.Operation{
984		Name:       opCreateRestApi,
985		HTTPMethod: "POST",
986		HTTPPath:   "/restapis",
987	}
988
989	if input == nil {
990		input = &CreateRestApiInput{}
991	}
992
993	output = &RestApi{}
994	req = c.newRequest(op, input, output)
995	return
996}
997
998// CreateRestApi API operation for Amazon API Gateway.
999//
1000// Creates a new RestApi resource.
1001//
1002// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1003// with awserr.Error's Code and Message methods to get detailed information about
1004// the error.
1005//
1006// See the AWS API reference guide for Amazon API Gateway's
1007// API operation CreateRestApi for usage and error information.
1008//
1009// Returned Error Types:
1010//   * BadRequestException
1011//   The submitted request is not valid, for example, the input is incomplete
1012//   or incorrect. See the accompanying error message for details.
1013//
1014//   * ConflictException
1015//   The request configuration has conflicts. For details, see the accompanying
1016//   error message.
1017//
1018//   * LimitExceededException
1019//   The request exceeded the rate limit. Retry after the specified time period.
1020//
1021//   * UnauthorizedException
1022//   The request is denied because the caller has insufficient permissions.
1023//
1024//   * TooManyRequestsException
1025//   The request has reached its throttling limit. Retry after the specified time
1026//   period.
1027//
1028func (c *APIGateway) CreateRestApi(input *CreateRestApiInput) (*RestApi, error) {
1029	req, out := c.CreateRestApiRequest(input)
1030	return out, req.Send()
1031}
1032
1033// CreateRestApiWithContext is the same as CreateRestApi with the addition of
1034// the ability to pass a context and additional request options.
1035//
1036// See CreateRestApi for details on how to use this API operation.
1037//
1038// The context must be non-nil and will be used for request cancellation. If
1039// the context is nil a panic will occur. In the future the SDK may create
1040// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1041// for more information on using Contexts.
1042func (c *APIGateway) CreateRestApiWithContext(ctx aws.Context, input *CreateRestApiInput, opts ...request.Option) (*RestApi, error) {
1043	req, out := c.CreateRestApiRequest(input)
1044	req.SetContext(ctx)
1045	req.ApplyOptions(opts...)
1046	return out, req.Send()
1047}
1048
1049const opCreateStage = "CreateStage"
1050
1051// CreateStageRequest generates a "aws/request.Request" representing the
1052// client's request for the CreateStage operation. The "output" return
1053// value will be populated with the request's response once the request completes
1054// successfully.
1055//
1056// Use "Send" method on the returned Request to send the API call to the service.
1057// the "output" return value is not valid until after Send returns without error.
1058//
1059// See CreateStage for more information on using the CreateStage
1060// API call, and error handling.
1061//
1062// This method is useful when you want to inject custom logic or configuration
1063// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1064//
1065//
1066//    // Example sending a request using the CreateStageRequest method.
1067//    req, resp := client.CreateStageRequest(params)
1068//
1069//    err := req.Send()
1070//    if err == nil { // resp is now filled
1071//        fmt.Println(resp)
1072//    }
1073func (c *APIGateway) CreateStageRequest(input *CreateStageInput) (req *request.Request, output *Stage) {
1074	op := &request.Operation{
1075		Name:       opCreateStage,
1076		HTTPMethod: "POST",
1077		HTTPPath:   "/restapis/{restapi_id}/stages",
1078	}
1079
1080	if input == nil {
1081		input = &CreateStageInput{}
1082	}
1083
1084	output = &Stage{}
1085	req = c.newRequest(op, input, output)
1086	return
1087}
1088
1089// CreateStage API operation for Amazon API Gateway.
1090//
1091// Creates a new Stage resource that references a pre-existing Deployment for
1092// the API.
1093//
1094// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1095// with awserr.Error's Code and Message methods to get detailed information about
1096// the error.
1097//
1098// See the AWS API reference guide for Amazon API Gateway's
1099// API operation CreateStage for usage and error information.
1100//
1101// Returned Error Types:
1102//   * UnauthorizedException
1103//   The request is denied because the caller has insufficient permissions.
1104//
1105//   * BadRequestException
1106//   The submitted request is not valid, for example, the input is incomplete
1107//   or incorrect. See the accompanying error message for details.
1108//
1109//   * NotFoundException
1110//   The requested resource is not found. Make sure that the request URI is correct.
1111//
1112//   * ConflictException
1113//   The request configuration has conflicts. For details, see the accompanying
1114//   error message.
1115//
1116//   * LimitExceededException
1117//   The request exceeded the rate limit. Retry after the specified time period.
1118//
1119//   * TooManyRequestsException
1120//   The request has reached its throttling limit. Retry after the specified time
1121//   period.
1122//
1123func (c *APIGateway) CreateStage(input *CreateStageInput) (*Stage, error) {
1124	req, out := c.CreateStageRequest(input)
1125	return out, req.Send()
1126}
1127
1128// CreateStageWithContext is the same as CreateStage with the addition of
1129// the ability to pass a context and additional request options.
1130//
1131// See CreateStage for details on how to use this API operation.
1132//
1133// The context must be non-nil and will be used for request cancellation. If
1134// the context is nil a panic will occur. In the future the SDK may create
1135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1136// for more information on using Contexts.
1137func (c *APIGateway) CreateStageWithContext(ctx aws.Context, input *CreateStageInput, opts ...request.Option) (*Stage, error) {
1138	req, out := c.CreateStageRequest(input)
1139	req.SetContext(ctx)
1140	req.ApplyOptions(opts...)
1141	return out, req.Send()
1142}
1143
1144const opCreateUsagePlan = "CreateUsagePlan"
1145
1146// CreateUsagePlanRequest generates a "aws/request.Request" representing the
1147// client's request for the CreateUsagePlan operation. The "output" return
1148// value will be populated with the request's response once the request completes
1149// successfully.
1150//
1151// Use "Send" method on the returned Request to send the API call to the service.
1152// the "output" return value is not valid until after Send returns without error.
1153//
1154// See CreateUsagePlan for more information on using the CreateUsagePlan
1155// API call, and error handling.
1156//
1157// This method is useful when you want to inject custom logic or configuration
1158// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1159//
1160//
1161//    // Example sending a request using the CreateUsagePlanRequest method.
1162//    req, resp := client.CreateUsagePlanRequest(params)
1163//
1164//    err := req.Send()
1165//    if err == nil { // resp is now filled
1166//        fmt.Println(resp)
1167//    }
1168func (c *APIGateway) CreateUsagePlanRequest(input *CreateUsagePlanInput) (req *request.Request, output *UsagePlan) {
1169	op := &request.Operation{
1170		Name:       opCreateUsagePlan,
1171		HTTPMethod: "POST",
1172		HTTPPath:   "/usageplans",
1173	}
1174
1175	if input == nil {
1176		input = &CreateUsagePlanInput{}
1177	}
1178
1179	output = &UsagePlan{}
1180	req = c.newRequest(op, input, output)
1181	return
1182}
1183
1184// CreateUsagePlan API operation for Amazon API Gateway.
1185//
1186// Creates a usage plan with the throttle and quota limits, as well as the associated
1187// API stages, specified in the payload.
1188//
1189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1190// with awserr.Error's Code and Message methods to get detailed information about
1191// the error.
1192//
1193// See the AWS API reference guide for Amazon API Gateway's
1194// API operation CreateUsagePlan for usage and error information.
1195//
1196// Returned Error Types:
1197//   * BadRequestException
1198//   The submitted request is not valid, for example, the input is incomplete
1199//   or incorrect. See the accompanying error message for details.
1200//
1201//   * ConflictException
1202//   The request configuration has conflicts. For details, see the accompanying
1203//   error message.
1204//
1205//   * LimitExceededException
1206//   The request exceeded the rate limit. Retry after the specified time period.
1207//
1208//   * NotFoundException
1209//   The requested resource is not found. Make sure that the request URI is correct.
1210//
1211//   * UnauthorizedException
1212//   The request is denied because the caller has insufficient permissions.
1213//
1214//   * TooManyRequestsException
1215//   The request has reached its throttling limit. Retry after the specified time
1216//   period.
1217//
1218func (c *APIGateway) CreateUsagePlan(input *CreateUsagePlanInput) (*UsagePlan, error) {
1219	req, out := c.CreateUsagePlanRequest(input)
1220	return out, req.Send()
1221}
1222
1223// CreateUsagePlanWithContext is the same as CreateUsagePlan with the addition of
1224// the ability to pass a context and additional request options.
1225//
1226// See CreateUsagePlan for details on how to use this API operation.
1227//
1228// The context must be non-nil and will be used for request cancellation. If
1229// the context is nil a panic will occur. In the future the SDK may create
1230// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1231// for more information on using Contexts.
1232func (c *APIGateway) CreateUsagePlanWithContext(ctx aws.Context, input *CreateUsagePlanInput, opts ...request.Option) (*UsagePlan, error) {
1233	req, out := c.CreateUsagePlanRequest(input)
1234	req.SetContext(ctx)
1235	req.ApplyOptions(opts...)
1236	return out, req.Send()
1237}
1238
1239const opCreateUsagePlanKey = "CreateUsagePlanKey"
1240
1241// CreateUsagePlanKeyRequest generates a "aws/request.Request" representing the
1242// client's request for the CreateUsagePlanKey operation. The "output" return
1243// value will be populated with the request's response once the request completes
1244// successfully.
1245//
1246// Use "Send" method on the returned Request to send the API call to the service.
1247// the "output" return value is not valid until after Send returns without error.
1248//
1249// See CreateUsagePlanKey for more information on using the CreateUsagePlanKey
1250// API call, and error handling.
1251//
1252// This method is useful when you want to inject custom logic or configuration
1253// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1254//
1255//
1256//    // Example sending a request using the CreateUsagePlanKeyRequest method.
1257//    req, resp := client.CreateUsagePlanKeyRequest(params)
1258//
1259//    err := req.Send()
1260//    if err == nil { // resp is now filled
1261//        fmt.Println(resp)
1262//    }
1263func (c *APIGateway) CreateUsagePlanKeyRequest(input *CreateUsagePlanKeyInput) (req *request.Request, output *UsagePlanKey) {
1264	op := &request.Operation{
1265		Name:       opCreateUsagePlanKey,
1266		HTTPMethod: "POST",
1267		HTTPPath:   "/usageplans/{usageplanId}/keys",
1268	}
1269
1270	if input == nil {
1271		input = &CreateUsagePlanKeyInput{}
1272	}
1273
1274	output = &UsagePlanKey{}
1275	req = c.newRequest(op, input, output)
1276	return
1277}
1278
1279// CreateUsagePlanKey API operation for Amazon API Gateway.
1280//
1281// Creates a usage plan key for adding an existing API key to a usage plan.
1282//
1283// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1284// with awserr.Error's Code and Message methods to get detailed information about
1285// the error.
1286//
1287// See the AWS API reference guide for Amazon API Gateway's
1288// API operation CreateUsagePlanKey for usage and error information.
1289//
1290// Returned Error Types:
1291//   * BadRequestException
1292//   The submitted request is not valid, for example, the input is incomplete
1293//   or incorrect. See the accompanying error message for details.
1294//
1295//   * ConflictException
1296//   The request configuration has conflicts. For details, see the accompanying
1297//   error message.
1298//
1299//   * LimitExceededException
1300//   The request exceeded the rate limit. Retry after the specified time period.
1301//
1302//   * NotFoundException
1303//   The requested resource is not found. Make sure that the request URI is correct.
1304//
1305//   * UnauthorizedException
1306//   The request is denied because the caller has insufficient permissions.
1307//
1308//   * TooManyRequestsException
1309//   The request has reached its throttling limit. Retry after the specified time
1310//   period.
1311//
1312func (c *APIGateway) CreateUsagePlanKey(input *CreateUsagePlanKeyInput) (*UsagePlanKey, error) {
1313	req, out := c.CreateUsagePlanKeyRequest(input)
1314	return out, req.Send()
1315}
1316
1317// CreateUsagePlanKeyWithContext is the same as CreateUsagePlanKey with the addition of
1318// the ability to pass a context and additional request options.
1319//
1320// See CreateUsagePlanKey for details on how to use this API operation.
1321//
1322// The context must be non-nil and will be used for request cancellation. If
1323// the context is nil a panic will occur. In the future the SDK may create
1324// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1325// for more information on using Contexts.
1326func (c *APIGateway) CreateUsagePlanKeyWithContext(ctx aws.Context, input *CreateUsagePlanKeyInput, opts ...request.Option) (*UsagePlanKey, error) {
1327	req, out := c.CreateUsagePlanKeyRequest(input)
1328	req.SetContext(ctx)
1329	req.ApplyOptions(opts...)
1330	return out, req.Send()
1331}
1332
1333const opCreateVpcLink = "CreateVpcLink"
1334
1335// CreateVpcLinkRequest generates a "aws/request.Request" representing the
1336// client's request for the CreateVpcLink operation. The "output" return
1337// value will be populated with the request's response once the request completes
1338// successfully.
1339//
1340// Use "Send" method on the returned Request to send the API call to the service.
1341// the "output" return value is not valid until after Send returns without error.
1342//
1343// See CreateVpcLink for more information on using the CreateVpcLink
1344// API call, and error handling.
1345//
1346// This method is useful when you want to inject custom logic or configuration
1347// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1348//
1349//
1350//    // Example sending a request using the CreateVpcLinkRequest method.
1351//    req, resp := client.CreateVpcLinkRequest(params)
1352//
1353//    err := req.Send()
1354//    if err == nil { // resp is now filled
1355//        fmt.Println(resp)
1356//    }
1357func (c *APIGateway) CreateVpcLinkRequest(input *CreateVpcLinkInput) (req *request.Request, output *UpdateVpcLinkOutput) {
1358	op := &request.Operation{
1359		Name:       opCreateVpcLink,
1360		HTTPMethod: "POST",
1361		HTTPPath:   "/vpclinks",
1362	}
1363
1364	if input == nil {
1365		input = &CreateVpcLinkInput{}
1366	}
1367
1368	output = &UpdateVpcLinkOutput{}
1369	req = c.newRequest(op, input, output)
1370	return
1371}
1372
1373// CreateVpcLink API operation for Amazon API Gateway.
1374//
1375// Creates a VPC link, under the caller's account in a selected region, in an
1376// asynchronous operation that typically takes 2-4 minutes to complete and become
1377// operational. The caller must have permissions to create and update VPC Endpoint
1378// services.
1379//
1380// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1381// with awserr.Error's Code and Message methods to get detailed information about
1382// the error.
1383//
1384// See the AWS API reference guide for Amazon API Gateway's
1385// API operation CreateVpcLink for usage and error information.
1386//
1387// Returned Error Types:
1388//   * BadRequestException
1389//   The submitted request is not valid, for example, the input is incomplete
1390//   or incorrect. See the accompanying error message for details.
1391//
1392//   * ConflictException
1393//   The request configuration has conflicts. For details, see the accompanying
1394//   error message.
1395//
1396//   * LimitExceededException
1397//   The request exceeded the rate limit. Retry after the specified time period.
1398//
1399//   * UnauthorizedException
1400//   The request is denied because the caller has insufficient permissions.
1401//
1402//   * TooManyRequestsException
1403//   The request has reached its throttling limit. Retry after the specified time
1404//   period.
1405//
1406func (c *APIGateway) CreateVpcLink(input *CreateVpcLinkInput) (*UpdateVpcLinkOutput, error) {
1407	req, out := c.CreateVpcLinkRequest(input)
1408	return out, req.Send()
1409}
1410
1411// CreateVpcLinkWithContext is the same as CreateVpcLink with the addition of
1412// the ability to pass a context and additional request options.
1413//
1414// See CreateVpcLink for details on how to use this API operation.
1415//
1416// The context must be non-nil and will be used for request cancellation. If
1417// the context is nil a panic will occur. In the future the SDK may create
1418// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1419// for more information on using Contexts.
1420func (c *APIGateway) CreateVpcLinkWithContext(ctx aws.Context, input *CreateVpcLinkInput, opts ...request.Option) (*UpdateVpcLinkOutput, error) {
1421	req, out := c.CreateVpcLinkRequest(input)
1422	req.SetContext(ctx)
1423	req.ApplyOptions(opts...)
1424	return out, req.Send()
1425}
1426
1427const opDeleteApiKey = "DeleteApiKey"
1428
1429// DeleteApiKeyRequest generates a "aws/request.Request" representing the
1430// client's request for the DeleteApiKey operation. The "output" return
1431// value will be populated with the request's response once the request completes
1432// successfully.
1433//
1434// Use "Send" method on the returned Request to send the API call to the service.
1435// the "output" return value is not valid until after Send returns without error.
1436//
1437// See DeleteApiKey for more information on using the DeleteApiKey
1438// API call, and error handling.
1439//
1440// This method is useful when you want to inject custom logic or configuration
1441// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1442//
1443//
1444//    // Example sending a request using the DeleteApiKeyRequest method.
1445//    req, resp := client.DeleteApiKeyRequest(params)
1446//
1447//    err := req.Send()
1448//    if err == nil { // resp is now filled
1449//        fmt.Println(resp)
1450//    }
1451func (c *APIGateway) DeleteApiKeyRequest(input *DeleteApiKeyInput) (req *request.Request, output *DeleteApiKeyOutput) {
1452	op := &request.Operation{
1453		Name:       opDeleteApiKey,
1454		HTTPMethod: "DELETE",
1455		HTTPPath:   "/apikeys/{api_Key}",
1456	}
1457
1458	if input == nil {
1459		input = &DeleteApiKeyInput{}
1460	}
1461
1462	output = &DeleteApiKeyOutput{}
1463	req = c.newRequest(op, input, output)
1464	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1465	return
1466}
1467
1468// DeleteApiKey API operation for Amazon API Gateway.
1469//
1470// Deletes the ApiKey resource.
1471//
1472// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1473// with awserr.Error's Code and Message methods to get detailed information about
1474// the error.
1475//
1476// See the AWS API reference guide for Amazon API Gateway's
1477// API operation DeleteApiKey for usage and error information.
1478//
1479// Returned Error Types:
1480//   * BadRequestException
1481//   The submitted request is not valid, for example, the input is incomplete
1482//   or incorrect. See the accompanying error message for details.
1483//
1484//   * ConflictException
1485//   The request configuration has conflicts. For details, see the accompanying
1486//   error message.
1487//
1488//   * NotFoundException
1489//   The requested resource is not found. Make sure that the request URI is correct.
1490//
1491//   * UnauthorizedException
1492//   The request is denied because the caller has insufficient permissions.
1493//
1494//   * TooManyRequestsException
1495//   The request has reached its throttling limit. Retry after the specified time
1496//   period.
1497//
1498func (c *APIGateway) DeleteApiKey(input *DeleteApiKeyInput) (*DeleteApiKeyOutput, error) {
1499	req, out := c.DeleteApiKeyRequest(input)
1500	return out, req.Send()
1501}
1502
1503// DeleteApiKeyWithContext is the same as DeleteApiKey with the addition of
1504// the ability to pass a context and additional request options.
1505//
1506// See DeleteApiKey for details on how to use this API operation.
1507//
1508// The context must be non-nil and will be used for request cancellation. If
1509// the context is nil a panic will occur. In the future the SDK may create
1510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1511// for more information on using Contexts.
1512func (c *APIGateway) DeleteApiKeyWithContext(ctx aws.Context, input *DeleteApiKeyInput, opts ...request.Option) (*DeleteApiKeyOutput, error) {
1513	req, out := c.DeleteApiKeyRequest(input)
1514	req.SetContext(ctx)
1515	req.ApplyOptions(opts...)
1516	return out, req.Send()
1517}
1518
1519const opDeleteAuthorizer = "DeleteAuthorizer"
1520
1521// DeleteAuthorizerRequest generates a "aws/request.Request" representing the
1522// client's request for the DeleteAuthorizer operation. The "output" return
1523// value will be populated with the request's response once the request completes
1524// successfully.
1525//
1526// Use "Send" method on the returned Request to send the API call to the service.
1527// the "output" return value is not valid until after Send returns without error.
1528//
1529// See DeleteAuthorizer for more information on using the DeleteAuthorizer
1530// API call, and error handling.
1531//
1532// This method is useful when you want to inject custom logic or configuration
1533// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1534//
1535//
1536//    // Example sending a request using the DeleteAuthorizerRequest method.
1537//    req, resp := client.DeleteAuthorizerRequest(params)
1538//
1539//    err := req.Send()
1540//    if err == nil { // resp is now filled
1541//        fmt.Println(resp)
1542//    }
1543func (c *APIGateway) DeleteAuthorizerRequest(input *DeleteAuthorizerInput) (req *request.Request, output *DeleteAuthorizerOutput) {
1544	op := &request.Operation{
1545		Name:       opDeleteAuthorizer,
1546		HTTPMethod: "DELETE",
1547		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
1548	}
1549
1550	if input == nil {
1551		input = &DeleteAuthorizerInput{}
1552	}
1553
1554	output = &DeleteAuthorizerOutput{}
1555	req = c.newRequest(op, input, output)
1556	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1557	return
1558}
1559
1560// DeleteAuthorizer API operation for Amazon API Gateway.
1561//
1562// Deletes an existing Authorizer resource.
1563//
1564// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/delete-authorizer.html)
1565//
1566// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1567// with awserr.Error's Code and Message methods to get detailed information about
1568// the error.
1569//
1570// See the AWS API reference guide for Amazon API Gateway's
1571// API operation DeleteAuthorizer for usage and error information.
1572//
1573// Returned Error Types:
1574//   * BadRequestException
1575//   The submitted request is not valid, for example, the input is incomplete
1576//   or incorrect. See the accompanying error message for details.
1577//
1578//   * ConflictException
1579//   The request configuration has conflicts. For details, see the accompanying
1580//   error message.
1581//
1582//   * NotFoundException
1583//   The requested resource is not found. Make sure that the request URI is correct.
1584//
1585//   * UnauthorizedException
1586//   The request is denied because the caller has insufficient permissions.
1587//
1588//   * TooManyRequestsException
1589//   The request has reached its throttling limit. Retry after the specified time
1590//   period.
1591//
1592func (c *APIGateway) DeleteAuthorizer(input *DeleteAuthorizerInput) (*DeleteAuthorizerOutput, error) {
1593	req, out := c.DeleteAuthorizerRequest(input)
1594	return out, req.Send()
1595}
1596
1597// DeleteAuthorizerWithContext is the same as DeleteAuthorizer with the addition of
1598// the ability to pass a context and additional request options.
1599//
1600// See DeleteAuthorizer for details on how to use this API operation.
1601//
1602// The context must be non-nil and will be used for request cancellation. If
1603// the context is nil a panic will occur. In the future the SDK may create
1604// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1605// for more information on using Contexts.
1606func (c *APIGateway) DeleteAuthorizerWithContext(ctx aws.Context, input *DeleteAuthorizerInput, opts ...request.Option) (*DeleteAuthorizerOutput, error) {
1607	req, out := c.DeleteAuthorizerRequest(input)
1608	req.SetContext(ctx)
1609	req.ApplyOptions(opts...)
1610	return out, req.Send()
1611}
1612
1613const opDeleteBasePathMapping = "DeleteBasePathMapping"
1614
1615// DeleteBasePathMappingRequest generates a "aws/request.Request" representing the
1616// client's request for the DeleteBasePathMapping operation. The "output" return
1617// value will be populated with the request's response once the request completes
1618// successfully.
1619//
1620// Use "Send" method on the returned Request to send the API call to the service.
1621// the "output" return value is not valid until after Send returns without error.
1622//
1623// See DeleteBasePathMapping for more information on using the DeleteBasePathMapping
1624// API call, and error handling.
1625//
1626// This method is useful when you want to inject custom logic or configuration
1627// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1628//
1629//
1630//    // Example sending a request using the DeleteBasePathMappingRequest method.
1631//    req, resp := client.DeleteBasePathMappingRequest(params)
1632//
1633//    err := req.Send()
1634//    if err == nil { // resp is now filled
1635//        fmt.Println(resp)
1636//    }
1637func (c *APIGateway) DeleteBasePathMappingRequest(input *DeleteBasePathMappingInput) (req *request.Request, output *DeleteBasePathMappingOutput) {
1638	op := &request.Operation{
1639		Name:       opDeleteBasePathMapping,
1640		HTTPMethod: "DELETE",
1641		HTTPPath:   "/domainnames/{domain_name}/basepathmappings/{base_path}",
1642	}
1643
1644	if input == nil {
1645		input = &DeleteBasePathMappingInput{}
1646	}
1647
1648	output = &DeleteBasePathMappingOutput{}
1649	req = c.newRequest(op, input, output)
1650	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1651	return
1652}
1653
1654// DeleteBasePathMapping API operation for Amazon API Gateway.
1655//
1656// Deletes the BasePathMapping resource.
1657//
1658// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1659// with awserr.Error's Code and Message methods to get detailed information about
1660// the error.
1661//
1662// See the AWS API reference guide for Amazon API Gateway's
1663// API operation DeleteBasePathMapping for usage and error information.
1664//
1665// Returned Error Types:
1666//   * BadRequestException
1667//   The submitted request is not valid, for example, the input is incomplete
1668//   or incorrect. See the accompanying error message for details.
1669//
1670//   * ConflictException
1671//   The request configuration has conflicts. For details, see the accompanying
1672//   error message.
1673//
1674//   * NotFoundException
1675//   The requested resource is not found. Make sure that the request URI is correct.
1676//
1677//   * UnauthorizedException
1678//   The request is denied because the caller has insufficient permissions.
1679//
1680//   * TooManyRequestsException
1681//   The request has reached its throttling limit. Retry after the specified time
1682//   period.
1683//
1684func (c *APIGateway) DeleteBasePathMapping(input *DeleteBasePathMappingInput) (*DeleteBasePathMappingOutput, error) {
1685	req, out := c.DeleteBasePathMappingRequest(input)
1686	return out, req.Send()
1687}
1688
1689// DeleteBasePathMappingWithContext is the same as DeleteBasePathMapping with the addition of
1690// the ability to pass a context and additional request options.
1691//
1692// See DeleteBasePathMapping for details on how to use this API operation.
1693//
1694// The context must be non-nil and will be used for request cancellation. If
1695// the context is nil a panic will occur. In the future the SDK may create
1696// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1697// for more information on using Contexts.
1698func (c *APIGateway) DeleteBasePathMappingWithContext(ctx aws.Context, input *DeleteBasePathMappingInput, opts ...request.Option) (*DeleteBasePathMappingOutput, error) {
1699	req, out := c.DeleteBasePathMappingRequest(input)
1700	req.SetContext(ctx)
1701	req.ApplyOptions(opts...)
1702	return out, req.Send()
1703}
1704
1705const opDeleteClientCertificate = "DeleteClientCertificate"
1706
1707// DeleteClientCertificateRequest generates a "aws/request.Request" representing the
1708// client's request for the DeleteClientCertificate operation. The "output" return
1709// value will be populated with the request's response once the request completes
1710// successfully.
1711//
1712// Use "Send" method on the returned Request to send the API call to the service.
1713// the "output" return value is not valid until after Send returns without error.
1714//
1715// See DeleteClientCertificate for more information on using the DeleteClientCertificate
1716// API call, and error handling.
1717//
1718// This method is useful when you want to inject custom logic or configuration
1719// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1720//
1721//
1722//    // Example sending a request using the DeleteClientCertificateRequest method.
1723//    req, resp := client.DeleteClientCertificateRequest(params)
1724//
1725//    err := req.Send()
1726//    if err == nil { // resp is now filled
1727//        fmt.Println(resp)
1728//    }
1729func (c *APIGateway) DeleteClientCertificateRequest(input *DeleteClientCertificateInput) (req *request.Request, output *DeleteClientCertificateOutput) {
1730	op := &request.Operation{
1731		Name:       opDeleteClientCertificate,
1732		HTTPMethod: "DELETE",
1733		HTTPPath:   "/clientcertificates/{clientcertificate_id}",
1734	}
1735
1736	if input == nil {
1737		input = &DeleteClientCertificateInput{}
1738	}
1739
1740	output = &DeleteClientCertificateOutput{}
1741	req = c.newRequest(op, input, output)
1742	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1743	return
1744}
1745
1746// DeleteClientCertificate API operation for Amazon API Gateway.
1747//
1748// Deletes the ClientCertificate resource.
1749//
1750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1751// with awserr.Error's Code and Message methods to get detailed information about
1752// the error.
1753//
1754// See the AWS API reference guide for Amazon API Gateway's
1755// API operation DeleteClientCertificate for usage and error information.
1756//
1757// Returned Error Types:
1758//   * BadRequestException
1759//   The submitted request is not valid, for example, the input is incomplete
1760//   or incorrect. See the accompanying error message for details.
1761//
1762//   * ConflictException
1763//   The request configuration has conflicts. For details, see the accompanying
1764//   error message.
1765//
1766//   * NotFoundException
1767//   The requested resource is not found. Make sure that the request URI is correct.
1768//
1769//   * UnauthorizedException
1770//   The request is denied because the caller has insufficient permissions.
1771//
1772//   * TooManyRequestsException
1773//   The request has reached its throttling limit. Retry after the specified time
1774//   period.
1775//
1776func (c *APIGateway) DeleteClientCertificate(input *DeleteClientCertificateInput) (*DeleteClientCertificateOutput, error) {
1777	req, out := c.DeleteClientCertificateRequest(input)
1778	return out, req.Send()
1779}
1780
1781// DeleteClientCertificateWithContext is the same as DeleteClientCertificate with the addition of
1782// the ability to pass a context and additional request options.
1783//
1784// See DeleteClientCertificate for details on how to use this API operation.
1785//
1786// The context must be non-nil and will be used for request cancellation. If
1787// the context is nil a panic will occur. In the future the SDK may create
1788// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1789// for more information on using Contexts.
1790func (c *APIGateway) DeleteClientCertificateWithContext(ctx aws.Context, input *DeleteClientCertificateInput, opts ...request.Option) (*DeleteClientCertificateOutput, error) {
1791	req, out := c.DeleteClientCertificateRequest(input)
1792	req.SetContext(ctx)
1793	req.ApplyOptions(opts...)
1794	return out, req.Send()
1795}
1796
1797const opDeleteDeployment = "DeleteDeployment"
1798
1799// DeleteDeploymentRequest generates a "aws/request.Request" representing the
1800// client's request for the DeleteDeployment operation. The "output" return
1801// value will be populated with the request's response once the request completes
1802// successfully.
1803//
1804// Use "Send" method on the returned Request to send the API call to the service.
1805// the "output" return value is not valid until after Send returns without error.
1806//
1807// See DeleteDeployment for more information on using the DeleteDeployment
1808// API call, and error handling.
1809//
1810// This method is useful when you want to inject custom logic or configuration
1811// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1812//
1813//
1814//    // Example sending a request using the DeleteDeploymentRequest method.
1815//    req, resp := client.DeleteDeploymentRequest(params)
1816//
1817//    err := req.Send()
1818//    if err == nil { // resp is now filled
1819//        fmt.Println(resp)
1820//    }
1821func (c *APIGateway) DeleteDeploymentRequest(input *DeleteDeploymentInput) (req *request.Request, output *DeleteDeploymentOutput) {
1822	op := &request.Operation{
1823		Name:       opDeleteDeployment,
1824		HTTPMethod: "DELETE",
1825		HTTPPath:   "/restapis/{restapi_id}/deployments/{deployment_id}",
1826	}
1827
1828	if input == nil {
1829		input = &DeleteDeploymentInput{}
1830	}
1831
1832	output = &DeleteDeploymentOutput{}
1833	req = c.newRequest(op, input, output)
1834	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1835	return
1836}
1837
1838// DeleteDeployment API operation for Amazon API Gateway.
1839//
1840// Deletes a Deployment resource. Deleting a deployment will only succeed if
1841// there are no Stage resources associated with it.
1842//
1843// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1844// with awserr.Error's Code and Message methods to get detailed information about
1845// the error.
1846//
1847// See the AWS API reference guide for Amazon API Gateway's
1848// API operation DeleteDeployment for usage and error information.
1849//
1850// Returned Error Types:
1851//   * BadRequestException
1852//   The submitted request is not valid, for example, the input is incomplete
1853//   or incorrect. See the accompanying error message for details.
1854//
1855//   * ConflictException
1856//   The request configuration has conflicts. For details, see the accompanying
1857//   error message.
1858//
1859//   * LimitExceededException
1860//   The request exceeded the rate limit. Retry after the specified time period.
1861//
1862//   * NotFoundException
1863//   The requested resource is not found. Make sure that the request URI is correct.
1864//
1865//   * UnauthorizedException
1866//   The request is denied because the caller has insufficient permissions.
1867//
1868//   * TooManyRequestsException
1869//   The request has reached its throttling limit. Retry after the specified time
1870//   period.
1871//
1872func (c *APIGateway) DeleteDeployment(input *DeleteDeploymentInput) (*DeleteDeploymentOutput, error) {
1873	req, out := c.DeleteDeploymentRequest(input)
1874	return out, req.Send()
1875}
1876
1877// DeleteDeploymentWithContext is the same as DeleteDeployment with the addition of
1878// the ability to pass a context and additional request options.
1879//
1880// See DeleteDeployment for details on how to use this API operation.
1881//
1882// The context must be non-nil and will be used for request cancellation. If
1883// the context is nil a panic will occur. In the future the SDK may create
1884// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1885// for more information on using Contexts.
1886func (c *APIGateway) DeleteDeploymentWithContext(ctx aws.Context, input *DeleteDeploymentInput, opts ...request.Option) (*DeleteDeploymentOutput, error) {
1887	req, out := c.DeleteDeploymentRequest(input)
1888	req.SetContext(ctx)
1889	req.ApplyOptions(opts...)
1890	return out, req.Send()
1891}
1892
1893const opDeleteDocumentationPart = "DeleteDocumentationPart"
1894
1895// DeleteDocumentationPartRequest generates a "aws/request.Request" representing the
1896// client's request for the DeleteDocumentationPart operation. The "output" return
1897// value will be populated with the request's response once the request completes
1898// successfully.
1899//
1900// Use "Send" method on the returned Request to send the API call to the service.
1901// the "output" return value is not valid until after Send returns without error.
1902//
1903// See DeleteDocumentationPart for more information on using the DeleteDocumentationPart
1904// API call, and error handling.
1905//
1906// This method is useful when you want to inject custom logic or configuration
1907// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1908//
1909//
1910//    // Example sending a request using the DeleteDocumentationPartRequest method.
1911//    req, resp := client.DeleteDocumentationPartRequest(params)
1912//
1913//    err := req.Send()
1914//    if err == nil { // resp is now filled
1915//        fmt.Println(resp)
1916//    }
1917func (c *APIGateway) DeleteDocumentationPartRequest(input *DeleteDocumentationPartInput) (req *request.Request, output *DeleteDocumentationPartOutput) {
1918	op := &request.Operation{
1919		Name:       opDeleteDocumentationPart,
1920		HTTPMethod: "DELETE",
1921		HTTPPath:   "/restapis/{restapi_id}/documentation/parts/{part_id}",
1922	}
1923
1924	if input == nil {
1925		input = &DeleteDocumentationPartInput{}
1926	}
1927
1928	output = &DeleteDocumentationPartOutput{}
1929	req = c.newRequest(op, input, output)
1930	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1931	return
1932}
1933
1934// DeleteDocumentationPart API operation for Amazon API Gateway.
1935//
1936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1937// with awserr.Error's Code and Message methods to get detailed information about
1938// the error.
1939//
1940// See the AWS API reference guide for Amazon API Gateway's
1941// API operation DeleteDocumentationPart for usage and error information.
1942//
1943// Returned Error Types:
1944//   * BadRequestException
1945//   The submitted request is not valid, for example, the input is incomplete
1946//   or incorrect. See the accompanying error message for details.
1947//
1948//   * ConflictException
1949//   The request configuration has conflicts. For details, see the accompanying
1950//   error message.
1951//
1952//   * NotFoundException
1953//   The requested resource is not found. Make sure that the request URI is correct.
1954//
1955//   * UnauthorizedException
1956//   The request is denied because the caller has insufficient permissions.
1957//
1958//   * TooManyRequestsException
1959//   The request has reached its throttling limit. Retry after the specified time
1960//   period.
1961//
1962func (c *APIGateway) DeleteDocumentationPart(input *DeleteDocumentationPartInput) (*DeleteDocumentationPartOutput, error) {
1963	req, out := c.DeleteDocumentationPartRequest(input)
1964	return out, req.Send()
1965}
1966
1967// DeleteDocumentationPartWithContext is the same as DeleteDocumentationPart with the addition of
1968// the ability to pass a context and additional request options.
1969//
1970// See DeleteDocumentationPart for details on how to use this API operation.
1971//
1972// The context must be non-nil and will be used for request cancellation. If
1973// the context is nil a panic will occur. In the future the SDK may create
1974// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1975// for more information on using Contexts.
1976func (c *APIGateway) DeleteDocumentationPartWithContext(ctx aws.Context, input *DeleteDocumentationPartInput, opts ...request.Option) (*DeleteDocumentationPartOutput, error) {
1977	req, out := c.DeleteDocumentationPartRequest(input)
1978	req.SetContext(ctx)
1979	req.ApplyOptions(opts...)
1980	return out, req.Send()
1981}
1982
1983const opDeleteDocumentationVersion = "DeleteDocumentationVersion"
1984
1985// DeleteDocumentationVersionRequest generates a "aws/request.Request" representing the
1986// client's request for the DeleteDocumentationVersion operation. The "output" return
1987// value will be populated with the request's response once the request completes
1988// successfully.
1989//
1990// Use "Send" method on the returned Request to send the API call to the service.
1991// the "output" return value is not valid until after Send returns without error.
1992//
1993// See DeleteDocumentationVersion for more information on using the DeleteDocumentationVersion
1994// API call, and error handling.
1995//
1996// This method is useful when you want to inject custom logic or configuration
1997// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1998//
1999//
2000//    // Example sending a request using the DeleteDocumentationVersionRequest method.
2001//    req, resp := client.DeleteDocumentationVersionRequest(params)
2002//
2003//    err := req.Send()
2004//    if err == nil { // resp is now filled
2005//        fmt.Println(resp)
2006//    }
2007func (c *APIGateway) DeleteDocumentationVersionRequest(input *DeleteDocumentationVersionInput) (req *request.Request, output *DeleteDocumentationVersionOutput) {
2008	op := &request.Operation{
2009		Name:       opDeleteDocumentationVersion,
2010		HTTPMethod: "DELETE",
2011		HTTPPath:   "/restapis/{restapi_id}/documentation/versions/{doc_version}",
2012	}
2013
2014	if input == nil {
2015		input = &DeleteDocumentationVersionInput{}
2016	}
2017
2018	output = &DeleteDocumentationVersionOutput{}
2019	req = c.newRequest(op, input, output)
2020	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2021	return
2022}
2023
2024// DeleteDocumentationVersion API operation for Amazon API Gateway.
2025//
2026// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2027// with awserr.Error's Code and Message methods to get detailed information about
2028// the error.
2029//
2030// See the AWS API reference guide for Amazon API Gateway's
2031// API operation DeleteDocumentationVersion for usage and error information.
2032//
2033// Returned Error Types:
2034//   * BadRequestException
2035//   The submitted request is not valid, for example, the input is incomplete
2036//   or incorrect. See the accompanying error message for details.
2037//
2038//   * ConflictException
2039//   The request configuration has conflicts. For details, see the accompanying
2040//   error message.
2041//
2042//   * NotFoundException
2043//   The requested resource is not found. Make sure that the request URI is correct.
2044//
2045//   * UnauthorizedException
2046//   The request is denied because the caller has insufficient permissions.
2047//
2048//   * TooManyRequestsException
2049//   The request has reached its throttling limit. Retry after the specified time
2050//   period.
2051//
2052func (c *APIGateway) DeleteDocumentationVersion(input *DeleteDocumentationVersionInput) (*DeleteDocumentationVersionOutput, error) {
2053	req, out := c.DeleteDocumentationVersionRequest(input)
2054	return out, req.Send()
2055}
2056
2057// DeleteDocumentationVersionWithContext is the same as DeleteDocumentationVersion with the addition of
2058// the ability to pass a context and additional request options.
2059//
2060// See DeleteDocumentationVersion for details on how to use this API operation.
2061//
2062// The context must be non-nil and will be used for request cancellation. If
2063// the context is nil a panic will occur. In the future the SDK may create
2064// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2065// for more information on using Contexts.
2066func (c *APIGateway) DeleteDocumentationVersionWithContext(ctx aws.Context, input *DeleteDocumentationVersionInput, opts ...request.Option) (*DeleteDocumentationVersionOutput, error) {
2067	req, out := c.DeleteDocumentationVersionRequest(input)
2068	req.SetContext(ctx)
2069	req.ApplyOptions(opts...)
2070	return out, req.Send()
2071}
2072
2073const opDeleteDomainName = "DeleteDomainName"
2074
2075// DeleteDomainNameRequest generates a "aws/request.Request" representing the
2076// client's request for the DeleteDomainName operation. The "output" return
2077// value will be populated with the request's response once the request completes
2078// successfully.
2079//
2080// Use "Send" method on the returned Request to send the API call to the service.
2081// the "output" return value is not valid until after Send returns without error.
2082//
2083// See DeleteDomainName for more information on using the DeleteDomainName
2084// API call, and error handling.
2085//
2086// This method is useful when you want to inject custom logic or configuration
2087// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2088//
2089//
2090//    // Example sending a request using the DeleteDomainNameRequest method.
2091//    req, resp := client.DeleteDomainNameRequest(params)
2092//
2093//    err := req.Send()
2094//    if err == nil { // resp is now filled
2095//        fmt.Println(resp)
2096//    }
2097func (c *APIGateway) DeleteDomainNameRequest(input *DeleteDomainNameInput) (req *request.Request, output *DeleteDomainNameOutput) {
2098	op := &request.Operation{
2099		Name:       opDeleteDomainName,
2100		HTTPMethod: "DELETE",
2101		HTTPPath:   "/domainnames/{domain_name}",
2102	}
2103
2104	if input == nil {
2105		input = &DeleteDomainNameInput{}
2106	}
2107
2108	output = &DeleteDomainNameOutput{}
2109	req = c.newRequest(op, input, output)
2110	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2111	return
2112}
2113
2114// DeleteDomainName API operation for Amazon API Gateway.
2115//
2116// Deletes the DomainName resource.
2117//
2118// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2119// with awserr.Error's Code and Message methods to get detailed information about
2120// the error.
2121//
2122// See the AWS API reference guide for Amazon API Gateway's
2123// API operation DeleteDomainName for usage and error information.
2124//
2125// Returned Error Types:
2126//   * BadRequestException
2127//   The submitted request is not valid, for example, the input is incomplete
2128//   or incorrect. See the accompanying error message for details.
2129//
2130//   * ConflictException
2131//   The request configuration has conflicts. For details, see the accompanying
2132//   error message.
2133//
2134//   * NotFoundException
2135//   The requested resource is not found. Make sure that the request URI is correct.
2136//
2137//   * UnauthorizedException
2138//   The request is denied because the caller has insufficient permissions.
2139//
2140//   * TooManyRequestsException
2141//   The request has reached its throttling limit. Retry after the specified time
2142//   period.
2143//
2144func (c *APIGateway) DeleteDomainName(input *DeleteDomainNameInput) (*DeleteDomainNameOutput, error) {
2145	req, out := c.DeleteDomainNameRequest(input)
2146	return out, req.Send()
2147}
2148
2149// DeleteDomainNameWithContext is the same as DeleteDomainName with the addition of
2150// the ability to pass a context and additional request options.
2151//
2152// See DeleteDomainName for details on how to use this API operation.
2153//
2154// The context must be non-nil and will be used for request cancellation. If
2155// the context is nil a panic will occur. In the future the SDK may create
2156// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2157// for more information on using Contexts.
2158func (c *APIGateway) DeleteDomainNameWithContext(ctx aws.Context, input *DeleteDomainNameInput, opts ...request.Option) (*DeleteDomainNameOutput, error) {
2159	req, out := c.DeleteDomainNameRequest(input)
2160	req.SetContext(ctx)
2161	req.ApplyOptions(opts...)
2162	return out, req.Send()
2163}
2164
2165const opDeleteGatewayResponse = "DeleteGatewayResponse"
2166
2167// DeleteGatewayResponseRequest generates a "aws/request.Request" representing the
2168// client's request for the DeleteGatewayResponse operation. The "output" return
2169// value will be populated with the request's response once the request completes
2170// successfully.
2171//
2172// Use "Send" method on the returned Request to send the API call to the service.
2173// the "output" return value is not valid until after Send returns without error.
2174//
2175// See DeleteGatewayResponse for more information on using the DeleteGatewayResponse
2176// API call, and error handling.
2177//
2178// This method is useful when you want to inject custom logic or configuration
2179// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2180//
2181//
2182//    // Example sending a request using the DeleteGatewayResponseRequest method.
2183//    req, resp := client.DeleteGatewayResponseRequest(params)
2184//
2185//    err := req.Send()
2186//    if err == nil { // resp is now filled
2187//        fmt.Println(resp)
2188//    }
2189func (c *APIGateway) DeleteGatewayResponseRequest(input *DeleteGatewayResponseInput) (req *request.Request, output *DeleteGatewayResponseOutput) {
2190	op := &request.Operation{
2191		Name:       opDeleteGatewayResponse,
2192		HTTPMethod: "DELETE",
2193		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
2194	}
2195
2196	if input == nil {
2197		input = &DeleteGatewayResponseInput{}
2198	}
2199
2200	output = &DeleteGatewayResponseOutput{}
2201	req = c.newRequest(op, input, output)
2202	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2203	return
2204}
2205
2206// DeleteGatewayResponse API operation for Amazon API Gateway.
2207//
2208// Clears any customization of a GatewayResponse of a specified response type
2209// on the given RestApi and resets it with the default settings.
2210//
2211// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2212// with awserr.Error's Code and Message methods to get detailed information about
2213// the error.
2214//
2215// See the AWS API reference guide for Amazon API Gateway's
2216// API operation DeleteGatewayResponse for usage and error information.
2217//
2218// Returned Error Types:
2219//   * BadRequestException
2220//   The submitted request is not valid, for example, the input is incomplete
2221//   or incorrect. See the accompanying error message for details.
2222//
2223//   * ConflictException
2224//   The request configuration has conflicts. For details, see the accompanying
2225//   error message.
2226//
2227//   * NotFoundException
2228//   The requested resource is not found. Make sure that the request URI is correct.
2229//
2230//   * UnauthorizedException
2231//   The request is denied because the caller has insufficient permissions.
2232//
2233//   * TooManyRequestsException
2234//   The request has reached its throttling limit. Retry after the specified time
2235//   period.
2236//
2237func (c *APIGateway) DeleteGatewayResponse(input *DeleteGatewayResponseInput) (*DeleteGatewayResponseOutput, error) {
2238	req, out := c.DeleteGatewayResponseRequest(input)
2239	return out, req.Send()
2240}
2241
2242// DeleteGatewayResponseWithContext is the same as DeleteGatewayResponse with the addition of
2243// the ability to pass a context and additional request options.
2244//
2245// See DeleteGatewayResponse for details on how to use this API operation.
2246//
2247// The context must be non-nil and will be used for request cancellation. If
2248// the context is nil a panic will occur. In the future the SDK may create
2249// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2250// for more information on using Contexts.
2251func (c *APIGateway) DeleteGatewayResponseWithContext(ctx aws.Context, input *DeleteGatewayResponseInput, opts ...request.Option) (*DeleteGatewayResponseOutput, error) {
2252	req, out := c.DeleteGatewayResponseRequest(input)
2253	req.SetContext(ctx)
2254	req.ApplyOptions(opts...)
2255	return out, req.Send()
2256}
2257
2258const opDeleteIntegration = "DeleteIntegration"
2259
2260// DeleteIntegrationRequest generates a "aws/request.Request" representing the
2261// client's request for the DeleteIntegration operation. The "output" return
2262// value will be populated with the request's response once the request completes
2263// successfully.
2264//
2265// Use "Send" method on the returned Request to send the API call to the service.
2266// the "output" return value is not valid until after Send returns without error.
2267//
2268// See DeleteIntegration for more information on using the DeleteIntegration
2269// API call, and error handling.
2270//
2271// This method is useful when you want to inject custom logic or configuration
2272// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2273//
2274//
2275//    // Example sending a request using the DeleteIntegrationRequest method.
2276//    req, resp := client.DeleteIntegrationRequest(params)
2277//
2278//    err := req.Send()
2279//    if err == nil { // resp is now filled
2280//        fmt.Println(resp)
2281//    }
2282func (c *APIGateway) DeleteIntegrationRequest(input *DeleteIntegrationInput) (req *request.Request, output *DeleteIntegrationOutput) {
2283	op := &request.Operation{
2284		Name:       opDeleteIntegration,
2285		HTTPMethod: "DELETE",
2286		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
2287	}
2288
2289	if input == nil {
2290		input = &DeleteIntegrationInput{}
2291	}
2292
2293	output = &DeleteIntegrationOutput{}
2294	req = c.newRequest(op, input, output)
2295	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2296	return
2297}
2298
2299// DeleteIntegration API operation for Amazon API Gateway.
2300//
2301// Represents a delete integration.
2302//
2303// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2304// with awserr.Error's Code and Message methods to get detailed information about
2305// the error.
2306//
2307// See the AWS API reference guide for Amazon API Gateway's
2308// API operation DeleteIntegration for usage and error information.
2309//
2310// Returned Error Types:
2311//   * BadRequestException
2312//   The submitted request is not valid, for example, the input is incomplete
2313//   or incorrect. See the accompanying error message for details.
2314//
2315//   * ConflictException
2316//   The request configuration has conflicts. For details, see the accompanying
2317//   error message.
2318//
2319//   * NotFoundException
2320//   The requested resource is not found. Make sure that the request URI is correct.
2321//
2322//   * UnauthorizedException
2323//   The request is denied because the caller has insufficient permissions.
2324//
2325//   * TooManyRequestsException
2326//   The request has reached its throttling limit. Retry after the specified time
2327//   period.
2328//
2329func (c *APIGateway) DeleteIntegration(input *DeleteIntegrationInput) (*DeleteIntegrationOutput, error) {
2330	req, out := c.DeleteIntegrationRequest(input)
2331	return out, req.Send()
2332}
2333
2334// DeleteIntegrationWithContext is the same as DeleteIntegration with the addition of
2335// the ability to pass a context and additional request options.
2336//
2337// See DeleteIntegration for details on how to use this API operation.
2338//
2339// The context must be non-nil and will be used for request cancellation. If
2340// the context is nil a panic will occur. In the future the SDK may create
2341// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2342// for more information on using Contexts.
2343func (c *APIGateway) DeleteIntegrationWithContext(ctx aws.Context, input *DeleteIntegrationInput, opts ...request.Option) (*DeleteIntegrationOutput, error) {
2344	req, out := c.DeleteIntegrationRequest(input)
2345	req.SetContext(ctx)
2346	req.ApplyOptions(opts...)
2347	return out, req.Send()
2348}
2349
2350const opDeleteIntegrationResponse = "DeleteIntegrationResponse"
2351
2352// DeleteIntegrationResponseRequest generates a "aws/request.Request" representing the
2353// client's request for the DeleteIntegrationResponse operation. The "output" return
2354// value will be populated with the request's response once the request completes
2355// successfully.
2356//
2357// Use "Send" method on the returned Request to send the API call to the service.
2358// the "output" return value is not valid until after Send returns without error.
2359//
2360// See DeleteIntegrationResponse for more information on using the DeleteIntegrationResponse
2361// API call, and error handling.
2362//
2363// This method is useful when you want to inject custom logic or configuration
2364// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2365//
2366//
2367//    // Example sending a request using the DeleteIntegrationResponseRequest method.
2368//    req, resp := client.DeleteIntegrationResponseRequest(params)
2369//
2370//    err := req.Send()
2371//    if err == nil { // resp is now filled
2372//        fmt.Println(resp)
2373//    }
2374func (c *APIGateway) DeleteIntegrationResponseRequest(input *DeleteIntegrationResponseInput) (req *request.Request, output *DeleteIntegrationResponseOutput) {
2375	op := &request.Operation{
2376		Name:       opDeleteIntegrationResponse,
2377		HTTPMethod: "DELETE",
2378		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
2379	}
2380
2381	if input == nil {
2382		input = &DeleteIntegrationResponseInput{}
2383	}
2384
2385	output = &DeleteIntegrationResponseOutput{}
2386	req = c.newRequest(op, input, output)
2387	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2388	return
2389}
2390
2391// DeleteIntegrationResponse API operation for Amazon API Gateway.
2392//
2393// Represents a delete integration response.
2394//
2395// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2396// with awserr.Error's Code and Message methods to get detailed information about
2397// the error.
2398//
2399// See the AWS API reference guide for Amazon API Gateway's
2400// API operation DeleteIntegrationResponse for usage and error information.
2401//
2402// Returned Error Types:
2403//   * BadRequestException
2404//   The submitted request is not valid, for example, the input is incomplete
2405//   or incorrect. See the accompanying error message for details.
2406//
2407//   * ConflictException
2408//   The request configuration has conflicts. For details, see the accompanying
2409//   error message.
2410//
2411//   * NotFoundException
2412//   The requested resource is not found. Make sure that the request URI is correct.
2413//
2414//   * UnauthorizedException
2415//   The request is denied because the caller has insufficient permissions.
2416//
2417//   * TooManyRequestsException
2418//   The request has reached its throttling limit. Retry after the specified time
2419//   period.
2420//
2421func (c *APIGateway) DeleteIntegrationResponse(input *DeleteIntegrationResponseInput) (*DeleteIntegrationResponseOutput, error) {
2422	req, out := c.DeleteIntegrationResponseRequest(input)
2423	return out, req.Send()
2424}
2425
2426// DeleteIntegrationResponseWithContext is the same as DeleteIntegrationResponse with the addition of
2427// the ability to pass a context and additional request options.
2428//
2429// See DeleteIntegrationResponse for details on how to use this API operation.
2430//
2431// The context must be non-nil and will be used for request cancellation. If
2432// the context is nil a panic will occur. In the future the SDK may create
2433// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2434// for more information on using Contexts.
2435func (c *APIGateway) DeleteIntegrationResponseWithContext(ctx aws.Context, input *DeleteIntegrationResponseInput, opts ...request.Option) (*DeleteIntegrationResponseOutput, error) {
2436	req, out := c.DeleteIntegrationResponseRequest(input)
2437	req.SetContext(ctx)
2438	req.ApplyOptions(opts...)
2439	return out, req.Send()
2440}
2441
2442const opDeleteMethod = "DeleteMethod"
2443
2444// DeleteMethodRequest generates a "aws/request.Request" representing the
2445// client's request for the DeleteMethod operation. The "output" return
2446// value will be populated with the request's response once the request completes
2447// successfully.
2448//
2449// Use "Send" method on the returned Request to send the API call to the service.
2450// the "output" return value is not valid until after Send returns without error.
2451//
2452// See DeleteMethod for more information on using the DeleteMethod
2453// API call, and error handling.
2454//
2455// This method is useful when you want to inject custom logic or configuration
2456// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2457//
2458//
2459//    // Example sending a request using the DeleteMethodRequest method.
2460//    req, resp := client.DeleteMethodRequest(params)
2461//
2462//    err := req.Send()
2463//    if err == nil { // resp is now filled
2464//        fmt.Println(resp)
2465//    }
2466func (c *APIGateway) DeleteMethodRequest(input *DeleteMethodInput) (req *request.Request, output *DeleteMethodOutput) {
2467	op := &request.Operation{
2468		Name:       opDeleteMethod,
2469		HTTPMethod: "DELETE",
2470		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
2471	}
2472
2473	if input == nil {
2474		input = &DeleteMethodInput{}
2475	}
2476
2477	output = &DeleteMethodOutput{}
2478	req = c.newRequest(op, input, output)
2479	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2480	return
2481}
2482
2483// DeleteMethod API operation for Amazon API Gateway.
2484//
2485// Deletes an existing Method resource.
2486//
2487// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2488// with awserr.Error's Code and Message methods to get detailed information about
2489// the error.
2490//
2491// See the AWS API reference guide for Amazon API Gateway's
2492// API operation DeleteMethod for usage and error information.
2493//
2494// Returned Error Types:
2495//   * UnauthorizedException
2496//   The request is denied because the caller has insufficient permissions.
2497//
2498//   * NotFoundException
2499//   The requested resource is not found. Make sure that the request URI is correct.
2500//
2501//   * TooManyRequestsException
2502//   The request has reached its throttling limit. Retry after the specified time
2503//   period.
2504//
2505//   * ConflictException
2506//   The request configuration has conflicts. For details, see the accompanying
2507//   error message.
2508//
2509func (c *APIGateway) DeleteMethod(input *DeleteMethodInput) (*DeleteMethodOutput, error) {
2510	req, out := c.DeleteMethodRequest(input)
2511	return out, req.Send()
2512}
2513
2514// DeleteMethodWithContext is the same as DeleteMethod with the addition of
2515// the ability to pass a context and additional request options.
2516//
2517// See DeleteMethod for details on how to use this API operation.
2518//
2519// The context must be non-nil and will be used for request cancellation. If
2520// the context is nil a panic will occur. In the future the SDK may create
2521// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2522// for more information on using Contexts.
2523func (c *APIGateway) DeleteMethodWithContext(ctx aws.Context, input *DeleteMethodInput, opts ...request.Option) (*DeleteMethodOutput, error) {
2524	req, out := c.DeleteMethodRequest(input)
2525	req.SetContext(ctx)
2526	req.ApplyOptions(opts...)
2527	return out, req.Send()
2528}
2529
2530const opDeleteMethodResponse = "DeleteMethodResponse"
2531
2532// DeleteMethodResponseRequest generates a "aws/request.Request" representing the
2533// client's request for the DeleteMethodResponse operation. The "output" return
2534// value will be populated with the request's response once the request completes
2535// successfully.
2536//
2537// Use "Send" method on the returned Request to send the API call to the service.
2538// the "output" return value is not valid until after Send returns without error.
2539//
2540// See DeleteMethodResponse for more information on using the DeleteMethodResponse
2541// API call, and error handling.
2542//
2543// This method is useful when you want to inject custom logic or configuration
2544// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2545//
2546//
2547//    // Example sending a request using the DeleteMethodResponseRequest method.
2548//    req, resp := client.DeleteMethodResponseRequest(params)
2549//
2550//    err := req.Send()
2551//    if err == nil { // resp is now filled
2552//        fmt.Println(resp)
2553//    }
2554func (c *APIGateway) DeleteMethodResponseRequest(input *DeleteMethodResponseInput) (req *request.Request, output *DeleteMethodResponseOutput) {
2555	op := &request.Operation{
2556		Name:       opDeleteMethodResponse,
2557		HTTPMethod: "DELETE",
2558		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
2559	}
2560
2561	if input == nil {
2562		input = &DeleteMethodResponseInput{}
2563	}
2564
2565	output = &DeleteMethodResponseOutput{}
2566	req = c.newRequest(op, input, output)
2567	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2568	return
2569}
2570
2571// DeleteMethodResponse API operation for Amazon API Gateway.
2572//
2573// Deletes an existing MethodResponse resource.
2574//
2575// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2576// with awserr.Error's Code and Message methods to get detailed information about
2577// the error.
2578//
2579// See the AWS API reference guide for Amazon API Gateway's
2580// API operation DeleteMethodResponse for usage and error information.
2581//
2582// Returned Error Types:
2583//   * UnauthorizedException
2584//   The request is denied because the caller has insufficient permissions.
2585//
2586//   * NotFoundException
2587//   The requested resource is not found. Make sure that the request URI is correct.
2588//
2589//   * TooManyRequestsException
2590//   The request has reached its throttling limit. Retry after the specified time
2591//   period.
2592//
2593//   * BadRequestException
2594//   The submitted request is not valid, for example, the input is incomplete
2595//   or incorrect. See the accompanying error message for details.
2596//
2597//   * ConflictException
2598//   The request configuration has conflicts. For details, see the accompanying
2599//   error message.
2600//
2601func (c *APIGateway) DeleteMethodResponse(input *DeleteMethodResponseInput) (*DeleteMethodResponseOutput, error) {
2602	req, out := c.DeleteMethodResponseRequest(input)
2603	return out, req.Send()
2604}
2605
2606// DeleteMethodResponseWithContext is the same as DeleteMethodResponse with the addition of
2607// the ability to pass a context and additional request options.
2608//
2609// See DeleteMethodResponse for details on how to use this API operation.
2610//
2611// The context must be non-nil and will be used for request cancellation. If
2612// the context is nil a panic will occur. In the future the SDK may create
2613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2614// for more information on using Contexts.
2615func (c *APIGateway) DeleteMethodResponseWithContext(ctx aws.Context, input *DeleteMethodResponseInput, opts ...request.Option) (*DeleteMethodResponseOutput, error) {
2616	req, out := c.DeleteMethodResponseRequest(input)
2617	req.SetContext(ctx)
2618	req.ApplyOptions(opts...)
2619	return out, req.Send()
2620}
2621
2622const opDeleteModel = "DeleteModel"
2623
2624// DeleteModelRequest generates a "aws/request.Request" representing the
2625// client's request for the DeleteModel operation. The "output" return
2626// value will be populated with the request's response once the request completes
2627// successfully.
2628//
2629// Use "Send" method on the returned Request to send the API call to the service.
2630// the "output" return value is not valid until after Send returns without error.
2631//
2632// See DeleteModel for more information on using the DeleteModel
2633// API call, and error handling.
2634//
2635// This method is useful when you want to inject custom logic or configuration
2636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2637//
2638//
2639//    // Example sending a request using the DeleteModelRequest method.
2640//    req, resp := client.DeleteModelRequest(params)
2641//
2642//    err := req.Send()
2643//    if err == nil { // resp is now filled
2644//        fmt.Println(resp)
2645//    }
2646func (c *APIGateway) DeleteModelRequest(input *DeleteModelInput) (req *request.Request, output *DeleteModelOutput) {
2647	op := &request.Operation{
2648		Name:       opDeleteModel,
2649		HTTPMethod: "DELETE",
2650		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}",
2651	}
2652
2653	if input == nil {
2654		input = &DeleteModelInput{}
2655	}
2656
2657	output = &DeleteModelOutput{}
2658	req = c.newRequest(op, input, output)
2659	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2660	return
2661}
2662
2663// DeleteModel API operation for Amazon API Gateway.
2664//
2665// Deletes a model.
2666//
2667// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2668// with awserr.Error's Code and Message methods to get detailed information about
2669// the error.
2670//
2671// See the AWS API reference guide for Amazon API Gateway's
2672// API operation DeleteModel for usage and error information.
2673//
2674// Returned Error Types:
2675//   * BadRequestException
2676//   The submitted request is not valid, for example, the input is incomplete
2677//   or incorrect. See the accompanying error message for details.
2678//
2679//   * ConflictException
2680//   The request configuration has conflicts. For details, see the accompanying
2681//   error message.
2682//
2683//   * NotFoundException
2684//   The requested resource is not found. Make sure that the request URI is correct.
2685//
2686//   * UnauthorizedException
2687//   The request is denied because the caller has insufficient permissions.
2688//
2689//   * TooManyRequestsException
2690//   The request has reached its throttling limit. Retry after the specified time
2691//   period.
2692//
2693func (c *APIGateway) DeleteModel(input *DeleteModelInput) (*DeleteModelOutput, error) {
2694	req, out := c.DeleteModelRequest(input)
2695	return out, req.Send()
2696}
2697
2698// DeleteModelWithContext is the same as DeleteModel with the addition of
2699// the ability to pass a context and additional request options.
2700//
2701// See DeleteModel for details on how to use this API operation.
2702//
2703// The context must be non-nil and will be used for request cancellation. If
2704// the context is nil a panic will occur. In the future the SDK may create
2705// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2706// for more information on using Contexts.
2707func (c *APIGateway) DeleteModelWithContext(ctx aws.Context, input *DeleteModelInput, opts ...request.Option) (*DeleteModelOutput, error) {
2708	req, out := c.DeleteModelRequest(input)
2709	req.SetContext(ctx)
2710	req.ApplyOptions(opts...)
2711	return out, req.Send()
2712}
2713
2714const opDeleteRequestValidator = "DeleteRequestValidator"
2715
2716// DeleteRequestValidatorRequest generates a "aws/request.Request" representing the
2717// client's request for the DeleteRequestValidator operation. The "output" return
2718// value will be populated with the request's response once the request completes
2719// successfully.
2720//
2721// Use "Send" method on the returned Request to send the API call to the service.
2722// the "output" return value is not valid until after Send returns without error.
2723//
2724// See DeleteRequestValidator for more information on using the DeleteRequestValidator
2725// API call, and error handling.
2726//
2727// This method is useful when you want to inject custom logic or configuration
2728// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2729//
2730//
2731//    // Example sending a request using the DeleteRequestValidatorRequest method.
2732//    req, resp := client.DeleteRequestValidatorRequest(params)
2733//
2734//    err := req.Send()
2735//    if err == nil { // resp is now filled
2736//        fmt.Println(resp)
2737//    }
2738func (c *APIGateway) DeleteRequestValidatorRequest(input *DeleteRequestValidatorInput) (req *request.Request, output *DeleteRequestValidatorOutput) {
2739	op := &request.Operation{
2740		Name:       opDeleteRequestValidator,
2741		HTTPMethod: "DELETE",
2742		HTTPPath:   "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}",
2743	}
2744
2745	if input == nil {
2746		input = &DeleteRequestValidatorInput{}
2747	}
2748
2749	output = &DeleteRequestValidatorOutput{}
2750	req = c.newRequest(op, input, output)
2751	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2752	return
2753}
2754
2755// DeleteRequestValidator API operation for Amazon API Gateway.
2756//
2757// Deletes a RequestValidator of a given RestApi.
2758//
2759// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2760// with awserr.Error's Code and Message methods to get detailed information about
2761// the error.
2762//
2763// See the AWS API reference guide for Amazon API Gateway's
2764// API operation DeleteRequestValidator for usage and error information.
2765//
2766// Returned Error Types:
2767//   * BadRequestException
2768//   The submitted request is not valid, for example, the input is incomplete
2769//   or incorrect. See the accompanying error message for details.
2770//
2771//   * ConflictException
2772//   The request configuration has conflicts. For details, see the accompanying
2773//   error message.
2774//
2775//   * NotFoundException
2776//   The requested resource is not found. Make sure that the request URI is correct.
2777//
2778//   * UnauthorizedException
2779//   The request is denied because the caller has insufficient permissions.
2780//
2781//   * TooManyRequestsException
2782//   The request has reached its throttling limit. Retry after the specified time
2783//   period.
2784//
2785func (c *APIGateway) DeleteRequestValidator(input *DeleteRequestValidatorInput) (*DeleteRequestValidatorOutput, error) {
2786	req, out := c.DeleteRequestValidatorRequest(input)
2787	return out, req.Send()
2788}
2789
2790// DeleteRequestValidatorWithContext is the same as DeleteRequestValidator with the addition of
2791// the ability to pass a context and additional request options.
2792//
2793// See DeleteRequestValidator for details on how to use this API operation.
2794//
2795// The context must be non-nil and will be used for request cancellation. If
2796// the context is nil a panic will occur. In the future the SDK may create
2797// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2798// for more information on using Contexts.
2799func (c *APIGateway) DeleteRequestValidatorWithContext(ctx aws.Context, input *DeleteRequestValidatorInput, opts ...request.Option) (*DeleteRequestValidatorOutput, error) {
2800	req, out := c.DeleteRequestValidatorRequest(input)
2801	req.SetContext(ctx)
2802	req.ApplyOptions(opts...)
2803	return out, req.Send()
2804}
2805
2806const opDeleteResource = "DeleteResource"
2807
2808// DeleteResourceRequest generates a "aws/request.Request" representing the
2809// client's request for the DeleteResource operation. The "output" return
2810// value will be populated with the request's response once the request completes
2811// successfully.
2812//
2813// Use "Send" method on the returned Request to send the API call to the service.
2814// the "output" return value is not valid until after Send returns without error.
2815//
2816// See DeleteResource for more information on using the DeleteResource
2817// API call, and error handling.
2818//
2819// This method is useful when you want to inject custom logic or configuration
2820// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2821//
2822//
2823//    // Example sending a request using the DeleteResourceRequest method.
2824//    req, resp := client.DeleteResourceRequest(params)
2825//
2826//    err := req.Send()
2827//    if err == nil { // resp is now filled
2828//        fmt.Println(resp)
2829//    }
2830func (c *APIGateway) DeleteResourceRequest(input *DeleteResourceInput) (req *request.Request, output *DeleteResourceOutput) {
2831	op := &request.Operation{
2832		Name:       opDeleteResource,
2833		HTTPMethod: "DELETE",
2834		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}",
2835	}
2836
2837	if input == nil {
2838		input = &DeleteResourceInput{}
2839	}
2840
2841	output = &DeleteResourceOutput{}
2842	req = c.newRequest(op, input, output)
2843	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2844	return
2845}
2846
2847// DeleteResource API operation for Amazon API Gateway.
2848//
2849// Deletes a Resource resource.
2850//
2851// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2852// with awserr.Error's Code and Message methods to get detailed information about
2853// the error.
2854//
2855// See the AWS API reference guide for Amazon API Gateway's
2856// API operation DeleteResource for usage and error information.
2857//
2858// Returned Error Types:
2859//   * UnauthorizedException
2860//   The request is denied because the caller has insufficient permissions.
2861//
2862//   * NotFoundException
2863//   The requested resource is not found. Make sure that the request URI is correct.
2864//
2865//   * BadRequestException
2866//   The submitted request is not valid, for example, the input is incomplete
2867//   or incorrect. See the accompanying error message for details.
2868//
2869//   * ConflictException
2870//   The request configuration has conflicts. For details, see the accompanying
2871//   error message.
2872//
2873//   * TooManyRequestsException
2874//   The request has reached its throttling limit. Retry after the specified time
2875//   period.
2876//
2877func (c *APIGateway) DeleteResource(input *DeleteResourceInput) (*DeleteResourceOutput, error) {
2878	req, out := c.DeleteResourceRequest(input)
2879	return out, req.Send()
2880}
2881
2882// DeleteResourceWithContext is the same as DeleteResource with the addition of
2883// the ability to pass a context and additional request options.
2884//
2885// See DeleteResource for details on how to use this API operation.
2886//
2887// The context must be non-nil and will be used for request cancellation. If
2888// the context is nil a panic will occur. In the future the SDK may create
2889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2890// for more information on using Contexts.
2891func (c *APIGateway) DeleteResourceWithContext(ctx aws.Context, input *DeleteResourceInput, opts ...request.Option) (*DeleteResourceOutput, error) {
2892	req, out := c.DeleteResourceRequest(input)
2893	req.SetContext(ctx)
2894	req.ApplyOptions(opts...)
2895	return out, req.Send()
2896}
2897
2898const opDeleteRestApi = "DeleteRestApi"
2899
2900// DeleteRestApiRequest generates a "aws/request.Request" representing the
2901// client's request for the DeleteRestApi operation. The "output" return
2902// value will be populated with the request's response once the request completes
2903// successfully.
2904//
2905// Use "Send" method on the returned Request to send the API call to the service.
2906// the "output" return value is not valid until after Send returns without error.
2907//
2908// See DeleteRestApi for more information on using the DeleteRestApi
2909// API call, and error handling.
2910//
2911// This method is useful when you want to inject custom logic or configuration
2912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2913//
2914//
2915//    // Example sending a request using the DeleteRestApiRequest method.
2916//    req, resp := client.DeleteRestApiRequest(params)
2917//
2918//    err := req.Send()
2919//    if err == nil { // resp is now filled
2920//        fmt.Println(resp)
2921//    }
2922func (c *APIGateway) DeleteRestApiRequest(input *DeleteRestApiInput) (req *request.Request, output *DeleteRestApiOutput) {
2923	op := &request.Operation{
2924		Name:       opDeleteRestApi,
2925		HTTPMethod: "DELETE",
2926		HTTPPath:   "/restapis/{restapi_id}",
2927	}
2928
2929	if input == nil {
2930		input = &DeleteRestApiInput{}
2931	}
2932
2933	output = &DeleteRestApiOutput{}
2934	req = c.newRequest(op, input, output)
2935	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2936	return
2937}
2938
2939// DeleteRestApi API operation for Amazon API Gateway.
2940//
2941// Deletes the specified API.
2942//
2943// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2944// with awserr.Error's Code and Message methods to get detailed information about
2945// the error.
2946//
2947// See the AWS API reference guide for Amazon API Gateway's
2948// API operation DeleteRestApi for usage and error information.
2949//
2950// Returned Error Types:
2951//   * BadRequestException
2952//   The submitted request is not valid, for example, the input is incomplete
2953//   or incorrect. See the accompanying error message for details.
2954//
2955//   * ConflictException
2956//   The request configuration has conflicts. For details, see the accompanying
2957//   error message.
2958//
2959//   * NotFoundException
2960//   The requested resource is not found. Make sure that the request URI is correct.
2961//
2962//   * UnauthorizedException
2963//   The request is denied because the caller has insufficient permissions.
2964//
2965//   * TooManyRequestsException
2966//   The request has reached its throttling limit. Retry after the specified time
2967//   period.
2968//
2969func (c *APIGateway) DeleteRestApi(input *DeleteRestApiInput) (*DeleteRestApiOutput, error) {
2970	req, out := c.DeleteRestApiRequest(input)
2971	return out, req.Send()
2972}
2973
2974// DeleteRestApiWithContext is the same as DeleteRestApi with the addition of
2975// the ability to pass a context and additional request options.
2976//
2977// See DeleteRestApi for details on how to use this API operation.
2978//
2979// The context must be non-nil and will be used for request cancellation. If
2980// the context is nil a panic will occur. In the future the SDK may create
2981// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2982// for more information on using Contexts.
2983func (c *APIGateway) DeleteRestApiWithContext(ctx aws.Context, input *DeleteRestApiInput, opts ...request.Option) (*DeleteRestApiOutput, error) {
2984	req, out := c.DeleteRestApiRequest(input)
2985	req.SetContext(ctx)
2986	req.ApplyOptions(opts...)
2987	return out, req.Send()
2988}
2989
2990const opDeleteStage = "DeleteStage"
2991
2992// DeleteStageRequest generates a "aws/request.Request" representing the
2993// client's request for the DeleteStage operation. The "output" return
2994// value will be populated with the request's response once the request completes
2995// successfully.
2996//
2997// Use "Send" method on the returned Request to send the API call to the service.
2998// the "output" return value is not valid until after Send returns without error.
2999//
3000// See DeleteStage for more information on using the DeleteStage
3001// API call, and error handling.
3002//
3003// This method is useful when you want to inject custom logic or configuration
3004// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3005//
3006//
3007//    // Example sending a request using the DeleteStageRequest method.
3008//    req, resp := client.DeleteStageRequest(params)
3009//
3010//    err := req.Send()
3011//    if err == nil { // resp is now filled
3012//        fmt.Println(resp)
3013//    }
3014func (c *APIGateway) DeleteStageRequest(input *DeleteStageInput) (req *request.Request, output *DeleteStageOutput) {
3015	op := &request.Operation{
3016		Name:       opDeleteStage,
3017		HTTPMethod: "DELETE",
3018		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}",
3019	}
3020
3021	if input == nil {
3022		input = &DeleteStageInput{}
3023	}
3024
3025	output = &DeleteStageOutput{}
3026	req = c.newRequest(op, input, output)
3027	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3028	return
3029}
3030
3031// DeleteStage API operation for Amazon API Gateway.
3032//
3033// Deletes a Stage resource.
3034//
3035// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3036// with awserr.Error's Code and Message methods to get detailed information about
3037// the error.
3038//
3039// See the AWS API reference guide for Amazon API Gateway's
3040// API operation DeleteStage for usage and error information.
3041//
3042// Returned Error Types:
3043//   * BadRequestException
3044//   The submitted request is not valid, for example, the input is incomplete
3045//   or incorrect. See the accompanying error message for details.
3046//
3047//   * ConflictException
3048//   The request configuration has conflicts. For details, see the accompanying
3049//   error message.
3050//
3051//   * LimitExceededException
3052//   The request exceeded the rate limit. Retry after the specified time period.
3053//
3054//   * NotFoundException
3055//   The requested resource is not found. Make sure that the request URI is correct.
3056//
3057//   * UnauthorizedException
3058//   The request is denied because the caller has insufficient permissions.
3059//
3060//   * TooManyRequestsException
3061//   The request has reached its throttling limit. Retry after the specified time
3062//   period.
3063//
3064func (c *APIGateway) DeleteStage(input *DeleteStageInput) (*DeleteStageOutput, error) {
3065	req, out := c.DeleteStageRequest(input)
3066	return out, req.Send()
3067}
3068
3069// DeleteStageWithContext is the same as DeleteStage with the addition of
3070// the ability to pass a context and additional request options.
3071//
3072// See DeleteStage for details on how to use this API operation.
3073//
3074// The context must be non-nil and will be used for request cancellation. If
3075// the context is nil a panic will occur. In the future the SDK may create
3076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3077// for more information on using Contexts.
3078func (c *APIGateway) DeleteStageWithContext(ctx aws.Context, input *DeleteStageInput, opts ...request.Option) (*DeleteStageOutput, error) {
3079	req, out := c.DeleteStageRequest(input)
3080	req.SetContext(ctx)
3081	req.ApplyOptions(opts...)
3082	return out, req.Send()
3083}
3084
3085const opDeleteUsagePlan = "DeleteUsagePlan"
3086
3087// DeleteUsagePlanRequest generates a "aws/request.Request" representing the
3088// client's request for the DeleteUsagePlan operation. The "output" return
3089// value will be populated with the request's response once the request completes
3090// successfully.
3091//
3092// Use "Send" method on the returned Request to send the API call to the service.
3093// the "output" return value is not valid until after Send returns without error.
3094//
3095// See DeleteUsagePlan for more information on using the DeleteUsagePlan
3096// API call, and error handling.
3097//
3098// This method is useful when you want to inject custom logic or configuration
3099// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3100//
3101//
3102//    // Example sending a request using the DeleteUsagePlanRequest method.
3103//    req, resp := client.DeleteUsagePlanRequest(params)
3104//
3105//    err := req.Send()
3106//    if err == nil { // resp is now filled
3107//        fmt.Println(resp)
3108//    }
3109func (c *APIGateway) DeleteUsagePlanRequest(input *DeleteUsagePlanInput) (req *request.Request, output *DeleteUsagePlanOutput) {
3110	op := &request.Operation{
3111		Name:       opDeleteUsagePlan,
3112		HTTPMethod: "DELETE",
3113		HTTPPath:   "/usageplans/{usageplanId}",
3114	}
3115
3116	if input == nil {
3117		input = &DeleteUsagePlanInput{}
3118	}
3119
3120	output = &DeleteUsagePlanOutput{}
3121	req = c.newRequest(op, input, output)
3122	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3123	return
3124}
3125
3126// DeleteUsagePlan API operation for Amazon API Gateway.
3127//
3128// Deletes a usage plan of a given plan Id.
3129//
3130// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3131// with awserr.Error's Code and Message methods to get detailed information about
3132// the error.
3133//
3134// See the AWS API reference guide for Amazon API Gateway's
3135// API operation DeleteUsagePlan for usage and error information.
3136//
3137// Returned Error Types:
3138//   * BadRequestException
3139//   The submitted request is not valid, for example, the input is incomplete
3140//   or incorrect. See the accompanying error message for details.
3141//
3142//   * ConflictException
3143//   The request configuration has conflicts. For details, see the accompanying
3144//   error message.
3145//
3146//   * NotFoundException
3147//   The requested resource is not found. Make sure that the request URI is correct.
3148//
3149//   * UnauthorizedException
3150//   The request is denied because the caller has insufficient permissions.
3151//
3152//   * TooManyRequestsException
3153//   The request has reached its throttling limit. Retry after the specified time
3154//   period.
3155//
3156func (c *APIGateway) DeleteUsagePlan(input *DeleteUsagePlanInput) (*DeleteUsagePlanOutput, error) {
3157	req, out := c.DeleteUsagePlanRequest(input)
3158	return out, req.Send()
3159}
3160
3161// DeleteUsagePlanWithContext is the same as DeleteUsagePlan with the addition of
3162// the ability to pass a context and additional request options.
3163//
3164// See DeleteUsagePlan for details on how to use this API operation.
3165//
3166// The context must be non-nil and will be used for request cancellation. If
3167// the context is nil a panic will occur. In the future the SDK may create
3168// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3169// for more information on using Contexts.
3170func (c *APIGateway) DeleteUsagePlanWithContext(ctx aws.Context, input *DeleteUsagePlanInput, opts ...request.Option) (*DeleteUsagePlanOutput, error) {
3171	req, out := c.DeleteUsagePlanRequest(input)
3172	req.SetContext(ctx)
3173	req.ApplyOptions(opts...)
3174	return out, req.Send()
3175}
3176
3177const opDeleteUsagePlanKey = "DeleteUsagePlanKey"
3178
3179// DeleteUsagePlanKeyRequest generates a "aws/request.Request" representing the
3180// client's request for the DeleteUsagePlanKey operation. The "output" return
3181// value will be populated with the request's response once the request completes
3182// successfully.
3183//
3184// Use "Send" method on the returned Request to send the API call to the service.
3185// the "output" return value is not valid until after Send returns without error.
3186//
3187// See DeleteUsagePlanKey for more information on using the DeleteUsagePlanKey
3188// API call, and error handling.
3189//
3190// This method is useful when you want to inject custom logic or configuration
3191// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3192//
3193//
3194//    // Example sending a request using the DeleteUsagePlanKeyRequest method.
3195//    req, resp := client.DeleteUsagePlanKeyRequest(params)
3196//
3197//    err := req.Send()
3198//    if err == nil { // resp is now filled
3199//        fmt.Println(resp)
3200//    }
3201func (c *APIGateway) DeleteUsagePlanKeyRequest(input *DeleteUsagePlanKeyInput) (req *request.Request, output *DeleteUsagePlanKeyOutput) {
3202	op := &request.Operation{
3203		Name:       opDeleteUsagePlanKey,
3204		HTTPMethod: "DELETE",
3205		HTTPPath:   "/usageplans/{usageplanId}/keys/{keyId}",
3206	}
3207
3208	if input == nil {
3209		input = &DeleteUsagePlanKeyInput{}
3210	}
3211
3212	output = &DeleteUsagePlanKeyOutput{}
3213	req = c.newRequest(op, input, output)
3214	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3215	return
3216}
3217
3218// DeleteUsagePlanKey API operation for Amazon API Gateway.
3219//
3220// Deletes a usage plan key and remove the underlying API key from the associated
3221// usage plan.
3222//
3223// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3224// with awserr.Error's Code and Message methods to get detailed information about
3225// the error.
3226//
3227// See the AWS API reference guide for Amazon API Gateway's
3228// API operation DeleteUsagePlanKey for usage and error information.
3229//
3230// Returned Error Types:
3231//   * BadRequestException
3232//   The submitted request is not valid, for example, the input is incomplete
3233//   or incorrect. See the accompanying error message for details.
3234//
3235//   * ConflictException
3236//   The request configuration has conflicts. For details, see the accompanying
3237//   error message.
3238//
3239//   * NotFoundException
3240//   The requested resource is not found. Make sure that the request URI is correct.
3241//
3242//   * UnauthorizedException
3243//   The request is denied because the caller has insufficient permissions.
3244//
3245//   * TooManyRequestsException
3246//   The request has reached its throttling limit. Retry after the specified time
3247//   period.
3248//
3249func (c *APIGateway) DeleteUsagePlanKey(input *DeleteUsagePlanKeyInput) (*DeleteUsagePlanKeyOutput, error) {
3250	req, out := c.DeleteUsagePlanKeyRequest(input)
3251	return out, req.Send()
3252}
3253
3254// DeleteUsagePlanKeyWithContext is the same as DeleteUsagePlanKey with the addition of
3255// the ability to pass a context and additional request options.
3256//
3257// See DeleteUsagePlanKey for details on how to use this API operation.
3258//
3259// The context must be non-nil and will be used for request cancellation. If
3260// the context is nil a panic will occur. In the future the SDK may create
3261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3262// for more information on using Contexts.
3263func (c *APIGateway) DeleteUsagePlanKeyWithContext(ctx aws.Context, input *DeleteUsagePlanKeyInput, opts ...request.Option) (*DeleteUsagePlanKeyOutput, error) {
3264	req, out := c.DeleteUsagePlanKeyRequest(input)
3265	req.SetContext(ctx)
3266	req.ApplyOptions(opts...)
3267	return out, req.Send()
3268}
3269
3270const opDeleteVpcLink = "DeleteVpcLink"
3271
3272// DeleteVpcLinkRequest generates a "aws/request.Request" representing the
3273// client's request for the DeleteVpcLink operation. The "output" return
3274// value will be populated with the request's response once the request completes
3275// successfully.
3276//
3277// Use "Send" method on the returned Request to send the API call to the service.
3278// the "output" return value is not valid until after Send returns without error.
3279//
3280// See DeleteVpcLink for more information on using the DeleteVpcLink
3281// API call, and error handling.
3282//
3283// This method is useful when you want to inject custom logic or configuration
3284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3285//
3286//
3287//    // Example sending a request using the DeleteVpcLinkRequest method.
3288//    req, resp := client.DeleteVpcLinkRequest(params)
3289//
3290//    err := req.Send()
3291//    if err == nil { // resp is now filled
3292//        fmt.Println(resp)
3293//    }
3294func (c *APIGateway) DeleteVpcLinkRequest(input *DeleteVpcLinkInput) (req *request.Request, output *DeleteVpcLinkOutput) {
3295	op := &request.Operation{
3296		Name:       opDeleteVpcLink,
3297		HTTPMethod: "DELETE",
3298		HTTPPath:   "/vpclinks/{vpclink_id}",
3299	}
3300
3301	if input == nil {
3302		input = &DeleteVpcLinkInput{}
3303	}
3304
3305	output = &DeleteVpcLinkOutput{}
3306	req = c.newRequest(op, input, output)
3307	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3308	return
3309}
3310
3311// DeleteVpcLink API operation for Amazon API Gateway.
3312//
3313// Deletes an existing VpcLink of a specified identifier.
3314//
3315// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3316// with awserr.Error's Code and Message methods to get detailed information about
3317// the error.
3318//
3319// See the AWS API reference guide for Amazon API Gateway's
3320// API operation DeleteVpcLink for usage and error information.
3321//
3322// Returned Error Types:
3323//   * BadRequestException
3324//   The submitted request is not valid, for example, the input is incomplete
3325//   or incorrect. See the accompanying error message for details.
3326//
3327//   * ConflictException
3328//   The request configuration has conflicts. For details, see the accompanying
3329//   error message.
3330//
3331//   * NotFoundException
3332//   The requested resource is not found. Make sure that the request URI is correct.
3333//
3334//   * UnauthorizedException
3335//   The request is denied because the caller has insufficient permissions.
3336//
3337//   * TooManyRequestsException
3338//   The request has reached its throttling limit. Retry after the specified time
3339//   period.
3340//
3341func (c *APIGateway) DeleteVpcLink(input *DeleteVpcLinkInput) (*DeleteVpcLinkOutput, error) {
3342	req, out := c.DeleteVpcLinkRequest(input)
3343	return out, req.Send()
3344}
3345
3346// DeleteVpcLinkWithContext is the same as DeleteVpcLink with the addition of
3347// the ability to pass a context and additional request options.
3348//
3349// See DeleteVpcLink for details on how to use this API operation.
3350//
3351// The context must be non-nil and will be used for request cancellation. If
3352// the context is nil a panic will occur. In the future the SDK may create
3353// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3354// for more information on using Contexts.
3355func (c *APIGateway) DeleteVpcLinkWithContext(ctx aws.Context, input *DeleteVpcLinkInput, opts ...request.Option) (*DeleteVpcLinkOutput, error) {
3356	req, out := c.DeleteVpcLinkRequest(input)
3357	req.SetContext(ctx)
3358	req.ApplyOptions(opts...)
3359	return out, req.Send()
3360}
3361
3362const opFlushStageAuthorizersCache = "FlushStageAuthorizersCache"
3363
3364// FlushStageAuthorizersCacheRequest generates a "aws/request.Request" representing the
3365// client's request for the FlushStageAuthorizersCache operation. The "output" return
3366// value will be populated with the request's response once the request completes
3367// successfully.
3368//
3369// Use "Send" method on the returned Request to send the API call to the service.
3370// the "output" return value is not valid until after Send returns without error.
3371//
3372// See FlushStageAuthorizersCache for more information on using the FlushStageAuthorizersCache
3373// API call, and error handling.
3374//
3375// This method is useful when you want to inject custom logic or configuration
3376// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3377//
3378//
3379//    // Example sending a request using the FlushStageAuthorizersCacheRequest method.
3380//    req, resp := client.FlushStageAuthorizersCacheRequest(params)
3381//
3382//    err := req.Send()
3383//    if err == nil { // resp is now filled
3384//        fmt.Println(resp)
3385//    }
3386func (c *APIGateway) FlushStageAuthorizersCacheRequest(input *FlushStageAuthorizersCacheInput) (req *request.Request, output *FlushStageAuthorizersCacheOutput) {
3387	op := &request.Operation{
3388		Name:       opFlushStageAuthorizersCache,
3389		HTTPMethod: "DELETE",
3390		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/cache/authorizers",
3391	}
3392
3393	if input == nil {
3394		input = &FlushStageAuthorizersCacheInput{}
3395	}
3396
3397	output = &FlushStageAuthorizersCacheOutput{}
3398	req = c.newRequest(op, input, output)
3399	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3400	return
3401}
3402
3403// FlushStageAuthorizersCache API operation for Amazon API Gateway.
3404//
3405// Flushes all authorizer cache entries on a stage.
3406//
3407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3408// with awserr.Error's Code and Message methods to get detailed information about
3409// the error.
3410//
3411// See the AWS API reference guide for Amazon API Gateway's
3412// API operation FlushStageAuthorizersCache for usage and error information.
3413//
3414// Returned Error Types:
3415//   * BadRequestException
3416//   The submitted request is not valid, for example, the input is incomplete
3417//   or incorrect. See the accompanying error message for details.
3418//
3419//   * ConflictException
3420//   The request configuration has conflicts. For details, see the accompanying
3421//   error message.
3422//
3423//   * LimitExceededException
3424//   The request exceeded the rate limit. Retry after the specified time period.
3425//
3426//   * NotFoundException
3427//   The requested resource is not found. Make sure that the request URI is correct.
3428//
3429//   * UnauthorizedException
3430//   The request is denied because the caller has insufficient permissions.
3431//
3432//   * TooManyRequestsException
3433//   The request has reached its throttling limit. Retry after the specified time
3434//   period.
3435//
3436func (c *APIGateway) FlushStageAuthorizersCache(input *FlushStageAuthorizersCacheInput) (*FlushStageAuthorizersCacheOutput, error) {
3437	req, out := c.FlushStageAuthorizersCacheRequest(input)
3438	return out, req.Send()
3439}
3440
3441// FlushStageAuthorizersCacheWithContext is the same as FlushStageAuthorizersCache with the addition of
3442// the ability to pass a context and additional request options.
3443//
3444// See FlushStageAuthorizersCache for details on how to use this API operation.
3445//
3446// The context must be non-nil and will be used for request cancellation. If
3447// the context is nil a panic will occur. In the future the SDK may create
3448// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3449// for more information on using Contexts.
3450func (c *APIGateway) FlushStageAuthorizersCacheWithContext(ctx aws.Context, input *FlushStageAuthorizersCacheInput, opts ...request.Option) (*FlushStageAuthorizersCacheOutput, error) {
3451	req, out := c.FlushStageAuthorizersCacheRequest(input)
3452	req.SetContext(ctx)
3453	req.ApplyOptions(opts...)
3454	return out, req.Send()
3455}
3456
3457const opFlushStageCache = "FlushStageCache"
3458
3459// FlushStageCacheRequest generates a "aws/request.Request" representing the
3460// client's request for the FlushStageCache operation. The "output" return
3461// value will be populated with the request's response once the request completes
3462// successfully.
3463//
3464// Use "Send" method on the returned Request to send the API call to the service.
3465// the "output" return value is not valid until after Send returns without error.
3466//
3467// See FlushStageCache for more information on using the FlushStageCache
3468// API call, and error handling.
3469//
3470// This method is useful when you want to inject custom logic or configuration
3471// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3472//
3473//
3474//    // Example sending a request using the FlushStageCacheRequest method.
3475//    req, resp := client.FlushStageCacheRequest(params)
3476//
3477//    err := req.Send()
3478//    if err == nil { // resp is now filled
3479//        fmt.Println(resp)
3480//    }
3481func (c *APIGateway) FlushStageCacheRequest(input *FlushStageCacheInput) (req *request.Request, output *FlushStageCacheOutput) {
3482	op := &request.Operation{
3483		Name:       opFlushStageCache,
3484		HTTPMethod: "DELETE",
3485		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/cache/data",
3486	}
3487
3488	if input == nil {
3489		input = &FlushStageCacheInput{}
3490	}
3491
3492	output = &FlushStageCacheOutput{}
3493	req = c.newRequest(op, input, output)
3494	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3495	return
3496}
3497
3498// FlushStageCache API operation for Amazon API Gateway.
3499//
3500// Flushes a stage's cache.
3501//
3502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3503// with awserr.Error's Code and Message methods to get detailed information about
3504// the error.
3505//
3506// See the AWS API reference guide for Amazon API Gateway's
3507// API operation FlushStageCache for usage and error information.
3508//
3509// Returned Error Types:
3510//   * BadRequestException
3511//   The submitted request is not valid, for example, the input is incomplete
3512//   or incorrect. See the accompanying error message for details.
3513//
3514//   * ConflictException
3515//   The request configuration has conflicts. For details, see the accompanying
3516//   error message.
3517//
3518//   * LimitExceededException
3519//   The request exceeded the rate limit. Retry after the specified time period.
3520//
3521//   * NotFoundException
3522//   The requested resource is not found. Make sure that the request URI is correct.
3523//
3524//   * UnauthorizedException
3525//   The request is denied because the caller has insufficient permissions.
3526//
3527//   * TooManyRequestsException
3528//   The request has reached its throttling limit. Retry after the specified time
3529//   period.
3530//
3531func (c *APIGateway) FlushStageCache(input *FlushStageCacheInput) (*FlushStageCacheOutput, error) {
3532	req, out := c.FlushStageCacheRequest(input)
3533	return out, req.Send()
3534}
3535
3536// FlushStageCacheWithContext is the same as FlushStageCache with the addition of
3537// the ability to pass a context and additional request options.
3538//
3539// See FlushStageCache for details on how to use this API operation.
3540//
3541// The context must be non-nil and will be used for request cancellation. If
3542// the context is nil a panic will occur. In the future the SDK may create
3543// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3544// for more information on using Contexts.
3545func (c *APIGateway) FlushStageCacheWithContext(ctx aws.Context, input *FlushStageCacheInput, opts ...request.Option) (*FlushStageCacheOutput, error) {
3546	req, out := c.FlushStageCacheRequest(input)
3547	req.SetContext(ctx)
3548	req.ApplyOptions(opts...)
3549	return out, req.Send()
3550}
3551
3552const opGenerateClientCertificate = "GenerateClientCertificate"
3553
3554// GenerateClientCertificateRequest generates a "aws/request.Request" representing the
3555// client's request for the GenerateClientCertificate operation. The "output" return
3556// value will be populated with the request's response once the request completes
3557// successfully.
3558//
3559// Use "Send" method on the returned Request to send the API call to the service.
3560// the "output" return value is not valid until after Send returns without error.
3561//
3562// See GenerateClientCertificate for more information on using the GenerateClientCertificate
3563// API call, and error handling.
3564//
3565// This method is useful when you want to inject custom logic or configuration
3566// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3567//
3568//
3569//    // Example sending a request using the GenerateClientCertificateRequest method.
3570//    req, resp := client.GenerateClientCertificateRequest(params)
3571//
3572//    err := req.Send()
3573//    if err == nil { // resp is now filled
3574//        fmt.Println(resp)
3575//    }
3576func (c *APIGateway) GenerateClientCertificateRequest(input *GenerateClientCertificateInput) (req *request.Request, output *ClientCertificate) {
3577	op := &request.Operation{
3578		Name:       opGenerateClientCertificate,
3579		HTTPMethod: "POST",
3580		HTTPPath:   "/clientcertificates",
3581	}
3582
3583	if input == nil {
3584		input = &GenerateClientCertificateInput{}
3585	}
3586
3587	output = &ClientCertificate{}
3588	req = c.newRequest(op, input, output)
3589	return
3590}
3591
3592// GenerateClientCertificate API operation for Amazon API Gateway.
3593//
3594// Generates a ClientCertificate resource.
3595//
3596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3597// with awserr.Error's Code and Message methods to get detailed information about
3598// the error.
3599//
3600// See the AWS API reference guide for Amazon API Gateway's
3601// API operation GenerateClientCertificate for usage and error information.
3602//
3603// Returned Error Types:
3604//   * BadRequestException
3605//   The submitted request is not valid, for example, the input is incomplete
3606//   or incorrect. See the accompanying error message for details.
3607//
3608//   * ConflictException
3609//   The request configuration has conflicts. For details, see the accompanying
3610//   error message.
3611//
3612//   * LimitExceededException
3613//   The request exceeded the rate limit. Retry after the specified time period.
3614//
3615//   * UnauthorizedException
3616//   The request is denied because the caller has insufficient permissions.
3617//
3618//   * TooManyRequestsException
3619//   The request has reached its throttling limit. Retry after the specified time
3620//   period.
3621//
3622func (c *APIGateway) GenerateClientCertificate(input *GenerateClientCertificateInput) (*ClientCertificate, error) {
3623	req, out := c.GenerateClientCertificateRequest(input)
3624	return out, req.Send()
3625}
3626
3627// GenerateClientCertificateWithContext is the same as GenerateClientCertificate with the addition of
3628// the ability to pass a context and additional request options.
3629//
3630// See GenerateClientCertificate for details on how to use this API operation.
3631//
3632// The context must be non-nil and will be used for request cancellation. If
3633// the context is nil a panic will occur. In the future the SDK may create
3634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3635// for more information on using Contexts.
3636func (c *APIGateway) GenerateClientCertificateWithContext(ctx aws.Context, input *GenerateClientCertificateInput, opts ...request.Option) (*ClientCertificate, error) {
3637	req, out := c.GenerateClientCertificateRequest(input)
3638	req.SetContext(ctx)
3639	req.ApplyOptions(opts...)
3640	return out, req.Send()
3641}
3642
3643const opGetAccount = "GetAccount"
3644
3645// GetAccountRequest generates a "aws/request.Request" representing the
3646// client's request for the GetAccount operation. The "output" return
3647// value will be populated with the request's response once the request completes
3648// successfully.
3649//
3650// Use "Send" method on the returned Request to send the API call to the service.
3651// the "output" return value is not valid until after Send returns without error.
3652//
3653// See GetAccount for more information on using the GetAccount
3654// API call, and error handling.
3655//
3656// This method is useful when you want to inject custom logic or configuration
3657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3658//
3659//
3660//    // Example sending a request using the GetAccountRequest method.
3661//    req, resp := client.GetAccountRequest(params)
3662//
3663//    err := req.Send()
3664//    if err == nil { // resp is now filled
3665//        fmt.Println(resp)
3666//    }
3667func (c *APIGateway) GetAccountRequest(input *GetAccountInput) (req *request.Request, output *Account) {
3668	op := &request.Operation{
3669		Name:       opGetAccount,
3670		HTTPMethod: "GET",
3671		HTTPPath:   "/account",
3672	}
3673
3674	if input == nil {
3675		input = &GetAccountInput{}
3676	}
3677
3678	output = &Account{}
3679	req = c.newRequest(op, input, output)
3680	return
3681}
3682
3683// GetAccount API operation for Amazon API Gateway.
3684//
3685// Gets information about the current Account resource.
3686//
3687// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3688// with awserr.Error's Code and Message methods to get detailed information about
3689// the error.
3690//
3691// See the AWS API reference guide for Amazon API Gateway's
3692// API operation GetAccount for usage and error information.
3693//
3694// Returned Error Types:
3695//   * BadRequestException
3696//   The submitted request is not valid, for example, the input is incomplete
3697//   or incorrect. See the accompanying error message for details.
3698//
3699//   * NotFoundException
3700//   The requested resource is not found. Make sure that the request URI is correct.
3701//
3702//   * UnauthorizedException
3703//   The request is denied because the caller has insufficient permissions.
3704//
3705//   * TooManyRequestsException
3706//   The request has reached its throttling limit. Retry after the specified time
3707//   period.
3708//
3709func (c *APIGateway) GetAccount(input *GetAccountInput) (*Account, error) {
3710	req, out := c.GetAccountRequest(input)
3711	return out, req.Send()
3712}
3713
3714// GetAccountWithContext is the same as GetAccount with the addition of
3715// the ability to pass a context and additional request options.
3716//
3717// See GetAccount for details on how to use this API operation.
3718//
3719// The context must be non-nil and will be used for request cancellation. If
3720// the context is nil a panic will occur. In the future the SDK may create
3721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3722// for more information on using Contexts.
3723func (c *APIGateway) GetAccountWithContext(ctx aws.Context, input *GetAccountInput, opts ...request.Option) (*Account, error) {
3724	req, out := c.GetAccountRequest(input)
3725	req.SetContext(ctx)
3726	req.ApplyOptions(opts...)
3727	return out, req.Send()
3728}
3729
3730const opGetApiKey = "GetApiKey"
3731
3732// GetApiKeyRequest generates a "aws/request.Request" representing the
3733// client's request for the GetApiKey operation. The "output" return
3734// value will be populated with the request's response once the request completes
3735// successfully.
3736//
3737// Use "Send" method on the returned Request to send the API call to the service.
3738// the "output" return value is not valid until after Send returns without error.
3739//
3740// See GetApiKey for more information on using the GetApiKey
3741// API call, and error handling.
3742//
3743// This method is useful when you want to inject custom logic or configuration
3744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3745//
3746//
3747//    // Example sending a request using the GetApiKeyRequest method.
3748//    req, resp := client.GetApiKeyRequest(params)
3749//
3750//    err := req.Send()
3751//    if err == nil { // resp is now filled
3752//        fmt.Println(resp)
3753//    }
3754func (c *APIGateway) GetApiKeyRequest(input *GetApiKeyInput) (req *request.Request, output *ApiKey) {
3755	op := &request.Operation{
3756		Name:       opGetApiKey,
3757		HTTPMethod: "GET",
3758		HTTPPath:   "/apikeys/{api_Key}",
3759	}
3760
3761	if input == nil {
3762		input = &GetApiKeyInput{}
3763	}
3764
3765	output = &ApiKey{}
3766	req = c.newRequest(op, input, output)
3767	return
3768}
3769
3770// GetApiKey API operation for Amazon API Gateway.
3771//
3772// Gets information about the current ApiKey resource.
3773//
3774// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3775// with awserr.Error's Code and Message methods to get detailed information about
3776// the error.
3777//
3778// See the AWS API reference guide for Amazon API Gateway's
3779// API operation GetApiKey for usage and error information.
3780//
3781// Returned Error Types:
3782//   * BadRequestException
3783//   The submitted request is not valid, for example, the input is incomplete
3784//   or incorrect. See the accompanying error message for details.
3785//
3786//   * NotFoundException
3787//   The requested resource is not found. Make sure that the request URI is correct.
3788//
3789//   * UnauthorizedException
3790//   The request is denied because the caller has insufficient permissions.
3791//
3792//   * TooManyRequestsException
3793//   The request has reached its throttling limit. Retry after the specified time
3794//   period.
3795//
3796func (c *APIGateway) GetApiKey(input *GetApiKeyInput) (*ApiKey, error) {
3797	req, out := c.GetApiKeyRequest(input)
3798	return out, req.Send()
3799}
3800
3801// GetApiKeyWithContext is the same as GetApiKey with the addition of
3802// the ability to pass a context and additional request options.
3803//
3804// See GetApiKey for details on how to use this API operation.
3805//
3806// The context must be non-nil and will be used for request cancellation. If
3807// the context is nil a panic will occur. In the future the SDK may create
3808// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3809// for more information on using Contexts.
3810func (c *APIGateway) GetApiKeyWithContext(ctx aws.Context, input *GetApiKeyInput, opts ...request.Option) (*ApiKey, error) {
3811	req, out := c.GetApiKeyRequest(input)
3812	req.SetContext(ctx)
3813	req.ApplyOptions(opts...)
3814	return out, req.Send()
3815}
3816
3817const opGetApiKeys = "GetApiKeys"
3818
3819// GetApiKeysRequest generates a "aws/request.Request" representing the
3820// client's request for the GetApiKeys operation. The "output" return
3821// value will be populated with the request's response once the request completes
3822// successfully.
3823//
3824// Use "Send" method on the returned Request to send the API call to the service.
3825// the "output" return value is not valid until after Send returns without error.
3826//
3827// See GetApiKeys for more information on using the GetApiKeys
3828// API call, and error handling.
3829//
3830// This method is useful when you want to inject custom logic or configuration
3831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3832//
3833//
3834//    // Example sending a request using the GetApiKeysRequest method.
3835//    req, resp := client.GetApiKeysRequest(params)
3836//
3837//    err := req.Send()
3838//    if err == nil { // resp is now filled
3839//        fmt.Println(resp)
3840//    }
3841func (c *APIGateway) GetApiKeysRequest(input *GetApiKeysInput) (req *request.Request, output *GetApiKeysOutput) {
3842	op := &request.Operation{
3843		Name:       opGetApiKeys,
3844		HTTPMethod: "GET",
3845		HTTPPath:   "/apikeys",
3846		Paginator: &request.Paginator{
3847			InputTokens:     []string{"position"},
3848			OutputTokens:    []string{"position"},
3849			LimitToken:      "limit",
3850			TruncationToken: "",
3851		},
3852	}
3853
3854	if input == nil {
3855		input = &GetApiKeysInput{}
3856	}
3857
3858	output = &GetApiKeysOutput{}
3859	req = c.newRequest(op, input, output)
3860	return
3861}
3862
3863// GetApiKeys API operation for Amazon API Gateway.
3864//
3865// Gets information about the current ApiKeys resource.
3866//
3867// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3868// with awserr.Error's Code and Message methods to get detailed information about
3869// the error.
3870//
3871// See the AWS API reference guide for Amazon API Gateway's
3872// API operation GetApiKeys for usage and error information.
3873//
3874// Returned Error Types:
3875//   * BadRequestException
3876//   The submitted request is not valid, for example, the input is incomplete
3877//   or incorrect. See the accompanying error message for details.
3878//
3879//   * NotFoundException
3880//   The requested resource is not found. Make sure that the request URI is correct.
3881//
3882//   * UnauthorizedException
3883//   The request is denied because the caller has insufficient permissions.
3884//
3885//   * TooManyRequestsException
3886//   The request has reached its throttling limit. Retry after the specified time
3887//   period.
3888//
3889func (c *APIGateway) GetApiKeys(input *GetApiKeysInput) (*GetApiKeysOutput, error) {
3890	req, out := c.GetApiKeysRequest(input)
3891	return out, req.Send()
3892}
3893
3894// GetApiKeysWithContext is the same as GetApiKeys with the addition of
3895// the ability to pass a context and additional request options.
3896//
3897// See GetApiKeys for details on how to use this API operation.
3898//
3899// The context must be non-nil and will be used for request cancellation. If
3900// the context is nil a panic will occur. In the future the SDK may create
3901// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3902// for more information on using Contexts.
3903func (c *APIGateway) GetApiKeysWithContext(ctx aws.Context, input *GetApiKeysInput, opts ...request.Option) (*GetApiKeysOutput, error) {
3904	req, out := c.GetApiKeysRequest(input)
3905	req.SetContext(ctx)
3906	req.ApplyOptions(opts...)
3907	return out, req.Send()
3908}
3909
3910// GetApiKeysPages iterates over the pages of a GetApiKeys operation,
3911// calling the "fn" function with the response data for each page. To stop
3912// iterating, return false from the fn function.
3913//
3914// See GetApiKeys method for more information on how to use this operation.
3915//
3916// Note: This operation can generate multiple requests to a service.
3917//
3918//    // Example iterating over at most 3 pages of a GetApiKeys operation.
3919//    pageNum := 0
3920//    err := client.GetApiKeysPages(params,
3921//        func(page *apigateway.GetApiKeysOutput, lastPage bool) bool {
3922//            pageNum++
3923//            fmt.Println(page)
3924//            return pageNum <= 3
3925//        })
3926//
3927func (c *APIGateway) GetApiKeysPages(input *GetApiKeysInput, fn func(*GetApiKeysOutput, bool) bool) error {
3928	return c.GetApiKeysPagesWithContext(aws.BackgroundContext(), input, fn)
3929}
3930
3931// GetApiKeysPagesWithContext same as GetApiKeysPages except
3932// it takes a Context and allows setting request options on the pages.
3933//
3934// The context must be non-nil and will be used for request cancellation. If
3935// the context is nil a panic will occur. In the future the SDK may create
3936// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3937// for more information on using Contexts.
3938func (c *APIGateway) GetApiKeysPagesWithContext(ctx aws.Context, input *GetApiKeysInput, fn func(*GetApiKeysOutput, bool) bool, opts ...request.Option) error {
3939	p := request.Pagination{
3940		NewRequest: func() (*request.Request, error) {
3941			var inCpy *GetApiKeysInput
3942			if input != nil {
3943				tmp := *input
3944				inCpy = &tmp
3945			}
3946			req, _ := c.GetApiKeysRequest(inCpy)
3947			req.SetContext(ctx)
3948			req.ApplyOptions(opts...)
3949			return req, nil
3950		},
3951	}
3952
3953	for p.Next() {
3954		if !fn(p.Page().(*GetApiKeysOutput), !p.HasNextPage()) {
3955			break
3956		}
3957	}
3958
3959	return p.Err()
3960}
3961
3962const opGetAuthorizer = "GetAuthorizer"
3963
3964// GetAuthorizerRequest generates a "aws/request.Request" representing the
3965// client's request for the GetAuthorizer operation. The "output" return
3966// value will be populated with the request's response once the request completes
3967// successfully.
3968//
3969// Use "Send" method on the returned Request to send the API call to the service.
3970// the "output" return value is not valid until after Send returns without error.
3971//
3972// See GetAuthorizer for more information on using the GetAuthorizer
3973// API call, and error handling.
3974//
3975// This method is useful when you want to inject custom logic or configuration
3976// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3977//
3978//
3979//    // Example sending a request using the GetAuthorizerRequest method.
3980//    req, resp := client.GetAuthorizerRequest(params)
3981//
3982//    err := req.Send()
3983//    if err == nil { // resp is now filled
3984//        fmt.Println(resp)
3985//    }
3986func (c *APIGateway) GetAuthorizerRequest(input *GetAuthorizerInput) (req *request.Request, output *Authorizer) {
3987	op := &request.Operation{
3988		Name:       opGetAuthorizer,
3989		HTTPMethod: "GET",
3990		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
3991	}
3992
3993	if input == nil {
3994		input = &GetAuthorizerInput{}
3995	}
3996
3997	output = &Authorizer{}
3998	req = c.newRequest(op, input, output)
3999	return
4000}
4001
4002// GetAuthorizer API operation for Amazon API Gateway.
4003//
4004// Describe an existing Authorizer resource.
4005//
4006// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-authorizer.html)
4007//
4008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4009// with awserr.Error's Code and Message methods to get detailed information about
4010// the error.
4011//
4012// See the AWS API reference guide for Amazon API Gateway's
4013// API operation GetAuthorizer for usage and error information.
4014//
4015// Returned Error Types:
4016//   * BadRequestException
4017//   The submitted request is not valid, for example, the input is incomplete
4018//   or incorrect. See the accompanying error message for details.
4019//
4020//   * NotFoundException
4021//   The requested resource is not found. Make sure that the request URI is correct.
4022//
4023//   * UnauthorizedException
4024//   The request is denied because the caller has insufficient permissions.
4025//
4026//   * TooManyRequestsException
4027//   The request has reached its throttling limit. Retry after the specified time
4028//   period.
4029//
4030func (c *APIGateway) GetAuthorizer(input *GetAuthorizerInput) (*Authorizer, error) {
4031	req, out := c.GetAuthorizerRequest(input)
4032	return out, req.Send()
4033}
4034
4035// GetAuthorizerWithContext is the same as GetAuthorizer with the addition of
4036// the ability to pass a context and additional request options.
4037//
4038// See GetAuthorizer for details on how to use this API operation.
4039//
4040// The context must be non-nil and will be used for request cancellation. If
4041// the context is nil a panic will occur. In the future the SDK may create
4042// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4043// for more information on using Contexts.
4044func (c *APIGateway) GetAuthorizerWithContext(ctx aws.Context, input *GetAuthorizerInput, opts ...request.Option) (*Authorizer, error) {
4045	req, out := c.GetAuthorizerRequest(input)
4046	req.SetContext(ctx)
4047	req.ApplyOptions(opts...)
4048	return out, req.Send()
4049}
4050
4051const opGetAuthorizers = "GetAuthorizers"
4052
4053// GetAuthorizersRequest generates a "aws/request.Request" representing the
4054// client's request for the GetAuthorizers operation. The "output" return
4055// value will be populated with the request's response once the request completes
4056// successfully.
4057//
4058// Use "Send" method on the returned Request to send the API call to the service.
4059// the "output" return value is not valid until after Send returns without error.
4060//
4061// See GetAuthorizers for more information on using the GetAuthorizers
4062// API call, and error handling.
4063//
4064// This method is useful when you want to inject custom logic or configuration
4065// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4066//
4067//
4068//    // Example sending a request using the GetAuthorizersRequest method.
4069//    req, resp := client.GetAuthorizersRequest(params)
4070//
4071//    err := req.Send()
4072//    if err == nil { // resp is now filled
4073//        fmt.Println(resp)
4074//    }
4075func (c *APIGateway) GetAuthorizersRequest(input *GetAuthorizersInput) (req *request.Request, output *GetAuthorizersOutput) {
4076	op := &request.Operation{
4077		Name:       opGetAuthorizers,
4078		HTTPMethod: "GET",
4079		HTTPPath:   "/restapis/{restapi_id}/authorizers",
4080	}
4081
4082	if input == nil {
4083		input = &GetAuthorizersInput{}
4084	}
4085
4086	output = &GetAuthorizersOutput{}
4087	req = c.newRequest(op, input, output)
4088	return
4089}
4090
4091// GetAuthorizers API operation for Amazon API Gateway.
4092//
4093// Describe an existing Authorizers resource.
4094//
4095// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-authorizers.html)
4096//
4097// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4098// with awserr.Error's Code and Message methods to get detailed information about
4099// the error.
4100//
4101// See the AWS API reference guide for Amazon API Gateway's
4102// API operation GetAuthorizers for usage and error information.
4103//
4104// Returned Error Types:
4105//   * BadRequestException
4106//   The submitted request is not valid, for example, the input is incomplete
4107//   or incorrect. See the accompanying error message for details.
4108//
4109//   * NotFoundException
4110//   The requested resource is not found. Make sure that the request URI is correct.
4111//
4112//   * UnauthorizedException
4113//   The request is denied because the caller has insufficient permissions.
4114//
4115//   * TooManyRequestsException
4116//   The request has reached its throttling limit. Retry after the specified time
4117//   period.
4118//
4119func (c *APIGateway) GetAuthorizers(input *GetAuthorizersInput) (*GetAuthorizersOutput, error) {
4120	req, out := c.GetAuthorizersRequest(input)
4121	return out, req.Send()
4122}
4123
4124// GetAuthorizersWithContext is the same as GetAuthorizers with the addition of
4125// the ability to pass a context and additional request options.
4126//
4127// See GetAuthorizers for details on how to use this API operation.
4128//
4129// The context must be non-nil and will be used for request cancellation. If
4130// the context is nil a panic will occur. In the future the SDK may create
4131// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4132// for more information on using Contexts.
4133func (c *APIGateway) GetAuthorizersWithContext(ctx aws.Context, input *GetAuthorizersInput, opts ...request.Option) (*GetAuthorizersOutput, error) {
4134	req, out := c.GetAuthorizersRequest(input)
4135	req.SetContext(ctx)
4136	req.ApplyOptions(opts...)
4137	return out, req.Send()
4138}
4139
4140const opGetBasePathMapping = "GetBasePathMapping"
4141
4142// GetBasePathMappingRequest generates a "aws/request.Request" representing the
4143// client's request for the GetBasePathMapping operation. The "output" return
4144// value will be populated with the request's response once the request completes
4145// successfully.
4146//
4147// Use "Send" method on the returned Request to send the API call to the service.
4148// the "output" return value is not valid until after Send returns without error.
4149//
4150// See GetBasePathMapping for more information on using the GetBasePathMapping
4151// API call, and error handling.
4152//
4153// This method is useful when you want to inject custom logic or configuration
4154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4155//
4156//
4157//    // Example sending a request using the GetBasePathMappingRequest method.
4158//    req, resp := client.GetBasePathMappingRequest(params)
4159//
4160//    err := req.Send()
4161//    if err == nil { // resp is now filled
4162//        fmt.Println(resp)
4163//    }
4164func (c *APIGateway) GetBasePathMappingRequest(input *GetBasePathMappingInput) (req *request.Request, output *BasePathMapping) {
4165	op := &request.Operation{
4166		Name:       opGetBasePathMapping,
4167		HTTPMethod: "GET",
4168		HTTPPath:   "/domainnames/{domain_name}/basepathmappings/{base_path}",
4169	}
4170
4171	if input == nil {
4172		input = &GetBasePathMappingInput{}
4173	}
4174
4175	output = &BasePathMapping{}
4176	req = c.newRequest(op, input, output)
4177	return
4178}
4179
4180// GetBasePathMapping API operation for Amazon API Gateway.
4181//
4182// Describe a BasePathMapping resource.
4183//
4184// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4185// with awserr.Error's Code and Message methods to get detailed information about
4186// the error.
4187//
4188// See the AWS API reference guide for Amazon API Gateway's
4189// API operation GetBasePathMapping for usage and error information.
4190//
4191// Returned Error Types:
4192//   * BadRequestException
4193//   The submitted request is not valid, for example, the input is incomplete
4194//   or incorrect. See the accompanying error message for details.
4195//
4196//   * NotFoundException
4197//   The requested resource is not found. Make sure that the request URI is correct.
4198//
4199//   * UnauthorizedException
4200//   The request is denied because the caller has insufficient permissions.
4201//
4202//   * TooManyRequestsException
4203//   The request has reached its throttling limit. Retry after the specified time
4204//   period.
4205//
4206func (c *APIGateway) GetBasePathMapping(input *GetBasePathMappingInput) (*BasePathMapping, error) {
4207	req, out := c.GetBasePathMappingRequest(input)
4208	return out, req.Send()
4209}
4210
4211// GetBasePathMappingWithContext is the same as GetBasePathMapping with the addition of
4212// the ability to pass a context and additional request options.
4213//
4214// See GetBasePathMapping for details on how to use this API operation.
4215//
4216// The context must be non-nil and will be used for request cancellation. If
4217// the context is nil a panic will occur. In the future the SDK may create
4218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4219// for more information on using Contexts.
4220func (c *APIGateway) GetBasePathMappingWithContext(ctx aws.Context, input *GetBasePathMappingInput, opts ...request.Option) (*BasePathMapping, error) {
4221	req, out := c.GetBasePathMappingRequest(input)
4222	req.SetContext(ctx)
4223	req.ApplyOptions(opts...)
4224	return out, req.Send()
4225}
4226
4227const opGetBasePathMappings = "GetBasePathMappings"
4228
4229// GetBasePathMappingsRequest generates a "aws/request.Request" representing the
4230// client's request for the GetBasePathMappings operation. The "output" return
4231// value will be populated with the request's response once the request completes
4232// successfully.
4233//
4234// Use "Send" method on the returned Request to send the API call to the service.
4235// the "output" return value is not valid until after Send returns without error.
4236//
4237// See GetBasePathMappings for more information on using the GetBasePathMappings
4238// API call, and error handling.
4239//
4240// This method is useful when you want to inject custom logic or configuration
4241// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4242//
4243//
4244//    // Example sending a request using the GetBasePathMappingsRequest method.
4245//    req, resp := client.GetBasePathMappingsRequest(params)
4246//
4247//    err := req.Send()
4248//    if err == nil { // resp is now filled
4249//        fmt.Println(resp)
4250//    }
4251func (c *APIGateway) GetBasePathMappingsRequest(input *GetBasePathMappingsInput) (req *request.Request, output *GetBasePathMappingsOutput) {
4252	op := &request.Operation{
4253		Name:       opGetBasePathMappings,
4254		HTTPMethod: "GET",
4255		HTTPPath:   "/domainnames/{domain_name}/basepathmappings",
4256		Paginator: &request.Paginator{
4257			InputTokens:     []string{"position"},
4258			OutputTokens:    []string{"position"},
4259			LimitToken:      "limit",
4260			TruncationToken: "",
4261		},
4262	}
4263
4264	if input == nil {
4265		input = &GetBasePathMappingsInput{}
4266	}
4267
4268	output = &GetBasePathMappingsOutput{}
4269	req = c.newRequest(op, input, output)
4270	return
4271}
4272
4273// GetBasePathMappings API operation for Amazon API Gateway.
4274//
4275// Represents a collection of BasePathMapping resources.
4276//
4277// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4278// with awserr.Error's Code and Message methods to get detailed information about
4279// the error.
4280//
4281// See the AWS API reference guide for Amazon API Gateway's
4282// API operation GetBasePathMappings for usage and error information.
4283//
4284// Returned Error Types:
4285//   * BadRequestException
4286//   The submitted request is not valid, for example, the input is incomplete
4287//   or incorrect. See the accompanying error message for details.
4288//
4289//   * NotFoundException
4290//   The requested resource is not found. Make sure that the request URI is correct.
4291//
4292//   * UnauthorizedException
4293//   The request is denied because the caller has insufficient permissions.
4294//
4295//   * TooManyRequestsException
4296//   The request has reached its throttling limit. Retry after the specified time
4297//   period.
4298//
4299func (c *APIGateway) GetBasePathMappings(input *GetBasePathMappingsInput) (*GetBasePathMappingsOutput, error) {
4300	req, out := c.GetBasePathMappingsRequest(input)
4301	return out, req.Send()
4302}
4303
4304// GetBasePathMappingsWithContext is the same as GetBasePathMappings with the addition of
4305// the ability to pass a context and additional request options.
4306//
4307// See GetBasePathMappings for details on how to use this API operation.
4308//
4309// The context must be non-nil and will be used for request cancellation. If
4310// the context is nil a panic will occur. In the future the SDK may create
4311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4312// for more information on using Contexts.
4313func (c *APIGateway) GetBasePathMappingsWithContext(ctx aws.Context, input *GetBasePathMappingsInput, opts ...request.Option) (*GetBasePathMappingsOutput, error) {
4314	req, out := c.GetBasePathMappingsRequest(input)
4315	req.SetContext(ctx)
4316	req.ApplyOptions(opts...)
4317	return out, req.Send()
4318}
4319
4320// GetBasePathMappingsPages iterates over the pages of a GetBasePathMappings operation,
4321// calling the "fn" function with the response data for each page. To stop
4322// iterating, return false from the fn function.
4323//
4324// See GetBasePathMappings method for more information on how to use this operation.
4325//
4326// Note: This operation can generate multiple requests to a service.
4327//
4328//    // Example iterating over at most 3 pages of a GetBasePathMappings operation.
4329//    pageNum := 0
4330//    err := client.GetBasePathMappingsPages(params,
4331//        func(page *apigateway.GetBasePathMappingsOutput, lastPage bool) bool {
4332//            pageNum++
4333//            fmt.Println(page)
4334//            return pageNum <= 3
4335//        })
4336//
4337func (c *APIGateway) GetBasePathMappingsPages(input *GetBasePathMappingsInput, fn func(*GetBasePathMappingsOutput, bool) bool) error {
4338	return c.GetBasePathMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
4339}
4340
4341// GetBasePathMappingsPagesWithContext same as GetBasePathMappingsPages except
4342// it takes a Context and allows setting request options on the pages.
4343//
4344// The context must be non-nil and will be used for request cancellation. If
4345// the context is nil a panic will occur. In the future the SDK may create
4346// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4347// for more information on using Contexts.
4348func (c *APIGateway) GetBasePathMappingsPagesWithContext(ctx aws.Context, input *GetBasePathMappingsInput, fn func(*GetBasePathMappingsOutput, bool) bool, opts ...request.Option) error {
4349	p := request.Pagination{
4350		NewRequest: func() (*request.Request, error) {
4351			var inCpy *GetBasePathMappingsInput
4352			if input != nil {
4353				tmp := *input
4354				inCpy = &tmp
4355			}
4356			req, _ := c.GetBasePathMappingsRequest(inCpy)
4357			req.SetContext(ctx)
4358			req.ApplyOptions(opts...)
4359			return req, nil
4360		},
4361	}
4362
4363	for p.Next() {
4364		if !fn(p.Page().(*GetBasePathMappingsOutput), !p.HasNextPage()) {
4365			break
4366		}
4367	}
4368
4369	return p.Err()
4370}
4371
4372const opGetClientCertificate = "GetClientCertificate"
4373
4374// GetClientCertificateRequest generates a "aws/request.Request" representing the
4375// client's request for the GetClientCertificate operation. The "output" return
4376// value will be populated with the request's response once the request completes
4377// successfully.
4378//
4379// Use "Send" method on the returned Request to send the API call to the service.
4380// the "output" return value is not valid until after Send returns without error.
4381//
4382// See GetClientCertificate for more information on using the GetClientCertificate
4383// API call, and error handling.
4384//
4385// This method is useful when you want to inject custom logic or configuration
4386// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4387//
4388//
4389//    // Example sending a request using the GetClientCertificateRequest method.
4390//    req, resp := client.GetClientCertificateRequest(params)
4391//
4392//    err := req.Send()
4393//    if err == nil { // resp is now filled
4394//        fmt.Println(resp)
4395//    }
4396func (c *APIGateway) GetClientCertificateRequest(input *GetClientCertificateInput) (req *request.Request, output *ClientCertificate) {
4397	op := &request.Operation{
4398		Name:       opGetClientCertificate,
4399		HTTPMethod: "GET",
4400		HTTPPath:   "/clientcertificates/{clientcertificate_id}",
4401	}
4402
4403	if input == nil {
4404		input = &GetClientCertificateInput{}
4405	}
4406
4407	output = &ClientCertificate{}
4408	req = c.newRequest(op, input, output)
4409	return
4410}
4411
4412// GetClientCertificate API operation for Amazon API Gateway.
4413//
4414// Gets information about the current ClientCertificate resource.
4415//
4416// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4417// with awserr.Error's Code and Message methods to get detailed information about
4418// the error.
4419//
4420// See the AWS API reference guide for Amazon API Gateway's
4421// API operation GetClientCertificate for usage and error information.
4422//
4423// Returned Error Types:
4424//   * BadRequestException
4425//   The submitted request is not valid, for example, the input is incomplete
4426//   or incorrect. See the accompanying error message for details.
4427//
4428//   * NotFoundException
4429//   The requested resource is not found. Make sure that the request URI is correct.
4430//
4431//   * UnauthorizedException
4432//   The request is denied because the caller has insufficient permissions.
4433//
4434//   * TooManyRequestsException
4435//   The request has reached its throttling limit. Retry after the specified time
4436//   period.
4437//
4438func (c *APIGateway) GetClientCertificate(input *GetClientCertificateInput) (*ClientCertificate, error) {
4439	req, out := c.GetClientCertificateRequest(input)
4440	return out, req.Send()
4441}
4442
4443// GetClientCertificateWithContext is the same as GetClientCertificate with the addition of
4444// the ability to pass a context and additional request options.
4445//
4446// See GetClientCertificate for details on how to use this API operation.
4447//
4448// The context must be non-nil and will be used for request cancellation. If
4449// the context is nil a panic will occur. In the future the SDK may create
4450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4451// for more information on using Contexts.
4452func (c *APIGateway) GetClientCertificateWithContext(ctx aws.Context, input *GetClientCertificateInput, opts ...request.Option) (*ClientCertificate, error) {
4453	req, out := c.GetClientCertificateRequest(input)
4454	req.SetContext(ctx)
4455	req.ApplyOptions(opts...)
4456	return out, req.Send()
4457}
4458
4459const opGetClientCertificates = "GetClientCertificates"
4460
4461// GetClientCertificatesRequest generates a "aws/request.Request" representing the
4462// client's request for the GetClientCertificates operation. The "output" return
4463// value will be populated with the request's response once the request completes
4464// successfully.
4465//
4466// Use "Send" method on the returned Request to send the API call to the service.
4467// the "output" return value is not valid until after Send returns without error.
4468//
4469// See GetClientCertificates for more information on using the GetClientCertificates
4470// API call, and error handling.
4471//
4472// This method is useful when you want to inject custom logic or configuration
4473// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4474//
4475//
4476//    // Example sending a request using the GetClientCertificatesRequest method.
4477//    req, resp := client.GetClientCertificatesRequest(params)
4478//
4479//    err := req.Send()
4480//    if err == nil { // resp is now filled
4481//        fmt.Println(resp)
4482//    }
4483func (c *APIGateway) GetClientCertificatesRequest(input *GetClientCertificatesInput) (req *request.Request, output *GetClientCertificatesOutput) {
4484	op := &request.Operation{
4485		Name:       opGetClientCertificates,
4486		HTTPMethod: "GET",
4487		HTTPPath:   "/clientcertificates",
4488		Paginator: &request.Paginator{
4489			InputTokens:     []string{"position"},
4490			OutputTokens:    []string{"position"},
4491			LimitToken:      "limit",
4492			TruncationToken: "",
4493		},
4494	}
4495
4496	if input == nil {
4497		input = &GetClientCertificatesInput{}
4498	}
4499
4500	output = &GetClientCertificatesOutput{}
4501	req = c.newRequest(op, input, output)
4502	return
4503}
4504
4505// GetClientCertificates API operation for Amazon API Gateway.
4506//
4507// Gets a collection of ClientCertificate resources.
4508//
4509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4510// with awserr.Error's Code and Message methods to get detailed information about
4511// the error.
4512//
4513// See the AWS API reference guide for Amazon API Gateway's
4514// API operation GetClientCertificates for usage and error information.
4515//
4516// Returned Error Types:
4517//   * BadRequestException
4518//   The submitted request is not valid, for example, the input is incomplete
4519//   or incorrect. See the accompanying error message for details.
4520//
4521//   * NotFoundException
4522//   The requested resource is not found. Make sure that the request URI is correct.
4523//
4524//   * UnauthorizedException
4525//   The request is denied because the caller has insufficient permissions.
4526//
4527//   * TooManyRequestsException
4528//   The request has reached its throttling limit. Retry after the specified time
4529//   period.
4530//
4531func (c *APIGateway) GetClientCertificates(input *GetClientCertificatesInput) (*GetClientCertificatesOutput, error) {
4532	req, out := c.GetClientCertificatesRequest(input)
4533	return out, req.Send()
4534}
4535
4536// GetClientCertificatesWithContext is the same as GetClientCertificates with the addition of
4537// the ability to pass a context and additional request options.
4538//
4539// See GetClientCertificates for details on how to use this API operation.
4540//
4541// The context must be non-nil and will be used for request cancellation. If
4542// the context is nil a panic will occur. In the future the SDK may create
4543// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4544// for more information on using Contexts.
4545func (c *APIGateway) GetClientCertificatesWithContext(ctx aws.Context, input *GetClientCertificatesInput, opts ...request.Option) (*GetClientCertificatesOutput, error) {
4546	req, out := c.GetClientCertificatesRequest(input)
4547	req.SetContext(ctx)
4548	req.ApplyOptions(opts...)
4549	return out, req.Send()
4550}
4551
4552// GetClientCertificatesPages iterates over the pages of a GetClientCertificates operation,
4553// calling the "fn" function with the response data for each page. To stop
4554// iterating, return false from the fn function.
4555//
4556// See GetClientCertificates method for more information on how to use this operation.
4557//
4558// Note: This operation can generate multiple requests to a service.
4559//
4560//    // Example iterating over at most 3 pages of a GetClientCertificates operation.
4561//    pageNum := 0
4562//    err := client.GetClientCertificatesPages(params,
4563//        func(page *apigateway.GetClientCertificatesOutput, lastPage bool) bool {
4564//            pageNum++
4565//            fmt.Println(page)
4566//            return pageNum <= 3
4567//        })
4568//
4569func (c *APIGateway) GetClientCertificatesPages(input *GetClientCertificatesInput, fn func(*GetClientCertificatesOutput, bool) bool) error {
4570	return c.GetClientCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
4571}
4572
4573// GetClientCertificatesPagesWithContext same as GetClientCertificatesPages except
4574// it takes a Context and allows setting request options on the pages.
4575//
4576// The context must be non-nil and will be used for request cancellation. If
4577// the context is nil a panic will occur. In the future the SDK may create
4578// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4579// for more information on using Contexts.
4580func (c *APIGateway) GetClientCertificatesPagesWithContext(ctx aws.Context, input *GetClientCertificatesInput, fn func(*GetClientCertificatesOutput, bool) bool, opts ...request.Option) error {
4581	p := request.Pagination{
4582		NewRequest: func() (*request.Request, error) {
4583			var inCpy *GetClientCertificatesInput
4584			if input != nil {
4585				tmp := *input
4586				inCpy = &tmp
4587			}
4588			req, _ := c.GetClientCertificatesRequest(inCpy)
4589			req.SetContext(ctx)
4590			req.ApplyOptions(opts...)
4591			return req, nil
4592		},
4593	}
4594
4595	for p.Next() {
4596		if !fn(p.Page().(*GetClientCertificatesOutput), !p.HasNextPage()) {
4597			break
4598		}
4599	}
4600
4601	return p.Err()
4602}
4603
4604const opGetDeployment = "GetDeployment"
4605
4606// GetDeploymentRequest generates a "aws/request.Request" representing the
4607// client's request for the GetDeployment operation. The "output" return
4608// value will be populated with the request's response once the request completes
4609// successfully.
4610//
4611// Use "Send" method on the returned Request to send the API call to the service.
4612// the "output" return value is not valid until after Send returns without error.
4613//
4614// See GetDeployment for more information on using the GetDeployment
4615// API call, and error handling.
4616//
4617// This method is useful when you want to inject custom logic or configuration
4618// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4619//
4620//
4621//    // Example sending a request using the GetDeploymentRequest method.
4622//    req, resp := client.GetDeploymentRequest(params)
4623//
4624//    err := req.Send()
4625//    if err == nil { // resp is now filled
4626//        fmt.Println(resp)
4627//    }
4628func (c *APIGateway) GetDeploymentRequest(input *GetDeploymentInput) (req *request.Request, output *Deployment) {
4629	op := &request.Operation{
4630		Name:       opGetDeployment,
4631		HTTPMethod: "GET",
4632		HTTPPath:   "/restapis/{restapi_id}/deployments/{deployment_id}",
4633	}
4634
4635	if input == nil {
4636		input = &GetDeploymentInput{}
4637	}
4638
4639	output = &Deployment{}
4640	req = c.newRequest(op, input, output)
4641	return
4642}
4643
4644// GetDeployment API operation for Amazon API Gateway.
4645//
4646// Gets information about a Deployment resource.
4647//
4648// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4649// with awserr.Error's Code and Message methods to get detailed information about
4650// the error.
4651//
4652// See the AWS API reference guide for Amazon API Gateway's
4653// API operation GetDeployment for usage and error information.
4654//
4655// Returned Error Types:
4656//   * BadRequestException
4657//   The submitted request is not valid, for example, the input is incomplete
4658//   or incorrect. See the accompanying error message for details.
4659//
4660//   * NotFoundException
4661//   The requested resource is not found. Make sure that the request URI is correct.
4662//
4663//   * UnauthorizedException
4664//   The request is denied because the caller has insufficient permissions.
4665//
4666//   * TooManyRequestsException
4667//   The request has reached its throttling limit. Retry after the specified time
4668//   period.
4669//
4670//   * ServiceUnavailableException
4671//   The requested service is not available. For details see the accompanying
4672//   error message. Retry after the specified time period.
4673//
4674func (c *APIGateway) GetDeployment(input *GetDeploymentInput) (*Deployment, error) {
4675	req, out := c.GetDeploymentRequest(input)
4676	return out, req.Send()
4677}
4678
4679// GetDeploymentWithContext is the same as GetDeployment with the addition of
4680// the ability to pass a context and additional request options.
4681//
4682// See GetDeployment for details on how to use this API operation.
4683//
4684// The context must be non-nil and will be used for request cancellation. If
4685// the context is nil a panic will occur. In the future the SDK may create
4686// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4687// for more information on using Contexts.
4688func (c *APIGateway) GetDeploymentWithContext(ctx aws.Context, input *GetDeploymentInput, opts ...request.Option) (*Deployment, error) {
4689	req, out := c.GetDeploymentRequest(input)
4690	req.SetContext(ctx)
4691	req.ApplyOptions(opts...)
4692	return out, req.Send()
4693}
4694
4695const opGetDeployments = "GetDeployments"
4696
4697// GetDeploymentsRequest generates a "aws/request.Request" representing the
4698// client's request for the GetDeployments operation. The "output" return
4699// value will be populated with the request's response once the request completes
4700// successfully.
4701//
4702// Use "Send" method on the returned Request to send the API call to the service.
4703// the "output" return value is not valid until after Send returns without error.
4704//
4705// See GetDeployments for more information on using the GetDeployments
4706// API call, and error handling.
4707//
4708// This method is useful when you want to inject custom logic or configuration
4709// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4710//
4711//
4712//    // Example sending a request using the GetDeploymentsRequest method.
4713//    req, resp := client.GetDeploymentsRequest(params)
4714//
4715//    err := req.Send()
4716//    if err == nil { // resp is now filled
4717//        fmt.Println(resp)
4718//    }
4719func (c *APIGateway) GetDeploymentsRequest(input *GetDeploymentsInput) (req *request.Request, output *GetDeploymentsOutput) {
4720	op := &request.Operation{
4721		Name:       opGetDeployments,
4722		HTTPMethod: "GET",
4723		HTTPPath:   "/restapis/{restapi_id}/deployments",
4724		Paginator: &request.Paginator{
4725			InputTokens:     []string{"position"},
4726			OutputTokens:    []string{"position"},
4727			LimitToken:      "limit",
4728			TruncationToken: "",
4729		},
4730	}
4731
4732	if input == nil {
4733		input = &GetDeploymentsInput{}
4734	}
4735
4736	output = &GetDeploymentsOutput{}
4737	req = c.newRequest(op, input, output)
4738	return
4739}
4740
4741// GetDeployments API operation for Amazon API Gateway.
4742//
4743// Gets information about a Deployments collection.
4744//
4745// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4746// with awserr.Error's Code and Message methods to get detailed information about
4747// the error.
4748//
4749// See the AWS API reference guide for Amazon API Gateway's
4750// API operation GetDeployments for usage and error information.
4751//
4752// Returned Error Types:
4753//   * BadRequestException
4754//   The submitted request is not valid, for example, the input is incomplete
4755//   or incorrect. See the accompanying error message for details.
4756//
4757//   * NotFoundException
4758//   The requested resource is not found. Make sure that the request URI is correct.
4759//
4760//   * UnauthorizedException
4761//   The request is denied because the caller has insufficient permissions.
4762//
4763//   * TooManyRequestsException
4764//   The request has reached its throttling limit. Retry after the specified time
4765//   period.
4766//
4767//   * ServiceUnavailableException
4768//   The requested service is not available. For details see the accompanying
4769//   error message. Retry after the specified time period.
4770//
4771func (c *APIGateway) GetDeployments(input *GetDeploymentsInput) (*GetDeploymentsOutput, error) {
4772	req, out := c.GetDeploymentsRequest(input)
4773	return out, req.Send()
4774}
4775
4776// GetDeploymentsWithContext is the same as GetDeployments with the addition of
4777// the ability to pass a context and additional request options.
4778//
4779// See GetDeployments for details on how to use this API operation.
4780//
4781// The context must be non-nil and will be used for request cancellation. If
4782// the context is nil a panic will occur. In the future the SDK may create
4783// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4784// for more information on using Contexts.
4785func (c *APIGateway) GetDeploymentsWithContext(ctx aws.Context, input *GetDeploymentsInput, opts ...request.Option) (*GetDeploymentsOutput, error) {
4786	req, out := c.GetDeploymentsRequest(input)
4787	req.SetContext(ctx)
4788	req.ApplyOptions(opts...)
4789	return out, req.Send()
4790}
4791
4792// GetDeploymentsPages iterates over the pages of a GetDeployments operation,
4793// calling the "fn" function with the response data for each page. To stop
4794// iterating, return false from the fn function.
4795//
4796// See GetDeployments method for more information on how to use this operation.
4797//
4798// Note: This operation can generate multiple requests to a service.
4799//
4800//    // Example iterating over at most 3 pages of a GetDeployments operation.
4801//    pageNum := 0
4802//    err := client.GetDeploymentsPages(params,
4803//        func(page *apigateway.GetDeploymentsOutput, lastPage bool) bool {
4804//            pageNum++
4805//            fmt.Println(page)
4806//            return pageNum <= 3
4807//        })
4808//
4809func (c *APIGateway) GetDeploymentsPages(input *GetDeploymentsInput, fn func(*GetDeploymentsOutput, bool) bool) error {
4810	return c.GetDeploymentsPagesWithContext(aws.BackgroundContext(), input, fn)
4811}
4812
4813// GetDeploymentsPagesWithContext same as GetDeploymentsPages except
4814// it takes a Context and allows setting request options on the pages.
4815//
4816// The context must be non-nil and will be used for request cancellation. If
4817// the context is nil a panic will occur. In the future the SDK may create
4818// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4819// for more information on using Contexts.
4820func (c *APIGateway) GetDeploymentsPagesWithContext(ctx aws.Context, input *GetDeploymentsInput, fn func(*GetDeploymentsOutput, bool) bool, opts ...request.Option) error {
4821	p := request.Pagination{
4822		NewRequest: func() (*request.Request, error) {
4823			var inCpy *GetDeploymentsInput
4824			if input != nil {
4825				tmp := *input
4826				inCpy = &tmp
4827			}
4828			req, _ := c.GetDeploymentsRequest(inCpy)
4829			req.SetContext(ctx)
4830			req.ApplyOptions(opts...)
4831			return req, nil
4832		},
4833	}
4834
4835	for p.Next() {
4836		if !fn(p.Page().(*GetDeploymentsOutput), !p.HasNextPage()) {
4837			break
4838		}
4839	}
4840
4841	return p.Err()
4842}
4843
4844const opGetDocumentationPart = "GetDocumentationPart"
4845
4846// GetDocumentationPartRequest generates a "aws/request.Request" representing the
4847// client's request for the GetDocumentationPart operation. The "output" return
4848// value will be populated with the request's response once the request completes
4849// successfully.
4850//
4851// Use "Send" method on the returned Request to send the API call to the service.
4852// the "output" return value is not valid until after Send returns without error.
4853//
4854// See GetDocumentationPart for more information on using the GetDocumentationPart
4855// API call, and error handling.
4856//
4857// This method is useful when you want to inject custom logic or configuration
4858// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4859//
4860//
4861//    // Example sending a request using the GetDocumentationPartRequest method.
4862//    req, resp := client.GetDocumentationPartRequest(params)
4863//
4864//    err := req.Send()
4865//    if err == nil { // resp is now filled
4866//        fmt.Println(resp)
4867//    }
4868func (c *APIGateway) GetDocumentationPartRequest(input *GetDocumentationPartInput) (req *request.Request, output *DocumentationPart) {
4869	op := &request.Operation{
4870		Name:       opGetDocumentationPart,
4871		HTTPMethod: "GET",
4872		HTTPPath:   "/restapis/{restapi_id}/documentation/parts/{part_id}",
4873	}
4874
4875	if input == nil {
4876		input = &GetDocumentationPartInput{}
4877	}
4878
4879	output = &DocumentationPart{}
4880	req = c.newRequest(op, input, output)
4881	return
4882}
4883
4884// GetDocumentationPart API operation for Amazon API Gateway.
4885//
4886// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4887// with awserr.Error's Code and Message methods to get detailed information about
4888// the error.
4889//
4890// See the AWS API reference guide for Amazon API Gateway's
4891// API operation GetDocumentationPart for usage and error information.
4892//
4893// Returned Error Types:
4894//   * BadRequestException
4895//   The submitted request is not valid, for example, the input is incomplete
4896//   or incorrect. See the accompanying error message for details.
4897//
4898//   * NotFoundException
4899//   The requested resource is not found. Make sure that the request URI is correct.
4900//
4901//   * UnauthorizedException
4902//   The request is denied because the caller has insufficient permissions.
4903//
4904//   * TooManyRequestsException
4905//   The request has reached its throttling limit. Retry after the specified time
4906//   period.
4907//
4908func (c *APIGateway) GetDocumentationPart(input *GetDocumentationPartInput) (*DocumentationPart, error) {
4909	req, out := c.GetDocumentationPartRequest(input)
4910	return out, req.Send()
4911}
4912
4913// GetDocumentationPartWithContext is the same as GetDocumentationPart with the addition of
4914// the ability to pass a context and additional request options.
4915//
4916// See GetDocumentationPart for details on how to use this API operation.
4917//
4918// The context must be non-nil and will be used for request cancellation. If
4919// the context is nil a panic will occur. In the future the SDK may create
4920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4921// for more information on using Contexts.
4922func (c *APIGateway) GetDocumentationPartWithContext(ctx aws.Context, input *GetDocumentationPartInput, opts ...request.Option) (*DocumentationPart, error) {
4923	req, out := c.GetDocumentationPartRequest(input)
4924	req.SetContext(ctx)
4925	req.ApplyOptions(opts...)
4926	return out, req.Send()
4927}
4928
4929const opGetDocumentationParts = "GetDocumentationParts"
4930
4931// GetDocumentationPartsRequest generates a "aws/request.Request" representing the
4932// client's request for the GetDocumentationParts operation. The "output" return
4933// value will be populated with the request's response once the request completes
4934// successfully.
4935//
4936// Use "Send" method on the returned Request to send the API call to the service.
4937// the "output" return value is not valid until after Send returns without error.
4938//
4939// See GetDocumentationParts for more information on using the GetDocumentationParts
4940// API call, and error handling.
4941//
4942// This method is useful when you want to inject custom logic or configuration
4943// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4944//
4945//
4946//    // Example sending a request using the GetDocumentationPartsRequest method.
4947//    req, resp := client.GetDocumentationPartsRequest(params)
4948//
4949//    err := req.Send()
4950//    if err == nil { // resp is now filled
4951//        fmt.Println(resp)
4952//    }
4953func (c *APIGateway) GetDocumentationPartsRequest(input *GetDocumentationPartsInput) (req *request.Request, output *GetDocumentationPartsOutput) {
4954	op := &request.Operation{
4955		Name:       opGetDocumentationParts,
4956		HTTPMethod: "GET",
4957		HTTPPath:   "/restapis/{restapi_id}/documentation/parts",
4958	}
4959
4960	if input == nil {
4961		input = &GetDocumentationPartsInput{}
4962	}
4963
4964	output = &GetDocumentationPartsOutput{}
4965	req = c.newRequest(op, input, output)
4966	return
4967}
4968
4969// GetDocumentationParts API operation for Amazon API Gateway.
4970//
4971// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4972// with awserr.Error's Code and Message methods to get detailed information about
4973// the error.
4974//
4975// See the AWS API reference guide for Amazon API Gateway's
4976// API operation GetDocumentationParts for usage and error information.
4977//
4978// Returned Error Types:
4979//   * BadRequestException
4980//   The submitted request is not valid, for example, the input is incomplete
4981//   or incorrect. See the accompanying error message for details.
4982//
4983//   * NotFoundException
4984//   The requested resource is not found. Make sure that the request URI is correct.
4985//
4986//   * UnauthorizedException
4987//   The request is denied because the caller has insufficient permissions.
4988//
4989//   * TooManyRequestsException
4990//   The request has reached its throttling limit. Retry after the specified time
4991//   period.
4992//
4993func (c *APIGateway) GetDocumentationParts(input *GetDocumentationPartsInput) (*GetDocumentationPartsOutput, error) {
4994	req, out := c.GetDocumentationPartsRequest(input)
4995	return out, req.Send()
4996}
4997
4998// GetDocumentationPartsWithContext is the same as GetDocumentationParts with the addition of
4999// the ability to pass a context and additional request options.
5000//
5001// See GetDocumentationParts for details on how to use this API operation.
5002//
5003// The context must be non-nil and will be used for request cancellation. If
5004// the context is nil a panic will occur. In the future the SDK may create
5005// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5006// for more information on using Contexts.
5007func (c *APIGateway) GetDocumentationPartsWithContext(ctx aws.Context, input *GetDocumentationPartsInput, opts ...request.Option) (*GetDocumentationPartsOutput, error) {
5008	req, out := c.GetDocumentationPartsRequest(input)
5009	req.SetContext(ctx)
5010	req.ApplyOptions(opts...)
5011	return out, req.Send()
5012}
5013
5014const opGetDocumentationVersion = "GetDocumentationVersion"
5015
5016// GetDocumentationVersionRequest generates a "aws/request.Request" representing the
5017// client's request for the GetDocumentationVersion operation. The "output" return
5018// value will be populated with the request's response once the request completes
5019// successfully.
5020//
5021// Use "Send" method on the returned Request to send the API call to the service.
5022// the "output" return value is not valid until after Send returns without error.
5023//
5024// See GetDocumentationVersion for more information on using the GetDocumentationVersion
5025// API call, and error handling.
5026//
5027// This method is useful when you want to inject custom logic or configuration
5028// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5029//
5030//
5031//    // Example sending a request using the GetDocumentationVersionRequest method.
5032//    req, resp := client.GetDocumentationVersionRequest(params)
5033//
5034//    err := req.Send()
5035//    if err == nil { // resp is now filled
5036//        fmt.Println(resp)
5037//    }
5038func (c *APIGateway) GetDocumentationVersionRequest(input *GetDocumentationVersionInput) (req *request.Request, output *DocumentationVersion) {
5039	op := &request.Operation{
5040		Name:       opGetDocumentationVersion,
5041		HTTPMethod: "GET",
5042		HTTPPath:   "/restapis/{restapi_id}/documentation/versions/{doc_version}",
5043	}
5044
5045	if input == nil {
5046		input = &GetDocumentationVersionInput{}
5047	}
5048
5049	output = &DocumentationVersion{}
5050	req = c.newRequest(op, input, output)
5051	return
5052}
5053
5054// GetDocumentationVersion API operation for Amazon API Gateway.
5055//
5056// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5057// with awserr.Error's Code and Message methods to get detailed information about
5058// the error.
5059//
5060// See the AWS API reference guide for Amazon API Gateway's
5061// API operation GetDocumentationVersion for usage and error information.
5062//
5063// Returned Error Types:
5064//   * UnauthorizedException
5065//   The request is denied because the caller has insufficient permissions.
5066//
5067//   * NotFoundException
5068//   The requested resource is not found. Make sure that the request URI is correct.
5069//
5070//   * TooManyRequestsException
5071//   The request has reached its throttling limit. Retry after the specified time
5072//   period.
5073//
5074func (c *APIGateway) GetDocumentationVersion(input *GetDocumentationVersionInput) (*DocumentationVersion, error) {
5075	req, out := c.GetDocumentationVersionRequest(input)
5076	return out, req.Send()
5077}
5078
5079// GetDocumentationVersionWithContext is the same as GetDocumentationVersion with the addition of
5080// the ability to pass a context and additional request options.
5081//
5082// See GetDocumentationVersion for details on how to use this API operation.
5083//
5084// The context must be non-nil and will be used for request cancellation. If
5085// the context is nil a panic will occur. In the future the SDK may create
5086// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5087// for more information on using Contexts.
5088func (c *APIGateway) GetDocumentationVersionWithContext(ctx aws.Context, input *GetDocumentationVersionInput, opts ...request.Option) (*DocumentationVersion, error) {
5089	req, out := c.GetDocumentationVersionRequest(input)
5090	req.SetContext(ctx)
5091	req.ApplyOptions(opts...)
5092	return out, req.Send()
5093}
5094
5095const opGetDocumentationVersions = "GetDocumentationVersions"
5096
5097// GetDocumentationVersionsRequest generates a "aws/request.Request" representing the
5098// client's request for the GetDocumentationVersions operation. The "output" return
5099// value will be populated with the request's response once the request completes
5100// successfully.
5101//
5102// Use "Send" method on the returned Request to send the API call to the service.
5103// the "output" return value is not valid until after Send returns without error.
5104//
5105// See GetDocumentationVersions for more information on using the GetDocumentationVersions
5106// API call, and error handling.
5107//
5108// This method is useful when you want to inject custom logic or configuration
5109// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5110//
5111//
5112//    // Example sending a request using the GetDocumentationVersionsRequest method.
5113//    req, resp := client.GetDocumentationVersionsRequest(params)
5114//
5115//    err := req.Send()
5116//    if err == nil { // resp is now filled
5117//        fmt.Println(resp)
5118//    }
5119func (c *APIGateway) GetDocumentationVersionsRequest(input *GetDocumentationVersionsInput) (req *request.Request, output *GetDocumentationVersionsOutput) {
5120	op := &request.Operation{
5121		Name:       opGetDocumentationVersions,
5122		HTTPMethod: "GET",
5123		HTTPPath:   "/restapis/{restapi_id}/documentation/versions",
5124	}
5125
5126	if input == nil {
5127		input = &GetDocumentationVersionsInput{}
5128	}
5129
5130	output = &GetDocumentationVersionsOutput{}
5131	req = c.newRequest(op, input, output)
5132	return
5133}
5134
5135// GetDocumentationVersions API operation for Amazon API Gateway.
5136//
5137// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5138// with awserr.Error's Code and Message methods to get detailed information about
5139// the error.
5140//
5141// See the AWS API reference guide for Amazon API Gateway's
5142// API operation GetDocumentationVersions for usage and error information.
5143//
5144// Returned Error Types:
5145//   * BadRequestException
5146//   The submitted request is not valid, for example, the input is incomplete
5147//   or incorrect. See the accompanying error message for details.
5148//
5149//   * UnauthorizedException
5150//   The request is denied because the caller has insufficient permissions.
5151//
5152//   * NotFoundException
5153//   The requested resource is not found. Make sure that the request URI is correct.
5154//
5155//   * TooManyRequestsException
5156//   The request has reached its throttling limit. Retry after the specified time
5157//   period.
5158//
5159func (c *APIGateway) GetDocumentationVersions(input *GetDocumentationVersionsInput) (*GetDocumentationVersionsOutput, error) {
5160	req, out := c.GetDocumentationVersionsRequest(input)
5161	return out, req.Send()
5162}
5163
5164// GetDocumentationVersionsWithContext is the same as GetDocumentationVersions with the addition of
5165// the ability to pass a context and additional request options.
5166//
5167// See GetDocumentationVersions for details on how to use this API operation.
5168//
5169// The context must be non-nil and will be used for request cancellation. If
5170// the context is nil a panic will occur. In the future the SDK may create
5171// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5172// for more information on using Contexts.
5173func (c *APIGateway) GetDocumentationVersionsWithContext(ctx aws.Context, input *GetDocumentationVersionsInput, opts ...request.Option) (*GetDocumentationVersionsOutput, error) {
5174	req, out := c.GetDocumentationVersionsRequest(input)
5175	req.SetContext(ctx)
5176	req.ApplyOptions(opts...)
5177	return out, req.Send()
5178}
5179
5180const opGetDomainName = "GetDomainName"
5181
5182// GetDomainNameRequest generates a "aws/request.Request" representing the
5183// client's request for the GetDomainName operation. The "output" return
5184// value will be populated with the request's response once the request completes
5185// successfully.
5186//
5187// Use "Send" method on the returned Request to send the API call to the service.
5188// the "output" return value is not valid until after Send returns without error.
5189//
5190// See GetDomainName for more information on using the GetDomainName
5191// API call, and error handling.
5192//
5193// This method is useful when you want to inject custom logic or configuration
5194// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5195//
5196//
5197//    // Example sending a request using the GetDomainNameRequest method.
5198//    req, resp := client.GetDomainNameRequest(params)
5199//
5200//    err := req.Send()
5201//    if err == nil { // resp is now filled
5202//        fmt.Println(resp)
5203//    }
5204func (c *APIGateway) GetDomainNameRequest(input *GetDomainNameInput) (req *request.Request, output *DomainName) {
5205	op := &request.Operation{
5206		Name:       opGetDomainName,
5207		HTTPMethod: "GET",
5208		HTTPPath:   "/domainnames/{domain_name}",
5209	}
5210
5211	if input == nil {
5212		input = &GetDomainNameInput{}
5213	}
5214
5215	output = &DomainName{}
5216	req = c.newRequest(op, input, output)
5217	return
5218}
5219
5220// GetDomainName API operation for Amazon API Gateway.
5221//
5222// Represents a domain name that is contained in a simpler, more intuitive URL
5223// that can be called.
5224//
5225// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5226// with awserr.Error's Code and Message methods to get detailed information about
5227// the error.
5228//
5229// See the AWS API reference guide for Amazon API Gateway's
5230// API operation GetDomainName for usage and error information.
5231//
5232// Returned Error Types:
5233//   * BadRequestException
5234//   The submitted request is not valid, for example, the input is incomplete
5235//   or incorrect. See the accompanying error message for details.
5236//
5237//   * NotFoundException
5238//   The requested resource is not found. Make sure that the request URI is correct.
5239//
5240//   * UnauthorizedException
5241//   The request is denied because the caller has insufficient permissions.
5242//
5243//   * TooManyRequestsException
5244//   The request has reached its throttling limit. Retry after the specified time
5245//   period.
5246//
5247func (c *APIGateway) GetDomainName(input *GetDomainNameInput) (*DomainName, error) {
5248	req, out := c.GetDomainNameRequest(input)
5249	return out, req.Send()
5250}
5251
5252// GetDomainNameWithContext is the same as GetDomainName with the addition of
5253// the ability to pass a context and additional request options.
5254//
5255// See GetDomainName for details on how to use this API operation.
5256//
5257// The context must be non-nil and will be used for request cancellation. If
5258// the context is nil a panic will occur. In the future the SDK may create
5259// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5260// for more information on using Contexts.
5261func (c *APIGateway) GetDomainNameWithContext(ctx aws.Context, input *GetDomainNameInput, opts ...request.Option) (*DomainName, error) {
5262	req, out := c.GetDomainNameRequest(input)
5263	req.SetContext(ctx)
5264	req.ApplyOptions(opts...)
5265	return out, req.Send()
5266}
5267
5268const opGetDomainNames = "GetDomainNames"
5269
5270// GetDomainNamesRequest generates a "aws/request.Request" representing the
5271// client's request for the GetDomainNames operation. The "output" return
5272// value will be populated with the request's response once the request completes
5273// successfully.
5274//
5275// Use "Send" method on the returned Request to send the API call to the service.
5276// the "output" return value is not valid until after Send returns without error.
5277//
5278// See GetDomainNames for more information on using the GetDomainNames
5279// API call, and error handling.
5280//
5281// This method is useful when you want to inject custom logic or configuration
5282// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5283//
5284//
5285//    // Example sending a request using the GetDomainNamesRequest method.
5286//    req, resp := client.GetDomainNamesRequest(params)
5287//
5288//    err := req.Send()
5289//    if err == nil { // resp is now filled
5290//        fmt.Println(resp)
5291//    }
5292func (c *APIGateway) GetDomainNamesRequest(input *GetDomainNamesInput) (req *request.Request, output *GetDomainNamesOutput) {
5293	op := &request.Operation{
5294		Name:       opGetDomainNames,
5295		HTTPMethod: "GET",
5296		HTTPPath:   "/domainnames",
5297		Paginator: &request.Paginator{
5298			InputTokens:     []string{"position"},
5299			OutputTokens:    []string{"position"},
5300			LimitToken:      "limit",
5301			TruncationToken: "",
5302		},
5303	}
5304
5305	if input == nil {
5306		input = &GetDomainNamesInput{}
5307	}
5308
5309	output = &GetDomainNamesOutput{}
5310	req = c.newRequest(op, input, output)
5311	return
5312}
5313
5314// GetDomainNames API operation for Amazon API Gateway.
5315//
5316// Represents a collection of DomainName resources.
5317//
5318// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5319// with awserr.Error's Code and Message methods to get detailed information about
5320// the error.
5321//
5322// See the AWS API reference guide for Amazon API Gateway's
5323// API operation GetDomainNames for usage and error information.
5324//
5325// Returned Error Types:
5326//   * BadRequestException
5327//   The submitted request is not valid, for example, the input is incomplete
5328//   or incorrect. See the accompanying error message for details.
5329//
5330//   * NotFoundException
5331//   The requested resource is not found. Make sure that the request URI is correct.
5332//
5333//   * UnauthorizedException
5334//   The request is denied because the caller has insufficient permissions.
5335//
5336//   * TooManyRequestsException
5337//   The request has reached its throttling limit. Retry after the specified time
5338//   period.
5339//
5340func (c *APIGateway) GetDomainNames(input *GetDomainNamesInput) (*GetDomainNamesOutput, error) {
5341	req, out := c.GetDomainNamesRequest(input)
5342	return out, req.Send()
5343}
5344
5345// GetDomainNamesWithContext is the same as GetDomainNames with the addition of
5346// the ability to pass a context and additional request options.
5347//
5348// See GetDomainNames for details on how to use this API operation.
5349//
5350// The context must be non-nil and will be used for request cancellation. If
5351// the context is nil a panic will occur. In the future the SDK may create
5352// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5353// for more information on using Contexts.
5354func (c *APIGateway) GetDomainNamesWithContext(ctx aws.Context, input *GetDomainNamesInput, opts ...request.Option) (*GetDomainNamesOutput, error) {
5355	req, out := c.GetDomainNamesRequest(input)
5356	req.SetContext(ctx)
5357	req.ApplyOptions(opts...)
5358	return out, req.Send()
5359}
5360
5361// GetDomainNamesPages iterates over the pages of a GetDomainNames operation,
5362// calling the "fn" function with the response data for each page. To stop
5363// iterating, return false from the fn function.
5364//
5365// See GetDomainNames method for more information on how to use this operation.
5366//
5367// Note: This operation can generate multiple requests to a service.
5368//
5369//    // Example iterating over at most 3 pages of a GetDomainNames operation.
5370//    pageNum := 0
5371//    err := client.GetDomainNamesPages(params,
5372//        func(page *apigateway.GetDomainNamesOutput, lastPage bool) bool {
5373//            pageNum++
5374//            fmt.Println(page)
5375//            return pageNum <= 3
5376//        })
5377//
5378func (c *APIGateway) GetDomainNamesPages(input *GetDomainNamesInput, fn func(*GetDomainNamesOutput, bool) bool) error {
5379	return c.GetDomainNamesPagesWithContext(aws.BackgroundContext(), input, fn)
5380}
5381
5382// GetDomainNamesPagesWithContext same as GetDomainNamesPages except
5383// it takes a Context and allows setting request options on the pages.
5384//
5385// The context must be non-nil and will be used for request cancellation. If
5386// the context is nil a panic will occur. In the future the SDK may create
5387// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5388// for more information on using Contexts.
5389func (c *APIGateway) GetDomainNamesPagesWithContext(ctx aws.Context, input *GetDomainNamesInput, fn func(*GetDomainNamesOutput, bool) bool, opts ...request.Option) error {
5390	p := request.Pagination{
5391		NewRequest: func() (*request.Request, error) {
5392			var inCpy *GetDomainNamesInput
5393			if input != nil {
5394				tmp := *input
5395				inCpy = &tmp
5396			}
5397			req, _ := c.GetDomainNamesRequest(inCpy)
5398			req.SetContext(ctx)
5399			req.ApplyOptions(opts...)
5400			return req, nil
5401		},
5402	}
5403
5404	for p.Next() {
5405		if !fn(p.Page().(*GetDomainNamesOutput), !p.HasNextPage()) {
5406			break
5407		}
5408	}
5409
5410	return p.Err()
5411}
5412
5413const opGetExport = "GetExport"
5414
5415// GetExportRequest generates a "aws/request.Request" representing the
5416// client's request for the GetExport operation. The "output" return
5417// value will be populated with the request's response once the request completes
5418// successfully.
5419//
5420// Use "Send" method on the returned Request to send the API call to the service.
5421// the "output" return value is not valid until after Send returns without error.
5422//
5423// See GetExport for more information on using the GetExport
5424// API call, and error handling.
5425//
5426// This method is useful when you want to inject custom logic or configuration
5427// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5428//
5429//
5430//    // Example sending a request using the GetExportRequest method.
5431//    req, resp := client.GetExportRequest(params)
5432//
5433//    err := req.Send()
5434//    if err == nil { // resp is now filled
5435//        fmt.Println(resp)
5436//    }
5437func (c *APIGateway) GetExportRequest(input *GetExportInput) (req *request.Request, output *GetExportOutput) {
5438	op := &request.Operation{
5439		Name:       opGetExport,
5440		HTTPMethod: "GET",
5441		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/exports/{export_type}",
5442	}
5443
5444	if input == nil {
5445		input = &GetExportInput{}
5446	}
5447
5448	output = &GetExportOutput{}
5449	req = c.newRequest(op, input, output)
5450	return
5451}
5452
5453// GetExport API operation for Amazon API Gateway.
5454//
5455// Exports a deployed version of a RestApi in a specified format.
5456//
5457// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5458// with awserr.Error's Code and Message methods to get detailed information about
5459// the error.
5460//
5461// See the AWS API reference guide for Amazon API Gateway's
5462// API operation GetExport for usage and error information.
5463//
5464// Returned Error Types:
5465//   * BadRequestException
5466//   The submitted request is not valid, for example, the input is incomplete
5467//   or incorrect. See the accompanying error message for details.
5468//
5469//   * ConflictException
5470//   The request configuration has conflicts. For details, see the accompanying
5471//   error message.
5472//
5473//   * LimitExceededException
5474//   The request exceeded the rate limit. Retry after the specified time period.
5475//
5476//   * NotFoundException
5477//   The requested resource is not found. Make sure that the request URI is correct.
5478//
5479//   * UnauthorizedException
5480//   The request is denied because the caller has insufficient permissions.
5481//
5482//   * TooManyRequestsException
5483//   The request has reached its throttling limit. Retry after the specified time
5484//   period.
5485//
5486func (c *APIGateway) GetExport(input *GetExportInput) (*GetExportOutput, error) {
5487	req, out := c.GetExportRequest(input)
5488	return out, req.Send()
5489}
5490
5491// GetExportWithContext is the same as GetExport with the addition of
5492// the ability to pass a context and additional request options.
5493//
5494// See GetExport for details on how to use this API operation.
5495//
5496// The context must be non-nil and will be used for request cancellation. If
5497// the context is nil a panic will occur. In the future the SDK may create
5498// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5499// for more information on using Contexts.
5500func (c *APIGateway) GetExportWithContext(ctx aws.Context, input *GetExportInput, opts ...request.Option) (*GetExportOutput, error) {
5501	req, out := c.GetExportRequest(input)
5502	req.SetContext(ctx)
5503	req.ApplyOptions(opts...)
5504	return out, req.Send()
5505}
5506
5507const opGetGatewayResponse = "GetGatewayResponse"
5508
5509// GetGatewayResponseRequest generates a "aws/request.Request" representing the
5510// client's request for the GetGatewayResponse operation. The "output" return
5511// value will be populated with the request's response once the request completes
5512// successfully.
5513//
5514// Use "Send" method on the returned Request to send the API call to the service.
5515// the "output" return value is not valid until after Send returns without error.
5516//
5517// See GetGatewayResponse for more information on using the GetGatewayResponse
5518// API call, and error handling.
5519//
5520// This method is useful when you want to inject custom logic or configuration
5521// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5522//
5523//
5524//    // Example sending a request using the GetGatewayResponseRequest method.
5525//    req, resp := client.GetGatewayResponseRequest(params)
5526//
5527//    err := req.Send()
5528//    if err == nil { // resp is now filled
5529//        fmt.Println(resp)
5530//    }
5531func (c *APIGateway) GetGatewayResponseRequest(input *GetGatewayResponseInput) (req *request.Request, output *UpdateGatewayResponseOutput) {
5532	op := &request.Operation{
5533		Name:       opGetGatewayResponse,
5534		HTTPMethod: "GET",
5535		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
5536	}
5537
5538	if input == nil {
5539		input = &GetGatewayResponseInput{}
5540	}
5541
5542	output = &UpdateGatewayResponseOutput{}
5543	req = c.newRequest(op, input, output)
5544	return
5545}
5546
5547// GetGatewayResponse API operation for Amazon API Gateway.
5548//
5549// Gets a GatewayResponse of a specified response type on the given RestApi.
5550//
5551// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5552// with awserr.Error's Code and Message methods to get detailed information about
5553// the error.
5554//
5555// See the AWS API reference guide for Amazon API Gateway's
5556// API operation GetGatewayResponse for usage and error information.
5557//
5558// Returned Error Types:
5559//   * BadRequestException
5560//   The submitted request is not valid, for example, the input is incomplete
5561//   or incorrect. See the accompanying error message for details.
5562//
5563//   * NotFoundException
5564//   The requested resource is not found. Make sure that the request URI is correct.
5565//
5566//   * UnauthorizedException
5567//   The request is denied because the caller has insufficient permissions.
5568//
5569//   * TooManyRequestsException
5570//   The request has reached its throttling limit. Retry after the specified time
5571//   period.
5572//
5573func (c *APIGateway) GetGatewayResponse(input *GetGatewayResponseInput) (*UpdateGatewayResponseOutput, error) {
5574	req, out := c.GetGatewayResponseRequest(input)
5575	return out, req.Send()
5576}
5577
5578// GetGatewayResponseWithContext is the same as GetGatewayResponse with the addition of
5579// the ability to pass a context and additional request options.
5580//
5581// See GetGatewayResponse for details on how to use this API operation.
5582//
5583// The context must be non-nil and will be used for request cancellation. If
5584// the context is nil a panic will occur. In the future the SDK may create
5585// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5586// for more information on using Contexts.
5587func (c *APIGateway) GetGatewayResponseWithContext(ctx aws.Context, input *GetGatewayResponseInput, opts ...request.Option) (*UpdateGatewayResponseOutput, error) {
5588	req, out := c.GetGatewayResponseRequest(input)
5589	req.SetContext(ctx)
5590	req.ApplyOptions(opts...)
5591	return out, req.Send()
5592}
5593
5594const opGetGatewayResponses = "GetGatewayResponses"
5595
5596// GetGatewayResponsesRequest generates a "aws/request.Request" representing the
5597// client's request for the GetGatewayResponses operation. The "output" return
5598// value will be populated with the request's response once the request completes
5599// successfully.
5600//
5601// Use "Send" method on the returned Request to send the API call to the service.
5602// the "output" return value is not valid until after Send returns without error.
5603//
5604// See GetGatewayResponses for more information on using the GetGatewayResponses
5605// API call, and error handling.
5606//
5607// This method is useful when you want to inject custom logic or configuration
5608// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5609//
5610//
5611//    // Example sending a request using the GetGatewayResponsesRequest method.
5612//    req, resp := client.GetGatewayResponsesRequest(params)
5613//
5614//    err := req.Send()
5615//    if err == nil { // resp is now filled
5616//        fmt.Println(resp)
5617//    }
5618func (c *APIGateway) GetGatewayResponsesRequest(input *GetGatewayResponsesInput) (req *request.Request, output *GetGatewayResponsesOutput) {
5619	op := &request.Operation{
5620		Name:       opGetGatewayResponses,
5621		HTTPMethod: "GET",
5622		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses",
5623	}
5624
5625	if input == nil {
5626		input = &GetGatewayResponsesInput{}
5627	}
5628
5629	output = &GetGatewayResponsesOutput{}
5630	req = c.newRequest(op, input, output)
5631	return
5632}
5633
5634// GetGatewayResponses API operation for Amazon API Gateway.
5635//
5636// Gets the GatewayResponses collection on the given RestApi. If an API developer
5637// has not added any definitions for gateway responses, the result will be the
5638// API Gateway-generated default GatewayResponses collection for the supported
5639// response types.
5640//
5641// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5642// with awserr.Error's Code and Message methods to get detailed information about
5643// the error.
5644//
5645// See the AWS API reference guide for Amazon API Gateway's
5646// API operation GetGatewayResponses for usage and error information.
5647//
5648// Returned Error Types:
5649//   * BadRequestException
5650//   The submitted request is not valid, for example, the input is incomplete
5651//   or incorrect. See the accompanying error message for details.
5652//
5653//   * NotFoundException
5654//   The requested resource is not found. Make sure that the request URI is correct.
5655//
5656//   * UnauthorizedException
5657//   The request is denied because the caller has insufficient permissions.
5658//
5659//   * TooManyRequestsException
5660//   The request has reached its throttling limit. Retry after the specified time
5661//   period.
5662//
5663func (c *APIGateway) GetGatewayResponses(input *GetGatewayResponsesInput) (*GetGatewayResponsesOutput, error) {
5664	req, out := c.GetGatewayResponsesRequest(input)
5665	return out, req.Send()
5666}
5667
5668// GetGatewayResponsesWithContext is the same as GetGatewayResponses with the addition of
5669// the ability to pass a context and additional request options.
5670//
5671// See GetGatewayResponses for details on how to use this API operation.
5672//
5673// The context must be non-nil and will be used for request cancellation. If
5674// the context is nil a panic will occur. In the future the SDK may create
5675// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5676// for more information on using Contexts.
5677func (c *APIGateway) GetGatewayResponsesWithContext(ctx aws.Context, input *GetGatewayResponsesInput, opts ...request.Option) (*GetGatewayResponsesOutput, error) {
5678	req, out := c.GetGatewayResponsesRequest(input)
5679	req.SetContext(ctx)
5680	req.ApplyOptions(opts...)
5681	return out, req.Send()
5682}
5683
5684const opGetIntegration = "GetIntegration"
5685
5686// GetIntegrationRequest generates a "aws/request.Request" representing the
5687// client's request for the GetIntegration operation. The "output" return
5688// value will be populated with the request's response once the request completes
5689// successfully.
5690//
5691// Use "Send" method on the returned Request to send the API call to the service.
5692// the "output" return value is not valid until after Send returns without error.
5693//
5694// See GetIntegration for more information on using the GetIntegration
5695// API call, and error handling.
5696//
5697// This method is useful when you want to inject custom logic or configuration
5698// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5699//
5700//
5701//    // Example sending a request using the GetIntegrationRequest method.
5702//    req, resp := client.GetIntegrationRequest(params)
5703//
5704//    err := req.Send()
5705//    if err == nil { // resp is now filled
5706//        fmt.Println(resp)
5707//    }
5708func (c *APIGateway) GetIntegrationRequest(input *GetIntegrationInput) (req *request.Request, output *Integration) {
5709	op := &request.Operation{
5710		Name:       opGetIntegration,
5711		HTTPMethod: "GET",
5712		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
5713	}
5714
5715	if input == nil {
5716		input = &GetIntegrationInput{}
5717	}
5718
5719	output = &Integration{}
5720	req = c.newRequest(op, input, output)
5721	return
5722}
5723
5724// GetIntegration API operation for Amazon API Gateway.
5725//
5726// Get the integration settings.
5727//
5728// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5729// with awserr.Error's Code and Message methods to get detailed information about
5730// the error.
5731//
5732// See the AWS API reference guide for Amazon API Gateway's
5733// API operation GetIntegration for usage and error information.
5734//
5735// Returned Error Types:
5736//   * BadRequestException
5737//   The submitted request is not valid, for example, the input is incomplete
5738//   or incorrect. See the accompanying error message for details.
5739//
5740//   * NotFoundException
5741//   The requested resource is not found. Make sure that the request URI is correct.
5742//
5743//   * UnauthorizedException
5744//   The request is denied because the caller has insufficient permissions.
5745//
5746//   * TooManyRequestsException
5747//   The request has reached its throttling limit. Retry after the specified time
5748//   period.
5749//
5750func (c *APIGateway) GetIntegration(input *GetIntegrationInput) (*Integration, error) {
5751	req, out := c.GetIntegrationRequest(input)
5752	return out, req.Send()
5753}
5754
5755// GetIntegrationWithContext is the same as GetIntegration with the addition of
5756// the ability to pass a context and additional request options.
5757//
5758// See GetIntegration for details on how to use this API operation.
5759//
5760// The context must be non-nil and will be used for request cancellation. If
5761// the context is nil a panic will occur. In the future the SDK may create
5762// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5763// for more information on using Contexts.
5764func (c *APIGateway) GetIntegrationWithContext(ctx aws.Context, input *GetIntegrationInput, opts ...request.Option) (*Integration, error) {
5765	req, out := c.GetIntegrationRequest(input)
5766	req.SetContext(ctx)
5767	req.ApplyOptions(opts...)
5768	return out, req.Send()
5769}
5770
5771const opGetIntegrationResponse = "GetIntegrationResponse"
5772
5773// GetIntegrationResponseRequest generates a "aws/request.Request" representing the
5774// client's request for the GetIntegrationResponse operation. The "output" return
5775// value will be populated with the request's response once the request completes
5776// successfully.
5777//
5778// Use "Send" method on the returned Request to send the API call to the service.
5779// the "output" return value is not valid until after Send returns without error.
5780//
5781// See GetIntegrationResponse for more information on using the GetIntegrationResponse
5782// API call, and error handling.
5783//
5784// This method is useful when you want to inject custom logic or configuration
5785// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5786//
5787//
5788//    // Example sending a request using the GetIntegrationResponseRequest method.
5789//    req, resp := client.GetIntegrationResponseRequest(params)
5790//
5791//    err := req.Send()
5792//    if err == nil { // resp is now filled
5793//        fmt.Println(resp)
5794//    }
5795func (c *APIGateway) GetIntegrationResponseRequest(input *GetIntegrationResponseInput) (req *request.Request, output *IntegrationResponse) {
5796	op := &request.Operation{
5797		Name:       opGetIntegrationResponse,
5798		HTTPMethod: "GET",
5799		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
5800	}
5801
5802	if input == nil {
5803		input = &GetIntegrationResponseInput{}
5804	}
5805
5806	output = &IntegrationResponse{}
5807	req = c.newRequest(op, input, output)
5808	return
5809}
5810
5811// GetIntegrationResponse API operation for Amazon API Gateway.
5812//
5813// Represents a get integration response.
5814//
5815// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5816// with awserr.Error's Code and Message methods to get detailed information about
5817// the error.
5818//
5819// See the AWS API reference guide for Amazon API Gateway's
5820// API operation GetIntegrationResponse for usage and error information.
5821//
5822// Returned Error Types:
5823//   * BadRequestException
5824//   The submitted request is not valid, for example, the input is incomplete
5825//   or incorrect. See the accompanying error message for details.
5826//
5827//   * NotFoundException
5828//   The requested resource is not found. Make sure that the request URI is correct.
5829//
5830//   * UnauthorizedException
5831//   The request is denied because the caller has insufficient permissions.
5832//
5833//   * TooManyRequestsException
5834//   The request has reached its throttling limit. Retry after the specified time
5835//   period.
5836//
5837func (c *APIGateway) GetIntegrationResponse(input *GetIntegrationResponseInput) (*IntegrationResponse, error) {
5838	req, out := c.GetIntegrationResponseRequest(input)
5839	return out, req.Send()
5840}
5841
5842// GetIntegrationResponseWithContext is the same as GetIntegrationResponse with the addition of
5843// the ability to pass a context and additional request options.
5844//
5845// See GetIntegrationResponse for details on how to use this API operation.
5846//
5847// The context must be non-nil and will be used for request cancellation. If
5848// the context is nil a panic will occur. In the future the SDK may create
5849// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5850// for more information on using Contexts.
5851func (c *APIGateway) GetIntegrationResponseWithContext(ctx aws.Context, input *GetIntegrationResponseInput, opts ...request.Option) (*IntegrationResponse, error) {
5852	req, out := c.GetIntegrationResponseRequest(input)
5853	req.SetContext(ctx)
5854	req.ApplyOptions(opts...)
5855	return out, req.Send()
5856}
5857
5858const opGetMethod = "GetMethod"
5859
5860// GetMethodRequest generates a "aws/request.Request" representing the
5861// client's request for the GetMethod operation. The "output" return
5862// value will be populated with the request's response once the request completes
5863// successfully.
5864//
5865// Use "Send" method on the returned Request to send the API call to the service.
5866// the "output" return value is not valid until after Send returns without error.
5867//
5868// See GetMethod for more information on using the GetMethod
5869// API call, and error handling.
5870//
5871// This method is useful when you want to inject custom logic or configuration
5872// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5873//
5874//
5875//    // Example sending a request using the GetMethodRequest method.
5876//    req, resp := client.GetMethodRequest(params)
5877//
5878//    err := req.Send()
5879//    if err == nil { // resp is now filled
5880//        fmt.Println(resp)
5881//    }
5882func (c *APIGateway) GetMethodRequest(input *GetMethodInput) (req *request.Request, output *Method) {
5883	op := &request.Operation{
5884		Name:       opGetMethod,
5885		HTTPMethod: "GET",
5886		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
5887	}
5888
5889	if input == nil {
5890		input = &GetMethodInput{}
5891	}
5892
5893	output = &Method{}
5894	req = c.newRequest(op, input, output)
5895	return
5896}
5897
5898// GetMethod API operation for Amazon API Gateway.
5899//
5900// Describe an existing Method resource.
5901//
5902// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5903// with awserr.Error's Code and Message methods to get detailed information about
5904// the error.
5905//
5906// See the AWS API reference guide for Amazon API Gateway's
5907// API operation GetMethod for usage and error information.
5908//
5909// Returned Error Types:
5910//   * UnauthorizedException
5911//   The request is denied because the caller has insufficient permissions.
5912//
5913//   * NotFoundException
5914//   The requested resource is not found. Make sure that the request URI is correct.
5915//
5916//   * TooManyRequestsException
5917//   The request has reached its throttling limit. Retry after the specified time
5918//   period.
5919//
5920func (c *APIGateway) GetMethod(input *GetMethodInput) (*Method, error) {
5921	req, out := c.GetMethodRequest(input)
5922	return out, req.Send()
5923}
5924
5925// GetMethodWithContext is the same as GetMethod with the addition of
5926// the ability to pass a context and additional request options.
5927//
5928// See GetMethod for details on how to use this API operation.
5929//
5930// The context must be non-nil and will be used for request cancellation. If
5931// the context is nil a panic will occur. In the future the SDK may create
5932// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5933// for more information on using Contexts.
5934func (c *APIGateway) GetMethodWithContext(ctx aws.Context, input *GetMethodInput, opts ...request.Option) (*Method, error) {
5935	req, out := c.GetMethodRequest(input)
5936	req.SetContext(ctx)
5937	req.ApplyOptions(opts...)
5938	return out, req.Send()
5939}
5940
5941const opGetMethodResponse = "GetMethodResponse"
5942
5943// GetMethodResponseRequest generates a "aws/request.Request" representing the
5944// client's request for the GetMethodResponse operation. The "output" return
5945// value will be populated with the request's response once the request completes
5946// successfully.
5947//
5948// Use "Send" method on the returned Request to send the API call to the service.
5949// the "output" return value is not valid until after Send returns without error.
5950//
5951// See GetMethodResponse for more information on using the GetMethodResponse
5952// API call, and error handling.
5953//
5954// This method is useful when you want to inject custom logic or configuration
5955// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5956//
5957//
5958//    // Example sending a request using the GetMethodResponseRequest method.
5959//    req, resp := client.GetMethodResponseRequest(params)
5960//
5961//    err := req.Send()
5962//    if err == nil { // resp is now filled
5963//        fmt.Println(resp)
5964//    }
5965func (c *APIGateway) GetMethodResponseRequest(input *GetMethodResponseInput) (req *request.Request, output *MethodResponse) {
5966	op := &request.Operation{
5967		Name:       opGetMethodResponse,
5968		HTTPMethod: "GET",
5969		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
5970	}
5971
5972	if input == nil {
5973		input = &GetMethodResponseInput{}
5974	}
5975
5976	output = &MethodResponse{}
5977	req = c.newRequest(op, input, output)
5978	return
5979}
5980
5981// GetMethodResponse API operation for Amazon API Gateway.
5982//
5983// Describes a MethodResponse resource.
5984//
5985// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5986// with awserr.Error's Code and Message methods to get detailed information about
5987// the error.
5988//
5989// See the AWS API reference guide for Amazon API Gateway's
5990// API operation GetMethodResponse for usage and error information.
5991//
5992// Returned Error Types:
5993//   * UnauthorizedException
5994//   The request is denied because the caller has insufficient permissions.
5995//
5996//   * NotFoundException
5997//   The requested resource is not found. Make sure that the request URI is correct.
5998//
5999//   * TooManyRequestsException
6000//   The request has reached its throttling limit. Retry after the specified time
6001//   period.
6002//
6003func (c *APIGateway) GetMethodResponse(input *GetMethodResponseInput) (*MethodResponse, error) {
6004	req, out := c.GetMethodResponseRequest(input)
6005	return out, req.Send()
6006}
6007
6008// GetMethodResponseWithContext is the same as GetMethodResponse with the addition of
6009// the ability to pass a context and additional request options.
6010//
6011// See GetMethodResponse for details on how to use this API operation.
6012//
6013// The context must be non-nil and will be used for request cancellation. If
6014// the context is nil a panic will occur. In the future the SDK may create
6015// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6016// for more information on using Contexts.
6017func (c *APIGateway) GetMethodResponseWithContext(ctx aws.Context, input *GetMethodResponseInput, opts ...request.Option) (*MethodResponse, error) {
6018	req, out := c.GetMethodResponseRequest(input)
6019	req.SetContext(ctx)
6020	req.ApplyOptions(opts...)
6021	return out, req.Send()
6022}
6023
6024const opGetModel = "GetModel"
6025
6026// GetModelRequest generates a "aws/request.Request" representing the
6027// client's request for the GetModel operation. The "output" return
6028// value will be populated with the request's response once the request completes
6029// successfully.
6030//
6031// Use "Send" method on the returned Request to send the API call to the service.
6032// the "output" return value is not valid until after Send returns without error.
6033//
6034// See GetModel for more information on using the GetModel
6035// API call, and error handling.
6036//
6037// This method is useful when you want to inject custom logic or configuration
6038// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6039//
6040//
6041//    // Example sending a request using the GetModelRequest method.
6042//    req, resp := client.GetModelRequest(params)
6043//
6044//    err := req.Send()
6045//    if err == nil { // resp is now filled
6046//        fmt.Println(resp)
6047//    }
6048func (c *APIGateway) GetModelRequest(input *GetModelInput) (req *request.Request, output *Model) {
6049	op := &request.Operation{
6050		Name:       opGetModel,
6051		HTTPMethod: "GET",
6052		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}",
6053	}
6054
6055	if input == nil {
6056		input = &GetModelInput{}
6057	}
6058
6059	output = &Model{}
6060	req = c.newRequest(op, input, output)
6061	return
6062}
6063
6064// GetModel API operation for Amazon API Gateway.
6065//
6066// Describes an existing model defined for a RestApi resource.
6067//
6068// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6069// with awserr.Error's Code and Message methods to get detailed information about
6070// the error.
6071//
6072// See the AWS API reference guide for Amazon API Gateway's
6073// API operation GetModel for usage and error information.
6074//
6075// Returned Error Types:
6076//   * BadRequestException
6077//   The submitted request is not valid, for example, the input is incomplete
6078//   or incorrect. See the accompanying error message for details.
6079//
6080//   * NotFoundException
6081//   The requested resource is not found. Make sure that the request URI is correct.
6082//
6083//   * UnauthorizedException
6084//   The request is denied because the caller has insufficient permissions.
6085//
6086//   * TooManyRequestsException
6087//   The request has reached its throttling limit. Retry after the specified time
6088//   period.
6089//
6090func (c *APIGateway) GetModel(input *GetModelInput) (*Model, error) {
6091	req, out := c.GetModelRequest(input)
6092	return out, req.Send()
6093}
6094
6095// GetModelWithContext is the same as GetModel with the addition of
6096// the ability to pass a context and additional request options.
6097//
6098// See GetModel for details on how to use this API operation.
6099//
6100// The context must be non-nil and will be used for request cancellation. If
6101// the context is nil a panic will occur. In the future the SDK may create
6102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6103// for more information on using Contexts.
6104func (c *APIGateway) GetModelWithContext(ctx aws.Context, input *GetModelInput, opts ...request.Option) (*Model, error) {
6105	req, out := c.GetModelRequest(input)
6106	req.SetContext(ctx)
6107	req.ApplyOptions(opts...)
6108	return out, req.Send()
6109}
6110
6111const opGetModelTemplate = "GetModelTemplate"
6112
6113// GetModelTemplateRequest generates a "aws/request.Request" representing the
6114// client's request for the GetModelTemplate operation. The "output" return
6115// value will be populated with the request's response once the request completes
6116// successfully.
6117//
6118// Use "Send" method on the returned Request to send the API call to the service.
6119// the "output" return value is not valid until after Send returns without error.
6120//
6121// See GetModelTemplate for more information on using the GetModelTemplate
6122// API call, and error handling.
6123//
6124// This method is useful when you want to inject custom logic or configuration
6125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6126//
6127//
6128//    // Example sending a request using the GetModelTemplateRequest method.
6129//    req, resp := client.GetModelTemplateRequest(params)
6130//
6131//    err := req.Send()
6132//    if err == nil { // resp is now filled
6133//        fmt.Println(resp)
6134//    }
6135func (c *APIGateway) GetModelTemplateRequest(input *GetModelTemplateInput) (req *request.Request, output *GetModelTemplateOutput) {
6136	op := &request.Operation{
6137		Name:       opGetModelTemplate,
6138		HTTPMethod: "GET",
6139		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}/default_template",
6140	}
6141
6142	if input == nil {
6143		input = &GetModelTemplateInput{}
6144	}
6145
6146	output = &GetModelTemplateOutput{}
6147	req = c.newRequest(op, input, output)
6148	return
6149}
6150
6151// GetModelTemplate API operation for Amazon API Gateway.
6152//
6153// Generates a sample mapping template that can be used to transform a payload
6154// into the structure of a model.
6155//
6156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6157// with awserr.Error's Code and Message methods to get detailed information about
6158// the error.
6159//
6160// See the AWS API reference guide for Amazon API Gateway's
6161// API operation GetModelTemplate for usage and error information.
6162//
6163// Returned Error Types:
6164//   * UnauthorizedException
6165//   The request is denied because the caller has insufficient permissions.
6166//
6167//   * NotFoundException
6168//   The requested resource is not found. Make sure that the request URI is correct.
6169//
6170//   * BadRequestException
6171//   The submitted request is not valid, for example, the input is incomplete
6172//   or incorrect. See the accompanying error message for details.
6173//
6174//   * TooManyRequestsException
6175//   The request has reached its throttling limit. Retry after the specified time
6176//   period.
6177//
6178func (c *APIGateway) GetModelTemplate(input *GetModelTemplateInput) (*GetModelTemplateOutput, error) {
6179	req, out := c.GetModelTemplateRequest(input)
6180	return out, req.Send()
6181}
6182
6183// GetModelTemplateWithContext is the same as GetModelTemplate with the addition of
6184// the ability to pass a context and additional request options.
6185//
6186// See GetModelTemplate for details on how to use this API operation.
6187//
6188// The context must be non-nil and will be used for request cancellation. If
6189// the context is nil a panic will occur. In the future the SDK may create
6190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6191// for more information on using Contexts.
6192func (c *APIGateway) GetModelTemplateWithContext(ctx aws.Context, input *GetModelTemplateInput, opts ...request.Option) (*GetModelTemplateOutput, error) {
6193	req, out := c.GetModelTemplateRequest(input)
6194	req.SetContext(ctx)
6195	req.ApplyOptions(opts...)
6196	return out, req.Send()
6197}
6198
6199const opGetModels = "GetModels"
6200
6201// GetModelsRequest generates a "aws/request.Request" representing the
6202// client's request for the GetModels operation. The "output" return
6203// value will be populated with the request's response once the request completes
6204// successfully.
6205//
6206// Use "Send" method on the returned Request to send the API call to the service.
6207// the "output" return value is not valid until after Send returns without error.
6208//
6209// See GetModels for more information on using the GetModels
6210// API call, and error handling.
6211//
6212// This method is useful when you want to inject custom logic or configuration
6213// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6214//
6215//
6216//    // Example sending a request using the GetModelsRequest method.
6217//    req, resp := client.GetModelsRequest(params)
6218//
6219//    err := req.Send()
6220//    if err == nil { // resp is now filled
6221//        fmt.Println(resp)
6222//    }
6223func (c *APIGateway) GetModelsRequest(input *GetModelsInput) (req *request.Request, output *GetModelsOutput) {
6224	op := &request.Operation{
6225		Name:       opGetModels,
6226		HTTPMethod: "GET",
6227		HTTPPath:   "/restapis/{restapi_id}/models",
6228		Paginator: &request.Paginator{
6229			InputTokens:     []string{"position"},
6230			OutputTokens:    []string{"position"},
6231			LimitToken:      "limit",
6232			TruncationToken: "",
6233		},
6234	}
6235
6236	if input == nil {
6237		input = &GetModelsInput{}
6238	}
6239
6240	output = &GetModelsOutput{}
6241	req = c.newRequest(op, input, output)
6242	return
6243}
6244
6245// GetModels API operation for Amazon API Gateway.
6246//
6247// Describes existing Models defined for a RestApi resource.
6248//
6249// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6250// with awserr.Error's Code and Message methods to get detailed information about
6251// the error.
6252//
6253// See the AWS API reference guide for Amazon API Gateway's
6254// API operation GetModels for usage and error information.
6255//
6256// Returned Error Types:
6257//   * BadRequestException
6258//   The submitted request is not valid, for example, the input is incomplete
6259//   or incorrect. See the accompanying error message for details.
6260//
6261//   * UnauthorizedException
6262//   The request is denied because the caller has insufficient permissions.
6263//
6264//   * NotFoundException
6265//   The requested resource is not found. Make sure that the request URI is correct.
6266//
6267//   * TooManyRequestsException
6268//   The request has reached its throttling limit. Retry after the specified time
6269//   period.
6270//
6271func (c *APIGateway) GetModels(input *GetModelsInput) (*GetModelsOutput, error) {
6272	req, out := c.GetModelsRequest(input)
6273	return out, req.Send()
6274}
6275
6276// GetModelsWithContext is the same as GetModels with the addition of
6277// the ability to pass a context and additional request options.
6278//
6279// See GetModels for details on how to use this API operation.
6280//
6281// The context must be non-nil and will be used for request cancellation. If
6282// the context is nil a panic will occur. In the future the SDK may create
6283// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6284// for more information on using Contexts.
6285func (c *APIGateway) GetModelsWithContext(ctx aws.Context, input *GetModelsInput, opts ...request.Option) (*GetModelsOutput, error) {
6286	req, out := c.GetModelsRequest(input)
6287	req.SetContext(ctx)
6288	req.ApplyOptions(opts...)
6289	return out, req.Send()
6290}
6291
6292// GetModelsPages iterates over the pages of a GetModels operation,
6293// calling the "fn" function with the response data for each page. To stop
6294// iterating, return false from the fn function.
6295//
6296// See GetModels method for more information on how to use this operation.
6297//
6298// Note: This operation can generate multiple requests to a service.
6299//
6300//    // Example iterating over at most 3 pages of a GetModels operation.
6301//    pageNum := 0
6302//    err := client.GetModelsPages(params,
6303//        func(page *apigateway.GetModelsOutput, lastPage bool) bool {
6304//            pageNum++
6305//            fmt.Println(page)
6306//            return pageNum <= 3
6307//        })
6308//
6309func (c *APIGateway) GetModelsPages(input *GetModelsInput, fn func(*GetModelsOutput, bool) bool) error {
6310	return c.GetModelsPagesWithContext(aws.BackgroundContext(), input, fn)
6311}
6312
6313// GetModelsPagesWithContext same as GetModelsPages except
6314// it takes a Context and allows setting request options on the pages.
6315//
6316// The context must be non-nil and will be used for request cancellation. If
6317// the context is nil a panic will occur. In the future the SDK may create
6318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6319// for more information on using Contexts.
6320func (c *APIGateway) GetModelsPagesWithContext(ctx aws.Context, input *GetModelsInput, fn func(*GetModelsOutput, bool) bool, opts ...request.Option) error {
6321	p := request.Pagination{
6322		NewRequest: func() (*request.Request, error) {
6323			var inCpy *GetModelsInput
6324			if input != nil {
6325				tmp := *input
6326				inCpy = &tmp
6327			}
6328			req, _ := c.GetModelsRequest(inCpy)
6329			req.SetContext(ctx)
6330			req.ApplyOptions(opts...)
6331			return req, nil
6332		},
6333	}
6334
6335	for p.Next() {
6336		if !fn(p.Page().(*GetModelsOutput), !p.HasNextPage()) {
6337			break
6338		}
6339	}
6340
6341	return p.Err()
6342}
6343
6344const opGetRequestValidator = "GetRequestValidator"
6345
6346// GetRequestValidatorRequest generates a "aws/request.Request" representing the
6347// client's request for the GetRequestValidator operation. The "output" return
6348// value will be populated with the request's response once the request completes
6349// successfully.
6350//
6351// Use "Send" method on the returned Request to send the API call to the service.
6352// the "output" return value is not valid until after Send returns without error.
6353//
6354// See GetRequestValidator for more information on using the GetRequestValidator
6355// API call, and error handling.
6356//
6357// This method is useful when you want to inject custom logic or configuration
6358// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6359//
6360//
6361//    // Example sending a request using the GetRequestValidatorRequest method.
6362//    req, resp := client.GetRequestValidatorRequest(params)
6363//
6364//    err := req.Send()
6365//    if err == nil { // resp is now filled
6366//        fmt.Println(resp)
6367//    }
6368func (c *APIGateway) GetRequestValidatorRequest(input *GetRequestValidatorInput) (req *request.Request, output *UpdateRequestValidatorOutput) {
6369	op := &request.Operation{
6370		Name:       opGetRequestValidator,
6371		HTTPMethod: "GET",
6372		HTTPPath:   "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}",
6373	}
6374
6375	if input == nil {
6376		input = &GetRequestValidatorInput{}
6377	}
6378
6379	output = &UpdateRequestValidatorOutput{}
6380	req = c.newRequest(op, input, output)
6381	return
6382}
6383
6384// GetRequestValidator API operation for Amazon API Gateway.
6385//
6386// Gets a RequestValidator of a given RestApi.
6387//
6388// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6389// with awserr.Error's Code and Message methods to get detailed information about
6390// the error.
6391//
6392// See the AWS API reference guide for Amazon API Gateway's
6393// API operation GetRequestValidator for usage and error information.
6394//
6395// Returned Error Types:
6396//   * BadRequestException
6397//   The submitted request is not valid, for example, the input is incomplete
6398//   or incorrect. See the accompanying error message for details.
6399//
6400//   * NotFoundException
6401//   The requested resource is not found. Make sure that the request URI is correct.
6402//
6403//   * UnauthorizedException
6404//   The request is denied because the caller has insufficient permissions.
6405//
6406//   * TooManyRequestsException
6407//   The request has reached its throttling limit. Retry after the specified time
6408//   period.
6409//
6410func (c *APIGateway) GetRequestValidator(input *GetRequestValidatorInput) (*UpdateRequestValidatorOutput, error) {
6411	req, out := c.GetRequestValidatorRequest(input)
6412	return out, req.Send()
6413}
6414
6415// GetRequestValidatorWithContext is the same as GetRequestValidator with the addition of
6416// the ability to pass a context and additional request options.
6417//
6418// See GetRequestValidator for details on how to use this API operation.
6419//
6420// The context must be non-nil and will be used for request cancellation. If
6421// the context is nil a panic will occur. In the future the SDK may create
6422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6423// for more information on using Contexts.
6424func (c *APIGateway) GetRequestValidatorWithContext(ctx aws.Context, input *GetRequestValidatorInput, opts ...request.Option) (*UpdateRequestValidatorOutput, error) {
6425	req, out := c.GetRequestValidatorRequest(input)
6426	req.SetContext(ctx)
6427	req.ApplyOptions(opts...)
6428	return out, req.Send()
6429}
6430
6431const opGetRequestValidators = "GetRequestValidators"
6432
6433// GetRequestValidatorsRequest generates a "aws/request.Request" representing the
6434// client's request for the GetRequestValidators operation. The "output" return
6435// value will be populated with the request's response once the request completes
6436// successfully.
6437//
6438// Use "Send" method on the returned Request to send the API call to the service.
6439// the "output" return value is not valid until after Send returns without error.
6440//
6441// See GetRequestValidators for more information on using the GetRequestValidators
6442// API call, and error handling.
6443//
6444// This method is useful when you want to inject custom logic or configuration
6445// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6446//
6447//
6448//    // Example sending a request using the GetRequestValidatorsRequest method.
6449//    req, resp := client.GetRequestValidatorsRequest(params)
6450//
6451//    err := req.Send()
6452//    if err == nil { // resp is now filled
6453//        fmt.Println(resp)
6454//    }
6455func (c *APIGateway) GetRequestValidatorsRequest(input *GetRequestValidatorsInput) (req *request.Request, output *GetRequestValidatorsOutput) {
6456	op := &request.Operation{
6457		Name:       opGetRequestValidators,
6458		HTTPMethod: "GET",
6459		HTTPPath:   "/restapis/{restapi_id}/requestvalidators",
6460	}
6461
6462	if input == nil {
6463		input = &GetRequestValidatorsInput{}
6464	}
6465
6466	output = &GetRequestValidatorsOutput{}
6467	req = c.newRequest(op, input, output)
6468	return
6469}
6470
6471// GetRequestValidators API operation for Amazon API Gateway.
6472//
6473// Gets the RequestValidators collection of a given RestApi.
6474//
6475// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6476// with awserr.Error's Code and Message methods to get detailed information about
6477// the error.
6478//
6479// See the AWS API reference guide for Amazon API Gateway's
6480// API operation GetRequestValidators for usage and error information.
6481//
6482// Returned Error Types:
6483//   * BadRequestException
6484//   The submitted request is not valid, for example, the input is incomplete
6485//   or incorrect. See the accompanying error message for details.
6486//
6487//   * NotFoundException
6488//   The requested resource is not found. Make sure that the request URI is correct.
6489//
6490//   * UnauthorizedException
6491//   The request is denied because the caller has insufficient permissions.
6492//
6493//   * TooManyRequestsException
6494//   The request has reached its throttling limit. Retry after the specified time
6495//   period.
6496//
6497func (c *APIGateway) GetRequestValidators(input *GetRequestValidatorsInput) (*GetRequestValidatorsOutput, error) {
6498	req, out := c.GetRequestValidatorsRequest(input)
6499	return out, req.Send()
6500}
6501
6502// GetRequestValidatorsWithContext is the same as GetRequestValidators with the addition of
6503// the ability to pass a context and additional request options.
6504//
6505// See GetRequestValidators for details on how to use this API operation.
6506//
6507// The context must be non-nil and will be used for request cancellation. If
6508// the context is nil a panic will occur. In the future the SDK may create
6509// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6510// for more information on using Contexts.
6511func (c *APIGateway) GetRequestValidatorsWithContext(ctx aws.Context, input *GetRequestValidatorsInput, opts ...request.Option) (*GetRequestValidatorsOutput, error) {
6512	req, out := c.GetRequestValidatorsRequest(input)
6513	req.SetContext(ctx)
6514	req.ApplyOptions(opts...)
6515	return out, req.Send()
6516}
6517
6518const opGetResource = "GetResource"
6519
6520// GetResourceRequest generates a "aws/request.Request" representing the
6521// client's request for the GetResource operation. The "output" return
6522// value will be populated with the request's response once the request completes
6523// successfully.
6524//
6525// Use "Send" method on the returned Request to send the API call to the service.
6526// the "output" return value is not valid until after Send returns without error.
6527//
6528// See GetResource for more information on using the GetResource
6529// API call, and error handling.
6530//
6531// This method is useful when you want to inject custom logic or configuration
6532// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6533//
6534//
6535//    // Example sending a request using the GetResourceRequest method.
6536//    req, resp := client.GetResourceRequest(params)
6537//
6538//    err := req.Send()
6539//    if err == nil { // resp is now filled
6540//        fmt.Println(resp)
6541//    }
6542func (c *APIGateway) GetResourceRequest(input *GetResourceInput) (req *request.Request, output *Resource) {
6543	op := &request.Operation{
6544		Name:       opGetResource,
6545		HTTPMethod: "GET",
6546		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}",
6547	}
6548
6549	if input == nil {
6550		input = &GetResourceInput{}
6551	}
6552
6553	output = &Resource{}
6554	req = c.newRequest(op, input, output)
6555	return
6556}
6557
6558// GetResource API operation for Amazon API Gateway.
6559//
6560// Lists information about a resource.
6561//
6562// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6563// with awserr.Error's Code and Message methods to get detailed information about
6564// the error.
6565//
6566// See the AWS API reference guide for Amazon API Gateway's
6567// API operation GetResource for usage and error information.
6568//
6569// Returned Error Types:
6570//   * UnauthorizedException
6571//   The request is denied because the caller has insufficient permissions.
6572//
6573//   * NotFoundException
6574//   The requested resource is not found. Make sure that the request URI is correct.
6575//
6576//   * TooManyRequestsException
6577//   The request has reached its throttling limit. Retry after the specified time
6578//   period.
6579//
6580func (c *APIGateway) GetResource(input *GetResourceInput) (*Resource, error) {
6581	req, out := c.GetResourceRequest(input)
6582	return out, req.Send()
6583}
6584
6585// GetResourceWithContext is the same as GetResource with the addition of
6586// the ability to pass a context and additional request options.
6587//
6588// See GetResource for details on how to use this API operation.
6589//
6590// The context must be non-nil and will be used for request cancellation. If
6591// the context is nil a panic will occur. In the future the SDK may create
6592// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6593// for more information on using Contexts.
6594func (c *APIGateway) GetResourceWithContext(ctx aws.Context, input *GetResourceInput, opts ...request.Option) (*Resource, error) {
6595	req, out := c.GetResourceRequest(input)
6596	req.SetContext(ctx)
6597	req.ApplyOptions(opts...)
6598	return out, req.Send()
6599}
6600
6601const opGetResources = "GetResources"
6602
6603// GetResourcesRequest generates a "aws/request.Request" representing the
6604// client's request for the GetResources operation. The "output" return
6605// value will be populated with the request's response once the request completes
6606// successfully.
6607//
6608// Use "Send" method on the returned Request to send the API call to the service.
6609// the "output" return value is not valid until after Send returns without error.
6610//
6611// See GetResources for more information on using the GetResources
6612// API call, and error handling.
6613//
6614// This method is useful when you want to inject custom logic or configuration
6615// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6616//
6617//
6618//    // Example sending a request using the GetResourcesRequest method.
6619//    req, resp := client.GetResourcesRequest(params)
6620//
6621//    err := req.Send()
6622//    if err == nil { // resp is now filled
6623//        fmt.Println(resp)
6624//    }
6625func (c *APIGateway) GetResourcesRequest(input *GetResourcesInput) (req *request.Request, output *GetResourcesOutput) {
6626	op := &request.Operation{
6627		Name:       opGetResources,
6628		HTTPMethod: "GET",
6629		HTTPPath:   "/restapis/{restapi_id}/resources",
6630		Paginator: &request.Paginator{
6631			InputTokens:     []string{"position"},
6632			OutputTokens:    []string{"position"},
6633			LimitToken:      "limit",
6634			TruncationToken: "",
6635		},
6636	}
6637
6638	if input == nil {
6639		input = &GetResourcesInput{}
6640	}
6641
6642	output = &GetResourcesOutput{}
6643	req = c.newRequest(op, input, output)
6644	return
6645}
6646
6647// GetResources API operation for Amazon API Gateway.
6648//
6649// Lists information about a collection of Resource resources.
6650//
6651// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6652// with awserr.Error's Code and Message methods to get detailed information about
6653// the error.
6654//
6655// See the AWS API reference guide for Amazon API Gateway's
6656// API operation GetResources for usage and error information.
6657//
6658// Returned Error Types:
6659//   * BadRequestException
6660//   The submitted request is not valid, for example, the input is incomplete
6661//   or incorrect. See the accompanying error message for details.
6662//
6663//   * UnauthorizedException
6664//   The request is denied because the caller has insufficient permissions.
6665//
6666//   * NotFoundException
6667//   The requested resource is not found. Make sure that the request URI is correct.
6668//
6669//   * TooManyRequestsException
6670//   The request has reached its throttling limit. Retry after the specified time
6671//   period.
6672//
6673func (c *APIGateway) GetResources(input *GetResourcesInput) (*GetResourcesOutput, error) {
6674	req, out := c.GetResourcesRequest(input)
6675	return out, req.Send()
6676}
6677
6678// GetResourcesWithContext is the same as GetResources with the addition of
6679// the ability to pass a context and additional request options.
6680//
6681// See GetResources for details on how to use this API operation.
6682//
6683// The context must be non-nil and will be used for request cancellation. If
6684// the context is nil a panic will occur. In the future the SDK may create
6685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6686// for more information on using Contexts.
6687func (c *APIGateway) GetResourcesWithContext(ctx aws.Context, input *GetResourcesInput, opts ...request.Option) (*GetResourcesOutput, error) {
6688	req, out := c.GetResourcesRequest(input)
6689	req.SetContext(ctx)
6690	req.ApplyOptions(opts...)
6691	return out, req.Send()
6692}
6693
6694// GetResourcesPages iterates over the pages of a GetResources operation,
6695// calling the "fn" function with the response data for each page. To stop
6696// iterating, return false from the fn function.
6697//
6698// See GetResources method for more information on how to use this operation.
6699//
6700// Note: This operation can generate multiple requests to a service.
6701//
6702//    // Example iterating over at most 3 pages of a GetResources operation.
6703//    pageNum := 0
6704//    err := client.GetResourcesPages(params,
6705//        func(page *apigateway.GetResourcesOutput, lastPage bool) bool {
6706//            pageNum++
6707//            fmt.Println(page)
6708//            return pageNum <= 3
6709//        })
6710//
6711func (c *APIGateway) GetResourcesPages(input *GetResourcesInput, fn func(*GetResourcesOutput, bool) bool) error {
6712	return c.GetResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
6713}
6714
6715// GetResourcesPagesWithContext same as GetResourcesPages except
6716// it takes a Context and allows setting request options on the pages.
6717//
6718// The context must be non-nil and will be used for request cancellation. If
6719// the context is nil a panic will occur. In the future the SDK may create
6720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6721// for more information on using Contexts.
6722func (c *APIGateway) GetResourcesPagesWithContext(ctx aws.Context, input *GetResourcesInput, fn func(*GetResourcesOutput, bool) bool, opts ...request.Option) error {
6723	p := request.Pagination{
6724		NewRequest: func() (*request.Request, error) {
6725			var inCpy *GetResourcesInput
6726			if input != nil {
6727				tmp := *input
6728				inCpy = &tmp
6729			}
6730			req, _ := c.GetResourcesRequest(inCpy)
6731			req.SetContext(ctx)
6732			req.ApplyOptions(opts...)
6733			return req, nil
6734		},
6735	}
6736
6737	for p.Next() {
6738		if !fn(p.Page().(*GetResourcesOutput), !p.HasNextPage()) {
6739			break
6740		}
6741	}
6742
6743	return p.Err()
6744}
6745
6746const opGetRestApi = "GetRestApi"
6747
6748// GetRestApiRequest generates a "aws/request.Request" representing the
6749// client's request for the GetRestApi operation. The "output" return
6750// value will be populated with the request's response once the request completes
6751// successfully.
6752//
6753// Use "Send" method on the returned Request to send the API call to the service.
6754// the "output" return value is not valid until after Send returns without error.
6755//
6756// See GetRestApi for more information on using the GetRestApi
6757// API call, and error handling.
6758//
6759// This method is useful when you want to inject custom logic or configuration
6760// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6761//
6762//
6763//    // Example sending a request using the GetRestApiRequest method.
6764//    req, resp := client.GetRestApiRequest(params)
6765//
6766//    err := req.Send()
6767//    if err == nil { // resp is now filled
6768//        fmt.Println(resp)
6769//    }
6770func (c *APIGateway) GetRestApiRequest(input *GetRestApiInput) (req *request.Request, output *RestApi) {
6771	op := &request.Operation{
6772		Name:       opGetRestApi,
6773		HTTPMethod: "GET",
6774		HTTPPath:   "/restapis/{restapi_id}",
6775	}
6776
6777	if input == nil {
6778		input = &GetRestApiInput{}
6779	}
6780
6781	output = &RestApi{}
6782	req = c.newRequest(op, input, output)
6783	return
6784}
6785
6786// GetRestApi API operation for Amazon API Gateway.
6787//
6788// Lists the RestApi resource in the collection.
6789//
6790// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6791// with awserr.Error's Code and Message methods to get detailed information about
6792// the error.
6793//
6794// See the AWS API reference guide for Amazon API Gateway's
6795// API operation GetRestApi for usage and error information.
6796//
6797// Returned Error Types:
6798//   * BadRequestException
6799//   The submitted request is not valid, for example, the input is incomplete
6800//   or incorrect. See the accompanying error message for details.
6801//
6802//   * NotFoundException
6803//   The requested resource is not found. Make sure that the request URI is correct.
6804//
6805//   * UnauthorizedException
6806//   The request is denied because the caller has insufficient permissions.
6807//
6808//   * TooManyRequestsException
6809//   The request has reached its throttling limit. Retry after the specified time
6810//   period.
6811//
6812func (c *APIGateway) GetRestApi(input *GetRestApiInput) (*RestApi, error) {
6813	req, out := c.GetRestApiRequest(input)
6814	return out, req.Send()
6815}
6816
6817// GetRestApiWithContext is the same as GetRestApi with the addition of
6818// the ability to pass a context and additional request options.
6819//
6820// See GetRestApi for details on how to use this API operation.
6821//
6822// The context must be non-nil and will be used for request cancellation. If
6823// the context is nil a panic will occur. In the future the SDK may create
6824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6825// for more information on using Contexts.
6826func (c *APIGateway) GetRestApiWithContext(ctx aws.Context, input *GetRestApiInput, opts ...request.Option) (*RestApi, error) {
6827	req, out := c.GetRestApiRequest(input)
6828	req.SetContext(ctx)
6829	req.ApplyOptions(opts...)
6830	return out, req.Send()
6831}
6832
6833const opGetRestApis = "GetRestApis"
6834
6835// GetRestApisRequest generates a "aws/request.Request" representing the
6836// client's request for the GetRestApis operation. The "output" return
6837// value will be populated with the request's response once the request completes
6838// successfully.
6839//
6840// Use "Send" method on the returned Request to send the API call to the service.
6841// the "output" return value is not valid until after Send returns without error.
6842//
6843// See GetRestApis for more information on using the GetRestApis
6844// API call, and error handling.
6845//
6846// This method is useful when you want to inject custom logic or configuration
6847// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6848//
6849//
6850//    // Example sending a request using the GetRestApisRequest method.
6851//    req, resp := client.GetRestApisRequest(params)
6852//
6853//    err := req.Send()
6854//    if err == nil { // resp is now filled
6855//        fmt.Println(resp)
6856//    }
6857func (c *APIGateway) GetRestApisRequest(input *GetRestApisInput) (req *request.Request, output *GetRestApisOutput) {
6858	op := &request.Operation{
6859		Name:       opGetRestApis,
6860		HTTPMethod: "GET",
6861		HTTPPath:   "/restapis",
6862		Paginator: &request.Paginator{
6863			InputTokens:     []string{"position"},
6864			OutputTokens:    []string{"position"},
6865			LimitToken:      "limit",
6866			TruncationToken: "",
6867		},
6868	}
6869
6870	if input == nil {
6871		input = &GetRestApisInput{}
6872	}
6873
6874	output = &GetRestApisOutput{}
6875	req = c.newRequest(op, input, output)
6876	return
6877}
6878
6879// GetRestApis API operation for Amazon API Gateway.
6880//
6881// Lists the RestApis resources for your collection.
6882//
6883// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6884// with awserr.Error's Code and Message methods to get detailed information about
6885// the error.
6886//
6887// See the AWS API reference guide for Amazon API Gateway's
6888// API operation GetRestApis for usage and error information.
6889//
6890// Returned Error Types:
6891//   * BadRequestException
6892//   The submitted request is not valid, for example, the input is incomplete
6893//   or incorrect. See the accompanying error message for details.
6894//
6895//   * NotFoundException
6896//   The requested resource is not found. Make sure that the request URI is correct.
6897//
6898//   * UnauthorizedException
6899//   The request is denied because the caller has insufficient permissions.
6900//
6901//   * TooManyRequestsException
6902//   The request has reached its throttling limit. Retry after the specified time
6903//   period.
6904//
6905func (c *APIGateway) GetRestApis(input *GetRestApisInput) (*GetRestApisOutput, error) {
6906	req, out := c.GetRestApisRequest(input)
6907	return out, req.Send()
6908}
6909
6910// GetRestApisWithContext is the same as GetRestApis with the addition of
6911// the ability to pass a context and additional request options.
6912//
6913// See GetRestApis for details on how to use this API operation.
6914//
6915// The context must be non-nil and will be used for request cancellation. If
6916// the context is nil a panic will occur. In the future the SDK may create
6917// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6918// for more information on using Contexts.
6919func (c *APIGateway) GetRestApisWithContext(ctx aws.Context, input *GetRestApisInput, opts ...request.Option) (*GetRestApisOutput, error) {
6920	req, out := c.GetRestApisRequest(input)
6921	req.SetContext(ctx)
6922	req.ApplyOptions(opts...)
6923	return out, req.Send()
6924}
6925
6926// GetRestApisPages iterates over the pages of a GetRestApis operation,
6927// calling the "fn" function with the response data for each page. To stop
6928// iterating, return false from the fn function.
6929//
6930// See GetRestApis method for more information on how to use this operation.
6931//
6932// Note: This operation can generate multiple requests to a service.
6933//
6934//    // Example iterating over at most 3 pages of a GetRestApis operation.
6935//    pageNum := 0
6936//    err := client.GetRestApisPages(params,
6937//        func(page *apigateway.GetRestApisOutput, lastPage bool) bool {
6938//            pageNum++
6939//            fmt.Println(page)
6940//            return pageNum <= 3
6941//        })
6942//
6943func (c *APIGateway) GetRestApisPages(input *GetRestApisInput, fn func(*GetRestApisOutput, bool) bool) error {
6944	return c.GetRestApisPagesWithContext(aws.BackgroundContext(), input, fn)
6945}
6946
6947// GetRestApisPagesWithContext same as GetRestApisPages except
6948// it takes a Context and allows setting request options on the pages.
6949//
6950// The context must be non-nil and will be used for request cancellation. If
6951// the context is nil a panic will occur. In the future the SDK may create
6952// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6953// for more information on using Contexts.
6954func (c *APIGateway) GetRestApisPagesWithContext(ctx aws.Context, input *GetRestApisInput, fn func(*GetRestApisOutput, bool) bool, opts ...request.Option) error {
6955	p := request.Pagination{
6956		NewRequest: func() (*request.Request, error) {
6957			var inCpy *GetRestApisInput
6958			if input != nil {
6959				tmp := *input
6960				inCpy = &tmp
6961			}
6962			req, _ := c.GetRestApisRequest(inCpy)
6963			req.SetContext(ctx)
6964			req.ApplyOptions(opts...)
6965			return req, nil
6966		},
6967	}
6968
6969	for p.Next() {
6970		if !fn(p.Page().(*GetRestApisOutput), !p.HasNextPage()) {
6971			break
6972		}
6973	}
6974
6975	return p.Err()
6976}
6977
6978const opGetSdk = "GetSdk"
6979
6980// GetSdkRequest generates a "aws/request.Request" representing the
6981// client's request for the GetSdk operation. The "output" return
6982// value will be populated with the request's response once the request completes
6983// successfully.
6984//
6985// Use "Send" method on the returned Request to send the API call to the service.
6986// the "output" return value is not valid until after Send returns without error.
6987//
6988// See GetSdk for more information on using the GetSdk
6989// API call, and error handling.
6990//
6991// This method is useful when you want to inject custom logic or configuration
6992// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6993//
6994//
6995//    // Example sending a request using the GetSdkRequest method.
6996//    req, resp := client.GetSdkRequest(params)
6997//
6998//    err := req.Send()
6999//    if err == nil { // resp is now filled
7000//        fmt.Println(resp)
7001//    }
7002func (c *APIGateway) GetSdkRequest(input *GetSdkInput) (req *request.Request, output *GetSdkOutput) {
7003	op := &request.Operation{
7004		Name:       opGetSdk,
7005		HTTPMethod: "GET",
7006		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}/sdks/{sdk_type}",
7007	}
7008
7009	if input == nil {
7010		input = &GetSdkInput{}
7011	}
7012
7013	output = &GetSdkOutput{}
7014	req = c.newRequest(op, input, output)
7015	return
7016}
7017
7018// GetSdk API operation for Amazon API Gateway.
7019//
7020// Generates a client SDK for a RestApi and Stage.
7021//
7022// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7023// with awserr.Error's Code and Message methods to get detailed information about
7024// the error.
7025//
7026// See the AWS API reference guide for Amazon API Gateway's
7027// API operation GetSdk for usage and error information.
7028//
7029// Returned Error Types:
7030//   * BadRequestException
7031//   The submitted request is not valid, for example, the input is incomplete
7032//   or incorrect. See the accompanying error message for details.
7033//
7034//   * ConflictException
7035//   The request configuration has conflicts. For details, see the accompanying
7036//   error message.
7037//
7038//   * LimitExceededException
7039//   The request exceeded the rate limit. Retry after the specified time period.
7040//
7041//   * NotFoundException
7042//   The requested resource is not found. Make sure that the request URI is correct.
7043//
7044//   * UnauthorizedException
7045//   The request is denied because the caller has insufficient permissions.
7046//
7047//   * TooManyRequestsException
7048//   The request has reached its throttling limit. Retry after the specified time
7049//   period.
7050//
7051func (c *APIGateway) GetSdk(input *GetSdkInput) (*GetSdkOutput, error) {
7052	req, out := c.GetSdkRequest(input)
7053	return out, req.Send()
7054}
7055
7056// GetSdkWithContext is the same as GetSdk with the addition of
7057// the ability to pass a context and additional request options.
7058//
7059// See GetSdk for details on how to use this API operation.
7060//
7061// The context must be non-nil and will be used for request cancellation. If
7062// the context is nil a panic will occur. In the future the SDK may create
7063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7064// for more information on using Contexts.
7065func (c *APIGateway) GetSdkWithContext(ctx aws.Context, input *GetSdkInput, opts ...request.Option) (*GetSdkOutput, error) {
7066	req, out := c.GetSdkRequest(input)
7067	req.SetContext(ctx)
7068	req.ApplyOptions(opts...)
7069	return out, req.Send()
7070}
7071
7072const opGetSdkType = "GetSdkType"
7073
7074// GetSdkTypeRequest generates a "aws/request.Request" representing the
7075// client's request for the GetSdkType operation. The "output" return
7076// value will be populated with the request's response once the request completes
7077// successfully.
7078//
7079// Use "Send" method on the returned Request to send the API call to the service.
7080// the "output" return value is not valid until after Send returns without error.
7081//
7082// See GetSdkType for more information on using the GetSdkType
7083// API call, and error handling.
7084//
7085// This method is useful when you want to inject custom logic or configuration
7086// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7087//
7088//
7089//    // Example sending a request using the GetSdkTypeRequest method.
7090//    req, resp := client.GetSdkTypeRequest(params)
7091//
7092//    err := req.Send()
7093//    if err == nil { // resp is now filled
7094//        fmt.Println(resp)
7095//    }
7096func (c *APIGateway) GetSdkTypeRequest(input *GetSdkTypeInput) (req *request.Request, output *SdkType) {
7097	op := &request.Operation{
7098		Name:       opGetSdkType,
7099		HTTPMethod: "GET",
7100		HTTPPath:   "/sdktypes/{sdktype_id}",
7101	}
7102
7103	if input == nil {
7104		input = &GetSdkTypeInput{}
7105	}
7106
7107	output = &SdkType{}
7108	req = c.newRequest(op, input, output)
7109	return
7110}
7111
7112// GetSdkType API operation for Amazon API Gateway.
7113//
7114// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7115// with awserr.Error's Code and Message methods to get detailed information about
7116// the error.
7117//
7118// See the AWS API reference guide for Amazon API Gateway's
7119// API operation GetSdkType for usage and error information.
7120//
7121// Returned Error Types:
7122//   * BadRequestException
7123//   The submitted request is not valid, for example, the input is incomplete
7124//   or incorrect. See the accompanying error message for details.
7125//
7126//   * NotFoundException
7127//   The requested resource is not found. Make sure that the request URI is correct.
7128//
7129//   * UnauthorizedException
7130//   The request is denied because the caller has insufficient permissions.
7131//
7132//   * TooManyRequestsException
7133//   The request has reached its throttling limit. Retry after the specified time
7134//   period.
7135//
7136func (c *APIGateway) GetSdkType(input *GetSdkTypeInput) (*SdkType, error) {
7137	req, out := c.GetSdkTypeRequest(input)
7138	return out, req.Send()
7139}
7140
7141// GetSdkTypeWithContext is the same as GetSdkType with the addition of
7142// the ability to pass a context and additional request options.
7143//
7144// See GetSdkType for details on how to use this API operation.
7145//
7146// The context must be non-nil and will be used for request cancellation. If
7147// the context is nil a panic will occur. In the future the SDK may create
7148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7149// for more information on using Contexts.
7150func (c *APIGateway) GetSdkTypeWithContext(ctx aws.Context, input *GetSdkTypeInput, opts ...request.Option) (*SdkType, error) {
7151	req, out := c.GetSdkTypeRequest(input)
7152	req.SetContext(ctx)
7153	req.ApplyOptions(opts...)
7154	return out, req.Send()
7155}
7156
7157const opGetSdkTypes = "GetSdkTypes"
7158
7159// GetSdkTypesRequest generates a "aws/request.Request" representing the
7160// client's request for the GetSdkTypes operation. The "output" return
7161// value will be populated with the request's response once the request completes
7162// successfully.
7163//
7164// Use "Send" method on the returned Request to send the API call to the service.
7165// the "output" return value is not valid until after Send returns without error.
7166//
7167// See GetSdkTypes for more information on using the GetSdkTypes
7168// API call, and error handling.
7169//
7170// This method is useful when you want to inject custom logic or configuration
7171// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7172//
7173//
7174//    // Example sending a request using the GetSdkTypesRequest method.
7175//    req, resp := client.GetSdkTypesRequest(params)
7176//
7177//    err := req.Send()
7178//    if err == nil { // resp is now filled
7179//        fmt.Println(resp)
7180//    }
7181func (c *APIGateway) GetSdkTypesRequest(input *GetSdkTypesInput) (req *request.Request, output *GetSdkTypesOutput) {
7182	op := &request.Operation{
7183		Name:       opGetSdkTypes,
7184		HTTPMethod: "GET",
7185		HTTPPath:   "/sdktypes",
7186	}
7187
7188	if input == nil {
7189		input = &GetSdkTypesInput{}
7190	}
7191
7192	output = &GetSdkTypesOutput{}
7193	req = c.newRequest(op, input, output)
7194	return
7195}
7196
7197// GetSdkTypes API operation for Amazon API Gateway.
7198//
7199// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7200// with awserr.Error's Code and Message methods to get detailed information about
7201// the error.
7202//
7203// See the AWS API reference guide for Amazon API Gateway's
7204// API operation GetSdkTypes for usage and error information.
7205//
7206// Returned Error Types:
7207//   * BadRequestException
7208//   The submitted request is not valid, for example, the input is incomplete
7209//   or incorrect. See the accompanying error message for details.
7210//
7211//   * NotFoundException
7212//   The requested resource is not found. Make sure that the request URI is correct.
7213//
7214//   * UnauthorizedException
7215//   The request is denied because the caller has insufficient permissions.
7216//
7217//   * TooManyRequestsException
7218//   The request has reached its throttling limit. Retry after the specified time
7219//   period.
7220//
7221func (c *APIGateway) GetSdkTypes(input *GetSdkTypesInput) (*GetSdkTypesOutput, error) {
7222	req, out := c.GetSdkTypesRequest(input)
7223	return out, req.Send()
7224}
7225
7226// GetSdkTypesWithContext is the same as GetSdkTypes with the addition of
7227// the ability to pass a context and additional request options.
7228//
7229// See GetSdkTypes for details on how to use this API operation.
7230//
7231// The context must be non-nil and will be used for request cancellation. If
7232// the context is nil a panic will occur. In the future the SDK may create
7233// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7234// for more information on using Contexts.
7235func (c *APIGateway) GetSdkTypesWithContext(ctx aws.Context, input *GetSdkTypesInput, opts ...request.Option) (*GetSdkTypesOutput, error) {
7236	req, out := c.GetSdkTypesRequest(input)
7237	req.SetContext(ctx)
7238	req.ApplyOptions(opts...)
7239	return out, req.Send()
7240}
7241
7242const opGetStage = "GetStage"
7243
7244// GetStageRequest generates a "aws/request.Request" representing the
7245// client's request for the GetStage operation. The "output" return
7246// value will be populated with the request's response once the request completes
7247// successfully.
7248//
7249// Use "Send" method on the returned Request to send the API call to the service.
7250// the "output" return value is not valid until after Send returns without error.
7251//
7252// See GetStage for more information on using the GetStage
7253// API call, and error handling.
7254//
7255// This method is useful when you want to inject custom logic or configuration
7256// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7257//
7258//
7259//    // Example sending a request using the GetStageRequest method.
7260//    req, resp := client.GetStageRequest(params)
7261//
7262//    err := req.Send()
7263//    if err == nil { // resp is now filled
7264//        fmt.Println(resp)
7265//    }
7266func (c *APIGateway) GetStageRequest(input *GetStageInput) (req *request.Request, output *Stage) {
7267	op := &request.Operation{
7268		Name:       opGetStage,
7269		HTTPMethod: "GET",
7270		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}",
7271	}
7272
7273	if input == nil {
7274		input = &GetStageInput{}
7275	}
7276
7277	output = &Stage{}
7278	req = c.newRequest(op, input, output)
7279	return
7280}
7281
7282// GetStage API operation for Amazon API Gateway.
7283//
7284// Gets information about a Stage resource.
7285//
7286// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7287// with awserr.Error's Code and Message methods to get detailed information about
7288// the error.
7289//
7290// See the AWS API reference guide for Amazon API Gateway's
7291// API operation GetStage for usage and error information.
7292//
7293// Returned Error Types:
7294//   * BadRequestException
7295//   The submitted request is not valid, for example, the input is incomplete
7296//   or incorrect. See the accompanying error message for details.
7297//
7298//   * ConflictException
7299//   The request configuration has conflicts. For details, see the accompanying
7300//   error message.
7301//
7302//   * LimitExceededException
7303//   The request exceeded the rate limit. Retry after the specified time period.
7304//
7305//   * NotFoundException
7306//   The requested resource is not found. Make sure that the request URI is correct.
7307//
7308//   * UnauthorizedException
7309//   The request is denied because the caller has insufficient permissions.
7310//
7311//   * TooManyRequestsException
7312//   The request has reached its throttling limit. Retry after the specified time
7313//   period.
7314//
7315func (c *APIGateway) GetStage(input *GetStageInput) (*Stage, error) {
7316	req, out := c.GetStageRequest(input)
7317	return out, req.Send()
7318}
7319
7320// GetStageWithContext is the same as GetStage with the addition of
7321// the ability to pass a context and additional request options.
7322//
7323// See GetStage for details on how to use this API operation.
7324//
7325// The context must be non-nil and will be used for request cancellation. If
7326// the context is nil a panic will occur. In the future the SDK may create
7327// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7328// for more information on using Contexts.
7329func (c *APIGateway) GetStageWithContext(ctx aws.Context, input *GetStageInput, opts ...request.Option) (*Stage, error) {
7330	req, out := c.GetStageRequest(input)
7331	req.SetContext(ctx)
7332	req.ApplyOptions(opts...)
7333	return out, req.Send()
7334}
7335
7336const opGetStages = "GetStages"
7337
7338// GetStagesRequest generates a "aws/request.Request" representing the
7339// client's request for the GetStages operation. The "output" return
7340// value will be populated with the request's response once the request completes
7341// successfully.
7342//
7343// Use "Send" method on the returned Request to send the API call to the service.
7344// the "output" return value is not valid until after Send returns without error.
7345//
7346// See GetStages for more information on using the GetStages
7347// API call, and error handling.
7348//
7349// This method is useful when you want to inject custom logic or configuration
7350// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7351//
7352//
7353//    // Example sending a request using the GetStagesRequest method.
7354//    req, resp := client.GetStagesRequest(params)
7355//
7356//    err := req.Send()
7357//    if err == nil { // resp is now filled
7358//        fmt.Println(resp)
7359//    }
7360func (c *APIGateway) GetStagesRequest(input *GetStagesInput) (req *request.Request, output *GetStagesOutput) {
7361	op := &request.Operation{
7362		Name:       opGetStages,
7363		HTTPMethod: "GET",
7364		HTTPPath:   "/restapis/{restapi_id}/stages",
7365	}
7366
7367	if input == nil {
7368		input = &GetStagesInput{}
7369	}
7370
7371	output = &GetStagesOutput{}
7372	req = c.newRequest(op, input, output)
7373	return
7374}
7375
7376// GetStages API operation for Amazon API Gateway.
7377//
7378// Gets information about one or more Stage resources.
7379//
7380// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7381// with awserr.Error's Code and Message methods to get detailed information about
7382// the error.
7383//
7384// See the AWS API reference guide for Amazon API Gateway's
7385// API operation GetStages for usage and error information.
7386//
7387// Returned Error Types:
7388//   * BadRequestException
7389//   The submitted request is not valid, for example, the input is incomplete
7390//   or incorrect. See the accompanying error message for details.
7391//
7392//   * ConflictException
7393//   The request configuration has conflicts. For details, see the accompanying
7394//   error message.
7395//
7396//   * LimitExceededException
7397//   The request exceeded the rate limit. Retry after the specified time period.
7398//
7399//   * NotFoundException
7400//   The requested resource is not found. Make sure that the request URI is correct.
7401//
7402//   * UnauthorizedException
7403//   The request is denied because the caller has insufficient permissions.
7404//
7405//   * TooManyRequestsException
7406//   The request has reached its throttling limit. Retry after the specified time
7407//   period.
7408//
7409func (c *APIGateway) GetStages(input *GetStagesInput) (*GetStagesOutput, error) {
7410	req, out := c.GetStagesRequest(input)
7411	return out, req.Send()
7412}
7413
7414// GetStagesWithContext is the same as GetStages with the addition of
7415// the ability to pass a context and additional request options.
7416//
7417// See GetStages for details on how to use this API operation.
7418//
7419// The context must be non-nil and will be used for request cancellation. If
7420// the context is nil a panic will occur. In the future the SDK may create
7421// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7422// for more information on using Contexts.
7423func (c *APIGateway) GetStagesWithContext(ctx aws.Context, input *GetStagesInput, opts ...request.Option) (*GetStagesOutput, error) {
7424	req, out := c.GetStagesRequest(input)
7425	req.SetContext(ctx)
7426	req.ApplyOptions(opts...)
7427	return out, req.Send()
7428}
7429
7430const opGetTags = "GetTags"
7431
7432// GetTagsRequest generates a "aws/request.Request" representing the
7433// client's request for the GetTags operation. The "output" return
7434// value will be populated with the request's response once the request completes
7435// successfully.
7436//
7437// Use "Send" method on the returned Request to send the API call to the service.
7438// the "output" return value is not valid until after Send returns without error.
7439//
7440// See GetTags for more information on using the GetTags
7441// API call, and error handling.
7442//
7443// This method is useful when you want to inject custom logic or configuration
7444// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7445//
7446//
7447//    // Example sending a request using the GetTagsRequest method.
7448//    req, resp := client.GetTagsRequest(params)
7449//
7450//    err := req.Send()
7451//    if err == nil { // resp is now filled
7452//        fmt.Println(resp)
7453//    }
7454func (c *APIGateway) GetTagsRequest(input *GetTagsInput) (req *request.Request, output *GetTagsOutput) {
7455	op := &request.Operation{
7456		Name:       opGetTags,
7457		HTTPMethod: "GET",
7458		HTTPPath:   "/tags/{resource_arn}",
7459	}
7460
7461	if input == nil {
7462		input = &GetTagsInput{}
7463	}
7464
7465	output = &GetTagsOutput{}
7466	req = c.newRequest(op, input, output)
7467	return
7468}
7469
7470// GetTags API operation for Amazon API Gateway.
7471//
7472// Gets the Tags collection for a given resource.
7473//
7474// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7475// with awserr.Error's Code and Message methods to get detailed information about
7476// the error.
7477//
7478// See the AWS API reference guide for Amazon API Gateway's
7479// API operation GetTags for usage and error information.
7480//
7481// Returned Error Types:
7482//   * BadRequestException
7483//   The submitted request is not valid, for example, the input is incomplete
7484//   or incorrect. See the accompanying error message for details.
7485//
7486//   * NotFoundException
7487//   The requested resource is not found. Make sure that the request URI is correct.
7488//
7489//   * UnauthorizedException
7490//   The request is denied because the caller has insufficient permissions.
7491//
7492//   * TooManyRequestsException
7493//   The request has reached its throttling limit. Retry after the specified time
7494//   period.
7495//
7496func (c *APIGateway) GetTags(input *GetTagsInput) (*GetTagsOutput, error) {
7497	req, out := c.GetTagsRequest(input)
7498	return out, req.Send()
7499}
7500
7501// GetTagsWithContext is the same as GetTags with the addition of
7502// the ability to pass a context and additional request options.
7503//
7504// See GetTags for details on how to use this API operation.
7505//
7506// The context must be non-nil and will be used for request cancellation. If
7507// the context is nil a panic will occur. In the future the SDK may create
7508// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7509// for more information on using Contexts.
7510func (c *APIGateway) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, opts ...request.Option) (*GetTagsOutput, error) {
7511	req, out := c.GetTagsRequest(input)
7512	req.SetContext(ctx)
7513	req.ApplyOptions(opts...)
7514	return out, req.Send()
7515}
7516
7517const opGetUsage = "GetUsage"
7518
7519// GetUsageRequest generates a "aws/request.Request" representing the
7520// client's request for the GetUsage operation. The "output" return
7521// value will be populated with the request's response once the request completes
7522// successfully.
7523//
7524// Use "Send" method on the returned Request to send the API call to the service.
7525// the "output" return value is not valid until after Send returns without error.
7526//
7527// See GetUsage for more information on using the GetUsage
7528// API call, and error handling.
7529//
7530// This method is useful when you want to inject custom logic or configuration
7531// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7532//
7533//
7534//    // Example sending a request using the GetUsageRequest method.
7535//    req, resp := client.GetUsageRequest(params)
7536//
7537//    err := req.Send()
7538//    if err == nil { // resp is now filled
7539//        fmt.Println(resp)
7540//    }
7541func (c *APIGateway) GetUsageRequest(input *GetUsageInput) (req *request.Request, output *Usage) {
7542	op := &request.Operation{
7543		Name:       opGetUsage,
7544		HTTPMethod: "GET",
7545		HTTPPath:   "/usageplans/{usageplanId}/usage",
7546		Paginator: &request.Paginator{
7547			InputTokens:     []string{"position"},
7548			OutputTokens:    []string{"position"},
7549			LimitToken:      "limit",
7550			TruncationToken: "",
7551		},
7552	}
7553
7554	if input == nil {
7555		input = &GetUsageInput{}
7556	}
7557
7558	output = &Usage{}
7559	req = c.newRequest(op, input, output)
7560	return
7561}
7562
7563// GetUsage API operation for Amazon API Gateway.
7564//
7565// Gets the usage data of a usage plan in a specified time interval.
7566//
7567// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7568// with awserr.Error's Code and Message methods to get detailed information about
7569// the error.
7570//
7571// See the AWS API reference guide for Amazon API Gateway's
7572// API operation GetUsage for usage and error information.
7573//
7574// Returned Error Types:
7575//   * BadRequestException
7576//   The submitted request is not valid, for example, the input is incomplete
7577//   or incorrect. See the accompanying error message for details.
7578//
7579//   * UnauthorizedException
7580//   The request is denied because the caller has insufficient permissions.
7581//
7582//   * NotFoundException
7583//   The requested resource is not found. Make sure that the request URI is correct.
7584//
7585//   * TooManyRequestsException
7586//   The request has reached its throttling limit. Retry after the specified time
7587//   period.
7588//
7589func (c *APIGateway) GetUsage(input *GetUsageInput) (*Usage, error) {
7590	req, out := c.GetUsageRequest(input)
7591	return out, req.Send()
7592}
7593
7594// GetUsageWithContext is the same as GetUsage with the addition of
7595// the ability to pass a context and additional request options.
7596//
7597// See GetUsage for details on how to use this API operation.
7598//
7599// The context must be non-nil and will be used for request cancellation. If
7600// the context is nil a panic will occur. In the future the SDK may create
7601// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7602// for more information on using Contexts.
7603func (c *APIGateway) GetUsageWithContext(ctx aws.Context, input *GetUsageInput, opts ...request.Option) (*Usage, error) {
7604	req, out := c.GetUsageRequest(input)
7605	req.SetContext(ctx)
7606	req.ApplyOptions(opts...)
7607	return out, req.Send()
7608}
7609
7610// GetUsagePages iterates over the pages of a GetUsage operation,
7611// calling the "fn" function with the response data for each page. To stop
7612// iterating, return false from the fn function.
7613//
7614// See GetUsage method for more information on how to use this operation.
7615//
7616// Note: This operation can generate multiple requests to a service.
7617//
7618//    // Example iterating over at most 3 pages of a GetUsage operation.
7619//    pageNum := 0
7620//    err := client.GetUsagePages(params,
7621//        func(page *apigateway.Usage, lastPage bool) bool {
7622//            pageNum++
7623//            fmt.Println(page)
7624//            return pageNum <= 3
7625//        })
7626//
7627func (c *APIGateway) GetUsagePages(input *GetUsageInput, fn func(*Usage, bool) bool) error {
7628	return c.GetUsagePagesWithContext(aws.BackgroundContext(), input, fn)
7629}
7630
7631// GetUsagePagesWithContext same as GetUsagePages except
7632// it takes a Context and allows setting request options on the pages.
7633//
7634// The context must be non-nil and will be used for request cancellation. If
7635// the context is nil a panic will occur. In the future the SDK may create
7636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7637// for more information on using Contexts.
7638func (c *APIGateway) GetUsagePagesWithContext(ctx aws.Context, input *GetUsageInput, fn func(*Usage, bool) bool, opts ...request.Option) error {
7639	p := request.Pagination{
7640		NewRequest: func() (*request.Request, error) {
7641			var inCpy *GetUsageInput
7642			if input != nil {
7643				tmp := *input
7644				inCpy = &tmp
7645			}
7646			req, _ := c.GetUsageRequest(inCpy)
7647			req.SetContext(ctx)
7648			req.ApplyOptions(opts...)
7649			return req, nil
7650		},
7651	}
7652
7653	for p.Next() {
7654		if !fn(p.Page().(*Usage), !p.HasNextPage()) {
7655			break
7656		}
7657	}
7658
7659	return p.Err()
7660}
7661
7662const opGetUsagePlan = "GetUsagePlan"
7663
7664// GetUsagePlanRequest generates a "aws/request.Request" representing the
7665// client's request for the GetUsagePlan operation. The "output" return
7666// value will be populated with the request's response once the request completes
7667// successfully.
7668//
7669// Use "Send" method on the returned Request to send the API call to the service.
7670// the "output" return value is not valid until after Send returns without error.
7671//
7672// See GetUsagePlan for more information on using the GetUsagePlan
7673// API call, and error handling.
7674//
7675// This method is useful when you want to inject custom logic or configuration
7676// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7677//
7678//
7679//    // Example sending a request using the GetUsagePlanRequest method.
7680//    req, resp := client.GetUsagePlanRequest(params)
7681//
7682//    err := req.Send()
7683//    if err == nil { // resp is now filled
7684//        fmt.Println(resp)
7685//    }
7686func (c *APIGateway) GetUsagePlanRequest(input *GetUsagePlanInput) (req *request.Request, output *UsagePlan) {
7687	op := &request.Operation{
7688		Name:       opGetUsagePlan,
7689		HTTPMethod: "GET",
7690		HTTPPath:   "/usageplans/{usageplanId}",
7691	}
7692
7693	if input == nil {
7694		input = &GetUsagePlanInput{}
7695	}
7696
7697	output = &UsagePlan{}
7698	req = c.newRequest(op, input, output)
7699	return
7700}
7701
7702// GetUsagePlan API operation for Amazon API Gateway.
7703//
7704// Gets a usage plan of a given plan identifier.
7705//
7706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7707// with awserr.Error's Code and Message methods to get detailed information about
7708// the error.
7709//
7710// See the AWS API reference guide for Amazon API Gateway's
7711// API operation GetUsagePlan for usage and error information.
7712//
7713// Returned Error Types:
7714//   * BadRequestException
7715//   The submitted request is not valid, for example, the input is incomplete
7716//   or incorrect. See the accompanying error message for details.
7717//
7718//   * NotFoundException
7719//   The requested resource is not found. Make sure that the request URI is correct.
7720//
7721//   * UnauthorizedException
7722//   The request is denied because the caller has insufficient permissions.
7723//
7724//   * TooManyRequestsException
7725//   The request has reached its throttling limit. Retry after the specified time
7726//   period.
7727//
7728func (c *APIGateway) GetUsagePlan(input *GetUsagePlanInput) (*UsagePlan, error) {
7729	req, out := c.GetUsagePlanRequest(input)
7730	return out, req.Send()
7731}
7732
7733// GetUsagePlanWithContext is the same as GetUsagePlan with the addition of
7734// the ability to pass a context and additional request options.
7735//
7736// See GetUsagePlan for details on how to use this API operation.
7737//
7738// The context must be non-nil and will be used for request cancellation. If
7739// the context is nil a panic will occur. In the future the SDK may create
7740// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7741// for more information on using Contexts.
7742func (c *APIGateway) GetUsagePlanWithContext(ctx aws.Context, input *GetUsagePlanInput, opts ...request.Option) (*UsagePlan, error) {
7743	req, out := c.GetUsagePlanRequest(input)
7744	req.SetContext(ctx)
7745	req.ApplyOptions(opts...)
7746	return out, req.Send()
7747}
7748
7749const opGetUsagePlanKey = "GetUsagePlanKey"
7750
7751// GetUsagePlanKeyRequest generates a "aws/request.Request" representing the
7752// client's request for the GetUsagePlanKey operation. The "output" return
7753// value will be populated with the request's response once the request completes
7754// successfully.
7755//
7756// Use "Send" method on the returned Request to send the API call to the service.
7757// the "output" return value is not valid until after Send returns without error.
7758//
7759// See GetUsagePlanKey for more information on using the GetUsagePlanKey
7760// API call, and error handling.
7761//
7762// This method is useful when you want to inject custom logic or configuration
7763// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7764//
7765//
7766//    // Example sending a request using the GetUsagePlanKeyRequest method.
7767//    req, resp := client.GetUsagePlanKeyRequest(params)
7768//
7769//    err := req.Send()
7770//    if err == nil { // resp is now filled
7771//        fmt.Println(resp)
7772//    }
7773func (c *APIGateway) GetUsagePlanKeyRequest(input *GetUsagePlanKeyInput) (req *request.Request, output *UsagePlanKey) {
7774	op := &request.Operation{
7775		Name:       opGetUsagePlanKey,
7776		HTTPMethod: "GET",
7777		HTTPPath:   "/usageplans/{usageplanId}/keys/{keyId}",
7778	}
7779
7780	if input == nil {
7781		input = &GetUsagePlanKeyInput{}
7782	}
7783
7784	output = &UsagePlanKey{}
7785	req = c.newRequest(op, input, output)
7786	return
7787}
7788
7789// GetUsagePlanKey API operation for Amazon API Gateway.
7790//
7791// Gets a usage plan key of a given key identifier.
7792//
7793// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7794// with awserr.Error's Code and Message methods to get detailed information about
7795// the error.
7796//
7797// See the AWS API reference guide for Amazon API Gateway's
7798// API operation GetUsagePlanKey for usage and error information.
7799//
7800// Returned Error Types:
7801//   * BadRequestException
7802//   The submitted request is not valid, for example, the input is incomplete
7803//   or incorrect. See the accompanying error message for details.
7804//
7805//   * NotFoundException
7806//   The requested resource is not found. Make sure that the request URI is correct.
7807//
7808//   * UnauthorizedException
7809//   The request is denied because the caller has insufficient permissions.
7810//
7811//   * TooManyRequestsException
7812//   The request has reached its throttling limit. Retry after the specified time
7813//   period.
7814//
7815func (c *APIGateway) GetUsagePlanKey(input *GetUsagePlanKeyInput) (*UsagePlanKey, error) {
7816	req, out := c.GetUsagePlanKeyRequest(input)
7817	return out, req.Send()
7818}
7819
7820// GetUsagePlanKeyWithContext is the same as GetUsagePlanKey with the addition of
7821// the ability to pass a context and additional request options.
7822//
7823// See GetUsagePlanKey for details on how to use this API operation.
7824//
7825// The context must be non-nil and will be used for request cancellation. If
7826// the context is nil a panic will occur. In the future the SDK may create
7827// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7828// for more information on using Contexts.
7829func (c *APIGateway) GetUsagePlanKeyWithContext(ctx aws.Context, input *GetUsagePlanKeyInput, opts ...request.Option) (*UsagePlanKey, error) {
7830	req, out := c.GetUsagePlanKeyRequest(input)
7831	req.SetContext(ctx)
7832	req.ApplyOptions(opts...)
7833	return out, req.Send()
7834}
7835
7836const opGetUsagePlanKeys = "GetUsagePlanKeys"
7837
7838// GetUsagePlanKeysRequest generates a "aws/request.Request" representing the
7839// client's request for the GetUsagePlanKeys operation. The "output" return
7840// value will be populated with the request's response once the request completes
7841// successfully.
7842//
7843// Use "Send" method on the returned Request to send the API call to the service.
7844// the "output" return value is not valid until after Send returns without error.
7845//
7846// See GetUsagePlanKeys for more information on using the GetUsagePlanKeys
7847// API call, and error handling.
7848//
7849// This method is useful when you want to inject custom logic or configuration
7850// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7851//
7852//
7853//    // Example sending a request using the GetUsagePlanKeysRequest method.
7854//    req, resp := client.GetUsagePlanKeysRequest(params)
7855//
7856//    err := req.Send()
7857//    if err == nil { // resp is now filled
7858//        fmt.Println(resp)
7859//    }
7860func (c *APIGateway) GetUsagePlanKeysRequest(input *GetUsagePlanKeysInput) (req *request.Request, output *GetUsagePlanKeysOutput) {
7861	op := &request.Operation{
7862		Name:       opGetUsagePlanKeys,
7863		HTTPMethod: "GET",
7864		HTTPPath:   "/usageplans/{usageplanId}/keys",
7865		Paginator: &request.Paginator{
7866			InputTokens:     []string{"position"},
7867			OutputTokens:    []string{"position"},
7868			LimitToken:      "limit",
7869			TruncationToken: "",
7870		},
7871	}
7872
7873	if input == nil {
7874		input = &GetUsagePlanKeysInput{}
7875	}
7876
7877	output = &GetUsagePlanKeysOutput{}
7878	req = c.newRequest(op, input, output)
7879	return
7880}
7881
7882// GetUsagePlanKeys API operation for Amazon API Gateway.
7883//
7884// Gets all the usage plan keys representing the API keys added to a specified
7885// usage plan.
7886//
7887// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7888// with awserr.Error's Code and Message methods to get detailed information about
7889// the error.
7890//
7891// See the AWS API reference guide for Amazon API Gateway's
7892// API operation GetUsagePlanKeys for usage and error information.
7893//
7894// Returned Error Types:
7895//   * BadRequestException
7896//   The submitted request is not valid, for example, the input is incomplete
7897//   or incorrect. See the accompanying error message for details.
7898//
7899//   * NotFoundException
7900//   The requested resource is not found. Make sure that the request URI is correct.
7901//
7902//   * UnauthorizedException
7903//   The request is denied because the caller has insufficient permissions.
7904//
7905//   * TooManyRequestsException
7906//   The request has reached its throttling limit. Retry after the specified time
7907//   period.
7908//
7909func (c *APIGateway) GetUsagePlanKeys(input *GetUsagePlanKeysInput) (*GetUsagePlanKeysOutput, error) {
7910	req, out := c.GetUsagePlanKeysRequest(input)
7911	return out, req.Send()
7912}
7913
7914// GetUsagePlanKeysWithContext is the same as GetUsagePlanKeys with the addition of
7915// the ability to pass a context and additional request options.
7916//
7917// See GetUsagePlanKeys for details on how to use this API operation.
7918//
7919// The context must be non-nil and will be used for request cancellation. If
7920// the context is nil a panic will occur. In the future the SDK may create
7921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7922// for more information on using Contexts.
7923func (c *APIGateway) GetUsagePlanKeysWithContext(ctx aws.Context, input *GetUsagePlanKeysInput, opts ...request.Option) (*GetUsagePlanKeysOutput, error) {
7924	req, out := c.GetUsagePlanKeysRequest(input)
7925	req.SetContext(ctx)
7926	req.ApplyOptions(opts...)
7927	return out, req.Send()
7928}
7929
7930// GetUsagePlanKeysPages iterates over the pages of a GetUsagePlanKeys operation,
7931// calling the "fn" function with the response data for each page. To stop
7932// iterating, return false from the fn function.
7933//
7934// See GetUsagePlanKeys method for more information on how to use this operation.
7935//
7936// Note: This operation can generate multiple requests to a service.
7937//
7938//    // Example iterating over at most 3 pages of a GetUsagePlanKeys operation.
7939//    pageNum := 0
7940//    err := client.GetUsagePlanKeysPages(params,
7941//        func(page *apigateway.GetUsagePlanKeysOutput, lastPage bool) bool {
7942//            pageNum++
7943//            fmt.Println(page)
7944//            return pageNum <= 3
7945//        })
7946//
7947func (c *APIGateway) GetUsagePlanKeysPages(input *GetUsagePlanKeysInput, fn func(*GetUsagePlanKeysOutput, bool) bool) error {
7948	return c.GetUsagePlanKeysPagesWithContext(aws.BackgroundContext(), input, fn)
7949}
7950
7951// GetUsagePlanKeysPagesWithContext same as GetUsagePlanKeysPages except
7952// it takes a Context and allows setting request options on the pages.
7953//
7954// The context must be non-nil and will be used for request cancellation. If
7955// the context is nil a panic will occur. In the future the SDK may create
7956// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7957// for more information on using Contexts.
7958func (c *APIGateway) GetUsagePlanKeysPagesWithContext(ctx aws.Context, input *GetUsagePlanKeysInput, fn func(*GetUsagePlanKeysOutput, bool) bool, opts ...request.Option) error {
7959	p := request.Pagination{
7960		NewRequest: func() (*request.Request, error) {
7961			var inCpy *GetUsagePlanKeysInput
7962			if input != nil {
7963				tmp := *input
7964				inCpy = &tmp
7965			}
7966			req, _ := c.GetUsagePlanKeysRequest(inCpy)
7967			req.SetContext(ctx)
7968			req.ApplyOptions(opts...)
7969			return req, nil
7970		},
7971	}
7972
7973	for p.Next() {
7974		if !fn(p.Page().(*GetUsagePlanKeysOutput), !p.HasNextPage()) {
7975			break
7976		}
7977	}
7978
7979	return p.Err()
7980}
7981
7982const opGetUsagePlans = "GetUsagePlans"
7983
7984// GetUsagePlansRequest generates a "aws/request.Request" representing the
7985// client's request for the GetUsagePlans operation. The "output" return
7986// value will be populated with the request's response once the request completes
7987// successfully.
7988//
7989// Use "Send" method on the returned Request to send the API call to the service.
7990// the "output" return value is not valid until after Send returns without error.
7991//
7992// See GetUsagePlans for more information on using the GetUsagePlans
7993// API call, and error handling.
7994//
7995// This method is useful when you want to inject custom logic or configuration
7996// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7997//
7998//
7999//    // Example sending a request using the GetUsagePlansRequest method.
8000//    req, resp := client.GetUsagePlansRequest(params)
8001//
8002//    err := req.Send()
8003//    if err == nil { // resp is now filled
8004//        fmt.Println(resp)
8005//    }
8006func (c *APIGateway) GetUsagePlansRequest(input *GetUsagePlansInput) (req *request.Request, output *GetUsagePlansOutput) {
8007	op := &request.Operation{
8008		Name:       opGetUsagePlans,
8009		HTTPMethod: "GET",
8010		HTTPPath:   "/usageplans",
8011		Paginator: &request.Paginator{
8012			InputTokens:     []string{"position"},
8013			OutputTokens:    []string{"position"},
8014			LimitToken:      "limit",
8015			TruncationToken: "",
8016		},
8017	}
8018
8019	if input == nil {
8020		input = &GetUsagePlansInput{}
8021	}
8022
8023	output = &GetUsagePlansOutput{}
8024	req = c.newRequest(op, input, output)
8025	return
8026}
8027
8028// GetUsagePlans API operation for Amazon API Gateway.
8029//
8030// Gets all the usage plans of the caller's account.
8031//
8032// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8033// with awserr.Error's Code and Message methods to get detailed information about
8034// the error.
8035//
8036// See the AWS API reference guide for Amazon API Gateway's
8037// API operation GetUsagePlans for usage and error information.
8038//
8039// Returned Error Types:
8040//   * BadRequestException
8041//   The submitted request is not valid, for example, the input is incomplete
8042//   or incorrect. See the accompanying error message for details.
8043//
8044//   * NotFoundException
8045//   The requested resource is not found. Make sure that the request URI is correct.
8046//
8047//   * UnauthorizedException
8048//   The request is denied because the caller has insufficient permissions.
8049//
8050//   * TooManyRequestsException
8051//   The request has reached its throttling limit. Retry after the specified time
8052//   period.
8053//
8054func (c *APIGateway) GetUsagePlans(input *GetUsagePlansInput) (*GetUsagePlansOutput, error) {
8055	req, out := c.GetUsagePlansRequest(input)
8056	return out, req.Send()
8057}
8058
8059// GetUsagePlansWithContext is the same as GetUsagePlans with the addition of
8060// the ability to pass a context and additional request options.
8061//
8062// See GetUsagePlans for details on how to use this API operation.
8063//
8064// The context must be non-nil and will be used for request cancellation. If
8065// the context is nil a panic will occur. In the future the SDK may create
8066// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8067// for more information on using Contexts.
8068func (c *APIGateway) GetUsagePlansWithContext(ctx aws.Context, input *GetUsagePlansInput, opts ...request.Option) (*GetUsagePlansOutput, error) {
8069	req, out := c.GetUsagePlansRequest(input)
8070	req.SetContext(ctx)
8071	req.ApplyOptions(opts...)
8072	return out, req.Send()
8073}
8074
8075// GetUsagePlansPages iterates over the pages of a GetUsagePlans operation,
8076// calling the "fn" function with the response data for each page. To stop
8077// iterating, return false from the fn function.
8078//
8079// See GetUsagePlans method for more information on how to use this operation.
8080//
8081// Note: This operation can generate multiple requests to a service.
8082//
8083//    // Example iterating over at most 3 pages of a GetUsagePlans operation.
8084//    pageNum := 0
8085//    err := client.GetUsagePlansPages(params,
8086//        func(page *apigateway.GetUsagePlansOutput, lastPage bool) bool {
8087//            pageNum++
8088//            fmt.Println(page)
8089//            return pageNum <= 3
8090//        })
8091//
8092func (c *APIGateway) GetUsagePlansPages(input *GetUsagePlansInput, fn func(*GetUsagePlansOutput, bool) bool) error {
8093	return c.GetUsagePlansPagesWithContext(aws.BackgroundContext(), input, fn)
8094}
8095
8096// GetUsagePlansPagesWithContext same as GetUsagePlansPages except
8097// it takes a Context and allows setting request options on the pages.
8098//
8099// The context must be non-nil and will be used for request cancellation. If
8100// the context is nil a panic will occur. In the future the SDK may create
8101// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8102// for more information on using Contexts.
8103func (c *APIGateway) GetUsagePlansPagesWithContext(ctx aws.Context, input *GetUsagePlansInput, fn func(*GetUsagePlansOutput, bool) bool, opts ...request.Option) error {
8104	p := request.Pagination{
8105		NewRequest: func() (*request.Request, error) {
8106			var inCpy *GetUsagePlansInput
8107			if input != nil {
8108				tmp := *input
8109				inCpy = &tmp
8110			}
8111			req, _ := c.GetUsagePlansRequest(inCpy)
8112			req.SetContext(ctx)
8113			req.ApplyOptions(opts...)
8114			return req, nil
8115		},
8116	}
8117
8118	for p.Next() {
8119		if !fn(p.Page().(*GetUsagePlansOutput), !p.HasNextPage()) {
8120			break
8121		}
8122	}
8123
8124	return p.Err()
8125}
8126
8127const opGetVpcLink = "GetVpcLink"
8128
8129// GetVpcLinkRequest generates a "aws/request.Request" representing the
8130// client's request for the GetVpcLink operation. The "output" return
8131// value will be populated with the request's response once the request completes
8132// successfully.
8133//
8134// Use "Send" method on the returned Request to send the API call to the service.
8135// the "output" return value is not valid until after Send returns without error.
8136//
8137// See GetVpcLink for more information on using the GetVpcLink
8138// API call, and error handling.
8139//
8140// This method is useful when you want to inject custom logic or configuration
8141// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8142//
8143//
8144//    // Example sending a request using the GetVpcLinkRequest method.
8145//    req, resp := client.GetVpcLinkRequest(params)
8146//
8147//    err := req.Send()
8148//    if err == nil { // resp is now filled
8149//        fmt.Println(resp)
8150//    }
8151func (c *APIGateway) GetVpcLinkRequest(input *GetVpcLinkInput) (req *request.Request, output *UpdateVpcLinkOutput) {
8152	op := &request.Operation{
8153		Name:       opGetVpcLink,
8154		HTTPMethod: "GET",
8155		HTTPPath:   "/vpclinks/{vpclink_id}",
8156	}
8157
8158	if input == nil {
8159		input = &GetVpcLinkInput{}
8160	}
8161
8162	output = &UpdateVpcLinkOutput{}
8163	req = c.newRequest(op, input, output)
8164	return
8165}
8166
8167// GetVpcLink API operation for Amazon API Gateway.
8168//
8169// Gets a specified VPC link under the caller's account in a region.
8170//
8171// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8172// with awserr.Error's Code and Message methods to get detailed information about
8173// the error.
8174//
8175// See the AWS API reference guide for Amazon API Gateway's
8176// API operation GetVpcLink for usage and error information.
8177//
8178// Returned Error Types:
8179//   * BadRequestException
8180//   The submitted request is not valid, for example, the input is incomplete
8181//   or incorrect. See the accompanying error message for details.
8182//
8183//   * NotFoundException
8184//   The requested resource is not found. Make sure that the request URI is correct.
8185//
8186//   * UnauthorizedException
8187//   The request is denied because the caller has insufficient permissions.
8188//
8189//   * TooManyRequestsException
8190//   The request has reached its throttling limit. Retry after the specified time
8191//   period.
8192//
8193func (c *APIGateway) GetVpcLink(input *GetVpcLinkInput) (*UpdateVpcLinkOutput, error) {
8194	req, out := c.GetVpcLinkRequest(input)
8195	return out, req.Send()
8196}
8197
8198// GetVpcLinkWithContext is the same as GetVpcLink with the addition of
8199// the ability to pass a context and additional request options.
8200//
8201// See GetVpcLink for details on how to use this API operation.
8202//
8203// The context must be non-nil and will be used for request cancellation. If
8204// the context is nil a panic will occur. In the future the SDK may create
8205// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8206// for more information on using Contexts.
8207func (c *APIGateway) GetVpcLinkWithContext(ctx aws.Context, input *GetVpcLinkInput, opts ...request.Option) (*UpdateVpcLinkOutput, error) {
8208	req, out := c.GetVpcLinkRequest(input)
8209	req.SetContext(ctx)
8210	req.ApplyOptions(opts...)
8211	return out, req.Send()
8212}
8213
8214const opGetVpcLinks = "GetVpcLinks"
8215
8216// GetVpcLinksRequest generates a "aws/request.Request" representing the
8217// client's request for the GetVpcLinks operation. The "output" return
8218// value will be populated with the request's response once the request completes
8219// successfully.
8220//
8221// Use "Send" method on the returned Request to send the API call to the service.
8222// the "output" return value is not valid until after Send returns without error.
8223//
8224// See GetVpcLinks for more information on using the GetVpcLinks
8225// API call, and error handling.
8226//
8227// This method is useful when you want to inject custom logic or configuration
8228// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8229//
8230//
8231//    // Example sending a request using the GetVpcLinksRequest method.
8232//    req, resp := client.GetVpcLinksRequest(params)
8233//
8234//    err := req.Send()
8235//    if err == nil { // resp is now filled
8236//        fmt.Println(resp)
8237//    }
8238func (c *APIGateway) GetVpcLinksRequest(input *GetVpcLinksInput) (req *request.Request, output *GetVpcLinksOutput) {
8239	op := &request.Operation{
8240		Name:       opGetVpcLinks,
8241		HTTPMethod: "GET",
8242		HTTPPath:   "/vpclinks",
8243		Paginator: &request.Paginator{
8244			InputTokens:     []string{"position"},
8245			OutputTokens:    []string{"position"},
8246			LimitToken:      "limit",
8247			TruncationToken: "",
8248		},
8249	}
8250
8251	if input == nil {
8252		input = &GetVpcLinksInput{}
8253	}
8254
8255	output = &GetVpcLinksOutput{}
8256	req = c.newRequest(op, input, output)
8257	return
8258}
8259
8260// GetVpcLinks API operation for Amazon API Gateway.
8261//
8262// Gets the VpcLinks collection under the caller's account in a selected region.
8263//
8264// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8265// with awserr.Error's Code and Message methods to get detailed information about
8266// the error.
8267//
8268// See the AWS API reference guide for Amazon API Gateway's
8269// API operation GetVpcLinks for usage and error information.
8270//
8271// Returned Error Types:
8272//   * BadRequestException
8273//   The submitted request is not valid, for example, the input is incomplete
8274//   or incorrect. See the accompanying error message for details.
8275//
8276//   * NotFoundException
8277//   The requested resource is not found. Make sure that the request URI is correct.
8278//
8279//   * UnauthorizedException
8280//   The request is denied because the caller has insufficient permissions.
8281//
8282//   * TooManyRequestsException
8283//   The request has reached its throttling limit. Retry after the specified time
8284//   period.
8285//
8286func (c *APIGateway) GetVpcLinks(input *GetVpcLinksInput) (*GetVpcLinksOutput, error) {
8287	req, out := c.GetVpcLinksRequest(input)
8288	return out, req.Send()
8289}
8290
8291// GetVpcLinksWithContext is the same as GetVpcLinks with the addition of
8292// the ability to pass a context and additional request options.
8293//
8294// See GetVpcLinks for details on how to use this API operation.
8295//
8296// The context must be non-nil and will be used for request cancellation. If
8297// the context is nil a panic will occur. In the future the SDK may create
8298// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8299// for more information on using Contexts.
8300func (c *APIGateway) GetVpcLinksWithContext(ctx aws.Context, input *GetVpcLinksInput, opts ...request.Option) (*GetVpcLinksOutput, error) {
8301	req, out := c.GetVpcLinksRequest(input)
8302	req.SetContext(ctx)
8303	req.ApplyOptions(opts...)
8304	return out, req.Send()
8305}
8306
8307// GetVpcLinksPages iterates over the pages of a GetVpcLinks operation,
8308// calling the "fn" function with the response data for each page. To stop
8309// iterating, return false from the fn function.
8310//
8311// See GetVpcLinks method for more information on how to use this operation.
8312//
8313// Note: This operation can generate multiple requests to a service.
8314//
8315//    // Example iterating over at most 3 pages of a GetVpcLinks operation.
8316//    pageNum := 0
8317//    err := client.GetVpcLinksPages(params,
8318//        func(page *apigateway.GetVpcLinksOutput, lastPage bool) bool {
8319//            pageNum++
8320//            fmt.Println(page)
8321//            return pageNum <= 3
8322//        })
8323//
8324func (c *APIGateway) GetVpcLinksPages(input *GetVpcLinksInput, fn func(*GetVpcLinksOutput, bool) bool) error {
8325	return c.GetVpcLinksPagesWithContext(aws.BackgroundContext(), input, fn)
8326}
8327
8328// GetVpcLinksPagesWithContext same as GetVpcLinksPages except
8329// it takes a Context and allows setting request options on the pages.
8330//
8331// The context must be non-nil and will be used for request cancellation. If
8332// the context is nil a panic will occur. In the future the SDK may create
8333// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8334// for more information on using Contexts.
8335func (c *APIGateway) GetVpcLinksPagesWithContext(ctx aws.Context, input *GetVpcLinksInput, fn func(*GetVpcLinksOutput, bool) bool, opts ...request.Option) error {
8336	p := request.Pagination{
8337		NewRequest: func() (*request.Request, error) {
8338			var inCpy *GetVpcLinksInput
8339			if input != nil {
8340				tmp := *input
8341				inCpy = &tmp
8342			}
8343			req, _ := c.GetVpcLinksRequest(inCpy)
8344			req.SetContext(ctx)
8345			req.ApplyOptions(opts...)
8346			return req, nil
8347		},
8348	}
8349
8350	for p.Next() {
8351		if !fn(p.Page().(*GetVpcLinksOutput), !p.HasNextPage()) {
8352			break
8353		}
8354	}
8355
8356	return p.Err()
8357}
8358
8359const opImportApiKeys = "ImportApiKeys"
8360
8361// ImportApiKeysRequest generates a "aws/request.Request" representing the
8362// client's request for the ImportApiKeys operation. The "output" return
8363// value will be populated with the request's response once the request completes
8364// successfully.
8365//
8366// Use "Send" method on the returned Request to send the API call to the service.
8367// the "output" return value is not valid until after Send returns without error.
8368//
8369// See ImportApiKeys for more information on using the ImportApiKeys
8370// API call, and error handling.
8371//
8372// This method is useful when you want to inject custom logic or configuration
8373// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8374//
8375//
8376//    // Example sending a request using the ImportApiKeysRequest method.
8377//    req, resp := client.ImportApiKeysRequest(params)
8378//
8379//    err := req.Send()
8380//    if err == nil { // resp is now filled
8381//        fmt.Println(resp)
8382//    }
8383func (c *APIGateway) ImportApiKeysRequest(input *ImportApiKeysInput) (req *request.Request, output *ImportApiKeysOutput) {
8384	op := &request.Operation{
8385		Name:       opImportApiKeys,
8386		HTTPMethod: "POST",
8387		HTTPPath:   "/apikeys?mode=import",
8388	}
8389
8390	if input == nil {
8391		input = &ImportApiKeysInput{}
8392	}
8393
8394	output = &ImportApiKeysOutput{}
8395	req = c.newRequest(op, input, output)
8396	return
8397}
8398
8399// ImportApiKeys API operation for Amazon API Gateway.
8400//
8401// Import API keys from an external source, such as a CSV-formatted file.
8402//
8403// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8404// with awserr.Error's Code and Message methods to get detailed information about
8405// the error.
8406//
8407// See the AWS API reference guide for Amazon API Gateway's
8408// API operation ImportApiKeys for usage and error information.
8409//
8410// Returned Error Types:
8411//   * BadRequestException
8412//   The submitted request is not valid, for example, the input is incomplete
8413//   or incorrect. See the accompanying error message for details.
8414//
8415//   * ConflictException
8416//   The request configuration has conflicts. For details, see the accompanying
8417//   error message.
8418//
8419//   * LimitExceededException
8420//   The request exceeded the rate limit. Retry after the specified time period.
8421//
8422//   * NotFoundException
8423//   The requested resource is not found. Make sure that the request URI is correct.
8424//
8425//   * UnauthorizedException
8426//   The request is denied because the caller has insufficient permissions.
8427//
8428//   * TooManyRequestsException
8429//   The request has reached its throttling limit. Retry after the specified time
8430//   period.
8431//
8432func (c *APIGateway) ImportApiKeys(input *ImportApiKeysInput) (*ImportApiKeysOutput, error) {
8433	req, out := c.ImportApiKeysRequest(input)
8434	return out, req.Send()
8435}
8436
8437// ImportApiKeysWithContext is the same as ImportApiKeys with the addition of
8438// the ability to pass a context and additional request options.
8439//
8440// See ImportApiKeys for details on how to use this API operation.
8441//
8442// The context must be non-nil and will be used for request cancellation. If
8443// the context is nil a panic will occur. In the future the SDK may create
8444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8445// for more information on using Contexts.
8446func (c *APIGateway) ImportApiKeysWithContext(ctx aws.Context, input *ImportApiKeysInput, opts ...request.Option) (*ImportApiKeysOutput, error) {
8447	req, out := c.ImportApiKeysRequest(input)
8448	req.SetContext(ctx)
8449	req.ApplyOptions(opts...)
8450	return out, req.Send()
8451}
8452
8453const opImportDocumentationParts = "ImportDocumentationParts"
8454
8455// ImportDocumentationPartsRequest generates a "aws/request.Request" representing the
8456// client's request for the ImportDocumentationParts operation. The "output" return
8457// value will be populated with the request's response once the request completes
8458// successfully.
8459//
8460// Use "Send" method on the returned Request to send the API call to the service.
8461// the "output" return value is not valid until after Send returns without error.
8462//
8463// See ImportDocumentationParts for more information on using the ImportDocumentationParts
8464// API call, and error handling.
8465//
8466// This method is useful when you want to inject custom logic or configuration
8467// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8468//
8469//
8470//    // Example sending a request using the ImportDocumentationPartsRequest method.
8471//    req, resp := client.ImportDocumentationPartsRequest(params)
8472//
8473//    err := req.Send()
8474//    if err == nil { // resp is now filled
8475//        fmt.Println(resp)
8476//    }
8477func (c *APIGateway) ImportDocumentationPartsRequest(input *ImportDocumentationPartsInput) (req *request.Request, output *ImportDocumentationPartsOutput) {
8478	op := &request.Operation{
8479		Name:       opImportDocumentationParts,
8480		HTTPMethod: "PUT",
8481		HTTPPath:   "/restapis/{restapi_id}/documentation/parts",
8482	}
8483
8484	if input == nil {
8485		input = &ImportDocumentationPartsInput{}
8486	}
8487
8488	output = &ImportDocumentationPartsOutput{}
8489	req = c.newRequest(op, input, output)
8490	return
8491}
8492
8493// ImportDocumentationParts API operation for Amazon API Gateway.
8494//
8495// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8496// with awserr.Error's Code and Message methods to get detailed information about
8497// the error.
8498//
8499// See the AWS API reference guide for Amazon API Gateway's
8500// API operation ImportDocumentationParts for usage and error information.
8501//
8502// Returned Error Types:
8503//   * BadRequestException
8504//   The submitted request is not valid, for example, the input is incomplete
8505//   or incorrect. See the accompanying error message for details.
8506//
8507//   * ConflictException
8508//   The request configuration has conflicts. For details, see the accompanying
8509//   error message.
8510//
8511//   * LimitExceededException
8512//   The request exceeded the rate limit. Retry after the specified time period.
8513//
8514//   * NotFoundException
8515//   The requested resource is not found. Make sure that the request URI is correct.
8516//
8517//   * UnauthorizedException
8518//   The request is denied because the caller has insufficient permissions.
8519//
8520//   * TooManyRequestsException
8521//   The request has reached its throttling limit. Retry after the specified time
8522//   period.
8523//
8524func (c *APIGateway) ImportDocumentationParts(input *ImportDocumentationPartsInput) (*ImportDocumentationPartsOutput, error) {
8525	req, out := c.ImportDocumentationPartsRequest(input)
8526	return out, req.Send()
8527}
8528
8529// ImportDocumentationPartsWithContext is the same as ImportDocumentationParts with the addition of
8530// the ability to pass a context and additional request options.
8531//
8532// See ImportDocumentationParts for details on how to use this API operation.
8533//
8534// The context must be non-nil and will be used for request cancellation. If
8535// the context is nil a panic will occur. In the future the SDK may create
8536// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8537// for more information on using Contexts.
8538func (c *APIGateway) ImportDocumentationPartsWithContext(ctx aws.Context, input *ImportDocumentationPartsInput, opts ...request.Option) (*ImportDocumentationPartsOutput, error) {
8539	req, out := c.ImportDocumentationPartsRequest(input)
8540	req.SetContext(ctx)
8541	req.ApplyOptions(opts...)
8542	return out, req.Send()
8543}
8544
8545const opImportRestApi = "ImportRestApi"
8546
8547// ImportRestApiRequest generates a "aws/request.Request" representing the
8548// client's request for the ImportRestApi operation. The "output" return
8549// value will be populated with the request's response once the request completes
8550// successfully.
8551//
8552// Use "Send" method on the returned Request to send the API call to the service.
8553// the "output" return value is not valid until after Send returns without error.
8554//
8555// See ImportRestApi for more information on using the ImportRestApi
8556// API call, and error handling.
8557//
8558// This method is useful when you want to inject custom logic or configuration
8559// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8560//
8561//
8562//    // Example sending a request using the ImportRestApiRequest method.
8563//    req, resp := client.ImportRestApiRequest(params)
8564//
8565//    err := req.Send()
8566//    if err == nil { // resp is now filled
8567//        fmt.Println(resp)
8568//    }
8569func (c *APIGateway) ImportRestApiRequest(input *ImportRestApiInput) (req *request.Request, output *RestApi) {
8570	op := &request.Operation{
8571		Name:       opImportRestApi,
8572		HTTPMethod: "POST",
8573		HTTPPath:   "/restapis?mode=import",
8574	}
8575
8576	if input == nil {
8577		input = &ImportRestApiInput{}
8578	}
8579
8580	output = &RestApi{}
8581	req = c.newRequest(op, input, output)
8582	return
8583}
8584
8585// ImportRestApi API operation for Amazon API Gateway.
8586//
8587// A feature of the API Gateway control service for creating a new API from
8588// an external API definition file.
8589//
8590// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8591// with awserr.Error's Code and Message methods to get detailed information about
8592// the error.
8593//
8594// See the AWS API reference guide for Amazon API Gateway's
8595// API operation ImportRestApi for usage and error information.
8596//
8597// Returned Error Types:
8598//   * BadRequestException
8599//   The submitted request is not valid, for example, the input is incomplete
8600//   or incorrect. See the accompanying error message for details.
8601//
8602//   * ConflictException
8603//   The request configuration has conflicts. For details, see the accompanying
8604//   error message.
8605//
8606//   * LimitExceededException
8607//   The request exceeded the rate limit. Retry after the specified time period.
8608//
8609//   * NotFoundException
8610//   The requested resource is not found. Make sure that the request URI is correct.
8611//
8612//   * UnauthorizedException
8613//   The request is denied because the caller has insufficient permissions.
8614//
8615//   * TooManyRequestsException
8616//   The request has reached its throttling limit. Retry after the specified time
8617//   period.
8618//
8619func (c *APIGateway) ImportRestApi(input *ImportRestApiInput) (*RestApi, error) {
8620	req, out := c.ImportRestApiRequest(input)
8621	return out, req.Send()
8622}
8623
8624// ImportRestApiWithContext is the same as ImportRestApi with the addition of
8625// the ability to pass a context and additional request options.
8626//
8627// See ImportRestApi for details on how to use this API operation.
8628//
8629// The context must be non-nil and will be used for request cancellation. If
8630// the context is nil a panic will occur. In the future the SDK may create
8631// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8632// for more information on using Contexts.
8633func (c *APIGateway) ImportRestApiWithContext(ctx aws.Context, input *ImportRestApiInput, opts ...request.Option) (*RestApi, error) {
8634	req, out := c.ImportRestApiRequest(input)
8635	req.SetContext(ctx)
8636	req.ApplyOptions(opts...)
8637	return out, req.Send()
8638}
8639
8640const opPutGatewayResponse = "PutGatewayResponse"
8641
8642// PutGatewayResponseRequest generates a "aws/request.Request" representing the
8643// client's request for the PutGatewayResponse operation. The "output" return
8644// value will be populated with the request's response once the request completes
8645// successfully.
8646//
8647// Use "Send" method on the returned Request to send the API call to the service.
8648// the "output" return value is not valid until after Send returns without error.
8649//
8650// See PutGatewayResponse for more information on using the PutGatewayResponse
8651// API call, and error handling.
8652//
8653// This method is useful when you want to inject custom logic or configuration
8654// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8655//
8656//
8657//    // Example sending a request using the PutGatewayResponseRequest method.
8658//    req, resp := client.PutGatewayResponseRequest(params)
8659//
8660//    err := req.Send()
8661//    if err == nil { // resp is now filled
8662//        fmt.Println(resp)
8663//    }
8664func (c *APIGateway) PutGatewayResponseRequest(input *PutGatewayResponseInput) (req *request.Request, output *UpdateGatewayResponseOutput) {
8665	op := &request.Operation{
8666		Name:       opPutGatewayResponse,
8667		HTTPMethod: "PUT",
8668		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
8669	}
8670
8671	if input == nil {
8672		input = &PutGatewayResponseInput{}
8673	}
8674
8675	output = &UpdateGatewayResponseOutput{}
8676	req = c.newRequest(op, input, output)
8677	return
8678}
8679
8680// PutGatewayResponse API operation for Amazon API Gateway.
8681//
8682// Creates a customization of a GatewayResponse of a specified response type
8683// and status code on the given RestApi.
8684//
8685// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8686// with awserr.Error's Code and Message methods to get detailed information about
8687// the error.
8688//
8689// See the AWS API reference guide for Amazon API Gateway's
8690// API operation PutGatewayResponse for usage and error information.
8691//
8692// Returned Error Types:
8693//   * BadRequestException
8694//   The submitted request is not valid, for example, the input is incomplete
8695//   or incorrect. See the accompanying error message for details.
8696//
8697//   * ConflictException
8698//   The request configuration has conflicts. For details, see the accompanying
8699//   error message.
8700//
8701//   * LimitExceededException
8702//   The request exceeded the rate limit. Retry after the specified time period.
8703//
8704//   * NotFoundException
8705//   The requested resource is not found. Make sure that the request URI is correct.
8706//
8707//   * UnauthorizedException
8708//   The request is denied because the caller has insufficient permissions.
8709//
8710//   * TooManyRequestsException
8711//   The request has reached its throttling limit. Retry after the specified time
8712//   period.
8713//
8714func (c *APIGateway) PutGatewayResponse(input *PutGatewayResponseInput) (*UpdateGatewayResponseOutput, error) {
8715	req, out := c.PutGatewayResponseRequest(input)
8716	return out, req.Send()
8717}
8718
8719// PutGatewayResponseWithContext is the same as PutGatewayResponse with the addition of
8720// the ability to pass a context and additional request options.
8721//
8722// See PutGatewayResponse for details on how to use this API operation.
8723//
8724// The context must be non-nil and will be used for request cancellation. If
8725// the context is nil a panic will occur. In the future the SDK may create
8726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8727// for more information on using Contexts.
8728func (c *APIGateway) PutGatewayResponseWithContext(ctx aws.Context, input *PutGatewayResponseInput, opts ...request.Option) (*UpdateGatewayResponseOutput, error) {
8729	req, out := c.PutGatewayResponseRequest(input)
8730	req.SetContext(ctx)
8731	req.ApplyOptions(opts...)
8732	return out, req.Send()
8733}
8734
8735const opPutIntegration = "PutIntegration"
8736
8737// PutIntegrationRequest generates a "aws/request.Request" representing the
8738// client's request for the PutIntegration operation. The "output" return
8739// value will be populated with the request's response once the request completes
8740// successfully.
8741//
8742// Use "Send" method on the returned Request to send the API call to the service.
8743// the "output" return value is not valid until after Send returns without error.
8744//
8745// See PutIntegration for more information on using the PutIntegration
8746// API call, and error handling.
8747//
8748// This method is useful when you want to inject custom logic or configuration
8749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8750//
8751//
8752//    // Example sending a request using the PutIntegrationRequest method.
8753//    req, resp := client.PutIntegrationRequest(params)
8754//
8755//    err := req.Send()
8756//    if err == nil { // resp is now filled
8757//        fmt.Println(resp)
8758//    }
8759func (c *APIGateway) PutIntegrationRequest(input *PutIntegrationInput) (req *request.Request, output *Integration) {
8760	op := &request.Operation{
8761		Name:       opPutIntegration,
8762		HTTPMethod: "PUT",
8763		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
8764	}
8765
8766	if input == nil {
8767		input = &PutIntegrationInput{}
8768	}
8769
8770	output = &Integration{}
8771	req = c.newRequest(op, input, output)
8772	return
8773}
8774
8775// PutIntegration API operation for Amazon API Gateway.
8776//
8777// Sets up a method's integration.
8778//
8779// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8780// with awserr.Error's Code and Message methods to get detailed information about
8781// the error.
8782//
8783// See the AWS API reference guide for Amazon API Gateway's
8784// API operation PutIntegration for usage and error information.
8785//
8786// Returned Error Types:
8787//   * BadRequestException
8788//   The submitted request is not valid, for example, the input is incomplete
8789//   or incorrect. See the accompanying error message for details.
8790//
8791//   * ConflictException
8792//   The request configuration has conflicts. For details, see the accompanying
8793//   error message.
8794//
8795//   * LimitExceededException
8796//   The request exceeded the rate limit. Retry after the specified time period.
8797//
8798//   * NotFoundException
8799//   The requested resource is not found. Make sure that the request URI is correct.
8800//
8801//   * UnauthorizedException
8802//   The request is denied because the caller has insufficient permissions.
8803//
8804//   * TooManyRequestsException
8805//   The request has reached its throttling limit. Retry after the specified time
8806//   period.
8807//
8808func (c *APIGateway) PutIntegration(input *PutIntegrationInput) (*Integration, error) {
8809	req, out := c.PutIntegrationRequest(input)
8810	return out, req.Send()
8811}
8812
8813// PutIntegrationWithContext is the same as PutIntegration with the addition of
8814// the ability to pass a context and additional request options.
8815//
8816// See PutIntegration for details on how to use this API operation.
8817//
8818// The context must be non-nil and will be used for request cancellation. If
8819// the context is nil a panic will occur. In the future the SDK may create
8820// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8821// for more information on using Contexts.
8822func (c *APIGateway) PutIntegrationWithContext(ctx aws.Context, input *PutIntegrationInput, opts ...request.Option) (*Integration, error) {
8823	req, out := c.PutIntegrationRequest(input)
8824	req.SetContext(ctx)
8825	req.ApplyOptions(opts...)
8826	return out, req.Send()
8827}
8828
8829const opPutIntegrationResponse = "PutIntegrationResponse"
8830
8831// PutIntegrationResponseRequest generates a "aws/request.Request" representing the
8832// client's request for the PutIntegrationResponse operation. The "output" return
8833// value will be populated with the request's response once the request completes
8834// successfully.
8835//
8836// Use "Send" method on the returned Request to send the API call to the service.
8837// the "output" return value is not valid until after Send returns without error.
8838//
8839// See PutIntegrationResponse for more information on using the PutIntegrationResponse
8840// API call, and error handling.
8841//
8842// This method is useful when you want to inject custom logic or configuration
8843// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8844//
8845//
8846//    // Example sending a request using the PutIntegrationResponseRequest method.
8847//    req, resp := client.PutIntegrationResponseRequest(params)
8848//
8849//    err := req.Send()
8850//    if err == nil { // resp is now filled
8851//        fmt.Println(resp)
8852//    }
8853func (c *APIGateway) PutIntegrationResponseRequest(input *PutIntegrationResponseInput) (req *request.Request, output *IntegrationResponse) {
8854	op := &request.Operation{
8855		Name:       opPutIntegrationResponse,
8856		HTTPMethod: "PUT",
8857		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
8858	}
8859
8860	if input == nil {
8861		input = &PutIntegrationResponseInput{}
8862	}
8863
8864	output = &IntegrationResponse{}
8865	req = c.newRequest(op, input, output)
8866	return
8867}
8868
8869// PutIntegrationResponse API operation for Amazon API Gateway.
8870//
8871// Represents a put integration.
8872//
8873// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8874// with awserr.Error's Code and Message methods to get detailed information about
8875// the error.
8876//
8877// See the AWS API reference guide for Amazon API Gateway's
8878// API operation PutIntegrationResponse for usage and error information.
8879//
8880// Returned Error Types:
8881//   * BadRequestException
8882//   The submitted request is not valid, for example, the input is incomplete
8883//   or incorrect. See the accompanying error message for details.
8884//
8885//   * ConflictException
8886//   The request configuration has conflicts. For details, see the accompanying
8887//   error message.
8888//
8889//   * LimitExceededException
8890//   The request exceeded the rate limit. Retry after the specified time period.
8891//
8892//   * NotFoundException
8893//   The requested resource is not found. Make sure that the request URI is correct.
8894//
8895//   * UnauthorizedException
8896//   The request is denied because the caller has insufficient permissions.
8897//
8898//   * TooManyRequestsException
8899//   The request has reached its throttling limit. Retry after the specified time
8900//   period.
8901//
8902func (c *APIGateway) PutIntegrationResponse(input *PutIntegrationResponseInput) (*IntegrationResponse, error) {
8903	req, out := c.PutIntegrationResponseRequest(input)
8904	return out, req.Send()
8905}
8906
8907// PutIntegrationResponseWithContext is the same as PutIntegrationResponse with the addition of
8908// the ability to pass a context and additional request options.
8909//
8910// See PutIntegrationResponse for details on how to use this API operation.
8911//
8912// The context must be non-nil and will be used for request cancellation. If
8913// the context is nil a panic will occur. In the future the SDK may create
8914// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8915// for more information on using Contexts.
8916func (c *APIGateway) PutIntegrationResponseWithContext(ctx aws.Context, input *PutIntegrationResponseInput, opts ...request.Option) (*IntegrationResponse, error) {
8917	req, out := c.PutIntegrationResponseRequest(input)
8918	req.SetContext(ctx)
8919	req.ApplyOptions(opts...)
8920	return out, req.Send()
8921}
8922
8923const opPutMethod = "PutMethod"
8924
8925// PutMethodRequest generates a "aws/request.Request" representing the
8926// client's request for the PutMethod operation. The "output" return
8927// value will be populated with the request's response once the request completes
8928// successfully.
8929//
8930// Use "Send" method on the returned Request to send the API call to the service.
8931// the "output" return value is not valid until after Send returns without error.
8932//
8933// See PutMethod for more information on using the PutMethod
8934// API call, and error handling.
8935//
8936// This method is useful when you want to inject custom logic or configuration
8937// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8938//
8939//
8940//    // Example sending a request using the PutMethodRequest method.
8941//    req, resp := client.PutMethodRequest(params)
8942//
8943//    err := req.Send()
8944//    if err == nil { // resp is now filled
8945//        fmt.Println(resp)
8946//    }
8947func (c *APIGateway) PutMethodRequest(input *PutMethodInput) (req *request.Request, output *Method) {
8948	op := &request.Operation{
8949		Name:       opPutMethod,
8950		HTTPMethod: "PUT",
8951		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
8952	}
8953
8954	if input == nil {
8955		input = &PutMethodInput{}
8956	}
8957
8958	output = &Method{}
8959	req = c.newRequest(op, input, output)
8960	return
8961}
8962
8963// PutMethod API operation for Amazon API Gateway.
8964//
8965// Add a method to an existing Resource resource.
8966//
8967// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8968// with awserr.Error's Code and Message methods to get detailed information about
8969// the error.
8970//
8971// See the AWS API reference guide for Amazon API Gateway's
8972// API operation PutMethod for usage and error information.
8973//
8974// Returned Error Types:
8975//   * BadRequestException
8976//   The submitted request is not valid, for example, the input is incomplete
8977//   or incorrect. See the accompanying error message for details.
8978//
8979//   * UnauthorizedException
8980//   The request is denied because the caller has insufficient permissions.
8981//
8982//   * NotFoundException
8983//   The requested resource is not found. Make sure that the request URI is correct.
8984//
8985//   * ConflictException
8986//   The request configuration has conflicts. For details, see the accompanying
8987//   error message.
8988//
8989//   * LimitExceededException
8990//   The request exceeded the rate limit. Retry after the specified time period.
8991//
8992//   * TooManyRequestsException
8993//   The request has reached its throttling limit. Retry after the specified time
8994//   period.
8995//
8996func (c *APIGateway) PutMethod(input *PutMethodInput) (*Method, error) {
8997	req, out := c.PutMethodRequest(input)
8998	return out, req.Send()
8999}
9000
9001// PutMethodWithContext is the same as PutMethod with the addition of
9002// the ability to pass a context and additional request options.
9003//
9004// See PutMethod for details on how to use this API operation.
9005//
9006// The context must be non-nil and will be used for request cancellation. If
9007// the context is nil a panic will occur. In the future the SDK may create
9008// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9009// for more information on using Contexts.
9010func (c *APIGateway) PutMethodWithContext(ctx aws.Context, input *PutMethodInput, opts ...request.Option) (*Method, error) {
9011	req, out := c.PutMethodRequest(input)
9012	req.SetContext(ctx)
9013	req.ApplyOptions(opts...)
9014	return out, req.Send()
9015}
9016
9017const opPutMethodResponse = "PutMethodResponse"
9018
9019// PutMethodResponseRequest generates a "aws/request.Request" representing the
9020// client's request for the PutMethodResponse operation. The "output" return
9021// value will be populated with the request's response once the request completes
9022// successfully.
9023//
9024// Use "Send" method on the returned Request to send the API call to the service.
9025// the "output" return value is not valid until after Send returns without error.
9026//
9027// See PutMethodResponse for more information on using the PutMethodResponse
9028// API call, and error handling.
9029//
9030// This method is useful when you want to inject custom logic or configuration
9031// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9032//
9033//
9034//    // Example sending a request using the PutMethodResponseRequest method.
9035//    req, resp := client.PutMethodResponseRequest(params)
9036//
9037//    err := req.Send()
9038//    if err == nil { // resp is now filled
9039//        fmt.Println(resp)
9040//    }
9041func (c *APIGateway) PutMethodResponseRequest(input *PutMethodResponseInput) (req *request.Request, output *MethodResponse) {
9042	op := &request.Operation{
9043		Name:       opPutMethodResponse,
9044		HTTPMethod: "PUT",
9045		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
9046	}
9047
9048	if input == nil {
9049		input = &PutMethodResponseInput{}
9050	}
9051
9052	output = &MethodResponse{}
9053	req = c.newRequest(op, input, output)
9054	return
9055}
9056
9057// PutMethodResponse API operation for Amazon API Gateway.
9058//
9059// Adds a MethodResponse to an existing Method resource.
9060//
9061// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9062// with awserr.Error's Code and Message methods to get detailed information about
9063// the error.
9064//
9065// See the AWS API reference guide for Amazon API Gateway's
9066// API operation PutMethodResponse for usage and error information.
9067//
9068// Returned Error Types:
9069//   * UnauthorizedException
9070//   The request is denied because the caller has insufficient permissions.
9071//
9072//   * NotFoundException
9073//   The requested resource is not found. Make sure that the request URI is correct.
9074//
9075//   * ConflictException
9076//   The request configuration has conflicts. For details, see the accompanying
9077//   error message.
9078//
9079//   * LimitExceededException
9080//   The request exceeded the rate limit. Retry after the specified time period.
9081//
9082//   * BadRequestException
9083//   The submitted request is not valid, for example, the input is incomplete
9084//   or incorrect. See the accompanying error message for details.
9085//
9086//   * TooManyRequestsException
9087//   The request has reached its throttling limit. Retry after the specified time
9088//   period.
9089//
9090func (c *APIGateway) PutMethodResponse(input *PutMethodResponseInput) (*MethodResponse, error) {
9091	req, out := c.PutMethodResponseRequest(input)
9092	return out, req.Send()
9093}
9094
9095// PutMethodResponseWithContext is the same as PutMethodResponse with the addition of
9096// the ability to pass a context and additional request options.
9097//
9098// See PutMethodResponse for details on how to use this API operation.
9099//
9100// The context must be non-nil and will be used for request cancellation. If
9101// the context is nil a panic will occur. In the future the SDK may create
9102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9103// for more information on using Contexts.
9104func (c *APIGateway) PutMethodResponseWithContext(ctx aws.Context, input *PutMethodResponseInput, opts ...request.Option) (*MethodResponse, error) {
9105	req, out := c.PutMethodResponseRequest(input)
9106	req.SetContext(ctx)
9107	req.ApplyOptions(opts...)
9108	return out, req.Send()
9109}
9110
9111const opPutRestApi = "PutRestApi"
9112
9113// PutRestApiRequest generates a "aws/request.Request" representing the
9114// client's request for the PutRestApi operation. The "output" return
9115// value will be populated with the request's response once the request completes
9116// successfully.
9117//
9118// Use "Send" method on the returned Request to send the API call to the service.
9119// the "output" return value is not valid until after Send returns without error.
9120//
9121// See PutRestApi for more information on using the PutRestApi
9122// API call, and error handling.
9123//
9124// This method is useful when you want to inject custom logic or configuration
9125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9126//
9127//
9128//    // Example sending a request using the PutRestApiRequest method.
9129//    req, resp := client.PutRestApiRequest(params)
9130//
9131//    err := req.Send()
9132//    if err == nil { // resp is now filled
9133//        fmt.Println(resp)
9134//    }
9135func (c *APIGateway) PutRestApiRequest(input *PutRestApiInput) (req *request.Request, output *RestApi) {
9136	op := &request.Operation{
9137		Name:       opPutRestApi,
9138		HTTPMethod: "PUT",
9139		HTTPPath:   "/restapis/{restapi_id}",
9140	}
9141
9142	if input == nil {
9143		input = &PutRestApiInput{}
9144	}
9145
9146	output = &RestApi{}
9147	req = c.newRequest(op, input, output)
9148	return
9149}
9150
9151// PutRestApi API operation for Amazon API Gateway.
9152//
9153// A feature of the API Gateway control service for updating an existing API
9154// with an input of external API definitions. The update can take the form of
9155// merging the supplied definition into the existing API or overwriting the
9156// existing API.
9157//
9158// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9159// with awserr.Error's Code and Message methods to get detailed information about
9160// the error.
9161//
9162// See the AWS API reference guide for Amazon API Gateway's
9163// API operation PutRestApi for usage and error information.
9164//
9165// Returned Error Types:
9166//   * BadRequestException
9167//   The submitted request is not valid, for example, the input is incomplete
9168//   or incorrect. See the accompanying error message for details.
9169//
9170//   * ConflictException
9171//   The request configuration has conflicts. For details, see the accompanying
9172//   error message.
9173//
9174//   * LimitExceededException
9175//   The request exceeded the rate limit. Retry after the specified time period.
9176//
9177//   * NotFoundException
9178//   The requested resource is not found. Make sure that the request URI is correct.
9179//
9180//   * UnauthorizedException
9181//   The request is denied because the caller has insufficient permissions.
9182//
9183//   * TooManyRequestsException
9184//   The request has reached its throttling limit. Retry after the specified time
9185//   period.
9186//
9187func (c *APIGateway) PutRestApi(input *PutRestApiInput) (*RestApi, error) {
9188	req, out := c.PutRestApiRequest(input)
9189	return out, req.Send()
9190}
9191
9192// PutRestApiWithContext is the same as PutRestApi with the addition of
9193// the ability to pass a context and additional request options.
9194//
9195// See PutRestApi for details on how to use this API operation.
9196//
9197// The context must be non-nil and will be used for request cancellation. If
9198// the context is nil a panic will occur. In the future the SDK may create
9199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9200// for more information on using Contexts.
9201func (c *APIGateway) PutRestApiWithContext(ctx aws.Context, input *PutRestApiInput, opts ...request.Option) (*RestApi, error) {
9202	req, out := c.PutRestApiRequest(input)
9203	req.SetContext(ctx)
9204	req.ApplyOptions(opts...)
9205	return out, req.Send()
9206}
9207
9208const opTagResource = "TagResource"
9209
9210// TagResourceRequest generates a "aws/request.Request" representing the
9211// client's request for the TagResource operation. The "output" return
9212// value will be populated with the request's response once the request completes
9213// successfully.
9214//
9215// Use "Send" method on the returned Request to send the API call to the service.
9216// the "output" return value is not valid until after Send returns without error.
9217//
9218// See TagResource for more information on using the TagResource
9219// API call, and error handling.
9220//
9221// This method is useful when you want to inject custom logic or configuration
9222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9223//
9224//
9225//    // Example sending a request using the TagResourceRequest method.
9226//    req, resp := client.TagResourceRequest(params)
9227//
9228//    err := req.Send()
9229//    if err == nil { // resp is now filled
9230//        fmt.Println(resp)
9231//    }
9232func (c *APIGateway) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
9233	op := &request.Operation{
9234		Name:       opTagResource,
9235		HTTPMethod: "PUT",
9236		HTTPPath:   "/tags/{resource_arn}",
9237	}
9238
9239	if input == nil {
9240		input = &TagResourceInput{}
9241	}
9242
9243	output = &TagResourceOutput{}
9244	req = c.newRequest(op, input, output)
9245	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9246	return
9247}
9248
9249// TagResource API operation for Amazon API Gateway.
9250//
9251// Adds or updates a tag on a given resource.
9252//
9253// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9254// with awserr.Error's Code and Message methods to get detailed information about
9255// the error.
9256//
9257// See the AWS API reference guide for Amazon API Gateway's
9258// API operation TagResource for usage and error information.
9259//
9260// Returned Error Types:
9261//   * BadRequestException
9262//   The submitted request is not valid, for example, the input is incomplete
9263//   or incorrect. See the accompanying error message for details.
9264//
9265//   * ConflictException
9266//   The request configuration has conflicts. For details, see the accompanying
9267//   error message.
9268//
9269//   * LimitExceededException
9270//   The request exceeded the rate limit. Retry after the specified time period.
9271//
9272//   * NotFoundException
9273//   The requested resource is not found. Make sure that the request URI is correct.
9274//
9275//   * UnauthorizedException
9276//   The request is denied because the caller has insufficient permissions.
9277//
9278//   * TooManyRequestsException
9279//   The request has reached its throttling limit. Retry after the specified time
9280//   period.
9281//
9282func (c *APIGateway) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
9283	req, out := c.TagResourceRequest(input)
9284	return out, req.Send()
9285}
9286
9287// TagResourceWithContext is the same as TagResource with the addition of
9288// the ability to pass a context and additional request options.
9289//
9290// See TagResource for details on how to use this API operation.
9291//
9292// The context must be non-nil and will be used for request cancellation. If
9293// the context is nil a panic will occur. In the future the SDK may create
9294// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9295// for more information on using Contexts.
9296func (c *APIGateway) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
9297	req, out := c.TagResourceRequest(input)
9298	req.SetContext(ctx)
9299	req.ApplyOptions(opts...)
9300	return out, req.Send()
9301}
9302
9303const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
9304
9305// TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
9306// client's request for the TestInvokeAuthorizer operation. The "output" return
9307// value will be populated with the request's response once the request completes
9308// successfully.
9309//
9310// Use "Send" method on the returned Request to send the API call to the service.
9311// the "output" return value is not valid until after Send returns without error.
9312//
9313// See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
9314// API call, and error handling.
9315//
9316// This method is useful when you want to inject custom logic or configuration
9317// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9318//
9319//
9320//    // Example sending a request using the TestInvokeAuthorizerRequest method.
9321//    req, resp := client.TestInvokeAuthorizerRequest(params)
9322//
9323//    err := req.Send()
9324//    if err == nil { // resp is now filled
9325//        fmt.Println(resp)
9326//    }
9327func (c *APIGateway) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
9328	op := &request.Operation{
9329		Name:       opTestInvokeAuthorizer,
9330		HTTPMethod: "POST",
9331		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
9332	}
9333
9334	if input == nil {
9335		input = &TestInvokeAuthorizerInput{}
9336	}
9337
9338	output = &TestInvokeAuthorizerOutput{}
9339	req = c.newRequest(op, input, output)
9340	return
9341}
9342
9343// TestInvokeAuthorizer API operation for Amazon API Gateway.
9344//
9345// Simulate the execution of an Authorizer in your RestApi with headers, parameters,
9346// and an incoming request body.
9347//
9348// Use Lambda Function as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)
9349// Use Cognito User Pool as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)
9350//
9351// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9352// with awserr.Error's Code and Message methods to get detailed information about
9353// the error.
9354//
9355// See the AWS API reference guide for Amazon API Gateway's
9356// API operation TestInvokeAuthorizer for usage and error information.
9357//
9358// Returned Error Types:
9359//   * BadRequestException
9360//   The submitted request is not valid, for example, the input is incomplete
9361//   or incorrect. See the accompanying error message for details.
9362//
9363//   * UnauthorizedException
9364//   The request is denied because the caller has insufficient permissions.
9365//
9366//   * NotFoundException
9367//   The requested resource is not found. Make sure that the request URI is correct.
9368//
9369//   * TooManyRequestsException
9370//   The request has reached its throttling limit. Retry after the specified time
9371//   period.
9372//
9373func (c *APIGateway) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
9374	req, out := c.TestInvokeAuthorizerRequest(input)
9375	return out, req.Send()
9376}
9377
9378// TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
9379// the ability to pass a context and additional request options.
9380//
9381// See TestInvokeAuthorizer for details on how to use this API operation.
9382//
9383// The context must be non-nil and will be used for request cancellation. If
9384// the context is nil a panic will occur. In the future the SDK may create
9385// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9386// for more information on using Contexts.
9387func (c *APIGateway) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
9388	req, out := c.TestInvokeAuthorizerRequest(input)
9389	req.SetContext(ctx)
9390	req.ApplyOptions(opts...)
9391	return out, req.Send()
9392}
9393
9394const opTestInvokeMethod = "TestInvokeMethod"
9395
9396// TestInvokeMethodRequest generates a "aws/request.Request" representing the
9397// client's request for the TestInvokeMethod operation. The "output" return
9398// value will be populated with the request's response once the request completes
9399// successfully.
9400//
9401// Use "Send" method on the returned Request to send the API call to the service.
9402// the "output" return value is not valid until after Send returns without error.
9403//
9404// See TestInvokeMethod for more information on using the TestInvokeMethod
9405// API call, and error handling.
9406//
9407// This method is useful when you want to inject custom logic or configuration
9408// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9409//
9410//
9411//    // Example sending a request using the TestInvokeMethodRequest method.
9412//    req, resp := client.TestInvokeMethodRequest(params)
9413//
9414//    err := req.Send()
9415//    if err == nil { // resp is now filled
9416//        fmt.Println(resp)
9417//    }
9418func (c *APIGateway) TestInvokeMethodRequest(input *TestInvokeMethodInput) (req *request.Request, output *TestInvokeMethodOutput) {
9419	op := &request.Operation{
9420		Name:       opTestInvokeMethod,
9421		HTTPMethod: "POST",
9422		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
9423	}
9424
9425	if input == nil {
9426		input = &TestInvokeMethodInput{}
9427	}
9428
9429	output = &TestInvokeMethodOutput{}
9430	req = c.newRequest(op, input, output)
9431	return
9432}
9433
9434// TestInvokeMethod API operation for Amazon API Gateway.
9435//
9436// Simulate the execution of a Method in your RestApi with headers, parameters,
9437// and an incoming request body.
9438//
9439// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9440// with awserr.Error's Code and Message methods to get detailed information about
9441// the error.
9442//
9443// See the AWS API reference guide for Amazon API Gateway's
9444// API operation TestInvokeMethod for usage and error information.
9445//
9446// Returned Error Types:
9447//   * BadRequestException
9448//   The submitted request is not valid, for example, the input is incomplete
9449//   or incorrect. See the accompanying error message for details.
9450//
9451//   * UnauthorizedException
9452//   The request is denied because the caller has insufficient permissions.
9453//
9454//   * NotFoundException
9455//   The requested resource is not found. Make sure that the request URI is correct.
9456//
9457//   * TooManyRequestsException
9458//   The request has reached its throttling limit. Retry after the specified time
9459//   period.
9460//
9461func (c *APIGateway) TestInvokeMethod(input *TestInvokeMethodInput) (*TestInvokeMethodOutput, error) {
9462	req, out := c.TestInvokeMethodRequest(input)
9463	return out, req.Send()
9464}
9465
9466// TestInvokeMethodWithContext is the same as TestInvokeMethod with the addition of
9467// the ability to pass a context and additional request options.
9468//
9469// See TestInvokeMethod for details on how to use this API operation.
9470//
9471// The context must be non-nil and will be used for request cancellation. If
9472// the context is nil a panic will occur. In the future the SDK may create
9473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9474// for more information on using Contexts.
9475func (c *APIGateway) TestInvokeMethodWithContext(ctx aws.Context, input *TestInvokeMethodInput, opts ...request.Option) (*TestInvokeMethodOutput, error) {
9476	req, out := c.TestInvokeMethodRequest(input)
9477	req.SetContext(ctx)
9478	req.ApplyOptions(opts...)
9479	return out, req.Send()
9480}
9481
9482const opUntagResource = "UntagResource"
9483
9484// UntagResourceRequest generates a "aws/request.Request" representing the
9485// client's request for the UntagResource operation. The "output" return
9486// value will be populated with the request's response once the request completes
9487// successfully.
9488//
9489// Use "Send" method on the returned Request to send the API call to the service.
9490// the "output" return value is not valid until after Send returns without error.
9491//
9492// See UntagResource for more information on using the UntagResource
9493// API call, and error handling.
9494//
9495// This method is useful when you want to inject custom logic or configuration
9496// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9497//
9498//
9499//    // Example sending a request using the UntagResourceRequest method.
9500//    req, resp := client.UntagResourceRequest(params)
9501//
9502//    err := req.Send()
9503//    if err == nil { // resp is now filled
9504//        fmt.Println(resp)
9505//    }
9506func (c *APIGateway) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
9507	op := &request.Operation{
9508		Name:       opUntagResource,
9509		HTTPMethod: "DELETE",
9510		HTTPPath:   "/tags/{resource_arn}",
9511	}
9512
9513	if input == nil {
9514		input = &UntagResourceInput{}
9515	}
9516
9517	output = &UntagResourceOutput{}
9518	req = c.newRequest(op, input, output)
9519	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9520	return
9521}
9522
9523// UntagResource API operation for Amazon API Gateway.
9524//
9525// Removes a tag from a given resource.
9526//
9527// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9528// with awserr.Error's Code and Message methods to get detailed information about
9529// the error.
9530//
9531// See the AWS API reference guide for Amazon API Gateway's
9532// API operation UntagResource for usage and error information.
9533//
9534// Returned Error Types:
9535//   * BadRequestException
9536//   The submitted request is not valid, for example, the input is incomplete
9537//   or incorrect. See the accompanying error message for details.
9538//
9539//   * ConflictException
9540//   The request configuration has conflicts. For details, see the accompanying
9541//   error message.
9542//
9543//   * LimitExceededException
9544//   The request exceeded the rate limit. Retry after the specified time period.
9545//
9546//   * NotFoundException
9547//   The requested resource is not found. Make sure that the request URI is correct.
9548//
9549//   * UnauthorizedException
9550//   The request is denied because the caller has insufficient permissions.
9551//
9552//   * TooManyRequestsException
9553//   The request has reached its throttling limit. Retry after the specified time
9554//   period.
9555//
9556func (c *APIGateway) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
9557	req, out := c.UntagResourceRequest(input)
9558	return out, req.Send()
9559}
9560
9561// UntagResourceWithContext is the same as UntagResource with the addition of
9562// the ability to pass a context and additional request options.
9563//
9564// See UntagResource for details on how to use this API operation.
9565//
9566// The context must be non-nil and will be used for request cancellation. If
9567// the context is nil a panic will occur. In the future the SDK may create
9568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9569// for more information on using Contexts.
9570func (c *APIGateway) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
9571	req, out := c.UntagResourceRequest(input)
9572	req.SetContext(ctx)
9573	req.ApplyOptions(opts...)
9574	return out, req.Send()
9575}
9576
9577const opUpdateAccount = "UpdateAccount"
9578
9579// UpdateAccountRequest generates a "aws/request.Request" representing the
9580// client's request for the UpdateAccount operation. The "output" return
9581// value will be populated with the request's response once the request completes
9582// successfully.
9583//
9584// Use "Send" method on the returned Request to send the API call to the service.
9585// the "output" return value is not valid until after Send returns without error.
9586//
9587// See UpdateAccount for more information on using the UpdateAccount
9588// API call, and error handling.
9589//
9590// This method is useful when you want to inject custom logic or configuration
9591// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9592//
9593//
9594//    // Example sending a request using the UpdateAccountRequest method.
9595//    req, resp := client.UpdateAccountRequest(params)
9596//
9597//    err := req.Send()
9598//    if err == nil { // resp is now filled
9599//        fmt.Println(resp)
9600//    }
9601func (c *APIGateway) UpdateAccountRequest(input *UpdateAccountInput) (req *request.Request, output *Account) {
9602	op := &request.Operation{
9603		Name:       opUpdateAccount,
9604		HTTPMethod: "PATCH",
9605		HTTPPath:   "/account",
9606	}
9607
9608	if input == nil {
9609		input = &UpdateAccountInput{}
9610	}
9611
9612	output = &Account{}
9613	req = c.newRequest(op, input, output)
9614	return
9615}
9616
9617// UpdateAccount API operation for Amazon API Gateway.
9618//
9619// Changes information about the current Account resource.
9620//
9621// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9622// with awserr.Error's Code and Message methods to get detailed information about
9623// the error.
9624//
9625// See the AWS API reference guide for Amazon API Gateway's
9626// API operation UpdateAccount for usage and error information.
9627//
9628// Returned Error Types:
9629//   * BadRequestException
9630//   The submitted request is not valid, for example, the input is incomplete
9631//   or incorrect. See the accompanying error message for details.
9632//
9633//   * ConflictException
9634//   The request configuration has conflicts. For details, see the accompanying
9635//   error message.
9636//
9637//   * LimitExceededException
9638//   The request exceeded the rate limit. Retry after the specified time period.
9639//
9640//   * NotFoundException
9641//   The requested resource is not found. Make sure that the request URI is correct.
9642//
9643//   * UnauthorizedException
9644//   The request is denied because the caller has insufficient permissions.
9645//
9646//   * TooManyRequestsException
9647//   The request has reached its throttling limit. Retry after the specified time
9648//   period.
9649//
9650func (c *APIGateway) UpdateAccount(input *UpdateAccountInput) (*Account, error) {
9651	req, out := c.UpdateAccountRequest(input)
9652	return out, req.Send()
9653}
9654
9655// UpdateAccountWithContext is the same as UpdateAccount with the addition of
9656// the ability to pass a context and additional request options.
9657//
9658// See UpdateAccount for details on how to use this API operation.
9659//
9660// The context must be non-nil and will be used for request cancellation. If
9661// the context is nil a panic will occur. In the future the SDK may create
9662// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9663// for more information on using Contexts.
9664func (c *APIGateway) UpdateAccountWithContext(ctx aws.Context, input *UpdateAccountInput, opts ...request.Option) (*Account, error) {
9665	req, out := c.UpdateAccountRequest(input)
9666	req.SetContext(ctx)
9667	req.ApplyOptions(opts...)
9668	return out, req.Send()
9669}
9670
9671const opUpdateApiKey = "UpdateApiKey"
9672
9673// UpdateApiKeyRequest generates a "aws/request.Request" representing the
9674// client's request for the UpdateApiKey operation. The "output" return
9675// value will be populated with the request's response once the request completes
9676// successfully.
9677//
9678// Use "Send" method on the returned Request to send the API call to the service.
9679// the "output" return value is not valid until after Send returns without error.
9680//
9681// See UpdateApiKey for more information on using the UpdateApiKey
9682// API call, and error handling.
9683//
9684// This method is useful when you want to inject custom logic or configuration
9685// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9686//
9687//
9688//    // Example sending a request using the UpdateApiKeyRequest method.
9689//    req, resp := client.UpdateApiKeyRequest(params)
9690//
9691//    err := req.Send()
9692//    if err == nil { // resp is now filled
9693//        fmt.Println(resp)
9694//    }
9695func (c *APIGateway) UpdateApiKeyRequest(input *UpdateApiKeyInput) (req *request.Request, output *ApiKey) {
9696	op := &request.Operation{
9697		Name:       opUpdateApiKey,
9698		HTTPMethod: "PATCH",
9699		HTTPPath:   "/apikeys/{api_Key}",
9700	}
9701
9702	if input == nil {
9703		input = &UpdateApiKeyInput{}
9704	}
9705
9706	output = &ApiKey{}
9707	req = c.newRequest(op, input, output)
9708	return
9709}
9710
9711// UpdateApiKey API operation for Amazon API Gateway.
9712//
9713// Changes information about an ApiKey resource.
9714//
9715// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9716// with awserr.Error's Code and Message methods to get detailed information about
9717// the error.
9718//
9719// See the AWS API reference guide for Amazon API Gateway's
9720// API operation UpdateApiKey for usage and error information.
9721//
9722// Returned Error Types:
9723//   * BadRequestException
9724//   The submitted request is not valid, for example, the input is incomplete
9725//   or incorrect. See the accompanying error message for details.
9726//
9727//   * ConflictException
9728//   The request configuration has conflicts. For details, see the accompanying
9729//   error message.
9730//
9731//   * LimitExceededException
9732//   The request exceeded the rate limit. Retry after the specified time period.
9733//
9734//   * NotFoundException
9735//   The requested resource is not found. Make sure that the request URI is correct.
9736//
9737//   * UnauthorizedException
9738//   The request is denied because the caller has insufficient permissions.
9739//
9740//   * TooManyRequestsException
9741//   The request has reached its throttling limit. Retry after the specified time
9742//   period.
9743//
9744func (c *APIGateway) UpdateApiKey(input *UpdateApiKeyInput) (*ApiKey, error) {
9745	req, out := c.UpdateApiKeyRequest(input)
9746	return out, req.Send()
9747}
9748
9749// UpdateApiKeyWithContext is the same as UpdateApiKey with the addition of
9750// the ability to pass a context and additional request options.
9751//
9752// See UpdateApiKey for details on how to use this API operation.
9753//
9754// The context must be non-nil and will be used for request cancellation. If
9755// the context is nil a panic will occur. In the future the SDK may create
9756// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9757// for more information on using Contexts.
9758func (c *APIGateway) UpdateApiKeyWithContext(ctx aws.Context, input *UpdateApiKeyInput, opts ...request.Option) (*ApiKey, error) {
9759	req, out := c.UpdateApiKeyRequest(input)
9760	req.SetContext(ctx)
9761	req.ApplyOptions(opts...)
9762	return out, req.Send()
9763}
9764
9765const opUpdateAuthorizer = "UpdateAuthorizer"
9766
9767// UpdateAuthorizerRequest generates a "aws/request.Request" representing the
9768// client's request for the UpdateAuthorizer operation. The "output" return
9769// value will be populated with the request's response once the request completes
9770// successfully.
9771//
9772// Use "Send" method on the returned Request to send the API call to the service.
9773// the "output" return value is not valid until after Send returns without error.
9774//
9775// See UpdateAuthorizer for more information on using the UpdateAuthorizer
9776// API call, and error handling.
9777//
9778// This method is useful when you want to inject custom logic or configuration
9779// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9780//
9781//
9782//    // Example sending a request using the UpdateAuthorizerRequest method.
9783//    req, resp := client.UpdateAuthorizerRequest(params)
9784//
9785//    err := req.Send()
9786//    if err == nil { // resp is now filled
9787//        fmt.Println(resp)
9788//    }
9789func (c *APIGateway) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *Authorizer) {
9790	op := &request.Operation{
9791		Name:       opUpdateAuthorizer,
9792		HTTPMethod: "PATCH",
9793		HTTPPath:   "/restapis/{restapi_id}/authorizers/{authorizer_id}",
9794	}
9795
9796	if input == nil {
9797		input = &UpdateAuthorizerInput{}
9798	}
9799
9800	output = &Authorizer{}
9801	req = c.newRequest(op, input, output)
9802	return
9803}
9804
9805// UpdateAuthorizer API operation for Amazon API Gateway.
9806//
9807// Updates an existing Authorizer resource.
9808//
9809// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-authorizer.html)
9810//
9811// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9812// with awserr.Error's Code and Message methods to get detailed information about
9813// the error.
9814//
9815// See the AWS API reference guide for Amazon API Gateway's
9816// API operation UpdateAuthorizer for usage and error information.
9817//
9818// Returned Error Types:
9819//   * BadRequestException
9820//   The submitted request is not valid, for example, the input is incomplete
9821//   or incorrect. See the accompanying error message for details.
9822//
9823//   * ConflictException
9824//   The request configuration has conflicts. For details, see the accompanying
9825//   error message.
9826//
9827//   * LimitExceededException
9828//   The request exceeded the rate limit. Retry after the specified time period.
9829//
9830//   * NotFoundException
9831//   The requested resource is not found. Make sure that the request URI is correct.
9832//
9833//   * UnauthorizedException
9834//   The request is denied because the caller has insufficient permissions.
9835//
9836//   * TooManyRequestsException
9837//   The request has reached its throttling limit. Retry after the specified time
9838//   period.
9839//
9840func (c *APIGateway) UpdateAuthorizer(input *UpdateAuthorizerInput) (*Authorizer, error) {
9841	req, out := c.UpdateAuthorizerRequest(input)
9842	return out, req.Send()
9843}
9844
9845// UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
9846// the ability to pass a context and additional request options.
9847//
9848// See UpdateAuthorizer for details on how to use this API operation.
9849//
9850// The context must be non-nil and will be used for request cancellation. If
9851// the context is nil a panic will occur. In the future the SDK may create
9852// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9853// for more information on using Contexts.
9854func (c *APIGateway) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*Authorizer, error) {
9855	req, out := c.UpdateAuthorizerRequest(input)
9856	req.SetContext(ctx)
9857	req.ApplyOptions(opts...)
9858	return out, req.Send()
9859}
9860
9861const opUpdateBasePathMapping = "UpdateBasePathMapping"
9862
9863// UpdateBasePathMappingRequest generates a "aws/request.Request" representing the
9864// client's request for the UpdateBasePathMapping operation. The "output" return
9865// value will be populated with the request's response once the request completes
9866// successfully.
9867//
9868// Use "Send" method on the returned Request to send the API call to the service.
9869// the "output" return value is not valid until after Send returns without error.
9870//
9871// See UpdateBasePathMapping for more information on using the UpdateBasePathMapping
9872// API call, and error handling.
9873//
9874// This method is useful when you want to inject custom logic or configuration
9875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9876//
9877//
9878//    // Example sending a request using the UpdateBasePathMappingRequest method.
9879//    req, resp := client.UpdateBasePathMappingRequest(params)
9880//
9881//    err := req.Send()
9882//    if err == nil { // resp is now filled
9883//        fmt.Println(resp)
9884//    }
9885func (c *APIGateway) UpdateBasePathMappingRequest(input *UpdateBasePathMappingInput) (req *request.Request, output *BasePathMapping) {
9886	op := &request.Operation{
9887		Name:       opUpdateBasePathMapping,
9888		HTTPMethod: "PATCH",
9889		HTTPPath:   "/domainnames/{domain_name}/basepathmappings/{base_path}",
9890	}
9891
9892	if input == nil {
9893		input = &UpdateBasePathMappingInput{}
9894	}
9895
9896	output = &BasePathMapping{}
9897	req = c.newRequest(op, input, output)
9898	return
9899}
9900
9901// UpdateBasePathMapping API operation for Amazon API Gateway.
9902//
9903// Changes information about the BasePathMapping resource.
9904//
9905// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9906// with awserr.Error's Code and Message methods to get detailed information about
9907// the error.
9908//
9909// See the AWS API reference guide for Amazon API Gateway's
9910// API operation UpdateBasePathMapping for usage and error information.
9911//
9912// Returned Error Types:
9913//   * BadRequestException
9914//   The submitted request is not valid, for example, the input is incomplete
9915//   or incorrect. See the accompanying error message for details.
9916//
9917//   * ConflictException
9918//   The request configuration has conflicts. For details, see the accompanying
9919//   error message.
9920//
9921//   * LimitExceededException
9922//   The request exceeded the rate limit. Retry after the specified time period.
9923//
9924//   * NotFoundException
9925//   The requested resource is not found. Make sure that the request URI is correct.
9926//
9927//   * UnauthorizedException
9928//   The request is denied because the caller has insufficient permissions.
9929//
9930//   * TooManyRequestsException
9931//   The request has reached its throttling limit. Retry after the specified time
9932//   period.
9933//
9934func (c *APIGateway) UpdateBasePathMapping(input *UpdateBasePathMappingInput) (*BasePathMapping, error) {
9935	req, out := c.UpdateBasePathMappingRequest(input)
9936	return out, req.Send()
9937}
9938
9939// UpdateBasePathMappingWithContext is the same as UpdateBasePathMapping with the addition of
9940// the ability to pass a context and additional request options.
9941//
9942// See UpdateBasePathMapping for details on how to use this API operation.
9943//
9944// The context must be non-nil and will be used for request cancellation. If
9945// the context is nil a panic will occur. In the future the SDK may create
9946// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9947// for more information on using Contexts.
9948func (c *APIGateway) UpdateBasePathMappingWithContext(ctx aws.Context, input *UpdateBasePathMappingInput, opts ...request.Option) (*BasePathMapping, error) {
9949	req, out := c.UpdateBasePathMappingRequest(input)
9950	req.SetContext(ctx)
9951	req.ApplyOptions(opts...)
9952	return out, req.Send()
9953}
9954
9955const opUpdateClientCertificate = "UpdateClientCertificate"
9956
9957// UpdateClientCertificateRequest generates a "aws/request.Request" representing the
9958// client's request for the UpdateClientCertificate operation. The "output" return
9959// value will be populated with the request's response once the request completes
9960// successfully.
9961//
9962// Use "Send" method on the returned Request to send the API call to the service.
9963// the "output" return value is not valid until after Send returns without error.
9964//
9965// See UpdateClientCertificate for more information on using the UpdateClientCertificate
9966// API call, and error handling.
9967//
9968// This method is useful when you want to inject custom logic or configuration
9969// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9970//
9971//
9972//    // Example sending a request using the UpdateClientCertificateRequest method.
9973//    req, resp := client.UpdateClientCertificateRequest(params)
9974//
9975//    err := req.Send()
9976//    if err == nil { // resp is now filled
9977//        fmt.Println(resp)
9978//    }
9979func (c *APIGateway) UpdateClientCertificateRequest(input *UpdateClientCertificateInput) (req *request.Request, output *ClientCertificate) {
9980	op := &request.Operation{
9981		Name:       opUpdateClientCertificate,
9982		HTTPMethod: "PATCH",
9983		HTTPPath:   "/clientcertificates/{clientcertificate_id}",
9984	}
9985
9986	if input == nil {
9987		input = &UpdateClientCertificateInput{}
9988	}
9989
9990	output = &ClientCertificate{}
9991	req = c.newRequest(op, input, output)
9992	return
9993}
9994
9995// UpdateClientCertificate API operation for Amazon API Gateway.
9996//
9997// Changes information about an ClientCertificate resource.
9998//
9999// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10000// with awserr.Error's Code and Message methods to get detailed information about
10001// the error.
10002//
10003// See the AWS API reference guide for Amazon API Gateway's
10004// API operation UpdateClientCertificate for usage and error information.
10005//
10006// Returned Error Types:
10007//   * BadRequestException
10008//   The submitted request is not valid, for example, the input is incomplete
10009//   or incorrect. See the accompanying error message for details.
10010//
10011//   * ConflictException
10012//   The request configuration has conflicts. For details, see the accompanying
10013//   error message.
10014//
10015//   * LimitExceededException
10016//   The request exceeded the rate limit. Retry after the specified time period.
10017//
10018//   * NotFoundException
10019//   The requested resource is not found. Make sure that the request URI is correct.
10020//
10021//   * UnauthorizedException
10022//   The request is denied because the caller has insufficient permissions.
10023//
10024//   * TooManyRequestsException
10025//   The request has reached its throttling limit. Retry after the specified time
10026//   period.
10027//
10028func (c *APIGateway) UpdateClientCertificate(input *UpdateClientCertificateInput) (*ClientCertificate, error) {
10029	req, out := c.UpdateClientCertificateRequest(input)
10030	return out, req.Send()
10031}
10032
10033// UpdateClientCertificateWithContext is the same as UpdateClientCertificate with the addition of
10034// the ability to pass a context and additional request options.
10035//
10036// See UpdateClientCertificate for details on how to use this API operation.
10037//
10038// The context must be non-nil and will be used for request cancellation. If
10039// the context is nil a panic will occur. In the future the SDK may create
10040// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10041// for more information on using Contexts.
10042func (c *APIGateway) UpdateClientCertificateWithContext(ctx aws.Context, input *UpdateClientCertificateInput, opts ...request.Option) (*ClientCertificate, error) {
10043	req, out := c.UpdateClientCertificateRequest(input)
10044	req.SetContext(ctx)
10045	req.ApplyOptions(opts...)
10046	return out, req.Send()
10047}
10048
10049const opUpdateDeployment = "UpdateDeployment"
10050
10051// UpdateDeploymentRequest generates a "aws/request.Request" representing the
10052// client's request for the UpdateDeployment operation. The "output" return
10053// value will be populated with the request's response once the request completes
10054// successfully.
10055//
10056// Use "Send" method on the returned Request to send the API call to the service.
10057// the "output" return value is not valid until after Send returns without error.
10058//
10059// See UpdateDeployment for more information on using the UpdateDeployment
10060// API call, and error handling.
10061//
10062// This method is useful when you want to inject custom logic or configuration
10063// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10064//
10065//
10066//    // Example sending a request using the UpdateDeploymentRequest method.
10067//    req, resp := client.UpdateDeploymentRequest(params)
10068//
10069//    err := req.Send()
10070//    if err == nil { // resp is now filled
10071//        fmt.Println(resp)
10072//    }
10073func (c *APIGateway) UpdateDeploymentRequest(input *UpdateDeploymentInput) (req *request.Request, output *Deployment) {
10074	op := &request.Operation{
10075		Name:       opUpdateDeployment,
10076		HTTPMethod: "PATCH",
10077		HTTPPath:   "/restapis/{restapi_id}/deployments/{deployment_id}",
10078	}
10079
10080	if input == nil {
10081		input = &UpdateDeploymentInput{}
10082	}
10083
10084	output = &Deployment{}
10085	req = c.newRequest(op, input, output)
10086	return
10087}
10088
10089// UpdateDeployment API operation for Amazon API Gateway.
10090//
10091// Changes information about a Deployment resource.
10092//
10093// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10094// with awserr.Error's Code and Message methods to get detailed information about
10095// the error.
10096//
10097// See the AWS API reference guide for Amazon API Gateway's
10098// API operation UpdateDeployment for usage and error information.
10099//
10100// Returned Error Types:
10101//   * BadRequestException
10102//   The submitted request is not valid, for example, the input is incomplete
10103//   or incorrect. See the accompanying error message for details.
10104//
10105//   * ConflictException
10106//   The request configuration has conflicts. For details, see the accompanying
10107//   error message.
10108//
10109//   * LimitExceededException
10110//   The request exceeded the rate limit. Retry after the specified time period.
10111//
10112//   * NotFoundException
10113//   The requested resource is not found. Make sure that the request URI is correct.
10114//
10115//   * UnauthorizedException
10116//   The request is denied because the caller has insufficient permissions.
10117//
10118//   * TooManyRequestsException
10119//   The request has reached its throttling limit. Retry after the specified time
10120//   period.
10121//
10122//   * ServiceUnavailableException
10123//   The requested service is not available. For details see the accompanying
10124//   error message. Retry after the specified time period.
10125//
10126func (c *APIGateway) UpdateDeployment(input *UpdateDeploymentInput) (*Deployment, error) {
10127	req, out := c.UpdateDeploymentRequest(input)
10128	return out, req.Send()
10129}
10130
10131// UpdateDeploymentWithContext is the same as UpdateDeployment with the addition of
10132// the ability to pass a context and additional request options.
10133//
10134// See UpdateDeployment for details on how to use this API operation.
10135//
10136// The context must be non-nil and will be used for request cancellation. If
10137// the context is nil a panic will occur. In the future the SDK may create
10138// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10139// for more information on using Contexts.
10140func (c *APIGateway) UpdateDeploymentWithContext(ctx aws.Context, input *UpdateDeploymentInput, opts ...request.Option) (*Deployment, error) {
10141	req, out := c.UpdateDeploymentRequest(input)
10142	req.SetContext(ctx)
10143	req.ApplyOptions(opts...)
10144	return out, req.Send()
10145}
10146
10147const opUpdateDocumentationPart = "UpdateDocumentationPart"
10148
10149// UpdateDocumentationPartRequest generates a "aws/request.Request" representing the
10150// client's request for the UpdateDocumentationPart operation. The "output" return
10151// value will be populated with the request's response once the request completes
10152// successfully.
10153//
10154// Use "Send" method on the returned Request to send the API call to the service.
10155// the "output" return value is not valid until after Send returns without error.
10156//
10157// See UpdateDocumentationPart for more information on using the UpdateDocumentationPart
10158// API call, and error handling.
10159//
10160// This method is useful when you want to inject custom logic or configuration
10161// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10162//
10163//
10164//    // Example sending a request using the UpdateDocumentationPartRequest method.
10165//    req, resp := client.UpdateDocumentationPartRequest(params)
10166//
10167//    err := req.Send()
10168//    if err == nil { // resp is now filled
10169//        fmt.Println(resp)
10170//    }
10171func (c *APIGateway) UpdateDocumentationPartRequest(input *UpdateDocumentationPartInput) (req *request.Request, output *DocumentationPart) {
10172	op := &request.Operation{
10173		Name:       opUpdateDocumentationPart,
10174		HTTPMethod: "PATCH",
10175		HTTPPath:   "/restapis/{restapi_id}/documentation/parts/{part_id}",
10176	}
10177
10178	if input == nil {
10179		input = &UpdateDocumentationPartInput{}
10180	}
10181
10182	output = &DocumentationPart{}
10183	req = c.newRequest(op, input, output)
10184	return
10185}
10186
10187// UpdateDocumentationPart API operation for Amazon API Gateway.
10188//
10189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10190// with awserr.Error's Code and Message methods to get detailed information about
10191// the error.
10192//
10193// See the AWS API reference guide for Amazon API Gateway's
10194// API operation UpdateDocumentationPart for usage and error information.
10195//
10196// Returned Error Types:
10197//   * BadRequestException
10198//   The submitted request is not valid, for example, the input is incomplete
10199//   or incorrect. See the accompanying error message for details.
10200//
10201//   * ConflictException
10202//   The request configuration has conflicts. For details, see the accompanying
10203//   error message.
10204//
10205//   * LimitExceededException
10206//   The request exceeded the rate limit. Retry after the specified time period.
10207//
10208//   * NotFoundException
10209//   The requested resource is not found. Make sure that the request URI is correct.
10210//
10211//   * UnauthorizedException
10212//   The request is denied because the caller has insufficient permissions.
10213//
10214//   * TooManyRequestsException
10215//   The request has reached its throttling limit. Retry after the specified time
10216//   period.
10217//
10218func (c *APIGateway) UpdateDocumentationPart(input *UpdateDocumentationPartInput) (*DocumentationPart, error) {
10219	req, out := c.UpdateDocumentationPartRequest(input)
10220	return out, req.Send()
10221}
10222
10223// UpdateDocumentationPartWithContext is the same as UpdateDocumentationPart with the addition of
10224// the ability to pass a context and additional request options.
10225//
10226// See UpdateDocumentationPart for details on how to use this API operation.
10227//
10228// The context must be non-nil and will be used for request cancellation. If
10229// the context is nil a panic will occur. In the future the SDK may create
10230// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10231// for more information on using Contexts.
10232func (c *APIGateway) UpdateDocumentationPartWithContext(ctx aws.Context, input *UpdateDocumentationPartInput, opts ...request.Option) (*DocumentationPart, error) {
10233	req, out := c.UpdateDocumentationPartRequest(input)
10234	req.SetContext(ctx)
10235	req.ApplyOptions(opts...)
10236	return out, req.Send()
10237}
10238
10239const opUpdateDocumentationVersion = "UpdateDocumentationVersion"
10240
10241// UpdateDocumentationVersionRequest generates a "aws/request.Request" representing the
10242// client's request for the UpdateDocumentationVersion operation. The "output" return
10243// value will be populated with the request's response once the request completes
10244// successfully.
10245//
10246// Use "Send" method on the returned Request to send the API call to the service.
10247// the "output" return value is not valid until after Send returns without error.
10248//
10249// See UpdateDocumentationVersion for more information on using the UpdateDocumentationVersion
10250// API call, and error handling.
10251//
10252// This method is useful when you want to inject custom logic or configuration
10253// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10254//
10255//
10256//    // Example sending a request using the UpdateDocumentationVersionRequest method.
10257//    req, resp := client.UpdateDocumentationVersionRequest(params)
10258//
10259//    err := req.Send()
10260//    if err == nil { // resp is now filled
10261//        fmt.Println(resp)
10262//    }
10263func (c *APIGateway) UpdateDocumentationVersionRequest(input *UpdateDocumentationVersionInput) (req *request.Request, output *DocumentationVersion) {
10264	op := &request.Operation{
10265		Name:       opUpdateDocumentationVersion,
10266		HTTPMethod: "PATCH",
10267		HTTPPath:   "/restapis/{restapi_id}/documentation/versions/{doc_version}",
10268	}
10269
10270	if input == nil {
10271		input = &UpdateDocumentationVersionInput{}
10272	}
10273
10274	output = &DocumentationVersion{}
10275	req = c.newRequest(op, input, output)
10276	return
10277}
10278
10279// UpdateDocumentationVersion API operation for Amazon API Gateway.
10280//
10281// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10282// with awserr.Error's Code and Message methods to get detailed information about
10283// the error.
10284//
10285// See the AWS API reference guide for Amazon API Gateway's
10286// API operation UpdateDocumentationVersion for usage and error information.
10287//
10288// Returned Error Types:
10289//   * BadRequestException
10290//   The submitted request is not valid, for example, the input is incomplete
10291//   or incorrect. See the accompanying error message for details.
10292//
10293//   * ConflictException
10294//   The request configuration has conflicts. For details, see the accompanying
10295//   error message.
10296//
10297//   * LimitExceededException
10298//   The request exceeded the rate limit. Retry after the specified time period.
10299//
10300//   * NotFoundException
10301//   The requested resource is not found. Make sure that the request URI is correct.
10302//
10303//   * UnauthorizedException
10304//   The request is denied because the caller has insufficient permissions.
10305//
10306//   * TooManyRequestsException
10307//   The request has reached its throttling limit. Retry after the specified time
10308//   period.
10309//
10310func (c *APIGateway) UpdateDocumentationVersion(input *UpdateDocumentationVersionInput) (*DocumentationVersion, error) {
10311	req, out := c.UpdateDocumentationVersionRequest(input)
10312	return out, req.Send()
10313}
10314
10315// UpdateDocumentationVersionWithContext is the same as UpdateDocumentationVersion with the addition of
10316// the ability to pass a context and additional request options.
10317//
10318// See UpdateDocumentationVersion for details on how to use this API operation.
10319//
10320// The context must be non-nil and will be used for request cancellation. If
10321// the context is nil a panic will occur. In the future the SDK may create
10322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10323// for more information on using Contexts.
10324func (c *APIGateway) UpdateDocumentationVersionWithContext(ctx aws.Context, input *UpdateDocumentationVersionInput, opts ...request.Option) (*DocumentationVersion, error) {
10325	req, out := c.UpdateDocumentationVersionRequest(input)
10326	req.SetContext(ctx)
10327	req.ApplyOptions(opts...)
10328	return out, req.Send()
10329}
10330
10331const opUpdateDomainName = "UpdateDomainName"
10332
10333// UpdateDomainNameRequest generates a "aws/request.Request" representing the
10334// client's request for the UpdateDomainName operation. The "output" return
10335// value will be populated with the request's response once the request completes
10336// successfully.
10337//
10338// Use "Send" method on the returned Request to send the API call to the service.
10339// the "output" return value is not valid until after Send returns without error.
10340//
10341// See UpdateDomainName for more information on using the UpdateDomainName
10342// API call, and error handling.
10343//
10344// This method is useful when you want to inject custom logic or configuration
10345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10346//
10347//
10348//    // Example sending a request using the UpdateDomainNameRequest method.
10349//    req, resp := client.UpdateDomainNameRequest(params)
10350//
10351//    err := req.Send()
10352//    if err == nil { // resp is now filled
10353//        fmt.Println(resp)
10354//    }
10355func (c *APIGateway) UpdateDomainNameRequest(input *UpdateDomainNameInput) (req *request.Request, output *DomainName) {
10356	op := &request.Operation{
10357		Name:       opUpdateDomainName,
10358		HTTPMethod: "PATCH",
10359		HTTPPath:   "/domainnames/{domain_name}",
10360	}
10361
10362	if input == nil {
10363		input = &UpdateDomainNameInput{}
10364	}
10365
10366	output = &DomainName{}
10367	req = c.newRequest(op, input, output)
10368	return
10369}
10370
10371// UpdateDomainName API operation for Amazon API Gateway.
10372//
10373// Changes information about the DomainName resource.
10374//
10375// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10376// with awserr.Error's Code and Message methods to get detailed information about
10377// the error.
10378//
10379// See the AWS API reference guide for Amazon API Gateway's
10380// API operation UpdateDomainName for usage and error information.
10381//
10382// Returned Error Types:
10383//   * BadRequestException
10384//   The submitted request is not valid, for example, the input is incomplete
10385//   or incorrect. See the accompanying error message for details.
10386//
10387//   * ConflictException
10388//   The request configuration has conflicts. For details, see the accompanying
10389//   error message.
10390//
10391//   * LimitExceededException
10392//   The request exceeded the rate limit. Retry after the specified time period.
10393//
10394//   * NotFoundException
10395//   The requested resource is not found. Make sure that the request URI is correct.
10396//
10397//   * UnauthorizedException
10398//   The request is denied because the caller has insufficient permissions.
10399//
10400//   * TooManyRequestsException
10401//   The request has reached its throttling limit. Retry after the specified time
10402//   period.
10403//
10404func (c *APIGateway) UpdateDomainName(input *UpdateDomainNameInput) (*DomainName, error) {
10405	req, out := c.UpdateDomainNameRequest(input)
10406	return out, req.Send()
10407}
10408
10409// UpdateDomainNameWithContext is the same as UpdateDomainName with the addition of
10410// the ability to pass a context and additional request options.
10411//
10412// See UpdateDomainName for details on how to use this API operation.
10413//
10414// The context must be non-nil and will be used for request cancellation. If
10415// the context is nil a panic will occur. In the future the SDK may create
10416// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10417// for more information on using Contexts.
10418func (c *APIGateway) UpdateDomainNameWithContext(ctx aws.Context, input *UpdateDomainNameInput, opts ...request.Option) (*DomainName, error) {
10419	req, out := c.UpdateDomainNameRequest(input)
10420	req.SetContext(ctx)
10421	req.ApplyOptions(opts...)
10422	return out, req.Send()
10423}
10424
10425const opUpdateGatewayResponse = "UpdateGatewayResponse"
10426
10427// UpdateGatewayResponseRequest generates a "aws/request.Request" representing the
10428// client's request for the UpdateGatewayResponse operation. The "output" return
10429// value will be populated with the request's response once the request completes
10430// successfully.
10431//
10432// Use "Send" method on the returned Request to send the API call to the service.
10433// the "output" return value is not valid until after Send returns without error.
10434//
10435// See UpdateGatewayResponse for more information on using the UpdateGatewayResponse
10436// API call, and error handling.
10437//
10438// This method is useful when you want to inject custom logic or configuration
10439// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10440//
10441//
10442//    // Example sending a request using the UpdateGatewayResponseRequest method.
10443//    req, resp := client.UpdateGatewayResponseRequest(params)
10444//
10445//    err := req.Send()
10446//    if err == nil { // resp is now filled
10447//        fmt.Println(resp)
10448//    }
10449func (c *APIGateway) UpdateGatewayResponseRequest(input *UpdateGatewayResponseInput) (req *request.Request, output *UpdateGatewayResponseOutput) {
10450	op := &request.Operation{
10451		Name:       opUpdateGatewayResponse,
10452		HTTPMethod: "PATCH",
10453		HTTPPath:   "/restapis/{restapi_id}/gatewayresponses/{response_type}",
10454	}
10455
10456	if input == nil {
10457		input = &UpdateGatewayResponseInput{}
10458	}
10459
10460	output = &UpdateGatewayResponseOutput{}
10461	req = c.newRequest(op, input, output)
10462	return
10463}
10464
10465// UpdateGatewayResponse API operation for Amazon API Gateway.
10466//
10467// Updates a GatewayResponse of a specified response type on the given RestApi.
10468//
10469// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10470// with awserr.Error's Code and Message methods to get detailed information about
10471// the error.
10472//
10473// See the AWS API reference guide for Amazon API Gateway's
10474// API operation UpdateGatewayResponse for usage and error information.
10475//
10476// Returned Error Types:
10477//   * BadRequestException
10478//   The submitted request is not valid, for example, the input is incomplete
10479//   or incorrect. See the accompanying error message for details.
10480//
10481//   * ConflictException
10482//   The request configuration has conflicts. For details, see the accompanying
10483//   error message.
10484//
10485//   * LimitExceededException
10486//   The request exceeded the rate limit. Retry after the specified time period.
10487//
10488//   * NotFoundException
10489//   The requested resource is not found. Make sure that the request URI is correct.
10490//
10491//   * UnauthorizedException
10492//   The request is denied because the caller has insufficient permissions.
10493//
10494//   * TooManyRequestsException
10495//   The request has reached its throttling limit. Retry after the specified time
10496//   period.
10497//
10498func (c *APIGateway) UpdateGatewayResponse(input *UpdateGatewayResponseInput) (*UpdateGatewayResponseOutput, error) {
10499	req, out := c.UpdateGatewayResponseRequest(input)
10500	return out, req.Send()
10501}
10502
10503// UpdateGatewayResponseWithContext is the same as UpdateGatewayResponse with the addition of
10504// the ability to pass a context and additional request options.
10505//
10506// See UpdateGatewayResponse for details on how to use this API operation.
10507//
10508// The context must be non-nil and will be used for request cancellation. If
10509// the context is nil a panic will occur. In the future the SDK may create
10510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10511// for more information on using Contexts.
10512func (c *APIGateway) UpdateGatewayResponseWithContext(ctx aws.Context, input *UpdateGatewayResponseInput, opts ...request.Option) (*UpdateGatewayResponseOutput, error) {
10513	req, out := c.UpdateGatewayResponseRequest(input)
10514	req.SetContext(ctx)
10515	req.ApplyOptions(opts...)
10516	return out, req.Send()
10517}
10518
10519const opUpdateIntegration = "UpdateIntegration"
10520
10521// UpdateIntegrationRequest generates a "aws/request.Request" representing the
10522// client's request for the UpdateIntegration operation. The "output" return
10523// value will be populated with the request's response once the request completes
10524// successfully.
10525//
10526// Use "Send" method on the returned Request to send the API call to the service.
10527// the "output" return value is not valid until after Send returns without error.
10528//
10529// See UpdateIntegration for more information on using the UpdateIntegration
10530// API call, and error handling.
10531//
10532// This method is useful when you want to inject custom logic or configuration
10533// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10534//
10535//
10536//    // Example sending a request using the UpdateIntegrationRequest method.
10537//    req, resp := client.UpdateIntegrationRequest(params)
10538//
10539//    err := req.Send()
10540//    if err == nil { // resp is now filled
10541//        fmt.Println(resp)
10542//    }
10543func (c *APIGateway) UpdateIntegrationRequest(input *UpdateIntegrationInput) (req *request.Request, output *Integration) {
10544	op := &request.Operation{
10545		Name:       opUpdateIntegration,
10546		HTTPMethod: "PATCH",
10547		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration",
10548	}
10549
10550	if input == nil {
10551		input = &UpdateIntegrationInput{}
10552	}
10553
10554	output = &Integration{}
10555	req = c.newRequest(op, input, output)
10556	return
10557}
10558
10559// UpdateIntegration API operation for Amazon API Gateway.
10560//
10561// Represents an update integration.
10562//
10563// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10564// with awserr.Error's Code and Message methods to get detailed information about
10565// the error.
10566//
10567// See the AWS API reference guide for Amazon API Gateway's
10568// API operation UpdateIntegration for usage and error information.
10569//
10570// Returned Error Types:
10571//   * BadRequestException
10572//   The submitted request is not valid, for example, the input is incomplete
10573//   or incorrect. See the accompanying error message for details.
10574//
10575//   * ConflictException
10576//   The request configuration has conflicts. For details, see the accompanying
10577//   error message.
10578//
10579//   * LimitExceededException
10580//   The request exceeded the rate limit. Retry after the specified time period.
10581//
10582//   * NotFoundException
10583//   The requested resource is not found. Make sure that the request URI is correct.
10584//
10585//   * UnauthorizedException
10586//   The request is denied because the caller has insufficient permissions.
10587//
10588//   * TooManyRequestsException
10589//   The request has reached its throttling limit. Retry after the specified time
10590//   period.
10591//
10592func (c *APIGateway) UpdateIntegration(input *UpdateIntegrationInput) (*Integration, error) {
10593	req, out := c.UpdateIntegrationRequest(input)
10594	return out, req.Send()
10595}
10596
10597// UpdateIntegrationWithContext is the same as UpdateIntegration with the addition of
10598// the ability to pass a context and additional request options.
10599//
10600// See UpdateIntegration for details on how to use this API operation.
10601//
10602// The context must be non-nil and will be used for request cancellation. If
10603// the context is nil a panic will occur. In the future the SDK may create
10604// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10605// for more information on using Contexts.
10606func (c *APIGateway) UpdateIntegrationWithContext(ctx aws.Context, input *UpdateIntegrationInput, opts ...request.Option) (*Integration, error) {
10607	req, out := c.UpdateIntegrationRequest(input)
10608	req.SetContext(ctx)
10609	req.ApplyOptions(opts...)
10610	return out, req.Send()
10611}
10612
10613const opUpdateIntegrationResponse = "UpdateIntegrationResponse"
10614
10615// UpdateIntegrationResponseRequest generates a "aws/request.Request" representing the
10616// client's request for the UpdateIntegrationResponse operation. The "output" return
10617// value will be populated with the request's response once the request completes
10618// successfully.
10619//
10620// Use "Send" method on the returned Request to send the API call to the service.
10621// the "output" return value is not valid until after Send returns without error.
10622//
10623// See UpdateIntegrationResponse for more information on using the UpdateIntegrationResponse
10624// API call, and error handling.
10625//
10626// This method is useful when you want to inject custom logic or configuration
10627// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10628//
10629//
10630//    // Example sending a request using the UpdateIntegrationResponseRequest method.
10631//    req, resp := client.UpdateIntegrationResponseRequest(params)
10632//
10633//    err := req.Send()
10634//    if err == nil { // resp is now filled
10635//        fmt.Println(resp)
10636//    }
10637func (c *APIGateway) UpdateIntegrationResponseRequest(input *UpdateIntegrationResponseInput) (req *request.Request, output *IntegrationResponse) {
10638	op := &request.Operation{
10639		Name:       opUpdateIntegrationResponse,
10640		HTTPMethod: "PATCH",
10641		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}",
10642	}
10643
10644	if input == nil {
10645		input = &UpdateIntegrationResponseInput{}
10646	}
10647
10648	output = &IntegrationResponse{}
10649	req = c.newRequest(op, input, output)
10650	return
10651}
10652
10653// UpdateIntegrationResponse API operation for Amazon API Gateway.
10654//
10655// Represents an update integration response.
10656//
10657// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10658// with awserr.Error's Code and Message methods to get detailed information about
10659// the error.
10660//
10661// See the AWS API reference guide for Amazon API Gateway's
10662// API operation UpdateIntegrationResponse for usage and error information.
10663//
10664// Returned Error Types:
10665//   * BadRequestException
10666//   The submitted request is not valid, for example, the input is incomplete
10667//   or incorrect. See the accompanying error message for details.
10668//
10669//   * ConflictException
10670//   The request configuration has conflicts. For details, see the accompanying
10671//   error message.
10672//
10673//   * LimitExceededException
10674//   The request exceeded the rate limit. Retry after the specified time period.
10675//
10676//   * NotFoundException
10677//   The requested resource is not found. Make sure that the request URI is correct.
10678//
10679//   * UnauthorizedException
10680//   The request is denied because the caller has insufficient permissions.
10681//
10682//   * TooManyRequestsException
10683//   The request has reached its throttling limit. Retry after the specified time
10684//   period.
10685//
10686func (c *APIGateway) UpdateIntegrationResponse(input *UpdateIntegrationResponseInput) (*IntegrationResponse, error) {
10687	req, out := c.UpdateIntegrationResponseRequest(input)
10688	return out, req.Send()
10689}
10690
10691// UpdateIntegrationResponseWithContext is the same as UpdateIntegrationResponse with the addition of
10692// the ability to pass a context and additional request options.
10693//
10694// See UpdateIntegrationResponse for details on how to use this API operation.
10695//
10696// The context must be non-nil and will be used for request cancellation. If
10697// the context is nil a panic will occur. In the future the SDK may create
10698// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10699// for more information on using Contexts.
10700func (c *APIGateway) UpdateIntegrationResponseWithContext(ctx aws.Context, input *UpdateIntegrationResponseInput, opts ...request.Option) (*IntegrationResponse, error) {
10701	req, out := c.UpdateIntegrationResponseRequest(input)
10702	req.SetContext(ctx)
10703	req.ApplyOptions(opts...)
10704	return out, req.Send()
10705}
10706
10707const opUpdateMethod = "UpdateMethod"
10708
10709// UpdateMethodRequest generates a "aws/request.Request" representing the
10710// client's request for the UpdateMethod operation. The "output" return
10711// value will be populated with the request's response once the request completes
10712// successfully.
10713//
10714// Use "Send" method on the returned Request to send the API call to the service.
10715// the "output" return value is not valid until after Send returns without error.
10716//
10717// See UpdateMethod for more information on using the UpdateMethod
10718// API call, and error handling.
10719//
10720// This method is useful when you want to inject custom logic or configuration
10721// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10722//
10723//
10724//    // Example sending a request using the UpdateMethodRequest method.
10725//    req, resp := client.UpdateMethodRequest(params)
10726//
10727//    err := req.Send()
10728//    if err == nil { // resp is now filled
10729//        fmt.Println(resp)
10730//    }
10731func (c *APIGateway) UpdateMethodRequest(input *UpdateMethodInput) (req *request.Request, output *Method) {
10732	op := &request.Operation{
10733		Name:       opUpdateMethod,
10734		HTTPMethod: "PATCH",
10735		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}",
10736	}
10737
10738	if input == nil {
10739		input = &UpdateMethodInput{}
10740	}
10741
10742	output = &Method{}
10743	req = c.newRequest(op, input, output)
10744	return
10745}
10746
10747// UpdateMethod API operation for Amazon API Gateway.
10748//
10749// Updates an existing Method resource.
10750//
10751// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10752// with awserr.Error's Code and Message methods to get detailed information about
10753// the error.
10754//
10755// See the AWS API reference guide for Amazon API Gateway's
10756// API operation UpdateMethod for usage and error information.
10757//
10758// Returned Error Types:
10759//   * UnauthorizedException
10760//   The request is denied because the caller has insufficient permissions.
10761//
10762//   * NotFoundException
10763//   The requested resource is not found. Make sure that the request URI is correct.
10764//
10765//   * BadRequestException
10766//   The submitted request is not valid, for example, the input is incomplete
10767//   or incorrect. See the accompanying error message for details.
10768//
10769//   * ConflictException
10770//   The request configuration has conflicts. For details, see the accompanying
10771//   error message.
10772//
10773//   * TooManyRequestsException
10774//   The request has reached its throttling limit. Retry after the specified time
10775//   period.
10776//
10777func (c *APIGateway) UpdateMethod(input *UpdateMethodInput) (*Method, error) {
10778	req, out := c.UpdateMethodRequest(input)
10779	return out, req.Send()
10780}
10781
10782// UpdateMethodWithContext is the same as UpdateMethod with the addition of
10783// the ability to pass a context and additional request options.
10784//
10785// See UpdateMethod for details on how to use this API operation.
10786//
10787// The context must be non-nil and will be used for request cancellation. If
10788// the context is nil a panic will occur. In the future the SDK may create
10789// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10790// for more information on using Contexts.
10791func (c *APIGateway) UpdateMethodWithContext(ctx aws.Context, input *UpdateMethodInput, opts ...request.Option) (*Method, error) {
10792	req, out := c.UpdateMethodRequest(input)
10793	req.SetContext(ctx)
10794	req.ApplyOptions(opts...)
10795	return out, req.Send()
10796}
10797
10798const opUpdateMethodResponse = "UpdateMethodResponse"
10799
10800// UpdateMethodResponseRequest generates a "aws/request.Request" representing the
10801// client's request for the UpdateMethodResponse operation. The "output" return
10802// value will be populated with the request's response once the request completes
10803// successfully.
10804//
10805// Use "Send" method on the returned Request to send the API call to the service.
10806// the "output" return value is not valid until after Send returns without error.
10807//
10808// See UpdateMethodResponse for more information on using the UpdateMethodResponse
10809// API call, and error handling.
10810//
10811// This method is useful when you want to inject custom logic or configuration
10812// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10813//
10814//
10815//    // Example sending a request using the UpdateMethodResponseRequest method.
10816//    req, resp := client.UpdateMethodResponseRequest(params)
10817//
10818//    err := req.Send()
10819//    if err == nil { // resp is now filled
10820//        fmt.Println(resp)
10821//    }
10822func (c *APIGateway) UpdateMethodResponseRequest(input *UpdateMethodResponseInput) (req *request.Request, output *MethodResponse) {
10823	op := &request.Operation{
10824		Name:       opUpdateMethodResponse,
10825		HTTPMethod: "PATCH",
10826		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}",
10827	}
10828
10829	if input == nil {
10830		input = &UpdateMethodResponseInput{}
10831	}
10832
10833	output = &MethodResponse{}
10834	req = c.newRequest(op, input, output)
10835	return
10836}
10837
10838// UpdateMethodResponse API operation for Amazon API Gateway.
10839//
10840// Updates an existing MethodResponse resource.
10841//
10842// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10843// with awserr.Error's Code and Message methods to get detailed information about
10844// the error.
10845//
10846// See the AWS API reference guide for Amazon API Gateway's
10847// API operation UpdateMethodResponse for usage and error information.
10848//
10849// Returned Error Types:
10850//   * UnauthorizedException
10851//   The request is denied because the caller has insufficient permissions.
10852//
10853//   * NotFoundException
10854//   The requested resource is not found. Make sure that the request URI is correct.
10855//
10856//   * ConflictException
10857//   The request configuration has conflicts. For details, see the accompanying
10858//   error message.
10859//
10860//   * LimitExceededException
10861//   The request exceeded the rate limit. Retry after the specified time period.
10862//
10863//   * BadRequestException
10864//   The submitted request is not valid, for example, the input is incomplete
10865//   or incorrect. See the accompanying error message for details.
10866//
10867//   * TooManyRequestsException
10868//   The request has reached its throttling limit. Retry after the specified time
10869//   period.
10870//
10871func (c *APIGateway) UpdateMethodResponse(input *UpdateMethodResponseInput) (*MethodResponse, error) {
10872	req, out := c.UpdateMethodResponseRequest(input)
10873	return out, req.Send()
10874}
10875
10876// UpdateMethodResponseWithContext is the same as UpdateMethodResponse with the addition of
10877// the ability to pass a context and additional request options.
10878//
10879// See UpdateMethodResponse for details on how to use this API operation.
10880//
10881// The context must be non-nil and will be used for request cancellation. If
10882// the context is nil a panic will occur. In the future the SDK may create
10883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10884// for more information on using Contexts.
10885func (c *APIGateway) UpdateMethodResponseWithContext(ctx aws.Context, input *UpdateMethodResponseInput, opts ...request.Option) (*MethodResponse, error) {
10886	req, out := c.UpdateMethodResponseRequest(input)
10887	req.SetContext(ctx)
10888	req.ApplyOptions(opts...)
10889	return out, req.Send()
10890}
10891
10892const opUpdateModel = "UpdateModel"
10893
10894// UpdateModelRequest generates a "aws/request.Request" representing the
10895// client's request for the UpdateModel operation. The "output" return
10896// value will be populated with the request's response once the request completes
10897// successfully.
10898//
10899// Use "Send" method on the returned Request to send the API call to the service.
10900// the "output" return value is not valid until after Send returns without error.
10901//
10902// See UpdateModel for more information on using the UpdateModel
10903// API call, and error handling.
10904//
10905// This method is useful when you want to inject custom logic or configuration
10906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10907//
10908//
10909//    // Example sending a request using the UpdateModelRequest method.
10910//    req, resp := client.UpdateModelRequest(params)
10911//
10912//    err := req.Send()
10913//    if err == nil { // resp is now filled
10914//        fmt.Println(resp)
10915//    }
10916func (c *APIGateway) UpdateModelRequest(input *UpdateModelInput) (req *request.Request, output *Model) {
10917	op := &request.Operation{
10918		Name:       opUpdateModel,
10919		HTTPMethod: "PATCH",
10920		HTTPPath:   "/restapis/{restapi_id}/models/{model_name}",
10921	}
10922
10923	if input == nil {
10924		input = &UpdateModelInput{}
10925	}
10926
10927	output = &Model{}
10928	req = c.newRequest(op, input, output)
10929	return
10930}
10931
10932// UpdateModel API operation for Amazon API Gateway.
10933//
10934// Changes information about a model.
10935//
10936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10937// with awserr.Error's Code and Message methods to get detailed information about
10938// the error.
10939//
10940// See the AWS API reference guide for Amazon API Gateway's
10941// API operation UpdateModel for usage and error information.
10942//
10943// Returned Error Types:
10944//   * BadRequestException
10945//   The submitted request is not valid, for example, the input is incomplete
10946//   or incorrect. See the accompanying error message for details.
10947//
10948//   * ConflictException
10949//   The request configuration has conflicts. For details, see the accompanying
10950//   error message.
10951//
10952//   * LimitExceededException
10953//   The request exceeded the rate limit. Retry after the specified time period.
10954//
10955//   * NotFoundException
10956//   The requested resource is not found. Make sure that the request URI is correct.
10957//
10958//   * UnauthorizedException
10959//   The request is denied because the caller has insufficient permissions.
10960//
10961//   * TooManyRequestsException
10962//   The request has reached its throttling limit. Retry after the specified time
10963//   period.
10964//
10965func (c *APIGateway) UpdateModel(input *UpdateModelInput) (*Model, error) {
10966	req, out := c.UpdateModelRequest(input)
10967	return out, req.Send()
10968}
10969
10970// UpdateModelWithContext is the same as UpdateModel with the addition of
10971// the ability to pass a context and additional request options.
10972//
10973// See UpdateModel for details on how to use this API operation.
10974//
10975// The context must be non-nil and will be used for request cancellation. If
10976// the context is nil a panic will occur. In the future the SDK may create
10977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10978// for more information on using Contexts.
10979func (c *APIGateway) UpdateModelWithContext(ctx aws.Context, input *UpdateModelInput, opts ...request.Option) (*Model, error) {
10980	req, out := c.UpdateModelRequest(input)
10981	req.SetContext(ctx)
10982	req.ApplyOptions(opts...)
10983	return out, req.Send()
10984}
10985
10986const opUpdateRequestValidator = "UpdateRequestValidator"
10987
10988// UpdateRequestValidatorRequest generates a "aws/request.Request" representing the
10989// client's request for the UpdateRequestValidator operation. The "output" return
10990// value will be populated with the request's response once the request completes
10991// successfully.
10992//
10993// Use "Send" method on the returned Request to send the API call to the service.
10994// the "output" return value is not valid until after Send returns without error.
10995//
10996// See UpdateRequestValidator for more information on using the UpdateRequestValidator
10997// API call, and error handling.
10998//
10999// This method is useful when you want to inject custom logic or configuration
11000// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11001//
11002//
11003//    // Example sending a request using the UpdateRequestValidatorRequest method.
11004//    req, resp := client.UpdateRequestValidatorRequest(params)
11005//
11006//    err := req.Send()
11007//    if err == nil { // resp is now filled
11008//        fmt.Println(resp)
11009//    }
11010func (c *APIGateway) UpdateRequestValidatorRequest(input *UpdateRequestValidatorInput) (req *request.Request, output *UpdateRequestValidatorOutput) {
11011	op := &request.Operation{
11012		Name:       opUpdateRequestValidator,
11013		HTTPMethod: "PATCH",
11014		HTTPPath:   "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}",
11015	}
11016
11017	if input == nil {
11018		input = &UpdateRequestValidatorInput{}
11019	}
11020
11021	output = &UpdateRequestValidatorOutput{}
11022	req = c.newRequest(op, input, output)
11023	return
11024}
11025
11026// UpdateRequestValidator API operation for Amazon API Gateway.
11027//
11028// Updates a RequestValidator of a given RestApi.
11029//
11030// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11031// with awserr.Error's Code and Message methods to get detailed information about
11032// the error.
11033//
11034// See the AWS API reference guide for Amazon API Gateway's
11035// API operation UpdateRequestValidator for usage and error information.
11036//
11037// Returned Error Types:
11038//   * BadRequestException
11039//   The submitted request is not valid, for example, the input is incomplete
11040//   or incorrect. See the accompanying error message for details.
11041//
11042//   * ConflictException
11043//   The request configuration has conflicts. For details, see the accompanying
11044//   error message.
11045//
11046//   * LimitExceededException
11047//   The request exceeded the rate limit. Retry after the specified time period.
11048//
11049//   * NotFoundException
11050//   The requested resource is not found. Make sure that the request URI is correct.
11051//
11052//   * UnauthorizedException
11053//   The request is denied because the caller has insufficient permissions.
11054//
11055//   * TooManyRequestsException
11056//   The request has reached its throttling limit. Retry after the specified time
11057//   period.
11058//
11059func (c *APIGateway) UpdateRequestValidator(input *UpdateRequestValidatorInput) (*UpdateRequestValidatorOutput, error) {
11060	req, out := c.UpdateRequestValidatorRequest(input)
11061	return out, req.Send()
11062}
11063
11064// UpdateRequestValidatorWithContext is the same as UpdateRequestValidator with the addition of
11065// the ability to pass a context and additional request options.
11066//
11067// See UpdateRequestValidator for details on how to use this API operation.
11068//
11069// The context must be non-nil and will be used for request cancellation. If
11070// the context is nil a panic will occur. In the future the SDK may create
11071// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11072// for more information on using Contexts.
11073func (c *APIGateway) UpdateRequestValidatorWithContext(ctx aws.Context, input *UpdateRequestValidatorInput, opts ...request.Option) (*UpdateRequestValidatorOutput, error) {
11074	req, out := c.UpdateRequestValidatorRequest(input)
11075	req.SetContext(ctx)
11076	req.ApplyOptions(opts...)
11077	return out, req.Send()
11078}
11079
11080const opUpdateResource = "UpdateResource"
11081
11082// UpdateResourceRequest generates a "aws/request.Request" representing the
11083// client's request for the UpdateResource operation. The "output" return
11084// value will be populated with the request's response once the request completes
11085// successfully.
11086//
11087// Use "Send" method on the returned Request to send the API call to the service.
11088// the "output" return value is not valid until after Send returns without error.
11089//
11090// See UpdateResource for more information on using the UpdateResource
11091// API call, and error handling.
11092//
11093// This method is useful when you want to inject custom logic or configuration
11094// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11095//
11096//
11097//    // Example sending a request using the UpdateResourceRequest method.
11098//    req, resp := client.UpdateResourceRequest(params)
11099//
11100//    err := req.Send()
11101//    if err == nil { // resp is now filled
11102//        fmt.Println(resp)
11103//    }
11104func (c *APIGateway) UpdateResourceRequest(input *UpdateResourceInput) (req *request.Request, output *Resource) {
11105	op := &request.Operation{
11106		Name:       opUpdateResource,
11107		HTTPMethod: "PATCH",
11108		HTTPPath:   "/restapis/{restapi_id}/resources/{resource_id}",
11109	}
11110
11111	if input == nil {
11112		input = &UpdateResourceInput{}
11113	}
11114
11115	output = &Resource{}
11116	req = c.newRequest(op, input, output)
11117	return
11118}
11119
11120// UpdateResource API operation for Amazon API Gateway.
11121//
11122// Changes information about a Resource resource.
11123//
11124// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11125// with awserr.Error's Code and Message methods to get detailed information about
11126// the error.
11127//
11128// See the AWS API reference guide for Amazon API Gateway's
11129// API operation UpdateResource for usage and error information.
11130//
11131// Returned Error Types:
11132//   * UnauthorizedException
11133//   The request is denied because the caller has insufficient permissions.
11134//
11135//   * NotFoundException
11136//   The requested resource is not found. Make sure that the request URI is correct.
11137//
11138//   * ConflictException
11139//   The request configuration has conflicts. For details, see the accompanying
11140//   error message.
11141//
11142//   * BadRequestException
11143//   The submitted request is not valid, for example, the input is incomplete
11144//   or incorrect. See the accompanying error message for details.
11145//
11146//   * TooManyRequestsException
11147//   The request has reached its throttling limit. Retry after the specified time
11148//   period.
11149//
11150func (c *APIGateway) UpdateResource(input *UpdateResourceInput) (*Resource, error) {
11151	req, out := c.UpdateResourceRequest(input)
11152	return out, req.Send()
11153}
11154
11155// UpdateResourceWithContext is the same as UpdateResource with the addition of
11156// the ability to pass a context and additional request options.
11157//
11158// See UpdateResource for details on how to use this API operation.
11159//
11160// The context must be non-nil and will be used for request cancellation. If
11161// the context is nil a panic will occur. In the future the SDK may create
11162// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11163// for more information on using Contexts.
11164func (c *APIGateway) UpdateResourceWithContext(ctx aws.Context, input *UpdateResourceInput, opts ...request.Option) (*Resource, error) {
11165	req, out := c.UpdateResourceRequest(input)
11166	req.SetContext(ctx)
11167	req.ApplyOptions(opts...)
11168	return out, req.Send()
11169}
11170
11171const opUpdateRestApi = "UpdateRestApi"
11172
11173// UpdateRestApiRequest generates a "aws/request.Request" representing the
11174// client's request for the UpdateRestApi operation. The "output" return
11175// value will be populated with the request's response once the request completes
11176// successfully.
11177//
11178// Use "Send" method on the returned Request to send the API call to the service.
11179// the "output" return value is not valid until after Send returns without error.
11180//
11181// See UpdateRestApi for more information on using the UpdateRestApi
11182// API call, and error handling.
11183//
11184// This method is useful when you want to inject custom logic or configuration
11185// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11186//
11187//
11188//    // Example sending a request using the UpdateRestApiRequest method.
11189//    req, resp := client.UpdateRestApiRequest(params)
11190//
11191//    err := req.Send()
11192//    if err == nil { // resp is now filled
11193//        fmt.Println(resp)
11194//    }
11195func (c *APIGateway) UpdateRestApiRequest(input *UpdateRestApiInput) (req *request.Request, output *RestApi) {
11196	op := &request.Operation{
11197		Name:       opUpdateRestApi,
11198		HTTPMethod: "PATCH",
11199		HTTPPath:   "/restapis/{restapi_id}",
11200	}
11201
11202	if input == nil {
11203		input = &UpdateRestApiInput{}
11204	}
11205
11206	output = &RestApi{}
11207	req = c.newRequest(op, input, output)
11208	return
11209}
11210
11211// UpdateRestApi API operation for Amazon API Gateway.
11212//
11213// Changes information about the specified API.
11214//
11215// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11216// with awserr.Error's Code and Message methods to get detailed information about
11217// the error.
11218//
11219// See the AWS API reference guide for Amazon API Gateway's
11220// API operation UpdateRestApi for usage and error information.
11221//
11222// Returned Error Types:
11223//   * BadRequestException
11224//   The submitted request is not valid, for example, the input is incomplete
11225//   or incorrect. See the accompanying error message for details.
11226//
11227//   * ConflictException
11228//   The request configuration has conflicts. For details, see the accompanying
11229//   error message.
11230//
11231//   * LimitExceededException
11232//   The request exceeded the rate limit. Retry after the specified time period.
11233//
11234//   * NotFoundException
11235//   The requested resource is not found. Make sure that the request URI is correct.
11236//
11237//   * UnauthorizedException
11238//   The request is denied because the caller has insufficient permissions.
11239//
11240//   * TooManyRequestsException
11241//   The request has reached its throttling limit. Retry after the specified time
11242//   period.
11243//
11244func (c *APIGateway) UpdateRestApi(input *UpdateRestApiInput) (*RestApi, error) {
11245	req, out := c.UpdateRestApiRequest(input)
11246	return out, req.Send()
11247}
11248
11249// UpdateRestApiWithContext is the same as UpdateRestApi with the addition of
11250// the ability to pass a context and additional request options.
11251//
11252// See UpdateRestApi for details on how to use this API operation.
11253//
11254// The context must be non-nil and will be used for request cancellation. If
11255// the context is nil a panic will occur. In the future the SDK may create
11256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11257// for more information on using Contexts.
11258func (c *APIGateway) UpdateRestApiWithContext(ctx aws.Context, input *UpdateRestApiInput, opts ...request.Option) (*RestApi, error) {
11259	req, out := c.UpdateRestApiRequest(input)
11260	req.SetContext(ctx)
11261	req.ApplyOptions(opts...)
11262	return out, req.Send()
11263}
11264
11265const opUpdateStage = "UpdateStage"
11266
11267// UpdateStageRequest generates a "aws/request.Request" representing the
11268// client's request for the UpdateStage operation. The "output" return
11269// value will be populated with the request's response once the request completes
11270// successfully.
11271//
11272// Use "Send" method on the returned Request to send the API call to the service.
11273// the "output" return value is not valid until after Send returns without error.
11274//
11275// See UpdateStage for more information on using the UpdateStage
11276// API call, and error handling.
11277//
11278// This method is useful when you want to inject custom logic or configuration
11279// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11280//
11281//
11282//    // Example sending a request using the UpdateStageRequest method.
11283//    req, resp := client.UpdateStageRequest(params)
11284//
11285//    err := req.Send()
11286//    if err == nil { // resp is now filled
11287//        fmt.Println(resp)
11288//    }
11289func (c *APIGateway) UpdateStageRequest(input *UpdateStageInput) (req *request.Request, output *Stage) {
11290	op := &request.Operation{
11291		Name:       opUpdateStage,
11292		HTTPMethod: "PATCH",
11293		HTTPPath:   "/restapis/{restapi_id}/stages/{stage_name}",
11294	}
11295
11296	if input == nil {
11297		input = &UpdateStageInput{}
11298	}
11299
11300	output = &Stage{}
11301	req = c.newRequest(op, input, output)
11302	return
11303}
11304
11305// UpdateStage API operation for Amazon API Gateway.
11306//
11307// Changes information about a Stage resource.
11308//
11309// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11310// with awserr.Error's Code and Message methods to get detailed information about
11311// the error.
11312//
11313// See the AWS API reference guide for Amazon API Gateway's
11314// API operation UpdateStage for usage and error information.
11315//
11316// Returned Error Types:
11317//   * BadRequestException
11318//   The submitted request is not valid, for example, the input is incomplete
11319//   or incorrect. See the accompanying error message for details.
11320//
11321//   * ConflictException
11322//   The request configuration has conflicts. For details, see the accompanying
11323//   error message.
11324//
11325//   * LimitExceededException
11326//   The request exceeded the rate limit. Retry after the specified time period.
11327//
11328//   * NotFoundException
11329//   The requested resource is not found. Make sure that the request URI is correct.
11330//
11331//   * UnauthorizedException
11332//   The request is denied because the caller has insufficient permissions.
11333//
11334//   * TooManyRequestsException
11335//   The request has reached its throttling limit. Retry after the specified time
11336//   period.
11337//
11338func (c *APIGateway) UpdateStage(input *UpdateStageInput) (*Stage, error) {
11339	req, out := c.UpdateStageRequest(input)
11340	return out, req.Send()
11341}
11342
11343// UpdateStageWithContext is the same as UpdateStage with the addition of
11344// the ability to pass a context and additional request options.
11345//
11346// See UpdateStage for details on how to use this API operation.
11347//
11348// The context must be non-nil and will be used for request cancellation. If
11349// the context is nil a panic will occur. In the future the SDK may create
11350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11351// for more information on using Contexts.
11352func (c *APIGateway) UpdateStageWithContext(ctx aws.Context, input *UpdateStageInput, opts ...request.Option) (*Stage, error) {
11353	req, out := c.UpdateStageRequest(input)
11354	req.SetContext(ctx)
11355	req.ApplyOptions(opts...)
11356	return out, req.Send()
11357}
11358
11359const opUpdateUsage = "UpdateUsage"
11360
11361// UpdateUsageRequest generates a "aws/request.Request" representing the
11362// client's request for the UpdateUsage operation. The "output" return
11363// value will be populated with the request's response once the request completes
11364// successfully.
11365//
11366// Use "Send" method on the returned Request to send the API call to the service.
11367// the "output" return value is not valid until after Send returns without error.
11368//
11369// See UpdateUsage for more information on using the UpdateUsage
11370// API call, and error handling.
11371//
11372// This method is useful when you want to inject custom logic or configuration
11373// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11374//
11375//
11376//    // Example sending a request using the UpdateUsageRequest method.
11377//    req, resp := client.UpdateUsageRequest(params)
11378//
11379//    err := req.Send()
11380//    if err == nil { // resp is now filled
11381//        fmt.Println(resp)
11382//    }
11383func (c *APIGateway) UpdateUsageRequest(input *UpdateUsageInput) (req *request.Request, output *Usage) {
11384	op := &request.Operation{
11385		Name:       opUpdateUsage,
11386		HTTPMethod: "PATCH",
11387		HTTPPath:   "/usageplans/{usageplanId}/keys/{keyId}/usage",
11388	}
11389
11390	if input == nil {
11391		input = &UpdateUsageInput{}
11392	}
11393
11394	output = &Usage{}
11395	req = c.newRequest(op, input, output)
11396	return
11397}
11398
11399// UpdateUsage API operation for Amazon API Gateway.
11400//
11401// Grants a temporary extension to the remaining quota of a usage plan associated
11402// with a specified API key.
11403//
11404// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11405// with awserr.Error's Code and Message methods to get detailed information about
11406// the error.
11407//
11408// See the AWS API reference guide for Amazon API Gateway's
11409// API operation UpdateUsage for usage and error information.
11410//
11411// Returned Error Types:
11412//   * BadRequestException
11413//   The submitted request is not valid, for example, the input is incomplete
11414//   or incorrect. See the accompanying error message for details.
11415//
11416//   * ConflictException
11417//   The request configuration has conflicts. For details, see the accompanying
11418//   error message.
11419//
11420//   * LimitExceededException
11421//   The request exceeded the rate limit. Retry after the specified time period.
11422//
11423//   * NotFoundException
11424//   The requested resource is not found. Make sure that the request URI is correct.
11425//
11426//   * UnauthorizedException
11427//   The request is denied because the caller has insufficient permissions.
11428//
11429//   * TooManyRequestsException
11430//   The request has reached its throttling limit. Retry after the specified time
11431//   period.
11432//
11433func (c *APIGateway) UpdateUsage(input *UpdateUsageInput) (*Usage, error) {
11434	req, out := c.UpdateUsageRequest(input)
11435	return out, req.Send()
11436}
11437
11438// UpdateUsageWithContext is the same as UpdateUsage with the addition of
11439// the ability to pass a context and additional request options.
11440//
11441// See UpdateUsage for details on how to use this API operation.
11442//
11443// The context must be non-nil and will be used for request cancellation. If
11444// the context is nil a panic will occur. In the future the SDK may create
11445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11446// for more information on using Contexts.
11447func (c *APIGateway) UpdateUsageWithContext(ctx aws.Context, input *UpdateUsageInput, opts ...request.Option) (*Usage, error) {
11448	req, out := c.UpdateUsageRequest(input)
11449	req.SetContext(ctx)
11450	req.ApplyOptions(opts...)
11451	return out, req.Send()
11452}
11453
11454const opUpdateUsagePlan = "UpdateUsagePlan"
11455
11456// UpdateUsagePlanRequest generates a "aws/request.Request" representing the
11457// client's request for the UpdateUsagePlan operation. The "output" return
11458// value will be populated with the request's response once the request completes
11459// successfully.
11460//
11461// Use "Send" method on the returned Request to send the API call to the service.
11462// the "output" return value is not valid until after Send returns without error.
11463//
11464// See UpdateUsagePlan for more information on using the UpdateUsagePlan
11465// API call, and error handling.
11466//
11467// This method is useful when you want to inject custom logic or configuration
11468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11469//
11470//
11471//    // Example sending a request using the UpdateUsagePlanRequest method.
11472//    req, resp := client.UpdateUsagePlanRequest(params)
11473//
11474//    err := req.Send()
11475//    if err == nil { // resp is now filled
11476//        fmt.Println(resp)
11477//    }
11478func (c *APIGateway) UpdateUsagePlanRequest(input *UpdateUsagePlanInput) (req *request.Request, output *UsagePlan) {
11479	op := &request.Operation{
11480		Name:       opUpdateUsagePlan,
11481		HTTPMethod: "PATCH",
11482		HTTPPath:   "/usageplans/{usageplanId}",
11483	}
11484
11485	if input == nil {
11486		input = &UpdateUsagePlanInput{}
11487	}
11488
11489	output = &UsagePlan{}
11490	req = c.newRequest(op, input, output)
11491	return
11492}
11493
11494// UpdateUsagePlan API operation for Amazon API Gateway.
11495//
11496// Updates a usage plan of a given plan Id.
11497//
11498// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11499// with awserr.Error's Code and Message methods to get detailed information about
11500// the error.
11501//
11502// See the AWS API reference guide for Amazon API Gateway's
11503// API operation UpdateUsagePlan for usage and error information.
11504//
11505// Returned Error Types:
11506//   * BadRequestException
11507//   The submitted request is not valid, for example, the input is incomplete
11508//   or incorrect. See the accompanying error message for details.
11509//
11510//   * ConflictException
11511//   The request configuration has conflicts. For details, see the accompanying
11512//   error message.
11513//
11514//   * LimitExceededException
11515//   The request exceeded the rate limit. Retry after the specified time period.
11516//
11517//   * NotFoundException
11518//   The requested resource is not found. Make sure that the request URI is correct.
11519//
11520//   * UnauthorizedException
11521//   The request is denied because the caller has insufficient permissions.
11522//
11523//   * TooManyRequestsException
11524//   The request has reached its throttling limit. Retry after the specified time
11525//   period.
11526//
11527func (c *APIGateway) UpdateUsagePlan(input *UpdateUsagePlanInput) (*UsagePlan, error) {
11528	req, out := c.UpdateUsagePlanRequest(input)
11529	return out, req.Send()
11530}
11531
11532// UpdateUsagePlanWithContext is the same as UpdateUsagePlan with the addition of
11533// the ability to pass a context and additional request options.
11534//
11535// See UpdateUsagePlan for details on how to use this API operation.
11536//
11537// The context must be non-nil and will be used for request cancellation. If
11538// the context is nil a panic will occur. In the future the SDK may create
11539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11540// for more information on using Contexts.
11541func (c *APIGateway) UpdateUsagePlanWithContext(ctx aws.Context, input *UpdateUsagePlanInput, opts ...request.Option) (*UsagePlan, error) {
11542	req, out := c.UpdateUsagePlanRequest(input)
11543	req.SetContext(ctx)
11544	req.ApplyOptions(opts...)
11545	return out, req.Send()
11546}
11547
11548const opUpdateVpcLink = "UpdateVpcLink"
11549
11550// UpdateVpcLinkRequest generates a "aws/request.Request" representing the
11551// client's request for the UpdateVpcLink operation. The "output" return
11552// value will be populated with the request's response once the request completes
11553// successfully.
11554//
11555// Use "Send" method on the returned Request to send the API call to the service.
11556// the "output" return value is not valid until after Send returns without error.
11557//
11558// See UpdateVpcLink for more information on using the UpdateVpcLink
11559// API call, and error handling.
11560//
11561// This method is useful when you want to inject custom logic or configuration
11562// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11563//
11564//
11565//    // Example sending a request using the UpdateVpcLinkRequest method.
11566//    req, resp := client.UpdateVpcLinkRequest(params)
11567//
11568//    err := req.Send()
11569//    if err == nil { // resp is now filled
11570//        fmt.Println(resp)
11571//    }
11572func (c *APIGateway) UpdateVpcLinkRequest(input *UpdateVpcLinkInput) (req *request.Request, output *UpdateVpcLinkOutput) {
11573	op := &request.Operation{
11574		Name:       opUpdateVpcLink,
11575		HTTPMethod: "PATCH",
11576		HTTPPath:   "/vpclinks/{vpclink_id}",
11577	}
11578
11579	if input == nil {
11580		input = &UpdateVpcLinkInput{}
11581	}
11582
11583	output = &UpdateVpcLinkOutput{}
11584	req = c.newRequest(op, input, output)
11585	return
11586}
11587
11588// UpdateVpcLink API operation for Amazon API Gateway.
11589//
11590// Updates an existing VpcLink of a specified identifier.
11591//
11592// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11593// with awserr.Error's Code and Message methods to get detailed information about
11594// the error.
11595//
11596// See the AWS API reference guide for Amazon API Gateway's
11597// API operation UpdateVpcLink for usage and error information.
11598//
11599// Returned Error Types:
11600//   * BadRequestException
11601//   The submitted request is not valid, for example, the input is incomplete
11602//   or incorrect. See the accompanying error message for details.
11603//
11604//   * ConflictException
11605//   The request configuration has conflicts. For details, see the accompanying
11606//   error message.
11607//
11608//   * LimitExceededException
11609//   The request exceeded the rate limit. Retry after the specified time period.
11610//
11611//   * NotFoundException
11612//   The requested resource is not found. Make sure that the request URI is correct.
11613//
11614//   * UnauthorizedException
11615//   The request is denied because the caller has insufficient permissions.
11616//
11617//   * TooManyRequestsException
11618//   The request has reached its throttling limit. Retry after the specified time
11619//   period.
11620//
11621func (c *APIGateway) UpdateVpcLink(input *UpdateVpcLinkInput) (*UpdateVpcLinkOutput, error) {
11622	req, out := c.UpdateVpcLinkRequest(input)
11623	return out, req.Send()
11624}
11625
11626// UpdateVpcLinkWithContext is the same as UpdateVpcLink with the addition of
11627// the ability to pass a context and additional request options.
11628//
11629// See UpdateVpcLink for details on how to use this API operation.
11630//
11631// The context must be non-nil and will be used for request cancellation. If
11632// the context is nil a panic will occur. In the future the SDK may create
11633// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11634// for more information on using Contexts.
11635func (c *APIGateway) UpdateVpcLinkWithContext(ctx aws.Context, input *UpdateVpcLinkInput, opts ...request.Option) (*UpdateVpcLinkOutput, error) {
11636	req, out := c.UpdateVpcLinkRequest(input)
11637	req.SetContext(ctx)
11638	req.ApplyOptions(opts...)
11639	return out, req.Send()
11640}
11641
11642// Access log settings, including the access log format and access log destination
11643// ARN.
11644type AccessLogSettings struct {
11645	_ struct{} `type:"structure"`
11646
11647	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis
11648	// Data Firehose delivery stream to receive access logs. If you specify a Kinesis
11649	// Data Firehose delivery stream, the stream name must begin with amazon-apigateway-.
11650	DestinationArn *string `locationName:"destinationArn" type:"string"`
11651
11652	// A single line format of the access logs of data, as specified by selected
11653	// $context variables (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference).
11654	// The format must include at least $context.requestId.
11655	Format *string `locationName:"format" type:"string"`
11656}
11657
11658// String returns the string representation.
11659//
11660// API parameter values that are decorated as "sensitive" in the API will not
11661// be included in the string output. The member name will be present, but the
11662// value will be replaced with "sensitive".
11663func (s AccessLogSettings) String() string {
11664	return awsutil.Prettify(s)
11665}
11666
11667// GoString returns the string representation.
11668//
11669// API parameter values that are decorated as "sensitive" in the API will not
11670// be included in the string output. The member name will be present, but the
11671// value will be replaced with "sensitive".
11672func (s AccessLogSettings) GoString() string {
11673	return s.String()
11674}
11675
11676// SetDestinationArn sets the DestinationArn field's value.
11677func (s *AccessLogSettings) SetDestinationArn(v string) *AccessLogSettings {
11678	s.DestinationArn = &v
11679	return s
11680}
11681
11682// SetFormat sets the Format field's value.
11683func (s *AccessLogSettings) SetFormat(v string) *AccessLogSettings {
11684	s.Format = &v
11685	return s
11686}
11687
11688// Represents an AWS account that is associated with API Gateway.
11689//
11690// To view the account info, call GET on this resource.
11691//
11692// Error Codes
11693//
11694// The following exception may be thrown when the request fails.
11695//
11696//    * UnauthorizedException
11697//
11698//    * NotFoundException
11699//
11700//    * TooManyRequestsException
11701//
11702// For detailed error code information, including the corresponding HTTP Status
11703// Codes, see API Gateway Error Codes (https://docs.aws.amazon.com/apigateway/api-reference/handling-errors/#api-error-codes)
11704//
11705// Example: Get the information about an account.
11706//
11707// Request
11708//  GET /account HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
11709//  X-Amz-Date: 20160531T184618Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/us-east-1/apigateway/aws4_request,
11710//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
11711// Response
11712//
11713// The successful response returns a 200 OK status code and a payload similar
11714// to the following:
11715//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/account-apigateway-{rel}.html",
11716//  "name": "account", "templated": true }, "self": { "href": "/account" },
11717//  "account:update": { "href": "/account" } }, "cloudwatchRoleArn": "arn:aws:iam::123456789012:role/apigAwsProxyRole",
11718//  "throttleSettings": { "rateLimit": 500, "burstLimit": 1000 } }
11719// In addition to making the REST API call directly, you can use the AWS CLI
11720// and an AWS SDK to access this resource.
11721//
11722// API Gateway Limits (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-limits.html)
11723// Developer Guide (https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html),
11724// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-account.html)
11725type Account struct {
11726	_ struct{} `type:"structure"`
11727
11728	// The version of the API keys used for the account.
11729	ApiKeyVersion *string `locationName:"apiKeyVersion" type:"string"`
11730
11731	// The ARN of an Amazon CloudWatch role for the current Account.
11732	CloudwatchRoleArn *string `locationName:"cloudwatchRoleArn" type:"string"`
11733
11734	// A list of features supported for the account. When usage plans are enabled,
11735	// the features list will include an entry of "UsagePlans".
11736	Features []*string `locationName:"features" type:"list"`
11737
11738	// Specifies the API request limits configured for the current Account.
11739	ThrottleSettings *ThrottleSettings `locationName:"throttleSettings" type:"structure"`
11740}
11741
11742// String returns the string representation.
11743//
11744// API parameter values that are decorated as "sensitive" in the API will not
11745// be included in the string output. The member name will be present, but the
11746// value will be replaced with "sensitive".
11747func (s Account) String() string {
11748	return awsutil.Prettify(s)
11749}
11750
11751// GoString returns the string representation.
11752//
11753// API parameter values that are decorated as "sensitive" in the API will not
11754// be included in the string output. The member name will be present, but the
11755// value will be replaced with "sensitive".
11756func (s Account) GoString() string {
11757	return s.String()
11758}
11759
11760// SetApiKeyVersion sets the ApiKeyVersion field's value.
11761func (s *Account) SetApiKeyVersion(v string) *Account {
11762	s.ApiKeyVersion = &v
11763	return s
11764}
11765
11766// SetCloudwatchRoleArn sets the CloudwatchRoleArn field's value.
11767func (s *Account) SetCloudwatchRoleArn(v string) *Account {
11768	s.CloudwatchRoleArn = &v
11769	return s
11770}
11771
11772// SetFeatures sets the Features field's value.
11773func (s *Account) SetFeatures(v []*string) *Account {
11774	s.Features = v
11775	return s
11776}
11777
11778// SetThrottleSettings sets the ThrottleSettings field's value.
11779func (s *Account) SetThrottleSettings(v *ThrottleSettings) *Account {
11780	s.ThrottleSettings = v
11781	return s
11782}
11783
11784// A resource that can be distributed to callers for executing Method resources
11785// that require an API key. API keys can be mapped to any Stage on any RestApi,
11786// which indicates that the callers with the API key can make requests to that
11787// stage.
11788//
11789// Use API Keys (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html)
11790type ApiKey struct {
11791	_ struct{} `type:"structure"`
11792
11793	// The timestamp when the API Key was created.
11794	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
11795
11796	// An AWS Marketplace customer identifier , when integrating with the AWS SaaS
11797	// Marketplace.
11798	CustomerId *string `locationName:"customerId" type:"string"`
11799
11800	// The description of the API Key.
11801	Description *string `locationName:"description" type:"string"`
11802
11803	// Specifies whether the API Key can be used by callers.
11804	Enabled *bool `locationName:"enabled" type:"boolean"`
11805
11806	// The identifier of the API Key.
11807	Id *string `locationName:"id" type:"string"`
11808
11809	// The timestamp when the API Key was last updated.
11810	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
11811
11812	// The name of the API Key.
11813	Name *string `locationName:"name" type:"string"`
11814
11815	// A list of Stage resources that are associated with the ApiKey resource.
11816	StageKeys []*string `locationName:"stageKeys" type:"list"`
11817
11818	// The collection of tags. Each tag element is associated with a given resource.
11819	Tags map[string]*string `locationName:"tags" type:"map"`
11820
11821	// The value of the API Key.
11822	Value *string `locationName:"value" type:"string"`
11823}
11824
11825// String returns the string representation.
11826//
11827// API parameter values that are decorated as "sensitive" in the API will not
11828// be included in the string output. The member name will be present, but the
11829// value will be replaced with "sensitive".
11830func (s ApiKey) String() string {
11831	return awsutil.Prettify(s)
11832}
11833
11834// GoString returns the string representation.
11835//
11836// API parameter values that are decorated as "sensitive" in the API will not
11837// be included in the string output. The member name will be present, but the
11838// value will be replaced with "sensitive".
11839func (s ApiKey) GoString() string {
11840	return s.String()
11841}
11842
11843// SetCreatedDate sets the CreatedDate field's value.
11844func (s *ApiKey) SetCreatedDate(v time.Time) *ApiKey {
11845	s.CreatedDate = &v
11846	return s
11847}
11848
11849// SetCustomerId sets the CustomerId field's value.
11850func (s *ApiKey) SetCustomerId(v string) *ApiKey {
11851	s.CustomerId = &v
11852	return s
11853}
11854
11855// SetDescription sets the Description field's value.
11856func (s *ApiKey) SetDescription(v string) *ApiKey {
11857	s.Description = &v
11858	return s
11859}
11860
11861// SetEnabled sets the Enabled field's value.
11862func (s *ApiKey) SetEnabled(v bool) *ApiKey {
11863	s.Enabled = &v
11864	return s
11865}
11866
11867// SetId sets the Id field's value.
11868func (s *ApiKey) SetId(v string) *ApiKey {
11869	s.Id = &v
11870	return s
11871}
11872
11873// SetLastUpdatedDate sets the LastUpdatedDate field's value.
11874func (s *ApiKey) SetLastUpdatedDate(v time.Time) *ApiKey {
11875	s.LastUpdatedDate = &v
11876	return s
11877}
11878
11879// SetName sets the Name field's value.
11880func (s *ApiKey) SetName(v string) *ApiKey {
11881	s.Name = &v
11882	return s
11883}
11884
11885// SetStageKeys sets the StageKeys field's value.
11886func (s *ApiKey) SetStageKeys(v []*string) *ApiKey {
11887	s.StageKeys = v
11888	return s
11889}
11890
11891// SetTags sets the Tags field's value.
11892func (s *ApiKey) SetTags(v map[string]*string) *ApiKey {
11893	s.Tags = v
11894	return s
11895}
11896
11897// SetValue sets the Value field's value.
11898func (s *ApiKey) SetValue(v string) *ApiKey {
11899	s.Value = &v
11900	return s
11901}
11902
11903// API stage name of the associated API stage in a usage plan.
11904type ApiStage struct {
11905	_ struct{} `type:"structure"`
11906
11907	// API Id of the associated API stage in a usage plan.
11908	ApiId *string `locationName:"apiId" type:"string"`
11909
11910	// API stage name of the associated API stage in a usage plan.
11911	Stage *string `locationName:"stage" type:"string"`
11912
11913	// Map containing method level throttling information for API stage in a usage
11914	// plan.
11915	Throttle map[string]*ThrottleSettings `locationName:"throttle" type:"map"`
11916}
11917
11918// String returns the string representation.
11919//
11920// API parameter values that are decorated as "sensitive" in the API will not
11921// be included in the string output. The member name will be present, but the
11922// value will be replaced with "sensitive".
11923func (s ApiStage) String() string {
11924	return awsutil.Prettify(s)
11925}
11926
11927// GoString returns the string representation.
11928//
11929// API parameter values that are decorated as "sensitive" in the API will not
11930// be included in the string output. The member name will be present, but the
11931// value will be replaced with "sensitive".
11932func (s ApiStage) GoString() string {
11933	return s.String()
11934}
11935
11936// SetApiId sets the ApiId field's value.
11937func (s *ApiStage) SetApiId(v string) *ApiStage {
11938	s.ApiId = &v
11939	return s
11940}
11941
11942// SetStage sets the Stage field's value.
11943func (s *ApiStage) SetStage(v string) *ApiStage {
11944	s.Stage = &v
11945	return s
11946}
11947
11948// SetThrottle sets the Throttle field's value.
11949func (s *ApiStage) SetThrottle(v map[string]*ThrottleSettings) *ApiStage {
11950	s.Throttle = v
11951	return s
11952}
11953
11954// Represents an authorization layer for methods. If enabled on a method, API
11955// Gateway will activate the authorizer when a client calls the method.
11956//
11957// Use Lambda Function as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)
11958// Use Cognito User Pool as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)
11959type Authorizer struct {
11960	_ struct{} `type:"structure"`
11961
11962	// Optional customer-defined field, used in OpenAPI imports and exports without
11963	// functional impact.
11964	AuthType *string `locationName:"authType" type:"string"`
11965
11966	// Specifies the required credentials as an IAM role for API Gateway to invoke
11967	// the authorizer. To specify an IAM role for API Gateway to assume, use the
11968	// role's Amazon Resource Name (ARN). To use resource-based permissions on the
11969	// Lambda function, specify null.
11970	AuthorizerCredentials *string `locationName:"authorizerCredentials" type:"string"`
11971
11972	// The TTL in seconds of cached authorizer results. If it equals 0, authorization
11973	// caching is disabled. If it is greater than 0, API Gateway will cache authorizer
11974	// responses. If this field is not set, the default value is 300. The maximum
11975	// value is 3600, or 1 hour.
11976	AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"`
11977
11978	// Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or
11979	// REQUEST authorizers, this must be a well-formed Lambda function URI, for
11980	// 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.
11981	// In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api},
11982	// where {region} is the same as the region hosting the Lambda function, path
11983	// indicates that the remaining substring in the URI should be treated as the
11984	// path to the resource, including the initial /. For Lambda functions, this
11985	// is usually of the form /2015-03-31/functions/[FunctionARN]/invocations.
11986	AuthorizerUri *string `locationName:"authorizerUri" type:"string"`
11987
11988	// The identifier for the authorizer resource.
11989	Id *string `locationName:"id" type:"string"`
11990
11991	// The identity source for which authorization is requested.
11992	//    * For a TOKEN or COGNITO_USER_POOLS authorizer, this is required and specifies
11993	//    the request header mapping expression for the custom header holding the
11994	//    authorization token submitted by the client. For example, if the token
11995	//    header name is Auth, the header mapping expression is method.request.header.Auth.
11996	//
11997	//    * For the REQUEST authorizer, this is required when authorization caching
11998	//    is enabled. The value is a comma-separated string of one or more mapping
11999	//    expressions of the specified request parameters. For example, if an Auth
12000	//    header, a Name query string parameter are defined as identity sources,
12001	//    this value is method.request.header.Auth, method.request.querystring.Name.
12002	//    These parameters will be used to derive the authorization caching key
12003	//    and to perform runtime validation of the REQUEST authorizer by verifying
12004	//    all of the identity-related request parameters are present, not null and
12005	//    non-empty. Only when this is true does the authorizer invoke the authorizer
12006	//    Lambda function, otherwise, it returns a 401 Unauthorized response without
12007	//    calling the Lambda function. The valid value is a string of comma-separated
12008	//    mapping expressions of the specified request parameters. When the authorization
12009	//    caching is not enabled, this property is optional.
12010	IdentitySource *string `locationName:"identitySource" type:"string"`
12011
12012	// A validation expression for the incoming identity token. For TOKEN authorizers,
12013	// this value is a regular expression. For COGNITO_USER_POOLS authorizers, API
12014	// Gateway will match the aud field of the incoming token from the client against
12015	// the specified regular expression. It will invoke the authorizer's Lambda
12016	// function when there is a match. Otherwise, it will return a 401 Unauthorized
12017	// response without calling the Lambda function. The validation expression does
12018	// not apply to the REQUEST authorizer.
12019	IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"`
12020
12021	// [Required] The name of the authorizer.
12022	Name *string `locationName:"name" type:"string"`
12023
12024	// A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer.
12025	// Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}.
12026	// For a TOKEN or REQUEST authorizer, this is not defined.
12027	ProviderARNs []*string `locationName:"providerARNs" type:"list"`
12028
12029	// The authorizer type. Valid values are TOKEN for a Lambda function using a
12030	// single authorization token submitted in a custom header, REQUEST for a Lambda
12031	// function using incoming request parameters, and COGNITO_USER_POOLS for using
12032	// an Amazon Cognito user pool.
12033	Type *string `locationName:"type" type:"string" enum:"AuthorizerType"`
12034}
12035
12036// String returns the string representation.
12037//
12038// API parameter values that are decorated as "sensitive" in the API will not
12039// be included in the string output. The member name will be present, but the
12040// value will be replaced with "sensitive".
12041func (s Authorizer) String() string {
12042	return awsutil.Prettify(s)
12043}
12044
12045// GoString returns the string representation.
12046//
12047// API parameter values that are decorated as "sensitive" in the API will not
12048// be included in the string output. The member name will be present, but the
12049// value will be replaced with "sensitive".
12050func (s Authorizer) GoString() string {
12051	return s.String()
12052}
12053
12054// SetAuthType sets the AuthType field's value.
12055func (s *Authorizer) SetAuthType(v string) *Authorizer {
12056	s.AuthType = &v
12057	return s
12058}
12059
12060// SetAuthorizerCredentials sets the AuthorizerCredentials field's value.
12061func (s *Authorizer) SetAuthorizerCredentials(v string) *Authorizer {
12062	s.AuthorizerCredentials = &v
12063	return s
12064}
12065
12066// SetAuthorizerResultTtlInSeconds sets the AuthorizerResultTtlInSeconds field's value.
12067func (s *Authorizer) SetAuthorizerResultTtlInSeconds(v int64) *Authorizer {
12068	s.AuthorizerResultTtlInSeconds = &v
12069	return s
12070}
12071
12072// SetAuthorizerUri sets the AuthorizerUri field's value.
12073func (s *Authorizer) SetAuthorizerUri(v string) *Authorizer {
12074	s.AuthorizerUri = &v
12075	return s
12076}
12077
12078// SetId sets the Id field's value.
12079func (s *Authorizer) SetId(v string) *Authorizer {
12080	s.Id = &v
12081	return s
12082}
12083
12084// SetIdentitySource sets the IdentitySource field's value.
12085func (s *Authorizer) SetIdentitySource(v string) *Authorizer {
12086	s.IdentitySource = &v
12087	return s
12088}
12089
12090// SetIdentityValidationExpression sets the IdentityValidationExpression field's value.
12091func (s *Authorizer) SetIdentityValidationExpression(v string) *Authorizer {
12092	s.IdentityValidationExpression = &v
12093	return s
12094}
12095
12096// SetName sets the Name field's value.
12097func (s *Authorizer) SetName(v string) *Authorizer {
12098	s.Name = &v
12099	return s
12100}
12101
12102// SetProviderARNs sets the ProviderARNs field's value.
12103func (s *Authorizer) SetProviderARNs(v []*string) *Authorizer {
12104	s.ProviderARNs = v
12105	return s
12106}
12107
12108// SetType sets the Type field's value.
12109func (s *Authorizer) SetType(v string) *Authorizer {
12110	s.Type = &v
12111	return s
12112}
12113
12114// The submitted request is not valid, for example, the input is incomplete
12115// or incorrect. See the accompanying error message for details.
12116type BadRequestException struct {
12117	_            struct{}                  `type:"structure"`
12118	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12119
12120	Message_ *string `locationName:"message" type:"string"`
12121}
12122
12123// String returns the string representation.
12124//
12125// API parameter values that are decorated as "sensitive" in the API will not
12126// be included in the string output. The member name will be present, but the
12127// value will be replaced with "sensitive".
12128func (s BadRequestException) String() string {
12129	return awsutil.Prettify(s)
12130}
12131
12132// GoString returns the string representation.
12133//
12134// API parameter values that are decorated as "sensitive" in the API will not
12135// be included in the string output. The member name will be present, but the
12136// value will be replaced with "sensitive".
12137func (s BadRequestException) GoString() string {
12138	return s.String()
12139}
12140
12141func newErrorBadRequestException(v protocol.ResponseMetadata) error {
12142	return &BadRequestException{
12143		RespMetadata: v,
12144	}
12145}
12146
12147// Code returns the exception type name.
12148func (s *BadRequestException) Code() string {
12149	return "BadRequestException"
12150}
12151
12152// Message returns the exception's message.
12153func (s *BadRequestException) Message() string {
12154	if s.Message_ != nil {
12155		return *s.Message_
12156	}
12157	return ""
12158}
12159
12160// OrigErr always returns nil, satisfies awserr.Error interface.
12161func (s *BadRequestException) OrigErr() error {
12162	return nil
12163}
12164
12165func (s *BadRequestException) Error() string {
12166	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12167}
12168
12169// Status code returns the HTTP status code for the request's response error.
12170func (s *BadRequestException) StatusCode() int {
12171	return s.RespMetadata.StatusCode
12172}
12173
12174// RequestID returns the service's response RequestID for request.
12175func (s *BadRequestException) RequestID() string {
12176	return s.RespMetadata.RequestID
12177}
12178
12179// Represents the base path that callers of the API must provide as part of
12180// the URL after the domain name.
12181//
12182// A custom domain name plus a BasePathMapping specification identifies a deployed
12183// RestApi in a given stage of the owner Account.
12184//
12185// Use Custom Domain Names (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
12186type BasePathMapping struct {
12187	_ struct{} `type:"structure"`
12188
12189	// The base path name that callers of the API must provide as part of the URL
12190	// after the domain name.
12191	BasePath *string `locationName:"basePath" type:"string"`
12192
12193	// The string identifier of the associated RestApi.
12194	RestApiId *string `locationName:"restApiId" type:"string"`
12195
12196	// The name of the associated stage.
12197	Stage *string `locationName:"stage" type:"string"`
12198}
12199
12200// String returns the string representation.
12201//
12202// API parameter values that are decorated as "sensitive" in the API will not
12203// be included in the string output. The member name will be present, but the
12204// value will be replaced with "sensitive".
12205func (s BasePathMapping) String() string {
12206	return awsutil.Prettify(s)
12207}
12208
12209// GoString returns the string representation.
12210//
12211// API parameter values that are decorated as "sensitive" in the API will not
12212// be included in the string output. The member name will be present, but the
12213// value will be replaced with "sensitive".
12214func (s BasePathMapping) GoString() string {
12215	return s.String()
12216}
12217
12218// SetBasePath sets the BasePath field's value.
12219func (s *BasePathMapping) SetBasePath(v string) *BasePathMapping {
12220	s.BasePath = &v
12221	return s
12222}
12223
12224// SetRestApiId sets the RestApiId field's value.
12225func (s *BasePathMapping) SetRestApiId(v string) *BasePathMapping {
12226	s.RestApiId = &v
12227	return s
12228}
12229
12230// SetStage sets the Stage field's value.
12231func (s *BasePathMapping) SetStage(v string) *BasePathMapping {
12232	s.Stage = &v
12233	return s
12234}
12235
12236// Configuration settings of a canary deployment.
12237type CanarySettings struct {
12238	_ struct{} `type:"structure"`
12239
12240	// The ID of the canary deployment.
12241	DeploymentId *string `locationName:"deploymentId" type:"string"`
12242
12243	// The percent (0-100) of traffic diverted to a canary deployment.
12244	PercentTraffic *float64 `locationName:"percentTraffic" type:"double"`
12245
12246	// Stage variables overridden for a canary release deployment, including new
12247	// stage variables introduced in the canary. These stage variables are represented
12248	// as a string-to-string map between stage variable names and their values.
12249	StageVariableOverrides map[string]*string `locationName:"stageVariableOverrides" type:"map"`
12250
12251	// A Boolean flag to indicate whether the canary deployment uses the stage cache
12252	// or not.
12253	UseStageCache *bool `locationName:"useStageCache" type:"boolean"`
12254}
12255
12256// String returns the string representation.
12257//
12258// API parameter values that are decorated as "sensitive" in the API will not
12259// be included in the string output. The member name will be present, but the
12260// value will be replaced with "sensitive".
12261func (s CanarySettings) String() string {
12262	return awsutil.Prettify(s)
12263}
12264
12265// GoString returns the string representation.
12266//
12267// API parameter values that are decorated as "sensitive" in the API will not
12268// be included in the string output. The member name will be present, but the
12269// value will be replaced with "sensitive".
12270func (s CanarySettings) GoString() string {
12271	return s.String()
12272}
12273
12274// SetDeploymentId sets the DeploymentId field's value.
12275func (s *CanarySettings) SetDeploymentId(v string) *CanarySettings {
12276	s.DeploymentId = &v
12277	return s
12278}
12279
12280// SetPercentTraffic sets the PercentTraffic field's value.
12281func (s *CanarySettings) SetPercentTraffic(v float64) *CanarySettings {
12282	s.PercentTraffic = &v
12283	return s
12284}
12285
12286// SetStageVariableOverrides sets the StageVariableOverrides field's value.
12287func (s *CanarySettings) SetStageVariableOverrides(v map[string]*string) *CanarySettings {
12288	s.StageVariableOverrides = v
12289	return s
12290}
12291
12292// SetUseStageCache sets the UseStageCache field's value.
12293func (s *CanarySettings) SetUseStageCache(v bool) *CanarySettings {
12294	s.UseStageCache = &v
12295	return s
12296}
12297
12298// Represents a client certificate used to configure client-side SSL authentication
12299// while sending requests to the integration endpoint.
12300//
12301// Client certificates are used to authenticate an API by the backend server.
12302// To authenticate an API client (or user), use IAM roles and policies, a custom
12303// Authorizer or an Amazon Cognito user pool.
12304//
12305// Use Client-Side Certificate (https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html)
12306type ClientCertificate struct {
12307	_ struct{} `type:"structure"`
12308
12309	// The identifier of the client certificate.
12310	ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
12311
12312	// The timestamp when the client certificate was created.
12313	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
12314
12315	// The description of the client certificate.
12316	Description *string `locationName:"description" type:"string"`
12317
12318	// The timestamp when the client certificate will expire.
12319	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
12320
12321	// The PEM-encoded public key of the client certificate, which can be used to
12322	// configure certificate authentication in the integration endpoint .
12323	PemEncodedCertificate *string `locationName:"pemEncodedCertificate" type:"string"`
12324
12325	// The collection of tags. Each tag element is associated with a given resource.
12326	Tags map[string]*string `locationName:"tags" type:"map"`
12327}
12328
12329// String returns the string representation.
12330//
12331// API parameter values that are decorated as "sensitive" in the API will not
12332// be included in the string output. The member name will be present, but the
12333// value will be replaced with "sensitive".
12334func (s ClientCertificate) String() string {
12335	return awsutil.Prettify(s)
12336}
12337
12338// GoString returns the string representation.
12339//
12340// API parameter values that are decorated as "sensitive" in the API will not
12341// be included in the string output. The member name will be present, but the
12342// value will be replaced with "sensitive".
12343func (s ClientCertificate) GoString() string {
12344	return s.String()
12345}
12346
12347// SetClientCertificateId sets the ClientCertificateId field's value.
12348func (s *ClientCertificate) SetClientCertificateId(v string) *ClientCertificate {
12349	s.ClientCertificateId = &v
12350	return s
12351}
12352
12353// SetCreatedDate sets the CreatedDate field's value.
12354func (s *ClientCertificate) SetCreatedDate(v time.Time) *ClientCertificate {
12355	s.CreatedDate = &v
12356	return s
12357}
12358
12359// SetDescription sets the Description field's value.
12360func (s *ClientCertificate) SetDescription(v string) *ClientCertificate {
12361	s.Description = &v
12362	return s
12363}
12364
12365// SetExpirationDate sets the ExpirationDate field's value.
12366func (s *ClientCertificate) SetExpirationDate(v time.Time) *ClientCertificate {
12367	s.ExpirationDate = &v
12368	return s
12369}
12370
12371// SetPemEncodedCertificate sets the PemEncodedCertificate field's value.
12372func (s *ClientCertificate) SetPemEncodedCertificate(v string) *ClientCertificate {
12373	s.PemEncodedCertificate = &v
12374	return s
12375}
12376
12377// SetTags sets the Tags field's value.
12378func (s *ClientCertificate) SetTags(v map[string]*string) *ClientCertificate {
12379	s.Tags = v
12380	return s
12381}
12382
12383// The request configuration has conflicts. For details, see the accompanying
12384// error message.
12385type ConflictException struct {
12386	_            struct{}                  `type:"structure"`
12387	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12388
12389	Message_ *string `locationName:"message" type:"string"`
12390}
12391
12392// String returns the string representation.
12393//
12394// API parameter values that are decorated as "sensitive" in the API will not
12395// be included in the string output. The member name will be present, but the
12396// value will be replaced with "sensitive".
12397func (s ConflictException) String() string {
12398	return awsutil.Prettify(s)
12399}
12400
12401// GoString returns the string representation.
12402//
12403// API parameter values that are decorated as "sensitive" in the API will not
12404// be included in the string output. The member name will be present, but the
12405// value will be replaced with "sensitive".
12406func (s ConflictException) GoString() string {
12407	return s.String()
12408}
12409
12410func newErrorConflictException(v protocol.ResponseMetadata) error {
12411	return &ConflictException{
12412		RespMetadata: v,
12413	}
12414}
12415
12416// Code returns the exception type name.
12417func (s *ConflictException) Code() string {
12418	return "ConflictException"
12419}
12420
12421// Message returns the exception's message.
12422func (s *ConflictException) Message() string {
12423	if s.Message_ != nil {
12424		return *s.Message_
12425	}
12426	return ""
12427}
12428
12429// OrigErr always returns nil, satisfies awserr.Error interface.
12430func (s *ConflictException) OrigErr() error {
12431	return nil
12432}
12433
12434func (s *ConflictException) Error() string {
12435	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12436}
12437
12438// Status code returns the HTTP status code for the request's response error.
12439func (s *ConflictException) StatusCode() int {
12440	return s.RespMetadata.StatusCode
12441}
12442
12443// RequestID returns the service's response RequestID for request.
12444func (s *ConflictException) RequestID() string {
12445	return s.RespMetadata.RequestID
12446}
12447
12448// Request to create an ApiKey resource.
12449type CreateApiKeyInput struct {
12450	_ struct{} `type:"structure"`
12451
12452	// An AWS Marketplace customer identifier , when integrating with the AWS SaaS
12453	// Marketplace.
12454	CustomerId *string `locationName:"customerId" type:"string"`
12455
12456	// The description of the ApiKey.
12457	Description *string `locationName:"description" type:"string"`
12458
12459	// Specifies whether the ApiKey can be used by callers.
12460	Enabled *bool `locationName:"enabled" type:"boolean"`
12461
12462	// Specifies whether (true) or not (false) the key identifier is distinct from
12463	// the created API key value. This parameter is deprecated and should not be
12464	// used.
12465	GenerateDistinctId *bool `locationName:"generateDistinctId" type:"boolean"`
12466
12467	// The name of the ApiKey.
12468	Name *string `locationName:"name" type:"string"`
12469
12470	// DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.
12471	StageKeys []*StageKey `locationName:"stageKeys" type:"list"`
12472
12473	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
12474	// The tag key can be up to 128 characters and must not start with aws:. The
12475	// tag value can be up to 256 characters.
12476	Tags map[string]*string `locationName:"tags" type:"map"`
12477
12478	// Specifies a value of the API key.
12479	Value *string `locationName:"value" type:"string"`
12480}
12481
12482// String returns the string representation.
12483//
12484// API parameter values that are decorated as "sensitive" in the API will not
12485// be included in the string output. The member name will be present, but the
12486// value will be replaced with "sensitive".
12487func (s CreateApiKeyInput) String() string {
12488	return awsutil.Prettify(s)
12489}
12490
12491// GoString returns the string representation.
12492//
12493// API parameter values that are decorated as "sensitive" in the API will not
12494// be included in the string output. The member name will be present, but the
12495// value will be replaced with "sensitive".
12496func (s CreateApiKeyInput) GoString() string {
12497	return s.String()
12498}
12499
12500// SetCustomerId sets the CustomerId field's value.
12501func (s *CreateApiKeyInput) SetCustomerId(v string) *CreateApiKeyInput {
12502	s.CustomerId = &v
12503	return s
12504}
12505
12506// SetDescription sets the Description field's value.
12507func (s *CreateApiKeyInput) SetDescription(v string) *CreateApiKeyInput {
12508	s.Description = &v
12509	return s
12510}
12511
12512// SetEnabled sets the Enabled field's value.
12513func (s *CreateApiKeyInput) SetEnabled(v bool) *CreateApiKeyInput {
12514	s.Enabled = &v
12515	return s
12516}
12517
12518// SetGenerateDistinctId sets the GenerateDistinctId field's value.
12519func (s *CreateApiKeyInput) SetGenerateDistinctId(v bool) *CreateApiKeyInput {
12520	s.GenerateDistinctId = &v
12521	return s
12522}
12523
12524// SetName sets the Name field's value.
12525func (s *CreateApiKeyInput) SetName(v string) *CreateApiKeyInput {
12526	s.Name = &v
12527	return s
12528}
12529
12530// SetStageKeys sets the StageKeys field's value.
12531func (s *CreateApiKeyInput) SetStageKeys(v []*StageKey) *CreateApiKeyInput {
12532	s.StageKeys = v
12533	return s
12534}
12535
12536// SetTags sets the Tags field's value.
12537func (s *CreateApiKeyInput) SetTags(v map[string]*string) *CreateApiKeyInput {
12538	s.Tags = v
12539	return s
12540}
12541
12542// SetValue sets the Value field's value.
12543func (s *CreateApiKeyInput) SetValue(v string) *CreateApiKeyInput {
12544	s.Value = &v
12545	return s
12546}
12547
12548// Request to add a new Authorizer to an existing RestApi resource.
12549type CreateAuthorizerInput struct {
12550	_ struct{} `type:"structure"`
12551
12552	// Optional customer-defined field, used in OpenAPI imports and exports without
12553	// functional impact.
12554	AuthType *string `locationName:"authType" type:"string"`
12555
12556	// Specifies the required credentials as an IAM role for API Gateway to invoke
12557	// the authorizer. To specify an IAM role for API Gateway to assume, use the
12558	// role's Amazon Resource Name (ARN). To use resource-based permissions on the
12559	// Lambda function, specify null.
12560	AuthorizerCredentials *string `locationName:"authorizerCredentials" type:"string"`
12561
12562	// The TTL in seconds of cached authorizer results. If it equals 0, authorization
12563	// caching is disabled. If it is greater than 0, API Gateway will cache authorizer
12564	// responses. If this field is not set, the default value is 300. The maximum
12565	// value is 3600, or 1 hour.
12566	AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"`
12567
12568	// Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or
12569	// REQUEST authorizers, this must be a well-formed Lambda function URI, for
12570	// 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.
12571	// In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api},
12572	// where {region} is the same as the region hosting the Lambda function, path
12573	// indicates that the remaining substring in the URI should be treated as the
12574	// path to the resource, including the initial /. For Lambda functions, this
12575	// is usually of the form /2015-03-31/functions/[FunctionARN]/invocations.
12576	AuthorizerUri *string `locationName:"authorizerUri" type:"string"`
12577
12578	// The identity source for which authorization is requested.
12579	//    * For a TOKEN or COGNITO_USER_POOLS authorizer, this is required and specifies
12580	//    the request header mapping expression for the custom header holding the
12581	//    authorization token submitted by the client. For example, if the token
12582	//    header name is Auth, the header mapping expression is method.request.header.Auth.
12583	//
12584	//    * For the REQUEST authorizer, this is required when authorization caching
12585	//    is enabled. The value is a comma-separated string of one or more mapping
12586	//    expressions of the specified request parameters. For example, if an Auth
12587	//    header, a Name query string parameter are defined as identity sources,
12588	//    this value is method.request.header.Auth, method.request.querystring.Name.
12589	//    These parameters will be used to derive the authorization caching key
12590	//    and to perform runtime validation of the REQUEST authorizer by verifying
12591	//    all of the identity-related request parameters are present, not null and
12592	//    non-empty. Only when this is true does the authorizer invoke the authorizer
12593	//    Lambda function, otherwise, it returns a 401 Unauthorized response without
12594	//    calling the Lambda function. The valid value is a string of comma-separated
12595	//    mapping expressions of the specified request parameters. When the authorization
12596	//    caching is not enabled, this property is optional.
12597	IdentitySource *string `locationName:"identitySource" type:"string"`
12598
12599	// A validation expression for the incoming identity token. For TOKEN authorizers,
12600	// this value is a regular expression. For COGNITO_USER_POOLS authorizers, API
12601	// Gateway will match the aud field of the incoming token from the client against
12602	// the specified regular expression. It will invoke the authorizer's Lambda
12603	// function when there is a match. Otherwise, it will return a 401 Unauthorized
12604	// response without calling the Lambda function. The validation expression does
12605	// not apply to the REQUEST authorizer.
12606	IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"`
12607
12608	// [Required] The name of the authorizer.
12609	//
12610	// Name is a required field
12611	Name *string `locationName:"name" type:"string" required:"true"`
12612
12613	// A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer.
12614	// Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}.
12615	// For a TOKEN or REQUEST authorizer, this is not defined.
12616	ProviderARNs []*string `locationName:"providerARNs" type:"list"`
12617
12618	// [Required] The string identifier of the associated RestApi.
12619	//
12620	// RestApiId is a required field
12621	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12622
12623	// [Required] The authorizer type. Valid values are TOKEN for a Lambda function
12624	// using a single authorization token submitted in a custom header, REQUEST
12625	// for a Lambda function using incoming request parameters, and COGNITO_USER_POOLS
12626	// for using an Amazon Cognito user pool.
12627	//
12628	// Type is a required field
12629	Type *string `locationName:"type" type:"string" required:"true" enum:"AuthorizerType"`
12630}
12631
12632// String returns the string representation.
12633//
12634// API parameter values that are decorated as "sensitive" in the API will not
12635// be included in the string output. The member name will be present, but the
12636// value will be replaced with "sensitive".
12637func (s CreateAuthorizerInput) String() string {
12638	return awsutil.Prettify(s)
12639}
12640
12641// GoString returns the string representation.
12642//
12643// API parameter values that are decorated as "sensitive" in the API will not
12644// be included in the string output. The member name will be present, but the
12645// value will be replaced with "sensitive".
12646func (s CreateAuthorizerInput) GoString() string {
12647	return s.String()
12648}
12649
12650// Validate inspects the fields of the type to determine if they are valid.
12651func (s *CreateAuthorizerInput) Validate() error {
12652	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
12653	if s.Name == nil {
12654		invalidParams.Add(request.NewErrParamRequired("Name"))
12655	}
12656	if s.RestApiId == nil {
12657		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12658	}
12659	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12660		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12661	}
12662	if s.Type == nil {
12663		invalidParams.Add(request.NewErrParamRequired("Type"))
12664	}
12665
12666	if invalidParams.Len() > 0 {
12667		return invalidParams
12668	}
12669	return nil
12670}
12671
12672// SetAuthType sets the AuthType field's value.
12673func (s *CreateAuthorizerInput) SetAuthType(v string) *CreateAuthorizerInput {
12674	s.AuthType = &v
12675	return s
12676}
12677
12678// SetAuthorizerCredentials sets the AuthorizerCredentials field's value.
12679func (s *CreateAuthorizerInput) SetAuthorizerCredentials(v string) *CreateAuthorizerInput {
12680	s.AuthorizerCredentials = &v
12681	return s
12682}
12683
12684// SetAuthorizerResultTtlInSeconds sets the AuthorizerResultTtlInSeconds field's value.
12685func (s *CreateAuthorizerInput) SetAuthorizerResultTtlInSeconds(v int64) *CreateAuthorizerInput {
12686	s.AuthorizerResultTtlInSeconds = &v
12687	return s
12688}
12689
12690// SetAuthorizerUri sets the AuthorizerUri field's value.
12691func (s *CreateAuthorizerInput) SetAuthorizerUri(v string) *CreateAuthorizerInput {
12692	s.AuthorizerUri = &v
12693	return s
12694}
12695
12696// SetIdentitySource sets the IdentitySource field's value.
12697func (s *CreateAuthorizerInput) SetIdentitySource(v string) *CreateAuthorizerInput {
12698	s.IdentitySource = &v
12699	return s
12700}
12701
12702// SetIdentityValidationExpression sets the IdentityValidationExpression field's value.
12703func (s *CreateAuthorizerInput) SetIdentityValidationExpression(v string) *CreateAuthorizerInput {
12704	s.IdentityValidationExpression = &v
12705	return s
12706}
12707
12708// SetName sets the Name field's value.
12709func (s *CreateAuthorizerInput) SetName(v string) *CreateAuthorizerInput {
12710	s.Name = &v
12711	return s
12712}
12713
12714// SetProviderARNs sets the ProviderARNs field's value.
12715func (s *CreateAuthorizerInput) SetProviderARNs(v []*string) *CreateAuthorizerInput {
12716	s.ProviderARNs = v
12717	return s
12718}
12719
12720// SetRestApiId sets the RestApiId field's value.
12721func (s *CreateAuthorizerInput) SetRestApiId(v string) *CreateAuthorizerInput {
12722	s.RestApiId = &v
12723	return s
12724}
12725
12726// SetType sets the Type field's value.
12727func (s *CreateAuthorizerInput) SetType(v string) *CreateAuthorizerInput {
12728	s.Type = &v
12729	return s
12730}
12731
12732// Requests API Gateway to create a new BasePathMapping resource.
12733type CreateBasePathMappingInput struct {
12734	_ struct{} `type:"structure"`
12735
12736	// The base path name that callers of the API must provide as part of the URL
12737	// after the domain name. This value must be unique for all of the mappings
12738	// across a single API. Specify '(none)' if you do not want callers to specify
12739	// a base path name after the domain name.
12740	BasePath *string `locationName:"basePath" type:"string"`
12741
12742	// [Required] The domain name of the BasePathMapping resource to create.
12743	//
12744	// DomainName is a required field
12745	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
12746
12747	// [Required] The string identifier of the associated RestApi.
12748	//
12749	// RestApiId is a required field
12750	RestApiId *string `locationName:"restApiId" type:"string" required:"true"`
12751
12752	// The name of the API's stage that you want to use for this mapping. Specify
12753	// '(none)' if you want callers to explicitly specify the stage name after any
12754	// base path name.
12755	Stage *string `locationName:"stage" type:"string"`
12756}
12757
12758// String returns the string representation.
12759//
12760// API parameter values that are decorated as "sensitive" in the API will not
12761// be included in the string output. The member name will be present, but the
12762// value will be replaced with "sensitive".
12763func (s CreateBasePathMappingInput) String() string {
12764	return awsutil.Prettify(s)
12765}
12766
12767// GoString returns the string representation.
12768//
12769// API parameter values that are decorated as "sensitive" in the API will not
12770// be included in the string output. The member name will be present, but the
12771// value will be replaced with "sensitive".
12772func (s CreateBasePathMappingInput) GoString() string {
12773	return s.String()
12774}
12775
12776// Validate inspects the fields of the type to determine if they are valid.
12777func (s *CreateBasePathMappingInput) Validate() error {
12778	invalidParams := request.ErrInvalidParams{Context: "CreateBasePathMappingInput"}
12779	if s.DomainName == nil {
12780		invalidParams.Add(request.NewErrParamRequired("DomainName"))
12781	}
12782	if s.DomainName != nil && len(*s.DomainName) < 1 {
12783		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
12784	}
12785	if s.RestApiId == nil {
12786		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12787	}
12788
12789	if invalidParams.Len() > 0 {
12790		return invalidParams
12791	}
12792	return nil
12793}
12794
12795// SetBasePath sets the BasePath field's value.
12796func (s *CreateBasePathMappingInput) SetBasePath(v string) *CreateBasePathMappingInput {
12797	s.BasePath = &v
12798	return s
12799}
12800
12801// SetDomainName sets the DomainName field's value.
12802func (s *CreateBasePathMappingInput) SetDomainName(v string) *CreateBasePathMappingInput {
12803	s.DomainName = &v
12804	return s
12805}
12806
12807// SetRestApiId sets the RestApiId field's value.
12808func (s *CreateBasePathMappingInput) SetRestApiId(v string) *CreateBasePathMappingInput {
12809	s.RestApiId = &v
12810	return s
12811}
12812
12813// SetStage sets the Stage field's value.
12814func (s *CreateBasePathMappingInput) SetStage(v string) *CreateBasePathMappingInput {
12815	s.Stage = &v
12816	return s
12817}
12818
12819// Requests API Gateway to create a Deployment resource.
12820type CreateDeploymentInput struct {
12821	_ struct{} `type:"structure"`
12822
12823	// Enables a cache cluster for the Stage resource specified in the input.
12824	CacheClusterEnabled *bool `locationName:"cacheClusterEnabled" type:"boolean"`
12825
12826	// Specifies the cache cluster size for the Stage resource specified in the
12827	// input, if a cache cluster is enabled.
12828	CacheClusterSize *string `locationName:"cacheClusterSize" type:"string" enum:"CacheClusterSize"`
12829
12830	// The input configuration for the canary deployment when the deployment is
12831	// a canary release deployment.
12832	CanarySettings *DeploymentCanarySettings `locationName:"canarySettings" type:"structure"`
12833
12834	// The description for the Deployment resource to create.
12835	Description *string `locationName:"description" type:"string"`
12836
12837	// [Required] The string identifier of the associated RestApi.
12838	//
12839	// RestApiId is a required field
12840	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12841
12842	// The description of the Stage resource for the Deployment resource to create.
12843	StageDescription *string `locationName:"stageDescription" type:"string"`
12844
12845	// The name of the Stage resource for the Deployment resource to create.
12846	StageName *string `locationName:"stageName" type:"string"`
12847
12848	// Specifies whether active tracing with X-ray is enabled for the Stage.
12849	TracingEnabled *bool `locationName:"tracingEnabled" type:"boolean"`
12850
12851	// A map that defines the stage variables for the Stage resource that is associated
12852	// with the new deployment. Variable names can have alphanumeric and underscore
12853	// characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.
12854	Variables map[string]*string `locationName:"variables" type:"map"`
12855}
12856
12857// String returns the string representation.
12858//
12859// API parameter values that are decorated as "sensitive" in the API will not
12860// be included in the string output. The member name will be present, but the
12861// value will be replaced with "sensitive".
12862func (s CreateDeploymentInput) String() string {
12863	return awsutil.Prettify(s)
12864}
12865
12866// GoString returns the string representation.
12867//
12868// API parameter values that are decorated as "sensitive" in the API will not
12869// be included in the string output. The member name will be present, but the
12870// value will be replaced with "sensitive".
12871func (s CreateDeploymentInput) GoString() string {
12872	return s.String()
12873}
12874
12875// Validate inspects the fields of the type to determine if they are valid.
12876func (s *CreateDeploymentInput) Validate() error {
12877	invalidParams := request.ErrInvalidParams{Context: "CreateDeploymentInput"}
12878	if s.RestApiId == nil {
12879		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12880	}
12881	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12882		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
12883	}
12884
12885	if invalidParams.Len() > 0 {
12886		return invalidParams
12887	}
12888	return nil
12889}
12890
12891// SetCacheClusterEnabled sets the CacheClusterEnabled field's value.
12892func (s *CreateDeploymentInput) SetCacheClusterEnabled(v bool) *CreateDeploymentInput {
12893	s.CacheClusterEnabled = &v
12894	return s
12895}
12896
12897// SetCacheClusterSize sets the CacheClusterSize field's value.
12898func (s *CreateDeploymentInput) SetCacheClusterSize(v string) *CreateDeploymentInput {
12899	s.CacheClusterSize = &v
12900	return s
12901}
12902
12903// SetCanarySettings sets the CanarySettings field's value.
12904func (s *CreateDeploymentInput) SetCanarySettings(v *DeploymentCanarySettings) *CreateDeploymentInput {
12905	s.CanarySettings = v
12906	return s
12907}
12908
12909// SetDescription sets the Description field's value.
12910func (s *CreateDeploymentInput) SetDescription(v string) *CreateDeploymentInput {
12911	s.Description = &v
12912	return s
12913}
12914
12915// SetRestApiId sets the RestApiId field's value.
12916func (s *CreateDeploymentInput) SetRestApiId(v string) *CreateDeploymentInput {
12917	s.RestApiId = &v
12918	return s
12919}
12920
12921// SetStageDescription sets the StageDescription field's value.
12922func (s *CreateDeploymentInput) SetStageDescription(v string) *CreateDeploymentInput {
12923	s.StageDescription = &v
12924	return s
12925}
12926
12927// SetStageName sets the StageName field's value.
12928func (s *CreateDeploymentInput) SetStageName(v string) *CreateDeploymentInput {
12929	s.StageName = &v
12930	return s
12931}
12932
12933// SetTracingEnabled sets the TracingEnabled field's value.
12934func (s *CreateDeploymentInput) SetTracingEnabled(v bool) *CreateDeploymentInput {
12935	s.TracingEnabled = &v
12936	return s
12937}
12938
12939// SetVariables sets the Variables field's value.
12940func (s *CreateDeploymentInput) SetVariables(v map[string]*string) *CreateDeploymentInput {
12941	s.Variables = v
12942	return s
12943}
12944
12945// Creates a new documentation part of a given API.
12946type CreateDocumentationPartInput struct {
12947	_ struct{} `type:"structure"`
12948
12949	// [Required] The location of the targeted API entity of the to-be-created documentation
12950	// part.
12951	//
12952	// Location is a required field
12953	Location *DocumentationPartLocation `locationName:"location" type:"structure" required:"true"`
12954
12955	// [Required] The new documentation content map of the targeted API entity.
12956	// Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value
12957	// pairs can be exported and, hence, published.
12958	//
12959	// Properties is a required field
12960	Properties *string `locationName:"properties" type:"string" required:"true"`
12961
12962	// [Required] The string identifier of the associated RestApi.
12963	//
12964	// RestApiId is a required field
12965	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
12966}
12967
12968// String returns the string representation.
12969//
12970// API parameter values that are decorated as "sensitive" in the API will not
12971// be included in the string output. The member name will be present, but the
12972// value will be replaced with "sensitive".
12973func (s CreateDocumentationPartInput) String() string {
12974	return awsutil.Prettify(s)
12975}
12976
12977// GoString returns the string representation.
12978//
12979// API parameter values that are decorated as "sensitive" in the API will not
12980// be included in the string output. The member name will be present, but the
12981// value will be replaced with "sensitive".
12982func (s CreateDocumentationPartInput) GoString() string {
12983	return s.String()
12984}
12985
12986// Validate inspects the fields of the type to determine if they are valid.
12987func (s *CreateDocumentationPartInput) Validate() error {
12988	invalidParams := request.ErrInvalidParams{Context: "CreateDocumentationPartInput"}
12989	if s.Location == nil {
12990		invalidParams.Add(request.NewErrParamRequired("Location"))
12991	}
12992	if s.Properties == nil {
12993		invalidParams.Add(request.NewErrParamRequired("Properties"))
12994	}
12995	if s.RestApiId == nil {
12996		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
12997	}
12998	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
12999		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13000	}
13001	if s.Location != nil {
13002		if err := s.Location.Validate(); err != nil {
13003			invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
13004		}
13005	}
13006
13007	if invalidParams.Len() > 0 {
13008		return invalidParams
13009	}
13010	return nil
13011}
13012
13013// SetLocation sets the Location field's value.
13014func (s *CreateDocumentationPartInput) SetLocation(v *DocumentationPartLocation) *CreateDocumentationPartInput {
13015	s.Location = v
13016	return s
13017}
13018
13019// SetProperties sets the Properties field's value.
13020func (s *CreateDocumentationPartInput) SetProperties(v string) *CreateDocumentationPartInput {
13021	s.Properties = &v
13022	return s
13023}
13024
13025// SetRestApiId sets the RestApiId field's value.
13026func (s *CreateDocumentationPartInput) SetRestApiId(v string) *CreateDocumentationPartInput {
13027	s.RestApiId = &v
13028	return s
13029}
13030
13031// Creates a new documentation version of a given API.
13032type CreateDocumentationVersionInput struct {
13033	_ struct{} `type:"structure"`
13034
13035	// A description about the new documentation snapshot.
13036	Description *string `locationName:"description" type:"string"`
13037
13038	// [Required] The version identifier of the new snapshot.
13039	//
13040	// DocumentationVersion is a required field
13041	DocumentationVersion *string `locationName:"documentationVersion" type:"string" required:"true"`
13042
13043	// [Required] The string identifier of the associated RestApi.
13044	//
13045	// RestApiId is a required field
13046	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13047
13048	// The stage name to be associated with the new documentation snapshot.
13049	StageName *string `locationName:"stageName" type:"string"`
13050}
13051
13052// String returns the string representation.
13053//
13054// API parameter values that are decorated as "sensitive" in the API will not
13055// be included in the string output. The member name will be present, but the
13056// value will be replaced with "sensitive".
13057func (s CreateDocumentationVersionInput) String() string {
13058	return awsutil.Prettify(s)
13059}
13060
13061// GoString returns the string representation.
13062//
13063// API parameter values that are decorated as "sensitive" in the API will not
13064// be included in the string output. The member name will be present, but the
13065// value will be replaced with "sensitive".
13066func (s CreateDocumentationVersionInput) GoString() string {
13067	return s.String()
13068}
13069
13070// Validate inspects the fields of the type to determine if they are valid.
13071func (s *CreateDocumentationVersionInput) Validate() error {
13072	invalidParams := request.ErrInvalidParams{Context: "CreateDocumentationVersionInput"}
13073	if s.DocumentationVersion == nil {
13074		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
13075	}
13076	if s.RestApiId == nil {
13077		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13078	}
13079	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13080		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13081	}
13082
13083	if invalidParams.Len() > 0 {
13084		return invalidParams
13085	}
13086	return nil
13087}
13088
13089// SetDescription sets the Description field's value.
13090func (s *CreateDocumentationVersionInput) SetDescription(v string) *CreateDocumentationVersionInput {
13091	s.Description = &v
13092	return s
13093}
13094
13095// SetDocumentationVersion sets the DocumentationVersion field's value.
13096func (s *CreateDocumentationVersionInput) SetDocumentationVersion(v string) *CreateDocumentationVersionInput {
13097	s.DocumentationVersion = &v
13098	return s
13099}
13100
13101// SetRestApiId sets the RestApiId field's value.
13102func (s *CreateDocumentationVersionInput) SetRestApiId(v string) *CreateDocumentationVersionInput {
13103	s.RestApiId = &v
13104	return s
13105}
13106
13107// SetStageName sets the StageName field's value.
13108func (s *CreateDocumentationVersionInput) SetStageName(v string) *CreateDocumentationVersionInput {
13109	s.StageName = &v
13110	return s
13111}
13112
13113// A request to create a new domain name.
13114type CreateDomainNameInput struct {
13115	_ struct{} `type:"structure"`
13116
13117	// The reference to an AWS-managed certificate that will be used by edge-optimized
13118	// endpoint for this domain name. AWS Certificate Manager is the only supported
13119	// source.
13120	CertificateArn *string `locationName:"certificateArn" type:"string"`
13121
13122	// [Deprecated] The body of the server certificate that will be used by edge-optimized
13123	// endpoint for this domain name provided by your certificate authority.
13124	CertificateBody *string `locationName:"certificateBody" type:"string"`
13125
13126	// [Deprecated] The intermediate certificates and optionally the root certificate,
13127	// one after the other without any blank lines, used by an edge-optimized endpoint
13128	// for this domain name. If you include the root certificate, your certificate
13129	// chain must start with intermediate certificates and end with the root certificate.
13130	// Use the intermediate certificates that were provided by your certificate
13131	// authority. Do not include any intermediaries that are not in the chain of
13132	// trust path.
13133	CertificateChain *string `locationName:"certificateChain" type:"string"`
13134
13135	// The user-friendly name of the certificate that will be used by edge-optimized
13136	// endpoint for this domain name.
13137	CertificateName *string `locationName:"certificateName" type:"string"`
13138
13139	// [Deprecated] Your edge-optimized endpoint's domain name certificate's private
13140	// key.
13141	CertificatePrivateKey *string `locationName:"certificatePrivateKey" type:"string"`
13142
13143	// [Required] The name of the DomainName resource.
13144	//
13145	// DomainName is a required field
13146	DomainName *string `locationName:"domainName" type:"string" required:"true"`
13147
13148	// The endpoint configuration of this DomainName showing the endpoint types
13149	// of the domain name.
13150	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
13151
13152	// If specified, API Gateway performs two-way authentication between the client
13153	// and the server. Clients must present a trusted certificate to access your
13154	// custom domain name.
13155	MutualTlsAuthentication *MutualTlsAuthenticationInput `locationName:"mutualTlsAuthentication" type:"structure"`
13156
13157	// The ARN of the public certificate issued by ACM to validate ownership of
13158	// your custom domain. Only required when configuring mutual TLS and using an
13159	// ACM imported or private CA certificate ARN as the regionalCertificateArn.
13160	OwnershipVerificationCertificateArn *string `locationName:"ownershipVerificationCertificateArn" type:"string"`
13161
13162	// The reference to an AWS-managed certificate that will be used by regional
13163	// endpoint for this domain name. AWS Certificate Manager is the only supported
13164	// source.
13165	RegionalCertificateArn *string `locationName:"regionalCertificateArn" type:"string"`
13166
13167	// The user-friendly name of the certificate that will be used by regional endpoint
13168	// for this domain name.
13169	RegionalCertificateName *string `locationName:"regionalCertificateName" type:"string"`
13170
13171	// The Transport Layer Security (TLS) version + cipher suite for this DomainName.
13172	// The valid values are TLS_1_0 and TLS_1_2.
13173	SecurityPolicy *string `locationName:"securityPolicy" type:"string" enum:"SecurityPolicy"`
13174
13175	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13176	// The tag key can be up to 128 characters and must not start with aws:. The
13177	// tag value can be up to 256 characters.
13178	Tags map[string]*string `locationName:"tags" type:"map"`
13179}
13180
13181// String returns the string representation.
13182//
13183// API parameter values that are decorated as "sensitive" in the API will not
13184// be included in the string output. The member name will be present, but the
13185// value will be replaced with "sensitive".
13186func (s CreateDomainNameInput) String() string {
13187	return awsutil.Prettify(s)
13188}
13189
13190// GoString returns the string representation.
13191//
13192// API parameter values that are decorated as "sensitive" in the API will not
13193// be included in the string output. The member name will be present, but the
13194// value will be replaced with "sensitive".
13195func (s CreateDomainNameInput) GoString() string {
13196	return s.String()
13197}
13198
13199// Validate inspects the fields of the type to determine if they are valid.
13200func (s *CreateDomainNameInput) Validate() error {
13201	invalidParams := request.ErrInvalidParams{Context: "CreateDomainNameInput"}
13202	if s.DomainName == nil {
13203		invalidParams.Add(request.NewErrParamRequired("DomainName"))
13204	}
13205
13206	if invalidParams.Len() > 0 {
13207		return invalidParams
13208	}
13209	return nil
13210}
13211
13212// SetCertificateArn sets the CertificateArn field's value.
13213func (s *CreateDomainNameInput) SetCertificateArn(v string) *CreateDomainNameInput {
13214	s.CertificateArn = &v
13215	return s
13216}
13217
13218// SetCertificateBody sets the CertificateBody field's value.
13219func (s *CreateDomainNameInput) SetCertificateBody(v string) *CreateDomainNameInput {
13220	s.CertificateBody = &v
13221	return s
13222}
13223
13224// SetCertificateChain sets the CertificateChain field's value.
13225func (s *CreateDomainNameInput) SetCertificateChain(v string) *CreateDomainNameInput {
13226	s.CertificateChain = &v
13227	return s
13228}
13229
13230// SetCertificateName sets the CertificateName field's value.
13231func (s *CreateDomainNameInput) SetCertificateName(v string) *CreateDomainNameInput {
13232	s.CertificateName = &v
13233	return s
13234}
13235
13236// SetCertificatePrivateKey sets the CertificatePrivateKey field's value.
13237func (s *CreateDomainNameInput) SetCertificatePrivateKey(v string) *CreateDomainNameInput {
13238	s.CertificatePrivateKey = &v
13239	return s
13240}
13241
13242// SetDomainName sets the DomainName field's value.
13243func (s *CreateDomainNameInput) SetDomainName(v string) *CreateDomainNameInput {
13244	s.DomainName = &v
13245	return s
13246}
13247
13248// SetEndpointConfiguration sets the EndpointConfiguration field's value.
13249func (s *CreateDomainNameInput) SetEndpointConfiguration(v *EndpointConfiguration) *CreateDomainNameInput {
13250	s.EndpointConfiguration = v
13251	return s
13252}
13253
13254// SetMutualTlsAuthentication sets the MutualTlsAuthentication field's value.
13255func (s *CreateDomainNameInput) SetMutualTlsAuthentication(v *MutualTlsAuthenticationInput) *CreateDomainNameInput {
13256	s.MutualTlsAuthentication = v
13257	return s
13258}
13259
13260// SetOwnershipVerificationCertificateArn sets the OwnershipVerificationCertificateArn field's value.
13261func (s *CreateDomainNameInput) SetOwnershipVerificationCertificateArn(v string) *CreateDomainNameInput {
13262	s.OwnershipVerificationCertificateArn = &v
13263	return s
13264}
13265
13266// SetRegionalCertificateArn sets the RegionalCertificateArn field's value.
13267func (s *CreateDomainNameInput) SetRegionalCertificateArn(v string) *CreateDomainNameInput {
13268	s.RegionalCertificateArn = &v
13269	return s
13270}
13271
13272// SetRegionalCertificateName sets the RegionalCertificateName field's value.
13273func (s *CreateDomainNameInput) SetRegionalCertificateName(v string) *CreateDomainNameInput {
13274	s.RegionalCertificateName = &v
13275	return s
13276}
13277
13278// SetSecurityPolicy sets the SecurityPolicy field's value.
13279func (s *CreateDomainNameInput) SetSecurityPolicy(v string) *CreateDomainNameInput {
13280	s.SecurityPolicy = &v
13281	return s
13282}
13283
13284// SetTags sets the Tags field's value.
13285func (s *CreateDomainNameInput) SetTags(v map[string]*string) *CreateDomainNameInput {
13286	s.Tags = v
13287	return s
13288}
13289
13290// Request to add a new Model to an existing RestApi resource.
13291type CreateModelInput struct {
13292	_ struct{} `type:"structure"`
13293
13294	// [Required] The content-type for the model.
13295	//
13296	// ContentType is a required field
13297	ContentType *string `locationName:"contentType" type:"string" required:"true"`
13298
13299	// The description of the model.
13300	Description *string `locationName:"description" type:"string"`
13301
13302	// [Required] The name of the model. Must be alphanumeric.
13303	//
13304	// Name is a required field
13305	Name *string `locationName:"name" type:"string" required:"true"`
13306
13307	// [Required] The RestApi identifier under which the Model will be created.
13308	//
13309	// RestApiId is a required field
13310	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13311
13312	// The schema for the model. For application/json models, this should be JSON
13313	// schema draft 4 (https://tools.ietf.org/html/draft-zyp-json-schema-04) model.
13314	Schema *string `locationName:"schema" type:"string"`
13315}
13316
13317// String returns the string representation.
13318//
13319// API parameter values that are decorated as "sensitive" in the API will not
13320// be included in the string output. The member name will be present, but the
13321// value will be replaced with "sensitive".
13322func (s CreateModelInput) String() string {
13323	return awsutil.Prettify(s)
13324}
13325
13326// GoString returns the string representation.
13327//
13328// API parameter values that are decorated as "sensitive" in the API will not
13329// be included in the string output. The member name will be present, but the
13330// value will be replaced with "sensitive".
13331func (s CreateModelInput) GoString() string {
13332	return s.String()
13333}
13334
13335// Validate inspects the fields of the type to determine if they are valid.
13336func (s *CreateModelInput) Validate() error {
13337	invalidParams := request.ErrInvalidParams{Context: "CreateModelInput"}
13338	if s.ContentType == nil {
13339		invalidParams.Add(request.NewErrParamRequired("ContentType"))
13340	}
13341	if s.Name == nil {
13342		invalidParams.Add(request.NewErrParamRequired("Name"))
13343	}
13344	if s.RestApiId == nil {
13345		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13346	}
13347	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13348		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13349	}
13350
13351	if invalidParams.Len() > 0 {
13352		return invalidParams
13353	}
13354	return nil
13355}
13356
13357// SetContentType sets the ContentType field's value.
13358func (s *CreateModelInput) SetContentType(v string) *CreateModelInput {
13359	s.ContentType = &v
13360	return s
13361}
13362
13363// SetDescription sets the Description field's value.
13364func (s *CreateModelInput) SetDescription(v string) *CreateModelInput {
13365	s.Description = &v
13366	return s
13367}
13368
13369// SetName sets the Name field's value.
13370func (s *CreateModelInput) SetName(v string) *CreateModelInput {
13371	s.Name = &v
13372	return s
13373}
13374
13375// SetRestApiId sets the RestApiId field's value.
13376func (s *CreateModelInput) SetRestApiId(v string) *CreateModelInput {
13377	s.RestApiId = &v
13378	return s
13379}
13380
13381// SetSchema sets the Schema field's value.
13382func (s *CreateModelInput) SetSchema(v string) *CreateModelInput {
13383	s.Schema = &v
13384	return s
13385}
13386
13387// Creates a RequestValidator of a given RestApi.
13388type CreateRequestValidatorInput struct {
13389	_ struct{} `type:"structure"`
13390
13391	// The name of the to-be-created RequestValidator.
13392	Name *string `locationName:"name" type:"string"`
13393
13394	// [Required] The string identifier of the associated RestApi.
13395	//
13396	// RestApiId is a required field
13397	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13398
13399	// A Boolean flag to indicate whether to validate request body according to
13400	// the configured model schema for the method (true) or not (false).
13401	ValidateRequestBody *bool `locationName:"validateRequestBody" type:"boolean"`
13402
13403	// A Boolean flag to indicate whether to validate request parameters, true,
13404	// or not false.
13405	ValidateRequestParameters *bool `locationName:"validateRequestParameters" type:"boolean"`
13406}
13407
13408// String returns the string representation.
13409//
13410// API parameter values that are decorated as "sensitive" in the API will not
13411// be included in the string output. The member name will be present, but the
13412// value will be replaced with "sensitive".
13413func (s CreateRequestValidatorInput) String() string {
13414	return awsutil.Prettify(s)
13415}
13416
13417// GoString returns the string representation.
13418//
13419// API parameter values that are decorated as "sensitive" in the API will not
13420// be included in the string output. The member name will be present, but the
13421// value will be replaced with "sensitive".
13422func (s CreateRequestValidatorInput) GoString() string {
13423	return s.String()
13424}
13425
13426// Validate inspects the fields of the type to determine if they are valid.
13427func (s *CreateRequestValidatorInput) Validate() error {
13428	invalidParams := request.ErrInvalidParams{Context: "CreateRequestValidatorInput"}
13429	if s.RestApiId == nil {
13430		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13431	}
13432	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13433		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13434	}
13435
13436	if invalidParams.Len() > 0 {
13437		return invalidParams
13438	}
13439	return nil
13440}
13441
13442// SetName sets the Name field's value.
13443func (s *CreateRequestValidatorInput) SetName(v string) *CreateRequestValidatorInput {
13444	s.Name = &v
13445	return s
13446}
13447
13448// SetRestApiId sets the RestApiId field's value.
13449func (s *CreateRequestValidatorInput) SetRestApiId(v string) *CreateRequestValidatorInput {
13450	s.RestApiId = &v
13451	return s
13452}
13453
13454// SetValidateRequestBody sets the ValidateRequestBody field's value.
13455func (s *CreateRequestValidatorInput) SetValidateRequestBody(v bool) *CreateRequestValidatorInput {
13456	s.ValidateRequestBody = &v
13457	return s
13458}
13459
13460// SetValidateRequestParameters sets the ValidateRequestParameters field's value.
13461func (s *CreateRequestValidatorInput) SetValidateRequestParameters(v bool) *CreateRequestValidatorInput {
13462	s.ValidateRequestParameters = &v
13463	return s
13464}
13465
13466// Requests API Gateway to create a Resource resource.
13467type CreateResourceInput struct {
13468	_ struct{} `type:"structure"`
13469
13470	// [Required] The parent resource's identifier.
13471	//
13472	// ParentId is a required field
13473	ParentId *string `location:"uri" locationName:"parent_id" type:"string" required:"true"`
13474
13475	// The last path segment for this resource.
13476	//
13477	// PathPart is a required field
13478	PathPart *string `locationName:"pathPart" type:"string" required:"true"`
13479
13480	// [Required] The string identifier of the associated RestApi.
13481	//
13482	// RestApiId is a required field
13483	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13484}
13485
13486// String returns the string representation.
13487//
13488// API parameter values that are decorated as "sensitive" in the API will not
13489// be included in the string output. The member name will be present, but the
13490// value will be replaced with "sensitive".
13491func (s CreateResourceInput) String() string {
13492	return awsutil.Prettify(s)
13493}
13494
13495// GoString returns the string representation.
13496//
13497// API parameter values that are decorated as "sensitive" in the API will not
13498// be included in the string output. The member name will be present, but the
13499// value will be replaced with "sensitive".
13500func (s CreateResourceInput) GoString() string {
13501	return s.String()
13502}
13503
13504// Validate inspects the fields of the type to determine if they are valid.
13505func (s *CreateResourceInput) Validate() error {
13506	invalidParams := request.ErrInvalidParams{Context: "CreateResourceInput"}
13507	if s.ParentId == nil {
13508		invalidParams.Add(request.NewErrParamRequired("ParentId"))
13509	}
13510	if s.ParentId != nil && len(*s.ParentId) < 1 {
13511		invalidParams.Add(request.NewErrParamMinLen("ParentId", 1))
13512	}
13513	if s.PathPart == nil {
13514		invalidParams.Add(request.NewErrParamRequired("PathPart"))
13515	}
13516	if s.RestApiId == nil {
13517		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13518	}
13519	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13520		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13521	}
13522
13523	if invalidParams.Len() > 0 {
13524		return invalidParams
13525	}
13526	return nil
13527}
13528
13529// SetParentId sets the ParentId field's value.
13530func (s *CreateResourceInput) SetParentId(v string) *CreateResourceInput {
13531	s.ParentId = &v
13532	return s
13533}
13534
13535// SetPathPart sets the PathPart field's value.
13536func (s *CreateResourceInput) SetPathPart(v string) *CreateResourceInput {
13537	s.PathPart = &v
13538	return s
13539}
13540
13541// SetRestApiId sets the RestApiId field's value.
13542func (s *CreateResourceInput) SetRestApiId(v string) *CreateResourceInput {
13543	s.RestApiId = &v
13544	return s
13545}
13546
13547// The POST Request to add a new RestApi resource to your collection.
13548type CreateRestApiInput struct {
13549	_ struct{} `type:"structure"`
13550
13551	// The source of the API key for metering requests according to a usage plan.
13552	// Valid values are:
13553	//    * HEADER to read the API key from the X-API-Key header of a request.
13554	//
13555	//    * AUTHORIZER to read the API key from the UsageIdentifierKey from a custom
13556	//    authorizer.
13557	ApiKeySource *string `locationName:"apiKeySource" type:"string" enum:"ApiKeySourceType"`
13558
13559	// The list of binary media types supported by the RestApi. By default, the
13560	// RestApi supports only UTF-8-encoded text payloads.
13561	BinaryMediaTypes []*string `locationName:"binaryMediaTypes" type:"list"`
13562
13563	// The ID of the RestApi that you want to clone from.
13564	CloneFrom *string `locationName:"cloneFrom" type:"string"`
13565
13566	// The description of the RestApi.
13567	Description *string `locationName:"description" type:"string"`
13568
13569	// Specifies whether clients can invoke your API by using the default execute-api
13570	// endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com
13571	// endpoint. To require that clients use a custom domain name to invoke your
13572	// API, disable the default endpoint.
13573	DisableExecuteApiEndpoint *bool `locationName:"disableExecuteApiEndpoint" type:"boolean"`
13574
13575	// The endpoint configuration of this RestApi showing the endpoint types of
13576	// the API.
13577	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
13578
13579	// A nullable integer that is used to enable compression (with non-negative
13580	// between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with
13581	// a null value) on an API. When compression is enabled, compression or decompression
13582	// is not applied on the payload if the payload size is smaller than this value.
13583	// Setting it to zero allows compression for any payload size.
13584	MinimumCompressionSize *int64 `locationName:"minimumCompressionSize" type:"integer"`
13585
13586	// [Required] The name of the RestApi.
13587	//
13588	// Name is a required field
13589	Name *string `locationName:"name" type:"string" required:"true"`
13590
13591	// A stringified JSON policy document that applies to this RestApi regardless
13592	// of the caller and Method configuration.
13593	Policy *string `locationName:"policy" type:"string"`
13594
13595	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13596	// The tag key can be up to 128 characters and must not start with aws:. The
13597	// tag value can be up to 256 characters.
13598	Tags map[string]*string `locationName:"tags" type:"map"`
13599
13600	// A version identifier for the API.
13601	Version *string `locationName:"version" type:"string"`
13602}
13603
13604// String returns the string representation.
13605//
13606// API parameter values that are decorated as "sensitive" in the API will not
13607// be included in the string output. The member name will be present, but the
13608// value will be replaced with "sensitive".
13609func (s CreateRestApiInput) String() string {
13610	return awsutil.Prettify(s)
13611}
13612
13613// GoString returns the string representation.
13614//
13615// API parameter values that are decorated as "sensitive" in the API will not
13616// be included in the string output. The member name will be present, but the
13617// value will be replaced with "sensitive".
13618func (s CreateRestApiInput) GoString() string {
13619	return s.String()
13620}
13621
13622// Validate inspects the fields of the type to determine if they are valid.
13623func (s *CreateRestApiInput) Validate() error {
13624	invalidParams := request.ErrInvalidParams{Context: "CreateRestApiInput"}
13625	if s.Name == nil {
13626		invalidParams.Add(request.NewErrParamRequired("Name"))
13627	}
13628
13629	if invalidParams.Len() > 0 {
13630		return invalidParams
13631	}
13632	return nil
13633}
13634
13635// SetApiKeySource sets the ApiKeySource field's value.
13636func (s *CreateRestApiInput) SetApiKeySource(v string) *CreateRestApiInput {
13637	s.ApiKeySource = &v
13638	return s
13639}
13640
13641// SetBinaryMediaTypes sets the BinaryMediaTypes field's value.
13642func (s *CreateRestApiInput) SetBinaryMediaTypes(v []*string) *CreateRestApiInput {
13643	s.BinaryMediaTypes = v
13644	return s
13645}
13646
13647// SetCloneFrom sets the CloneFrom field's value.
13648func (s *CreateRestApiInput) SetCloneFrom(v string) *CreateRestApiInput {
13649	s.CloneFrom = &v
13650	return s
13651}
13652
13653// SetDescription sets the Description field's value.
13654func (s *CreateRestApiInput) SetDescription(v string) *CreateRestApiInput {
13655	s.Description = &v
13656	return s
13657}
13658
13659// SetDisableExecuteApiEndpoint sets the DisableExecuteApiEndpoint field's value.
13660func (s *CreateRestApiInput) SetDisableExecuteApiEndpoint(v bool) *CreateRestApiInput {
13661	s.DisableExecuteApiEndpoint = &v
13662	return s
13663}
13664
13665// SetEndpointConfiguration sets the EndpointConfiguration field's value.
13666func (s *CreateRestApiInput) SetEndpointConfiguration(v *EndpointConfiguration) *CreateRestApiInput {
13667	s.EndpointConfiguration = v
13668	return s
13669}
13670
13671// SetMinimumCompressionSize sets the MinimumCompressionSize field's value.
13672func (s *CreateRestApiInput) SetMinimumCompressionSize(v int64) *CreateRestApiInput {
13673	s.MinimumCompressionSize = &v
13674	return s
13675}
13676
13677// SetName sets the Name field's value.
13678func (s *CreateRestApiInput) SetName(v string) *CreateRestApiInput {
13679	s.Name = &v
13680	return s
13681}
13682
13683// SetPolicy sets the Policy field's value.
13684func (s *CreateRestApiInput) SetPolicy(v string) *CreateRestApiInput {
13685	s.Policy = &v
13686	return s
13687}
13688
13689// SetTags sets the Tags field's value.
13690func (s *CreateRestApiInput) SetTags(v map[string]*string) *CreateRestApiInput {
13691	s.Tags = v
13692	return s
13693}
13694
13695// SetVersion sets the Version field's value.
13696func (s *CreateRestApiInput) SetVersion(v string) *CreateRestApiInput {
13697	s.Version = &v
13698	return s
13699}
13700
13701// Requests API Gateway to create a Stage resource.
13702type CreateStageInput struct {
13703	_ struct{} `type:"structure"`
13704
13705	// Whether cache clustering is enabled for the stage.
13706	CacheClusterEnabled *bool `locationName:"cacheClusterEnabled" type:"boolean"`
13707
13708	// The stage's cache cluster size.
13709	CacheClusterSize *string `locationName:"cacheClusterSize" type:"string" enum:"CacheClusterSize"`
13710
13711	// The canary deployment settings of this stage.
13712	CanarySettings *CanarySettings `locationName:"canarySettings" type:"structure"`
13713
13714	// [Required] The identifier of the Deployment resource for the Stage resource.
13715	//
13716	// DeploymentId is a required field
13717	DeploymentId *string `locationName:"deploymentId" type:"string" required:"true"`
13718
13719	// The description of the Stage resource.
13720	Description *string `locationName:"description" type:"string"`
13721
13722	// The version of the associated API documentation.
13723	DocumentationVersion *string `locationName:"documentationVersion" type:"string"`
13724
13725	// [Required] The string identifier of the associated RestApi.
13726	//
13727	// RestApiId is a required field
13728	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
13729
13730	// [Required] The name for the Stage resource. Stage names can only contain
13731	// alphanumeric characters, hyphens, and underscores. Maximum length is 128
13732	// characters.
13733	//
13734	// StageName is a required field
13735	StageName *string `locationName:"stageName" type:"string" required:"true"`
13736
13737	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13738	// The tag key can be up to 128 characters and must not start with aws:. The
13739	// tag value can be up to 256 characters.
13740	Tags map[string]*string `locationName:"tags" type:"map"`
13741
13742	// Specifies whether active tracing with X-ray is enabled for the Stage.
13743	TracingEnabled *bool `locationName:"tracingEnabled" type:"boolean"`
13744
13745	// A map that defines the stage variables for the new Stage resource. Variable
13746	// names can have alphanumeric and underscore characters, and the values must
13747	// match [A-Za-z0-9-._~:/?#&=,]+.
13748	Variables map[string]*string `locationName:"variables" type:"map"`
13749}
13750
13751// String returns the string representation.
13752//
13753// API parameter values that are decorated as "sensitive" in the API will not
13754// be included in the string output. The member name will be present, but the
13755// value will be replaced with "sensitive".
13756func (s CreateStageInput) String() string {
13757	return awsutil.Prettify(s)
13758}
13759
13760// GoString returns the string representation.
13761//
13762// API parameter values that are decorated as "sensitive" in the API will not
13763// be included in the string output. The member name will be present, but the
13764// value will be replaced with "sensitive".
13765func (s CreateStageInput) GoString() string {
13766	return s.String()
13767}
13768
13769// Validate inspects the fields of the type to determine if they are valid.
13770func (s *CreateStageInput) Validate() error {
13771	invalidParams := request.ErrInvalidParams{Context: "CreateStageInput"}
13772	if s.DeploymentId == nil {
13773		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
13774	}
13775	if s.RestApiId == nil {
13776		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
13777	}
13778	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
13779		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
13780	}
13781	if s.StageName == nil {
13782		invalidParams.Add(request.NewErrParamRequired("StageName"))
13783	}
13784
13785	if invalidParams.Len() > 0 {
13786		return invalidParams
13787	}
13788	return nil
13789}
13790
13791// SetCacheClusterEnabled sets the CacheClusterEnabled field's value.
13792func (s *CreateStageInput) SetCacheClusterEnabled(v bool) *CreateStageInput {
13793	s.CacheClusterEnabled = &v
13794	return s
13795}
13796
13797// SetCacheClusterSize sets the CacheClusterSize field's value.
13798func (s *CreateStageInput) SetCacheClusterSize(v string) *CreateStageInput {
13799	s.CacheClusterSize = &v
13800	return s
13801}
13802
13803// SetCanarySettings sets the CanarySettings field's value.
13804func (s *CreateStageInput) SetCanarySettings(v *CanarySettings) *CreateStageInput {
13805	s.CanarySettings = v
13806	return s
13807}
13808
13809// SetDeploymentId sets the DeploymentId field's value.
13810func (s *CreateStageInput) SetDeploymentId(v string) *CreateStageInput {
13811	s.DeploymentId = &v
13812	return s
13813}
13814
13815// SetDescription sets the Description field's value.
13816func (s *CreateStageInput) SetDescription(v string) *CreateStageInput {
13817	s.Description = &v
13818	return s
13819}
13820
13821// SetDocumentationVersion sets the DocumentationVersion field's value.
13822func (s *CreateStageInput) SetDocumentationVersion(v string) *CreateStageInput {
13823	s.DocumentationVersion = &v
13824	return s
13825}
13826
13827// SetRestApiId sets the RestApiId field's value.
13828func (s *CreateStageInput) SetRestApiId(v string) *CreateStageInput {
13829	s.RestApiId = &v
13830	return s
13831}
13832
13833// SetStageName sets the StageName field's value.
13834func (s *CreateStageInput) SetStageName(v string) *CreateStageInput {
13835	s.StageName = &v
13836	return s
13837}
13838
13839// SetTags sets the Tags field's value.
13840func (s *CreateStageInput) SetTags(v map[string]*string) *CreateStageInput {
13841	s.Tags = v
13842	return s
13843}
13844
13845// SetTracingEnabled sets the TracingEnabled field's value.
13846func (s *CreateStageInput) SetTracingEnabled(v bool) *CreateStageInput {
13847	s.TracingEnabled = &v
13848	return s
13849}
13850
13851// SetVariables sets the Variables field's value.
13852func (s *CreateStageInput) SetVariables(v map[string]*string) *CreateStageInput {
13853	s.Variables = v
13854	return s
13855}
13856
13857// The POST request to create a usage plan with the name, description, throttle
13858// limits and quota limits, as well as the associated API stages, specified
13859// in the payload.
13860type CreateUsagePlanInput struct {
13861	_ struct{} `type:"structure"`
13862
13863	// The associated API stages of the usage plan.
13864	ApiStages []*ApiStage `locationName:"apiStages" type:"list"`
13865
13866	// The description of the usage plan.
13867	Description *string `locationName:"description" type:"string"`
13868
13869	// [Required] The name of the usage plan.
13870	//
13871	// Name is a required field
13872	Name *string `locationName:"name" type:"string" required:"true"`
13873
13874	// The quota of the usage plan.
13875	Quota *QuotaSettings `locationName:"quota" type:"structure"`
13876
13877	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
13878	// The tag key can be up to 128 characters and must not start with aws:. The
13879	// tag value can be up to 256 characters.
13880	Tags map[string]*string `locationName:"tags" type:"map"`
13881
13882	// The throttling limits of the usage plan.
13883	Throttle *ThrottleSettings `locationName:"throttle" type:"structure"`
13884}
13885
13886// String returns the string representation.
13887//
13888// API parameter values that are decorated as "sensitive" in the API will not
13889// be included in the string output. The member name will be present, but the
13890// value will be replaced with "sensitive".
13891func (s CreateUsagePlanInput) String() string {
13892	return awsutil.Prettify(s)
13893}
13894
13895// GoString returns the string representation.
13896//
13897// API parameter values that are decorated as "sensitive" in the API will not
13898// be included in the string output. The member name will be present, but the
13899// value will be replaced with "sensitive".
13900func (s CreateUsagePlanInput) GoString() string {
13901	return s.String()
13902}
13903
13904// Validate inspects the fields of the type to determine if they are valid.
13905func (s *CreateUsagePlanInput) Validate() error {
13906	invalidParams := request.ErrInvalidParams{Context: "CreateUsagePlanInput"}
13907	if s.Name == nil {
13908		invalidParams.Add(request.NewErrParamRequired("Name"))
13909	}
13910
13911	if invalidParams.Len() > 0 {
13912		return invalidParams
13913	}
13914	return nil
13915}
13916
13917// SetApiStages sets the ApiStages field's value.
13918func (s *CreateUsagePlanInput) SetApiStages(v []*ApiStage) *CreateUsagePlanInput {
13919	s.ApiStages = v
13920	return s
13921}
13922
13923// SetDescription sets the Description field's value.
13924func (s *CreateUsagePlanInput) SetDescription(v string) *CreateUsagePlanInput {
13925	s.Description = &v
13926	return s
13927}
13928
13929// SetName sets the Name field's value.
13930func (s *CreateUsagePlanInput) SetName(v string) *CreateUsagePlanInput {
13931	s.Name = &v
13932	return s
13933}
13934
13935// SetQuota sets the Quota field's value.
13936func (s *CreateUsagePlanInput) SetQuota(v *QuotaSettings) *CreateUsagePlanInput {
13937	s.Quota = v
13938	return s
13939}
13940
13941// SetTags sets the Tags field's value.
13942func (s *CreateUsagePlanInput) SetTags(v map[string]*string) *CreateUsagePlanInput {
13943	s.Tags = v
13944	return s
13945}
13946
13947// SetThrottle sets the Throttle field's value.
13948func (s *CreateUsagePlanInput) SetThrottle(v *ThrottleSettings) *CreateUsagePlanInput {
13949	s.Throttle = v
13950	return s
13951}
13952
13953// The POST request to create a usage plan key for adding an existing API key
13954// to a usage plan.
13955type CreateUsagePlanKeyInput struct {
13956	_ struct{} `type:"structure"`
13957
13958	// [Required] The identifier of a UsagePlanKey resource for a plan customer.
13959	//
13960	// KeyId is a required field
13961	KeyId *string `locationName:"keyId" type:"string" required:"true"`
13962
13963	// [Required] The type of a UsagePlanKey resource for a plan customer.
13964	//
13965	// KeyType is a required field
13966	KeyType *string `locationName:"keyType" type:"string" required:"true"`
13967
13968	// [Required] The Id of the UsagePlan resource representing the usage plan containing
13969	// the to-be-created UsagePlanKey resource representing a plan customer.
13970	//
13971	// UsagePlanId is a required field
13972	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
13973}
13974
13975// String returns the string representation.
13976//
13977// API parameter values that are decorated as "sensitive" in the API will not
13978// be included in the string output. The member name will be present, but the
13979// value will be replaced with "sensitive".
13980func (s CreateUsagePlanKeyInput) String() string {
13981	return awsutil.Prettify(s)
13982}
13983
13984// GoString returns the string representation.
13985//
13986// API parameter values that are decorated as "sensitive" in the API will not
13987// be included in the string output. The member name will be present, but the
13988// value will be replaced with "sensitive".
13989func (s CreateUsagePlanKeyInput) GoString() string {
13990	return s.String()
13991}
13992
13993// Validate inspects the fields of the type to determine if they are valid.
13994func (s *CreateUsagePlanKeyInput) Validate() error {
13995	invalidParams := request.ErrInvalidParams{Context: "CreateUsagePlanKeyInput"}
13996	if s.KeyId == nil {
13997		invalidParams.Add(request.NewErrParamRequired("KeyId"))
13998	}
13999	if s.KeyType == nil {
14000		invalidParams.Add(request.NewErrParamRequired("KeyType"))
14001	}
14002	if s.UsagePlanId == nil {
14003		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
14004	}
14005	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
14006		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
14007	}
14008
14009	if invalidParams.Len() > 0 {
14010		return invalidParams
14011	}
14012	return nil
14013}
14014
14015// SetKeyId sets the KeyId field's value.
14016func (s *CreateUsagePlanKeyInput) SetKeyId(v string) *CreateUsagePlanKeyInput {
14017	s.KeyId = &v
14018	return s
14019}
14020
14021// SetKeyType sets the KeyType field's value.
14022func (s *CreateUsagePlanKeyInput) SetKeyType(v string) *CreateUsagePlanKeyInput {
14023	s.KeyType = &v
14024	return s
14025}
14026
14027// SetUsagePlanId sets the UsagePlanId field's value.
14028func (s *CreateUsagePlanKeyInput) SetUsagePlanId(v string) *CreateUsagePlanKeyInput {
14029	s.UsagePlanId = &v
14030	return s
14031}
14032
14033// Creates a VPC link, under the caller's account in a selected region, in an
14034// asynchronous operation that typically takes 2-4 minutes to complete and become
14035// operational. The caller must have permissions to create and update VPC Endpoint
14036// services.
14037type CreateVpcLinkInput struct {
14038	_ struct{} `type:"structure"`
14039
14040	// The description of the VPC link.
14041	Description *string `locationName:"description" type:"string"`
14042
14043	// [Required] The name used to label and identify the VPC link.
14044	//
14045	// Name is a required field
14046	Name *string `locationName:"name" type:"string" required:"true"`
14047
14048	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
14049	// The tag key can be up to 128 characters and must not start with aws:. The
14050	// tag value can be up to 256 characters.
14051	Tags map[string]*string `locationName:"tags" type:"map"`
14052
14053	// [Required] The ARN of the network load balancer of the VPC targeted by the
14054	// VPC link. The network load balancer must be owned by the same AWS account
14055	// of the API owner.
14056	//
14057	// TargetArns is a required field
14058	TargetArns []*string `locationName:"targetArns" type:"list" required:"true"`
14059}
14060
14061// String returns the string representation.
14062//
14063// API parameter values that are decorated as "sensitive" in the API will not
14064// be included in the string output. The member name will be present, but the
14065// value will be replaced with "sensitive".
14066func (s CreateVpcLinkInput) String() string {
14067	return awsutil.Prettify(s)
14068}
14069
14070// GoString returns the string representation.
14071//
14072// API parameter values that are decorated as "sensitive" in the API will not
14073// be included in the string output. The member name will be present, but the
14074// value will be replaced with "sensitive".
14075func (s CreateVpcLinkInput) GoString() string {
14076	return s.String()
14077}
14078
14079// Validate inspects the fields of the type to determine if they are valid.
14080func (s *CreateVpcLinkInput) Validate() error {
14081	invalidParams := request.ErrInvalidParams{Context: "CreateVpcLinkInput"}
14082	if s.Name == nil {
14083		invalidParams.Add(request.NewErrParamRequired("Name"))
14084	}
14085	if s.TargetArns == nil {
14086		invalidParams.Add(request.NewErrParamRequired("TargetArns"))
14087	}
14088
14089	if invalidParams.Len() > 0 {
14090		return invalidParams
14091	}
14092	return nil
14093}
14094
14095// SetDescription sets the Description field's value.
14096func (s *CreateVpcLinkInput) SetDescription(v string) *CreateVpcLinkInput {
14097	s.Description = &v
14098	return s
14099}
14100
14101// SetName sets the Name field's value.
14102func (s *CreateVpcLinkInput) SetName(v string) *CreateVpcLinkInput {
14103	s.Name = &v
14104	return s
14105}
14106
14107// SetTags sets the Tags field's value.
14108func (s *CreateVpcLinkInput) SetTags(v map[string]*string) *CreateVpcLinkInput {
14109	s.Tags = v
14110	return s
14111}
14112
14113// SetTargetArns sets the TargetArns field's value.
14114func (s *CreateVpcLinkInput) SetTargetArns(v []*string) *CreateVpcLinkInput {
14115	s.TargetArns = v
14116	return s
14117}
14118
14119// A request to delete the ApiKey resource.
14120type DeleteApiKeyInput struct {
14121	_ struct{} `type:"structure" nopayload:"true"`
14122
14123	// [Required] The identifier of the ApiKey resource to be deleted.
14124	//
14125	// ApiKey is a required field
14126	ApiKey *string `location:"uri" locationName:"api_Key" type:"string" required:"true"`
14127}
14128
14129// String returns the string representation.
14130//
14131// API parameter values that are decorated as "sensitive" in the API will not
14132// be included in the string output. The member name will be present, but the
14133// value will be replaced with "sensitive".
14134func (s DeleteApiKeyInput) String() string {
14135	return awsutil.Prettify(s)
14136}
14137
14138// GoString returns the string representation.
14139//
14140// API parameter values that are decorated as "sensitive" in the API will not
14141// be included in the string output. The member name will be present, but the
14142// value will be replaced with "sensitive".
14143func (s DeleteApiKeyInput) GoString() string {
14144	return s.String()
14145}
14146
14147// Validate inspects the fields of the type to determine if they are valid.
14148func (s *DeleteApiKeyInput) Validate() error {
14149	invalidParams := request.ErrInvalidParams{Context: "DeleteApiKeyInput"}
14150	if s.ApiKey == nil {
14151		invalidParams.Add(request.NewErrParamRequired("ApiKey"))
14152	}
14153	if s.ApiKey != nil && len(*s.ApiKey) < 1 {
14154		invalidParams.Add(request.NewErrParamMinLen("ApiKey", 1))
14155	}
14156
14157	if invalidParams.Len() > 0 {
14158		return invalidParams
14159	}
14160	return nil
14161}
14162
14163// SetApiKey sets the ApiKey field's value.
14164func (s *DeleteApiKeyInput) SetApiKey(v string) *DeleteApiKeyInput {
14165	s.ApiKey = &v
14166	return s
14167}
14168
14169type DeleteApiKeyOutput struct {
14170	_ struct{} `type:"structure"`
14171}
14172
14173// String returns the string representation.
14174//
14175// API parameter values that are decorated as "sensitive" in the API will not
14176// be included in the string output. The member name will be present, but the
14177// value will be replaced with "sensitive".
14178func (s DeleteApiKeyOutput) String() string {
14179	return awsutil.Prettify(s)
14180}
14181
14182// GoString returns the string representation.
14183//
14184// API parameter values that are decorated as "sensitive" in the API will not
14185// be included in the string output. The member name will be present, but the
14186// value will be replaced with "sensitive".
14187func (s DeleteApiKeyOutput) GoString() string {
14188	return s.String()
14189}
14190
14191// Request to delete an existing Authorizer resource.
14192type DeleteAuthorizerInput struct {
14193	_ struct{} `type:"structure" nopayload:"true"`
14194
14195	// [Required] The identifier of the Authorizer resource.
14196	//
14197	// AuthorizerId is a required field
14198	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
14199
14200	// [Required] The string identifier of the associated RestApi.
14201	//
14202	// RestApiId is a required field
14203	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14204}
14205
14206// String returns the string representation.
14207//
14208// API parameter values that are decorated as "sensitive" in the API will not
14209// be included in the string output. The member name will be present, but the
14210// value will be replaced with "sensitive".
14211func (s DeleteAuthorizerInput) String() string {
14212	return awsutil.Prettify(s)
14213}
14214
14215// GoString returns the string representation.
14216//
14217// API parameter values that are decorated as "sensitive" in the API will not
14218// be included in the string output. The member name will be present, but the
14219// value will be replaced with "sensitive".
14220func (s DeleteAuthorizerInput) GoString() string {
14221	return s.String()
14222}
14223
14224// Validate inspects the fields of the type to determine if they are valid.
14225func (s *DeleteAuthorizerInput) Validate() error {
14226	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
14227	if s.AuthorizerId == nil {
14228		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
14229	}
14230	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
14231		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
14232	}
14233	if s.RestApiId == nil {
14234		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14235	}
14236	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14237		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14238	}
14239
14240	if invalidParams.Len() > 0 {
14241		return invalidParams
14242	}
14243	return nil
14244}
14245
14246// SetAuthorizerId sets the AuthorizerId field's value.
14247func (s *DeleteAuthorizerInput) SetAuthorizerId(v string) *DeleteAuthorizerInput {
14248	s.AuthorizerId = &v
14249	return s
14250}
14251
14252// SetRestApiId sets the RestApiId field's value.
14253func (s *DeleteAuthorizerInput) SetRestApiId(v string) *DeleteAuthorizerInput {
14254	s.RestApiId = &v
14255	return s
14256}
14257
14258type DeleteAuthorizerOutput struct {
14259	_ struct{} `type:"structure"`
14260}
14261
14262// String returns the string representation.
14263//
14264// API parameter values that are decorated as "sensitive" in the API will not
14265// be included in the string output. The member name will be present, but the
14266// value will be replaced with "sensitive".
14267func (s DeleteAuthorizerOutput) String() string {
14268	return awsutil.Prettify(s)
14269}
14270
14271// GoString returns the string representation.
14272//
14273// API parameter values that are decorated as "sensitive" in the API will not
14274// be included in the string output. The member name will be present, but the
14275// value will be replaced with "sensitive".
14276func (s DeleteAuthorizerOutput) GoString() string {
14277	return s.String()
14278}
14279
14280// A request to delete the BasePathMapping resource.
14281type DeleteBasePathMappingInput struct {
14282	_ struct{} `type:"structure" nopayload:"true"`
14283
14284	// [Required] The base path name of the BasePathMapping resource to delete.
14285	//
14286	// To specify an empty base path, set this parameter to '(none)'.
14287	//
14288	// BasePath is a required field
14289	BasePath *string `location:"uri" locationName:"base_path" type:"string" required:"true"`
14290
14291	// [Required] The domain name of the BasePathMapping resource to delete.
14292	//
14293	// DomainName is a required field
14294	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
14295}
14296
14297// String returns the string representation.
14298//
14299// API parameter values that are decorated as "sensitive" in the API will not
14300// be included in the string output. The member name will be present, but the
14301// value will be replaced with "sensitive".
14302func (s DeleteBasePathMappingInput) String() string {
14303	return awsutil.Prettify(s)
14304}
14305
14306// GoString returns the string representation.
14307//
14308// API parameter values that are decorated as "sensitive" in the API will not
14309// be included in the string output. The member name will be present, but the
14310// value will be replaced with "sensitive".
14311func (s DeleteBasePathMappingInput) GoString() string {
14312	return s.String()
14313}
14314
14315// Validate inspects the fields of the type to determine if they are valid.
14316func (s *DeleteBasePathMappingInput) Validate() error {
14317	invalidParams := request.ErrInvalidParams{Context: "DeleteBasePathMappingInput"}
14318	if s.BasePath == nil {
14319		invalidParams.Add(request.NewErrParamRequired("BasePath"))
14320	}
14321	if s.BasePath != nil && len(*s.BasePath) < 1 {
14322		invalidParams.Add(request.NewErrParamMinLen("BasePath", 1))
14323	}
14324	if s.DomainName == nil {
14325		invalidParams.Add(request.NewErrParamRequired("DomainName"))
14326	}
14327	if s.DomainName != nil && len(*s.DomainName) < 1 {
14328		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
14329	}
14330
14331	if invalidParams.Len() > 0 {
14332		return invalidParams
14333	}
14334	return nil
14335}
14336
14337// SetBasePath sets the BasePath field's value.
14338func (s *DeleteBasePathMappingInput) SetBasePath(v string) *DeleteBasePathMappingInput {
14339	s.BasePath = &v
14340	return s
14341}
14342
14343// SetDomainName sets the DomainName field's value.
14344func (s *DeleteBasePathMappingInput) SetDomainName(v string) *DeleteBasePathMappingInput {
14345	s.DomainName = &v
14346	return s
14347}
14348
14349type DeleteBasePathMappingOutput struct {
14350	_ struct{} `type:"structure"`
14351}
14352
14353// String returns the string representation.
14354//
14355// API parameter values that are decorated as "sensitive" in the API will not
14356// be included in the string output. The member name will be present, but the
14357// value will be replaced with "sensitive".
14358func (s DeleteBasePathMappingOutput) String() string {
14359	return awsutil.Prettify(s)
14360}
14361
14362// GoString returns the string representation.
14363//
14364// API parameter values that are decorated as "sensitive" in the API will not
14365// be included in the string output. The member name will be present, but the
14366// value will be replaced with "sensitive".
14367func (s DeleteBasePathMappingOutput) GoString() string {
14368	return s.String()
14369}
14370
14371// A request to delete the ClientCertificate resource.
14372type DeleteClientCertificateInput struct {
14373	_ struct{} `type:"structure" nopayload:"true"`
14374
14375	// [Required] The identifier of the ClientCertificate resource to be deleted.
14376	//
14377	// ClientCertificateId is a required field
14378	ClientCertificateId *string `location:"uri" locationName:"clientcertificate_id" type:"string" required:"true"`
14379}
14380
14381// String returns the string representation.
14382//
14383// API parameter values that are decorated as "sensitive" in the API will not
14384// be included in the string output. The member name will be present, but the
14385// value will be replaced with "sensitive".
14386func (s DeleteClientCertificateInput) String() string {
14387	return awsutil.Prettify(s)
14388}
14389
14390// GoString returns the string representation.
14391//
14392// API parameter values that are decorated as "sensitive" in the API will not
14393// be included in the string output. The member name will be present, but the
14394// value will be replaced with "sensitive".
14395func (s DeleteClientCertificateInput) GoString() string {
14396	return s.String()
14397}
14398
14399// Validate inspects the fields of the type to determine if they are valid.
14400func (s *DeleteClientCertificateInput) Validate() error {
14401	invalidParams := request.ErrInvalidParams{Context: "DeleteClientCertificateInput"}
14402	if s.ClientCertificateId == nil {
14403		invalidParams.Add(request.NewErrParamRequired("ClientCertificateId"))
14404	}
14405	if s.ClientCertificateId != nil && len(*s.ClientCertificateId) < 1 {
14406		invalidParams.Add(request.NewErrParamMinLen("ClientCertificateId", 1))
14407	}
14408
14409	if invalidParams.Len() > 0 {
14410		return invalidParams
14411	}
14412	return nil
14413}
14414
14415// SetClientCertificateId sets the ClientCertificateId field's value.
14416func (s *DeleteClientCertificateInput) SetClientCertificateId(v string) *DeleteClientCertificateInput {
14417	s.ClientCertificateId = &v
14418	return s
14419}
14420
14421type DeleteClientCertificateOutput struct {
14422	_ struct{} `type:"structure"`
14423}
14424
14425// String returns the string representation.
14426//
14427// API parameter values that are decorated as "sensitive" in the API will not
14428// be included in the string output. The member name will be present, but the
14429// value will be replaced with "sensitive".
14430func (s DeleteClientCertificateOutput) String() string {
14431	return awsutil.Prettify(s)
14432}
14433
14434// GoString returns the string representation.
14435//
14436// API parameter values that are decorated as "sensitive" in the API will not
14437// be included in the string output. The member name will be present, but the
14438// value will be replaced with "sensitive".
14439func (s DeleteClientCertificateOutput) GoString() string {
14440	return s.String()
14441}
14442
14443// Requests API Gateway to delete a Deployment resource.
14444type DeleteDeploymentInput struct {
14445	_ struct{} `type:"structure" nopayload:"true"`
14446
14447	// [Required] The identifier of the Deployment resource to delete.
14448	//
14449	// DeploymentId is a required field
14450	DeploymentId *string `location:"uri" locationName:"deployment_id" type:"string" required:"true"`
14451
14452	// [Required] The string identifier of the associated RestApi.
14453	//
14454	// RestApiId is a required field
14455	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14456}
14457
14458// String returns the string representation.
14459//
14460// API parameter values that are decorated as "sensitive" in the API will not
14461// be included in the string output. The member name will be present, but the
14462// value will be replaced with "sensitive".
14463func (s DeleteDeploymentInput) String() string {
14464	return awsutil.Prettify(s)
14465}
14466
14467// GoString returns the string representation.
14468//
14469// API parameter values that are decorated as "sensitive" in the API will not
14470// be included in the string output. The member name will be present, but the
14471// value will be replaced with "sensitive".
14472func (s DeleteDeploymentInput) GoString() string {
14473	return s.String()
14474}
14475
14476// Validate inspects the fields of the type to determine if they are valid.
14477func (s *DeleteDeploymentInput) Validate() error {
14478	invalidParams := request.ErrInvalidParams{Context: "DeleteDeploymentInput"}
14479	if s.DeploymentId == nil {
14480		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
14481	}
14482	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
14483		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
14484	}
14485	if s.RestApiId == nil {
14486		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14487	}
14488	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14489		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14490	}
14491
14492	if invalidParams.Len() > 0 {
14493		return invalidParams
14494	}
14495	return nil
14496}
14497
14498// SetDeploymentId sets the DeploymentId field's value.
14499func (s *DeleteDeploymentInput) SetDeploymentId(v string) *DeleteDeploymentInput {
14500	s.DeploymentId = &v
14501	return s
14502}
14503
14504// SetRestApiId sets the RestApiId field's value.
14505func (s *DeleteDeploymentInput) SetRestApiId(v string) *DeleteDeploymentInput {
14506	s.RestApiId = &v
14507	return s
14508}
14509
14510type DeleteDeploymentOutput struct {
14511	_ struct{} `type:"structure"`
14512}
14513
14514// String returns the string representation.
14515//
14516// API parameter values that are decorated as "sensitive" in the API will not
14517// be included in the string output. The member name will be present, but the
14518// value will be replaced with "sensitive".
14519func (s DeleteDeploymentOutput) String() string {
14520	return awsutil.Prettify(s)
14521}
14522
14523// GoString returns the string representation.
14524//
14525// API parameter values that are decorated as "sensitive" in the API will not
14526// be included in the string output. The member name will be present, but the
14527// value will be replaced with "sensitive".
14528func (s DeleteDeploymentOutput) GoString() string {
14529	return s.String()
14530}
14531
14532// Deletes an existing documentation part of an API.
14533type DeleteDocumentationPartInput struct {
14534	_ struct{} `type:"structure" nopayload:"true"`
14535
14536	// [Required] The identifier of the to-be-deleted documentation part.
14537	//
14538	// DocumentationPartId is a required field
14539	DocumentationPartId *string `location:"uri" locationName:"part_id" type:"string" required:"true"`
14540
14541	// [Required] The string identifier of the associated RestApi.
14542	//
14543	// RestApiId is a required field
14544	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14545}
14546
14547// String returns the string representation.
14548//
14549// API parameter values that are decorated as "sensitive" in the API will not
14550// be included in the string output. The member name will be present, but the
14551// value will be replaced with "sensitive".
14552func (s DeleteDocumentationPartInput) String() string {
14553	return awsutil.Prettify(s)
14554}
14555
14556// GoString returns the string representation.
14557//
14558// API parameter values that are decorated as "sensitive" in the API will not
14559// be included in the string output. The member name will be present, but the
14560// value will be replaced with "sensitive".
14561func (s DeleteDocumentationPartInput) GoString() string {
14562	return s.String()
14563}
14564
14565// Validate inspects the fields of the type to determine if they are valid.
14566func (s *DeleteDocumentationPartInput) Validate() error {
14567	invalidParams := request.ErrInvalidParams{Context: "DeleteDocumentationPartInput"}
14568	if s.DocumentationPartId == nil {
14569		invalidParams.Add(request.NewErrParamRequired("DocumentationPartId"))
14570	}
14571	if s.DocumentationPartId != nil && len(*s.DocumentationPartId) < 1 {
14572		invalidParams.Add(request.NewErrParamMinLen("DocumentationPartId", 1))
14573	}
14574	if s.RestApiId == nil {
14575		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14576	}
14577	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14578		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14579	}
14580
14581	if invalidParams.Len() > 0 {
14582		return invalidParams
14583	}
14584	return nil
14585}
14586
14587// SetDocumentationPartId sets the DocumentationPartId field's value.
14588func (s *DeleteDocumentationPartInput) SetDocumentationPartId(v string) *DeleteDocumentationPartInput {
14589	s.DocumentationPartId = &v
14590	return s
14591}
14592
14593// SetRestApiId sets the RestApiId field's value.
14594func (s *DeleteDocumentationPartInput) SetRestApiId(v string) *DeleteDocumentationPartInput {
14595	s.RestApiId = &v
14596	return s
14597}
14598
14599type DeleteDocumentationPartOutput struct {
14600	_ struct{} `type:"structure"`
14601}
14602
14603// String returns the string representation.
14604//
14605// API parameter values that are decorated as "sensitive" in the API will not
14606// be included in the string output. The member name will be present, but the
14607// value will be replaced with "sensitive".
14608func (s DeleteDocumentationPartOutput) String() string {
14609	return awsutil.Prettify(s)
14610}
14611
14612// GoString returns the string representation.
14613//
14614// API parameter values that are decorated as "sensitive" in the API will not
14615// be included in the string output. The member name will be present, but the
14616// value will be replaced with "sensitive".
14617func (s DeleteDocumentationPartOutput) GoString() string {
14618	return s.String()
14619}
14620
14621// Deletes an existing documentation version of an API.
14622type DeleteDocumentationVersionInput struct {
14623	_ struct{} `type:"structure" nopayload:"true"`
14624
14625	// [Required] The version identifier of a to-be-deleted documentation snapshot.
14626	//
14627	// DocumentationVersion is a required field
14628	DocumentationVersion *string `location:"uri" locationName:"doc_version" type:"string" required:"true"`
14629
14630	// [Required] The string identifier of the associated RestApi.
14631	//
14632	// RestApiId is a required field
14633	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14634}
14635
14636// String returns the string representation.
14637//
14638// API parameter values that are decorated as "sensitive" in the API will not
14639// be included in the string output. The member name will be present, but the
14640// value will be replaced with "sensitive".
14641func (s DeleteDocumentationVersionInput) String() string {
14642	return awsutil.Prettify(s)
14643}
14644
14645// GoString returns the string representation.
14646//
14647// API parameter values that are decorated as "sensitive" in the API will not
14648// be included in the string output. The member name will be present, but the
14649// value will be replaced with "sensitive".
14650func (s DeleteDocumentationVersionInput) GoString() string {
14651	return s.String()
14652}
14653
14654// Validate inspects the fields of the type to determine if they are valid.
14655func (s *DeleteDocumentationVersionInput) Validate() error {
14656	invalidParams := request.ErrInvalidParams{Context: "DeleteDocumentationVersionInput"}
14657	if s.DocumentationVersion == nil {
14658		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
14659	}
14660	if s.DocumentationVersion != nil && len(*s.DocumentationVersion) < 1 {
14661		invalidParams.Add(request.NewErrParamMinLen("DocumentationVersion", 1))
14662	}
14663	if s.RestApiId == nil {
14664		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14665	}
14666	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14667		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14668	}
14669
14670	if invalidParams.Len() > 0 {
14671		return invalidParams
14672	}
14673	return nil
14674}
14675
14676// SetDocumentationVersion sets the DocumentationVersion field's value.
14677func (s *DeleteDocumentationVersionInput) SetDocumentationVersion(v string) *DeleteDocumentationVersionInput {
14678	s.DocumentationVersion = &v
14679	return s
14680}
14681
14682// SetRestApiId sets the RestApiId field's value.
14683func (s *DeleteDocumentationVersionInput) SetRestApiId(v string) *DeleteDocumentationVersionInput {
14684	s.RestApiId = &v
14685	return s
14686}
14687
14688type DeleteDocumentationVersionOutput struct {
14689	_ struct{} `type:"structure"`
14690}
14691
14692// String returns the string representation.
14693//
14694// API parameter values that are decorated as "sensitive" in the API will not
14695// be included in the string output. The member name will be present, but the
14696// value will be replaced with "sensitive".
14697func (s DeleteDocumentationVersionOutput) String() string {
14698	return awsutil.Prettify(s)
14699}
14700
14701// GoString returns the string representation.
14702//
14703// API parameter values that are decorated as "sensitive" in the API will not
14704// be included in the string output. The member name will be present, but the
14705// value will be replaced with "sensitive".
14706func (s DeleteDocumentationVersionOutput) GoString() string {
14707	return s.String()
14708}
14709
14710// A request to delete the DomainName resource.
14711type DeleteDomainNameInput struct {
14712	_ struct{} `type:"structure" nopayload:"true"`
14713
14714	// [Required] The name of the DomainName resource to be deleted.
14715	//
14716	// DomainName is a required field
14717	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
14718}
14719
14720// String returns the string representation.
14721//
14722// API parameter values that are decorated as "sensitive" in the API will not
14723// be included in the string output. The member name will be present, but the
14724// value will be replaced with "sensitive".
14725func (s DeleteDomainNameInput) String() string {
14726	return awsutil.Prettify(s)
14727}
14728
14729// GoString returns the string representation.
14730//
14731// API parameter values that are decorated as "sensitive" in the API will not
14732// be included in the string output. The member name will be present, but the
14733// value will be replaced with "sensitive".
14734func (s DeleteDomainNameInput) GoString() string {
14735	return s.String()
14736}
14737
14738// Validate inspects the fields of the type to determine if they are valid.
14739func (s *DeleteDomainNameInput) Validate() error {
14740	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainNameInput"}
14741	if s.DomainName == nil {
14742		invalidParams.Add(request.NewErrParamRequired("DomainName"))
14743	}
14744	if s.DomainName != nil && len(*s.DomainName) < 1 {
14745		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
14746	}
14747
14748	if invalidParams.Len() > 0 {
14749		return invalidParams
14750	}
14751	return nil
14752}
14753
14754// SetDomainName sets the DomainName field's value.
14755func (s *DeleteDomainNameInput) SetDomainName(v string) *DeleteDomainNameInput {
14756	s.DomainName = &v
14757	return s
14758}
14759
14760type DeleteDomainNameOutput struct {
14761	_ struct{} `type:"structure"`
14762}
14763
14764// String returns the string representation.
14765//
14766// API parameter values that are decorated as "sensitive" in the API will not
14767// be included in the string output. The member name will be present, but the
14768// value will be replaced with "sensitive".
14769func (s DeleteDomainNameOutput) String() string {
14770	return awsutil.Prettify(s)
14771}
14772
14773// GoString returns the string representation.
14774//
14775// API parameter values that are decorated as "sensitive" in the API will not
14776// be included in the string output. The member name will be present, but the
14777// value will be replaced with "sensitive".
14778func (s DeleteDomainNameOutput) GoString() string {
14779	return s.String()
14780}
14781
14782// Clears any customization of a GatewayResponse of a specified response type
14783// on the given RestApi and resets it with the default settings.
14784type DeleteGatewayResponseInput struct {
14785	_ struct{} `type:"structure" nopayload:"true"`
14786
14787	// [Required]
14788	// The response type of the associated GatewayResponse.
14789	//
14790	// ResponseType is a required field
14791	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
14792
14793	// [Required] The string identifier of the associated RestApi.
14794	//
14795	// RestApiId is a required field
14796	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14797}
14798
14799// String returns the string representation.
14800//
14801// API parameter values that are decorated as "sensitive" in the API will not
14802// be included in the string output. The member name will be present, but the
14803// value will be replaced with "sensitive".
14804func (s DeleteGatewayResponseInput) String() string {
14805	return awsutil.Prettify(s)
14806}
14807
14808// GoString returns the string representation.
14809//
14810// API parameter values that are decorated as "sensitive" in the API will not
14811// be included in the string output. The member name will be present, but the
14812// value will be replaced with "sensitive".
14813func (s DeleteGatewayResponseInput) GoString() string {
14814	return s.String()
14815}
14816
14817// Validate inspects the fields of the type to determine if they are valid.
14818func (s *DeleteGatewayResponseInput) Validate() error {
14819	invalidParams := request.ErrInvalidParams{Context: "DeleteGatewayResponseInput"}
14820	if s.ResponseType == nil {
14821		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
14822	}
14823	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
14824		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
14825	}
14826	if s.RestApiId == nil {
14827		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14828	}
14829	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14830		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14831	}
14832
14833	if invalidParams.Len() > 0 {
14834		return invalidParams
14835	}
14836	return nil
14837}
14838
14839// SetResponseType sets the ResponseType field's value.
14840func (s *DeleteGatewayResponseInput) SetResponseType(v string) *DeleteGatewayResponseInput {
14841	s.ResponseType = &v
14842	return s
14843}
14844
14845// SetRestApiId sets the RestApiId field's value.
14846func (s *DeleteGatewayResponseInput) SetRestApiId(v string) *DeleteGatewayResponseInput {
14847	s.RestApiId = &v
14848	return s
14849}
14850
14851type DeleteGatewayResponseOutput struct {
14852	_ struct{} `type:"structure"`
14853}
14854
14855// String returns the string representation.
14856//
14857// API parameter values that are decorated as "sensitive" in the API will not
14858// be included in the string output. The member name will be present, but the
14859// value will be replaced with "sensitive".
14860func (s DeleteGatewayResponseOutput) String() string {
14861	return awsutil.Prettify(s)
14862}
14863
14864// GoString returns the string representation.
14865//
14866// API parameter values that are decorated as "sensitive" in the API will not
14867// be included in the string output. The member name will be present, but the
14868// value will be replaced with "sensitive".
14869func (s DeleteGatewayResponseOutput) GoString() string {
14870	return s.String()
14871}
14872
14873// Represents a delete integration request.
14874type DeleteIntegrationInput struct {
14875	_ struct{} `type:"structure" nopayload:"true"`
14876
14877	// [Required] Specifies a delete integration request's HTTP method.
14878	//
14879	// HttpMethod is a required field
14880	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
14881
14882	// [Required] Specifies a delete integration request's resource identifier.
14883	//
14884	// ResourceId is a required field
14885	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14886
14887	// [Required] The string identifier of the associated RestApi.
14888	//
14889	// RestApiId is a required field
14890	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14891}
14892
14893// String returns the string representation.
14894//
14895// API parameter values that are decorated as "sensitive" in the API will not
14896// be included in the string output. The member name will be present, but the
14897// value will be replaced with "sensitive".
14898func (s DeleteIntegrationInput) String() string {
14899	return awsutil.Prettify(s)
14900}
14901
14902// GoString returns the string representation.
14903//
14904// API parameter values that are decorated as "sensitive" in the API will not
14905// be included in the string output. The member name will be present, but the
14906// value will be replaced with "sensitive".
14907func (s DeleteIntegrationInput) GoString() string {
14908	return s.String()
14909}
14910
14911// Validate inspects the fields of the type to determine if they are valid.
14912func (s *DeleteIntegrationInput) Validate() error {
14913	invalidParams := request.ErrInvalidParams{Context: "DeleteIntegrationInput"}
14914	if s.HttpMethod == nil {
14915		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
14916	}
14917	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
14918		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
14919	}
14920	if s.ResourceId == nil {
14921		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14922	}
14923	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14924		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14925	}
14926	if s.RestApiId == nil {
14927		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
14928	}
14929	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
14930		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
14931	}
14932
14933	if invalidParams.Len() > 0 {
14934		return invalidParams
14935	}
14936	return nil
14937}
14938
14939// SetHttpMethod sets the HttpMethod field's value.
14940func (s *DeleteIntegrationInput) SetHttpMethod(v string) *DeleteIntegrationInput {
14941	s.HttpMethod = &v
14942	return s
14943}
14944
14945// SetResourceId sets the ResourceId field's value.
14946func (s *DeleteIntegrationInput) SetResourceId(v string) *DeleteIntegrationInput {
14947	s.ResourceId = &v
14948	return s
14949}
14950
14951// SetRestApiId sets the RestApiId field's value.
14952func (s *DeleteIntegrationInput) SetRestApiId(v string) *DeleteIntegrationInput {
14953	s.RestApiId = &v
14954	return s
14955}
14956
14957type DeleteIntegrationOutput struct {
14958	_ struct{} `type:"structure"`
14959}
14960
14961// String returns the string representation.
14962//
14963// API parameter values that are decorated as "sensitive" in the API will not
14964// be included in the string output. The member name will be present, but the
14965// value will be replaced with "sensitive".
14966func (s DeleteIntegrationOutput) String() string {
14967	return awsutil.Prettify(s)
14968}
14969
14970// GoString returns the string representation.
14971//
14972// API parameter values that are decorated as "sensitive" in the API will not
14973// be included in the string output. The member name will be present, but the
14974// value will be replaced with "sensitive".
14975func (s DeleteIntegrationOutput) GoString() string {
14976	return s.String()
14977}
14978
14979// Represents a delete integration response request.
14980type DeleteIntegrationResponseInput struct {
14981	_ struct{} `type:"structure" nopayload:"true"`
14982
14983	// [Required] Specifies a delete integration response request's HTTP method.
14984	//
14985	// HttpMethod is a required field
14986	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
14987
14988	// [Required] Specifies a delete integration response request's resource identifier.
14989	//
14990	// ResourceId is a required field
14991	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
14992
14993	// [Required] The string identifier of the associated RestApi.
14994	//
14995	// RestApiId is a required field
14996	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
14997
14998	// [Required] Specifies a delete integration response request's status code.
14999	//
15000	// StatusCode is a required field
15001	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
15002}
15003
15004// String returns the string representation.
15005//
15006// API parameter values that are decorated as "sensitive" in the API will not
15007// be included in the string output. The member name will be present, but the
15008// value will be replaced with "sensitive".
15009func (s DeleteIntegrationResponseInput) String() string {
15010	return awsutil.Prettify(s)
15011}
15012
15013// GoString returns the string representation.
15014//
15015// API parameter values that are decorated as "sensitive" in the API will not
15016// be included in the string output. The member name will be present, but the
15017// value will be replaced with "sensitive".
15018func (s DeleteIntegrationResponseInput) GoString() string {
15019	return s.String()
15020}
15021
15022// Validate inspects the fields of the type to determine if they are valid.
15023func (s *DeleteIntegrationResponseInput) Validate() error {
15024	invalidParams := request.ErrInvalidParams{Context: "DeleteIntegrationResponseInput"}
15025	if s.HttpMethod == nil {
15026		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
15027	}
15028	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
15029		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
15030	}
15031	if s.ResourceId == nil {
15032		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
15033	}
15034	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
15035		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
15036	}
15037	if s.RestApiId == nil {
15038		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15039	}
15040	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15041		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15042	}
15043	if s.StatusCode == nil {
15044		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
15045	}
15046	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
15047		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
15048	}
15049
15050	if invalidParams.Len() > 0 {
15051		return invalidParams
15052	}
15053	return nil
15054}
15055
15056// SetHttpMethod sets the HttpMethod field's value.
15057func (s *DeleteIntegrationResponseInput) SetHttpMethod(v string) *DeleteIntegrationResponseInput {
15058	s.HttpMethod = &v
15059	return s
15060}
15061
15062// SetResourceId sets the ResourceId field's value.
15063func (s *DeleteIntegrationResponseInput) SetResourceId(v string) *DeleteIntegrationResponseInput {
15064	s.ResourceId = &v
15065	return s
15066}
15067
15068// SetRestApiId sets the RestApiId field's value.
15069func (s *DeleteIntegrationResponseInput) SetRestApiId(v string) *DeleteIntegrationResponseInput {
15070	s.RestApiId = &v
15071	return s
15072}
15073
15074// SetStatusCode sets the StatusCode field's value.
15075func (s *DeleteIntegrationResponseInput) SetStatusCode(v string) *DeleteIntegrationResponseInput {
15076	s.StatusCode = &v
15077	return s
15078}
15079
15080type DeleteIntegrationResponseOutput struct {
15081	_ struct{} `type:"structure"`
15082}
15083
15084// String returns the string representation.
15085//
15086// API parameter values that are decorated as "sensitive" in the API will not
15087// be included in the string output. The member name will be present, but the
15088// value will be replaced with "sensitive".
15089func (s DeleteIntegrationResponseOutput) String() string {
15090	return awsutil.Prettify(s)
15091}
15092
15093// GoString returns the string representation.
15094//
15095// API parameter values that are decorated as "sensitive" in the API will not
15096// be included in the string output. The member name will be present, but the
15097// value will be replaced with "sensitive".
15098func (s DeleteIntegrationResponseOutput) GoString() string {
15099	return s.String()
15100}
15101
15102// Request to delete an existing Method resource.
15103type DeleteMethodInput struct {
15104	_ struct{} `type:"structure" nopayload:"true"`
15105
15106	// [Required] The HTTP verb of the Method resource.
15107	//
15108	// HttpMethod is a required field
15109	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
15110
15111	// [Required] The Resource identifier for the Method resource.
15112	//
15113	// ResourceId is a required field
15114	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
15115
15116	// [Required] The string identifier of the associated RestApi.
15117	//
15118	// RestApiId is a required field
15119	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15120}
15121
15122// String returns the string representation.
15123//
15124// API parameter values that are decorated as "sensitive" in the API will not
15125// be included in the string output. The member name will be present, but the
15126// value will be replaced with "sensitive".
15127func (s DeleteMethodInput) String() string {
15128	return awsutil.Prettify(s)
15129}
15130
15131// GoString returns the string representation.
15132//
15133// API parameter values that are decorated as "sensitive" in the API will not
15134// be included in the string output. The member name will be present, but the
15135// value will be replaced with "sensitive".
15136func (s DeleteMethodInput) GoString() string {
15137	return s.String()
15138}
15139
15140// Validate inspects the fields of the type to determine if they are valid.
15141func (s *DeleteMethodInput) Validate() error {
15142	invalidParams := request.ErrInvalidParams{Context: "DeleteMethodInput"}
15143	if s.HttpMethod == nil {
15144		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
15145	}
15146	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
15147		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
15148	}
15149	if s.ResourceId == nil {
15150		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
15151	}
15152	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
15153		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
15154	}
15155	if s.RestApiId == nil {
15156		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15157	}
15158	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15159		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15160	}
15161
15162	if invalidParams.Len() > 0 {
15163		return invalidParams
15164	}
15165	return nil
15166}
15167
15168// SetHttpMethod sets the HttpMethod field's value.
15169func (s *DeleteMethodInput) SetHttpMethod(v string) *DeleteMethodInput {
15170	s.HttpMethod = &v
15171	return s
15172}
15173
15174// SetResourceId sets the ResourceId field's value.
15175func (s *DeleteMethodInput) SetResourceId(v string) *DeleteMethodInput {
15176	s.ResourceId = &v
15177	return s
15178}
15179
15180// SetRestApiId sets the RestApiId field's value.
15181func (s *DeleteMethodInput) SetRestApiId(v string) *DeleteMethodInput {
15182	s.RestApiId = &v
15183	return s
15184}
15185
15186type DeleteMethodOutput struct {
15187	_ struct{} `type:"structure"`
15188}
15189
15190// String returns the string representation.
15191//
15192// API parameter values that are decorated as "sensitive" in the API will not
15193// be included in the string output. The member name will be present, but the
15194// value will be replaced with "sensitive".
15195func (s DeleteMethodOutput) String() string {
15196	return awsutil.Prettify(s)
15197}
15198
15199// GoString returns the string representation.
15200//
15201// API parameter values that are decorated as "sensitive" in the API will not
15202// be included in the string output. The member name will be present, but the
15203// value will be replaced with "sensitive".
15204func (s DeleteMethodOutput) GoString() string {
15205	return s.String()
15206}
15207
15208// A request to delete an existing MethodResponse resource.
15209type DeleteMethodResponseInput struct {
15210	_ struct{} `type:"structure" nopayload:"true"`
15211
15212	// [Required] The HTTP verb of the Method resource.
15213	//
15214	// HttpMethod is a required field
15215	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
15216
15217	// [Required] The Resource identifier for the MethodResponse resource.
15218	//
15219	// ResourceId is a required field
15220	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
15221
15222	// [Required] The string identifier of the associated RestApi.
15223	//
15224	// RestApiId is a required field
15225	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15226
15227	// [Required] The status code identifier for the MethodResponse resource.
15228	//
15229	// StatusCode is a required field
15230	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
15231}
15232
15233// String returns the string representation.
15234//
15235// API parameter values that are decorated as "sensitive" in the API will not
15236// be included in the string output. The member name will be present, but the
15237// value will be replaced with "sensitive".
15238func (s DeleteMethodResponseInput) String() string {
15239	return awsutil.Prettify(s)
15240}
15241
15242// GoString returns the string representation.
15243//
15244// API parameter values that are decorated as "sensitive" in the API will not
15245// be included in the string output. The member name will be present, but the
15246// value will be replaced with "sensitive".
15247func (s DeleteMethodResponseInput) GoString() string {
15248	return s.String()
15249}
15250
15251// Validate inspects the fields of the type to determine if they are valid.
15252func (s *DeleteMethodResponseInput) Validate() error {
15253	invalidParams := request.ErrInvalidParams{Context: "DeleteMethodResponseInput"}
15254	if s.HttpMethod == nil {
15255		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
15256	}
15257	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
15258		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
15259	}
15260	if s.ResourceId == nil {
15261		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
15262	}
15263	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
15264		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
15265	}
15266	if s.RestApiId == nil {
15267		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15268	}
15269	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15270		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15271	}
15272	if s.StatusCode == nil {
15273		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
15274	}
15275	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
15276		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
15277	}
15278
15279	if invalidParams.Len() > 0 {
15280		return invalidParams
15281	}
15282	return nil
15283}
15284
15285// SetHttpMethod sets the HttpMethod field's value.
15286func (s *DeleteMethodResponseInput) SetHttpMethod(v string) *DeleteMethodResponseInput {
15287	s.HttpMethod = &v
15288	return s
15289}
15290
15291// SetResourceId sets the ResourceId field's value.
15292func (s *DeleteMethodResponseInput) SetResourceId(v string) *DeleteMethodResponseInput {
15293	s.ResourceId = &v
15294	return s
15295}
15296
15297// SetRestApiId sets the RestApiId field's value.
15298func (s *DeleteMethodResponseInput) SetRestApiId(v string) *DeleteMethodResponseInput {
15299	s.RestApiId = &v
15300	return s
15301}
15302
15303// SetStatusCode sets the StatusCode field's value.
15304func (s *DeleteMethodResponseInput) SetStatusCode(v string) *DeleteMethodResponseInput {
15305	s.StatusCode = &v
15306	return s
15307}
15308
15309type DeleteMethodResponseOutput struct {
15310	_ struct{} `type:"structure"`
15311}
15312
15313// String returns the string representation.
15314//
15315// API parameter values that are decorated as "sensitive" in the API will not
15316// be included in the string output. The member name will be present, but the
15317// value will be replaced with "sensitive".
15318func (s DeleteMethodResponseOutput) String() string {
15319	return awsutil.Prettify(s)
15320}
15321
15322// GoString returns the string representation.
15323//
15324// API parameter values that are decorated as "sensitive" in the API will not
15325// be included in the string output. The member name will be present, but the
15326// value will be replaced with "sensitive".
15327func (s DeleteMethodResponseOutput) GoString() string {
15328	return s.String()
15329}
15330
15331// Request to delete an existing model in an existing RestApi resource.
15332type DeleteModelInput struct {
15333	_ struct{} `type:"structure" nopayload:"true"`
15334
15335	// [Required] The name of the model to delete.
15336	//
15337	// ModelName is a required field
15338	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
15339
15340	// [Required] The string identifier of the associated RestApi.
15341	//
15342	// RestApiId is a required field
15343	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15344}
15345
15346// String returns the string representation.
15347//
15348// API parameter values that are decorated as "sensitive" in the API will not
15349// be included in the string output. The member name will be present, but the
15350// value will be replaced with "sensitive".
15351func (s DeleteModelInput) String() string {
15352	return awsutil.Prettify(s)
15353}
15354
15355// GoString returns the string representation.
15356//
15357// API parameter values that are decorated as "sensitive" in the API will not
15358// be included in the string output. The member name will be present, but the
15359// value will be replaced with "sensitive".
15360func (s DeleteModelInput) GoString() string {
15361	return s.String()
15362}
15363
15364// Validate inspects the fields of the type to determine if they are valid.
15365func (s *DeleteModelInput) Validate() error {
15366	invalidParams := request.ErrInvalidParams{Context: "DeleteModelInput"}
15367	if s.ModelName == nil {
15368		invalidParams.Add(request.NewErrParamRequired("ModelName"))
15369	}
15370	if s.ModelName != nil && len(*s.ModelName) < 1 {
15371		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
15372	}
15373	if s.RestApiId == nil {
15374		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15375	}
15376	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15377		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15378	}
15379
15380	if invalidParams.Len() > 0 {
15381		return invalidParams
15382	}
15383	return nil
15384}
15385
15386// SetModelName sets the ModelName field's value.
15387func (s *DeleteModelInput) SetModelName(v string) *DeleteModelInput {
15388	s.ModelName = &v
15389	return s
15390}
15391
15392// SetRestApiId sets the RestApiId field's value.
15393func (s *DeleteModelInput) SetRestApiId(v string) *DeleteModelInput {
15394	s.RestApiId = &v
15395	return s
15396}
15397
15398type DeleteModelOutput struct {
15399	_ struct{} `type:"structure"`
15400}
15401
15402// String returns the string representation.
15403//
15404// API parameter values that are decorated as "sensitive" in the API will not
15405// be included in the string output. The member name will be present, but the
15406// value will be replaced with "sensitive".
15407func (s DeleteModelOutput) String() string {
15408	return awsutil.Prettify(s)
15409}
15410
15411// GoString returns the string representation.
15412//
15413// API parameter values that are decorated as "sensitive" in the API will not
15414// be included in the string output. The member name will be present, but the
15415// value will be replaced with "sensitive".
15416func (s DeleteModelOutput) GoString() string {
15417	return s.String()
15418}
15419
15420// Deletes a specified RequestValidator of a given RestApi.
15421type DeleteRequestValidatorInput struct {
15422	_ struct{} `type:"structure" nopayload:"true"`
15423
15424	// [Required] The identifier of the RequestValidator to be deleted.
15425	//
15426	// RequestValidatorId is a required field
15427	RequestValidatorId *string `location:"uri" locationName:"requestvalidator_id" type:"string" required:"true"`
15428
15429	// [Required] The string identifier of the associated RestApi.
15430	//
15431	// RestApiId is a required field
15432	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15433}
15434
15435// String returns the string representation.
15436//
15437// API parameter values that are decorated as "sensitive" in the API will not
15438// be included in the string output. The member name will be present, but the
15439// value will be replaced with "sensitive".
15440func (s DeleteRequestValidatorInput) String() string {
15441	return awsutil.Prettify(s)
15442}
15443
15444// GoString returns the string representation.
15445//
15446// API parameter values that are decorated as "sensitive" in the API will not
15447// be included in the string output. The member name will be present, but the
15448// value will be replaced with "sensitive".
15449func (s DeleteRequestValidatorInput) GoString() string {
15450	return s.String()
15451}
15452
15453// Validate inspects the fields of the type to determine if they are valid.
15454func (s *DeleteRequestValidatorInput) Validate() error {
15455	invalidParams := request.ErrInvalidParams{Context: "DeleteRequestValidatorInput"}
15456	if s.RequestValidatorId == nil {
15457		invalidParams.Add(request.NewErrParamRequired("RequestValidatorId"))
15458	}
15459	if s.RequestValidatorId != nil && len(*s.RequestValidatorId) < 1 {
15460		invalidParams.Add(request.NewErrParamMinLen("RequestValidatorId", 1))
15461	}
15462	if s.RestApiId == nil {
15463		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15464	}
15465	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15466		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15467	}
15468
15469	if invalidParams.Len() > 0 {
15470		return invalidParams
15471	}
15472	return nil
15473}
15474
15475// SetRequestValidatorId sets the RequestValidatorId field's value.
15476func (s *DeleteRequestValidatorInput) SetRequestValidatorId(v string) *DeleteRequestValidatorInput {
15477	s.RequestValidatorId = &v
15478	return s
15479}
15480
15481// SetRestApiId sets the RestApiId field's value.
15482func (s *DeleteRequestValidatorInput) SetRestApiId(v string) *DeleteRequestValidatorInput {
15483	s.RestApiId = &v
15484	return s
15485}
15486
15487type DeleteRequestValidatorOutput struct {
15488	_ struct{} `type:"structure"`
15489}
15490
15491// String returns the string representation.
15492//
15493// API parameter values that are decorated as "sensitive" in the API will not
15494// be included in the string output. The member name will be present, but the
15495// value will be replaced with "sensitive".
15496func (s DeleteRequestValidatorOutput) String() string {
15497	return awsutil.Prettify(s)
15498}
15499
15500// GoString returns the string representation.
15501//
15502// API parameter values that are decorated as "sensitive" in the API will not
15503// be included in the string output. The member name will be present, but the
15504// value will be replaced with "sensitive".
15505func (s DeleteRequestValidatorOutput) GoString() string {
15506	return s.String()
15507}
15508
15509// Request to delete a Resource.
15510type DeleteResourceInput struct {
15511	_ struct{} `type:"structure" nopayload:"true"`
15512
15513	// [Required] The identifier of the Resource resource.
15514	//
15515	// ResourceId is a required field
15516	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
15517
15518	// [Required] The string identifier of the associated RestApi.
15519	//
15520	// RestApiId is a required field
15521	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15522}
15523
15524// String returns the string representation.
15525//
15526// API parameter values that are decorated as "sensitive" in the API will not
15527// be included in the string output. The member name will be present, but the
15528// value will be replaced with "sensitive".
15529func (s DeleteResourceInput) String() string {
15530	return awsutil.Prettify(s)
15531}
15532
15533// GoString returns the string representation.
15534//
15535// API parameter values that are decorated as "sensitive" in the API will not
15536// be included in the string output. The member name will be present, but the
15537// value will be replaced with "sensitive".
15538func (s DeleteResourceInput) GoString() string {
15539	return s.String()
15540}
15541
15542// Validate inspects the fields of the type to determine if they are valid.
15543func (s *DeleteResourceInput) Validate() error {
15544	invalidParams := request.ErrInvalidParams{Context: "DeleteResourceInput"}
15545	if s.ResourceId == nil {
15546		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
15547	}
15548	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
15549		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
15550	}
15551	if s.RestApiId == nil {
15552		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15553	}
15554	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15555		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15556	}
15557
15558	if invalidParams.Len() > 0 {
15559		return invalidParams
15560	}
15561	return nil
15562}
15563
15564// SetResourceId sets the ResourceId field's value.
15565func (s *DeleteResourceInput) SetResourceId(v string) *DeleteResourceInput {
15566	s.ResourceId = &v
15567	return s
15568}
15569
15570// SetRestApiId sets the RestApiId field's value.
15571func (s *DeleteResourceInput) SetRestApiId(v string) *DeleteResourceInput {
15572	s.RestApiId = &v
15573	return s
15574}
15575
15576type DeleteResourceOutput struct {
15577	_ struct{} `type:"structure"`
15578}
15579
15580// String returns the string representation.
15581//
15582// API parameter values that are decorated as "sensitive" in the API will not
15583// be included in the string output. The member name will be present, but the
15584// value will be replaced with "sensitive".
15585func (s DeleteResourceOutput) String() string {
15586	return awsutil.Prettify(s)
15587}
15588
15589// GoString returns the string representation.
15590//
15591// API parameter values that are decorated as "sensitive" in the API will not
15592// be included in the string output. The member name will be present, but the
15593// value will be replaced with "sensitive".
15594func (s DeleteResourceOutput) GoString() string {
15595	return s.String()
15596}
15597
15598// Request to delete the specified API from your collection.
15599type DeleteRestApiInput struct {
15600	_ struct{} `type:"structure" nopayload:"true"`
15601
15602	// [Required] The string identifier of the associated RestApi.
15603	//
15604	// RestApiId is a required field
15605	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15606}
15607
15608// String returns the string representation.
15609//
15610// API parameter values that are decorated as "sensitive" in the API will not
15611// be included in the string output. The member name will be present, but the
15612// value will be replaced with "sensitive".
15613func (s DeleteRestApiInput) String() string {
15614	return awsutil.Prettify(s)
15615}
15616
15617// GoString returns the string representation.
15618//
15619// API parameter values that are decorated as "sensitive" in the API will not
15620// be included in the string output. The member name will be present, but the
15621// value will be replaced with "sensitive".
15622func (s DeleteRestApiInput) GoString() string {
15623	return s.String()
15624}
15625
15626// Validate inspects the fields of the type to determine if they are valid.
15627func (s *DeleteRestApiInput) Validate() error {
15628	invalidParams := request.ErrInvalidParams{Context: "DeleteRestApiInput"}
15629	if s.RestApiId == nil {
15630		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15631	}
15632	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15633		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15634	}
15635
15636	if invalidParams.Len() > 0 {
15637		return invalidParams
15638	}
15639	return nil
15640}
15641
15642// SetRestApiId sets the RestApiId field's value.
15643func (s *DeleteRestApiInput) SetRestApiId(v string) *DeleteRestApiInput {
15644	s.RestApiId = &v
15645	return s
15646}
15647
15648type DeleteRestApiOutput struct {
15649	_ struct{} `type:"structure"`
15650}
15651
15652// String returns the string representation.
15653//
15654// API parameter values that are decorated as "sensitive" in the API will not
15655// be included in the string output. The member name will be present, but the
15656// value will be replaced with "sensitive".
15657func (s DeleteRestApiOutput) String() string {
15658	return awsutil.Prettify(s)
15659}
15660
15661// GoString returns the string representation.
15662//
15663// API parameter values that are decorated as "sensitive" in the API will not
15664// be included in the string output. The member name will be present, but the
15665// value will be replaced with "sensitive".
15666func (s DeleteRestApiOutput) GoString() string {
15667	return s.String()
15668}
15669
15670// Requests API Gateway to delete a Stage resource.
15671type DeleteStageInput struct {
15672	_ struct{} `type:"structure" nopayload:"true"`
15673
15674	// [Required] The string identifier of the associated RestApi.
15675	//
15676	// RestApiId is a required field
15677	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
15678
15679	// [Required] The name of the Stage resource to delete.
15680	//
15681	// StageName is a required field
15682	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
15683}
15684
15685// String returns the string representation.
15686//
15687// API parameter values that are decorated as "sensitive" in the API will not
15688// be included in the string output. The member name will be present, but the
15689// value will be replaced with "sensitive".
15690func (s DeleteStageInput) String() string {
15691	return awsutil.Prettify(s)
15692}
15693
15694// GoString returns the string representation.
15695//
15696// API parameter values that are decorated as "sensitive" in the API will not
15697// be included in the string output. The member name will be present, but the
15698// value will be replaced with "sensitive".
15699func (s DeleteStageInput) GoString() string {
15700	return s.String()
15701}
15702
15703// Validate inspects the fields of the type to determine if they are valid.
15704func (s *DeleteStageInput) Validate() error {
15705	invalidParams := request.ErrInvalidParams{Context: "DeleteStageInput"}
15706	if s.RestApiId == nil {
15707		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
15708	}
15709	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
15710		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
15711	}
15712	if s.StageName == nil {
15713		invalidParams.Add(request.NewErrParamRequired("StageName"))
15714	}
15715	if s.StageName != nil && len(*s.StageName) < 1 {
15716		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
15717	}
15718
15719	if invalidParams.Len() > 0 {
15720		return invalidParams
15721	}
15722	return nil
15723}
15724
15725// SetRestApiId sets the RestApiId field's value.
15726func (s *DeleteStageInput) SetRestApiId(v string) *DeleteStageInput {
15727	s.RestApiId = &v
15728	return s
15729}
15730
15731// SetStageName sets the StageName field's value.
15732func (s *DeleteStageInput) SetStageName(v string) *DeleteStageInput {
15733	s.StageName = &v
15734	return s
15735}
15736
15737type DeleteStageOutput struct {
15738	_ struct{} `type:"structure"`
15739}
15740
15741// String returns the string representation.
15742//
15743// API parameter values that are decorated as "sensitive" in the API will not
15744// be included in the string output. The member name will be present, but the
15745// value will be replaced with "sensitive".
15746func (s DeleteStageOutput) String() string {
15747	return awsutil.Prettify(s)
15748}
15749
15750// GoString returns the string representation.
15751//
15752// API parameter values that are decorated as "sensitive" in the API will not
15753// be included in the string output. The member name will be present, but the
15754// value will be replaced with "sensitive".
15755func (s DeleteStageOutput) GoString() string {
15756	return s.String()
15757}
15758
15759// The DELETE request to delete a usage plan of a given plan Id.
15760type DeleteUsagePlanInput struct {
15761	_ struct{} `type:"structure" nopayload:"true"`
15762
15763	// [Required] The Id of the to-be-deleted usage plan.
15764	//
15765	// UsagePlanId is a required field
15766	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
15767}
15768
15769// String returns the string representation.
15770//
15771// API parameter values that are decorated as "sensitive" in the API will not
15772// be included in the string output. The member name will be present, but the
15773// value will be replaced with "sensitive".
15774func (s DeleteUsagePlanInput) String() string {
15775	return awsutil.Prettify(s)
15776}
15777
15778// GoString returns the string representation.
15779//
15780// API parameter values that are decorated as "sensitive" in the API will not
15781// be included in the string output. The member name will be present, but the
15782// value will be replaced with "sensitive".
15783func (s DeleteUsagePlanInput) GoString() string {
15784	return s.String()
15785}
15786
15787// Validate inspects the fields of the type to determine if they are valid.
15788func (s *DeleteUsagePlanInput) Validate() error {
15789	invalidParams := request.ErrInvalidParams{Context: "DeleteUsagePlanInput"}
15790	if s.UsagePlanId == nil {
15791		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
15792	}
15793	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
15794		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
15795	}
15796
15797	if invalidParams.Len() > 0 {
15798		return invalidParams
15799	}
15800	return nil
15801}
15802
15803// SetUsagePlanId sets the UsagePlanId field's value.
15804func (s *DeleteUsagePlanInput) SetUsagePlanId(v string) *DeleteUsagePlanInput {
15805	s.UsagePlanId = &v
15806	return s
15807}
15808
15809// The DELETE request to delete a usage plan key and remove the underlying API
15810// key from the associated usage plan.
15811type DeleteUsagePlanKeyInput struct {
15812	_ struct{} `type:"structure" nopayload:"true"`
15813
15814	// [Required] The Id of the UsagePlanKey resource to be deleted.
15815	//
15816	// KeyId is a required field
15817	KeyId *string `location:"uri" locationName:"keyId" type:"string" required:"true"`
15818
15819	// [Required] The Id of the UsagePlan resource representing the usage plan containing
15820	// the to-be-deleted UsagePlanKey resource representing a plan customer.
15821	//
15822	// UsagePlanId is a required field
15823	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
15824}
15825
15826// String returns the string representation.
15827//
15828// API parameter values that are decorated as "sensitive" in the API will not
15829// be included in the string output. The member name will be present, but the
15830// value will be replaced with "sensitive".
15831func (s DeleteUsagePlanKeyInput) String() string {
15832	return awsutil.Prettify(s)
15833}
15834
15835// GoString returns the string representation.
15836//
15837// API parameter values that are decorated as "sensitive" in the API will not
15838// be included in the string output. The member name will be present, but the
15839// value will be replaced with "sensitive".
15840func (s DeleteUsagePlanKeyInput) GoString() string {
15841	return s.String()
15842}
15843
15844// Validate inspects the fields of the type to determine if they are valid.
15845func (s *DeleteUsagePlanKeyInput) Validate() error {
15846	invalidParams := request.ErrInvalidParams{Context: "DeleteUsagePlanKeyInput"}
15847	if s.KeyId == nil {
15848		invalidParams.Add(request.NewErrParamRequired("KeyId"))
15849	}
15850	if s.KeyId != nil && len(*s.KeyId) < 1 {
15851		invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
15852	}
15853	if s.UsagePlanId == nil {
15854		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
15855	}
15856	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
15857		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
15858	}
15859
15860	if invalidParams.Len() > 0 {
15861		return invalidParams
15862	}
15863	return nil
15864}
15865
15866// SetKeyId sets the KeyId field's value.
15867func (s *DeleteUsagePlanKeyInput) SetKeyId(v string) *DeleteUsagePlanKeyInput {
15868	s.KeyId = &v
15869	return s
15870}
15871
15872// SetUsagePlanId sets the UsagePlanId field's value.
15873func (s *DeleteUsagePlanKeyInput) SetUsagePlanId(v string) *DeleteUsagePlanKeyInput {
15874	s.UsagePlanId = &v
15875	return s
15876}
15877
15878type DeleteUsagePlanKeyOutput struct {
15879	_ struct{} `type:"structure"`
15880}
15881
15882// String returns the string representation.
15883//
15884// API parameter values that are decorated as "sensitive" in the API will not
15885// be included in the string output. The member name will be present, but the
15886// value will be replaced with "sensitive".
15887func (s DeleteUsagePlanKeyOutput) String() string {
15888	return awsutil.Prettify(s)
15889}
15890
15891// GoString returns the string representation.
15892//
15893// API parameter values that are decorated as "sensitive" in the API will not
15894// be included in the string output. The member name will be present, but the
15895// value will be replaced with "sensitive".
15896func (s DeleteUsagePlanKeyOutput) GoString() string {
15897	return s.String()
15898}
15899
15900type DeleteUsagePlanOutput struct {
15901	_ struct{} `type:"structure"`
15902}
15903
15904// String returns the string representation.
15905//
15906// API parameter values that are decorated as "sensitive" in the API will not
15907// be included in the string output. The member name will be present, but the
15908// value will be replaced with "sensitive".
15909func (s DeleteUsagePlanOutput) String() string {
15910	return awsutil.Prettify(s)
15911}
15912
15913// GoString returns the string representation.
15914//
15915// API parameter values that are decorated as "sensitive" in the API will not
15916// be included in the string output. The member name will be present, but the
15917// value will be replaced with "sensitive".
15918func (s DeleteUsagePlanOutput) GoString() string {
15919	return s.String()
15920}
15921
15922// Deletes an existing VpcLink of a specified identifier.
15923type DeleteVpcLinkInput struct {
15924	_ struct{} `type:"structure" nopayload:"true"`
15925
15926	// [Required] The identifier of the VpcLink. It is used in an Integration to
15927	// reference this VpcLink.
15928	//
15929	// VpcLinkId is a required field
15930	VpcLinkId *string `location:"uri" locationName:"vpclink_id" type:"string" required:"true"`
15931}
15932
15933// String returns the string representation.
15934//
15935// API parameter values that are decorated as "sensitive" in the API will not
15936// be included in the string output. The member name will be present, but the
15937// value will be replaced with "sensitive".
15938func (s DeleteVpcLinkInput) String() string {
15939	return awsutil.Prettify(s)
15940}
15941
15942// GoString returns the string representation.
15943//
15944// API parameter values that are decorated as "sensitive" in the API will not
15945// be included in the string output. The member name will be present, but the
15946// value will be replaced with "sensitive".
15947func (s DeleteVpcLinkInput) GoString() string {
15948	return s.String()
15949}
15950
15951// Validate inspects the fields of the type to determine if they are valid.
15952func (s *DeleteVpcLinkInput) Validate() error {
15953	invalidParams := request.ErrInvalidParams{Context: "DeleteVpcLinkInput"}
15954	if s.VpcLinkId == nil {
15955		invalidParams.Add(request.NewErrParamRequired("VpcLinkId"))
15956	}
15957	if s.VpcLinkId != nil && len(*s.VpcLinkId) < 1 {
15958		invalidParams.Add(request.NewErrParamMinLen("VpcLinkId", 1))
15959	}
15960
15961	if invalidParams.Len() > 0 {
15962		return invalidParams
15963	}
15964	return nil
15965}
15966
15967// SetVpcLinkId sets the VpcLinkId field's value.
15968func (s *DeleteVpcLinkInput) SetVpcLinkId(v string) *DeleteVpcLinkInput {
15969	s.VpcLinkId = &v
15970	return s
15971}
15972
15973type DeleteVpcLinkOutput struct {
15974	_ struct{} `type:"structure"`
15975}
15976
15977// String returns the string representation.
15978//
15979// API parameter values that are decorated as "sensitive" in the API will not
15980// be included in the string output. The member name will be present, but the
15981// value will be replaced with "sensitive".
15982func (s DeleteVpcLinkOutput) String() string {
15983	return awsutil.Prettify(s)
15984}
15985
15986// GoString returns the string representation.
15987//
15988// API parameter values that are decorated as "sensitive" in the API will not
15989// be included in the string output. The member name will be present, but the
15990// value will be replaced with "sensitive".
15991func (s DeleteVpcLinkOutput) GoString() string {
15992	return s.String()
15993}
15994
15995// An immutable representation of a RestApi resource that can be called by users
15996// using Stages. A deployment must be associated with a Stage for it to be callable
15997// over the Internet.
15998//
15999// To create a deployment, call POST on the Deployments resource of a RestApi.
16000// To view, update, or delete a deployment, call GET, PATCH, or DELETE on the
16001// specified deployment resource (/restapis/{restapi_id}/deployments/{deployment_id}).
16002//
16003// RestApi, Deployments, Stage, AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-deployment.html),
16004// AWS SDKs (https://aws.amazon.com/tools/)
16005type Deployment struct {
16006	_ struct{} `type:"structure"`
16007
16008	// A summary of the RestApi at the date and time that the deployment resource
16009	// was created.
16010	ApiSummary map[string]map[string]*MethodSnapshot `locationName:"apiSummary" type:"map"`
16011
16012	// The date and time that the deployment resource was created.
16013	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
16014
16015	// The description for the deployment resource.
16016	Description *string `locationName:"description" type:"string"`
16017
16018	// The identifier for the deployment resource.
16019	Id *string `locationName:"id" type:"string"`
16020}
16021
16022// String returns the string representation.
16023//
16024// API parameter values that are decorated as "sensitive" in the API will not
16025// be included in the string output. The member name will be present, but the
16026// value will be replaced with "sensitive".
16027func (s Deployment) String() string {
16028	return awsutil.Prettify(s)
16029}
16030
16031// GoString returns the string representation.
16032//
16033// API parameter values that are decorated as "sensitive" in the API will not
16034// be included in the string output. The member name will be present, but the
16035// value will be replaced with "sensitive".
16036func (s Deployment) GoString() string {
16037	return s.String()
16038}
16039
16040// SetApiSummary sets the ApiSummary field's value.
16041func (s *Deployment) SetApiSummary(v map[string]map[string]*MethodSnapshot) *Deployment {
16042	s.ApiSummary = v
16043	return s
16044}
16045
16046// SetCreatedDate sets the CreatedDate field's value.
16047func (s *Deployment) SetCreatedDate(v time.Time) *Deployment {
16048	s.CreatedDate = &v
16049	return s
16050}
16051
16052// SetDescription sets the Description field's value.
16053func (s *Deployment) SetDescription(v string) *Deployment {
16054	s.Description = &v
16055	return s
16056}
16057
16058// SetId sets the Id field's value.
16059func (s *Deployment) SetId(v string) *Deployment {
16060	s.Id = &v
16061	return s
16062}
16063
16064// The input configuration for a canary deployment.
16065type DeploymentCanarySettings struct {
16066	_ struct{} `type:"structure"`
16067
16068	// The percentage (0.0-100.0) of traffic routed to the canary deployment.
16069	PercentTraffic *float64 `locationName:"percentTraffic" type:"double"`
16070
16071	// A stage variable overrides used for the canary release deployment. They can
16072	// override existing stage variables or add new stage variables for the canary
16073	// release deployment. These stage variables are represented as a string-to-string
16074	// map between stage variable names and their values.
16075	StageVariableOverrides map[string]*string `locationName:"stageVariableOverrides" type:"map"`
16076
16077	// A Boolean flag to indicate whether the canary release deployment uses the
16078	// stage cache or not.
16079	UseStageCache *bool `locationName:"useStageCache" type:"boolean"`
16080}
16081
16082// String returns the string representation.
16083//
16084// API parameter values that are decorated as "sensitive" in the API will not
16085// be included in the string output. The member name will be present, but the
16086// value will be replaced with "sensitive".
16087func (s DeploymentCanarySettings) String() string {
16088	return awsutil.Prettify(s)
16089}
16090
16091// GoString returns the string representation.
16092//
16093// API parameter values that are decorated as "sensitive" in the API will not
16094// be included in the string output. The member name will be present, but the
16095// value will be replaced with "sensitive".
16096func (s DeploymentCanarySettings) GoString() string {
16097	return s.String()
16098}
16099
16100// SetPercentTraffic sets the PercentTraffic field's value.
16101func (s *DeploymentCanarySettings) SetPercentTraffic(v float64) *DeploymentCanarySettings {
16102	s.PercentTraffic = &v
16103	return s
16104}
16105
16106// SetStageVariableOverrides sets the StageVariableOverrides field's value.
16107func (s *DeploymentCanarySettings) SetStageVariableOverrides(v map[string]*string) *DeploymentCanarySettings {
16108	s.StageVariableOverrides = v
16109	return s
16110}
16111
16112// SetUseStageCache sets the UseStageCache field's value.
16113func (s *DeploymentCanarySettings) SetUseStageCache(v bool) *DeploymentCanarySettings {
16114	s.UseStageCache = &v
16115	return s
16116}
16117
16118// A documentation part for a targeted API entity.
16119//
16120// A documentation part consists of a content map (properties) and a target
16121// (location). The target specifies an API entity to which the documentation
16122// content applies. The supported API entity types are API, AUTHORIZER, MODEL,
16123// RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY,
16124// RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. Valid location fields depend
16125// on the API entity type. All valid fields are not required.
16126//
16127// The content map is a JSON string of API-specific key-value pairs. Although
16128// an API can use any shape for the content map, only the OpenAPI-compliant
16129// documentation fields will be injected into the associated API entity definition
16130// in the exported OpenAPI definition file.
16131//
16132// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
16133// DocumentationParts
16134type DocumentationPart struct {
16135	_ struct{} `type:"structure"`
16136
16137	// The DocumentationPart identifier, generated by API Gateway when the DocumentationPart
16138	// is created.
16139	Id *string `locationName:"id" type:"string"`
16140
16141	// The location of the API entity to which the documentation applies. Valid
16142	// fields depend on the targeted API entity type. All the valid location fields
16143	// are not required. If not explicitly specified, a valid location field is
16144	// treated as a wildcard and associated documentation content may be inherited
16145	// by matching entities, unless overridden.
16146	Location *DocumentationPartLocation `locationName:"location" type:"structure"`
16147
16148	// A content map of API-specific key-value pairs describing the targeted API
16149	// entity. The map must be encoded as a JSON string, e.g., "{ \"description\":
16150	// \"The API does ...\" }". Only OpenAPI-compliant documentation-related fields
16151	// from the properties map are exported and, hence, published as part of the
16152	// API entity definitions, while the original documentation parts are exported
16153	// in a OpenAPI extension of x-amazon-apigateway-documentation.
16154	Properties *string `locationName:"properties" type:"string"`
16155}
16156
16157// String returns the string representation.
16158//
16159// API parameter values that are decorated as "sensitive" in the API will not
16160// be included in the string output. The member name will be present, but the
16161// value will be replaced with "sensitive".
16162func (s DocumentationPart) String() string {
16163	return awsutil.Prettify(s)
16164}
16165
16166// GoString returns the string representation.
16167//
16168// API parameter values that are decorated as "sensitive" in the API will not
16169// be included in the string output. The member name will be present, but the
16170// value will be replaced with "sensitive".
16171func (s DocumentationPart) GoString() string {
16172	return s.String()
16173}
16174
16175// SetId sets the Id field's value.
16176func (s *DocumentationPart) SetId(v string) *DocumentationPart {
16177	s.Id = &v
16178	return s
16179}
16180
16181// SetLocation sets the Location field's value.
16182func (s *DocumentationPart) SetLocation(v *DocumentationPartLocation) *DocumentationPart {
16183	s.Location = v
16184	return s
16185}
16186
16187// SetProperties sets the Properties field's value.
16188func (s *DocumentationPart) SetProperties(v string) *DocumentationPart {
16189	s.Properties = &v
16190	return s
16191}
16192
16193// Specifies the target API entity to which the documentation applies.
16194type DocumentationPartLocation struct {
16195	_ struct{} `type:"structure"`
16196
16197	// The HTTP verb of a method. It is a valid field for the API entity types of
16198	// METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE,
16199	// RESPONSE_HEADER, and RESPONSE_BODY. The default value is * for any method.
16200	// When an applicable child entity inherits the content of an entity of the
16201	// same type with more general specifications of the other location attributes,
16202	// the child entity's method attribute must match that of the parent entity
16203	// exactly.
16204	Method *string `locationName:"method" type:"string"`
16205
16206	// The name of the targeted API entity. It is a valid and required field for
16207	// the API entity types of AUTHORIZER, MODEL, PATH_PARAMETER, QUERY_PARAMETER,
16208	// REQUEST_HEADER, REQUEST_BODY and RESPONSE_HEADER. It is an invalid field
16209	// for any other entity type.
16210	Name *string `locationName:"name" type:"string"`
16211
16212	// The URL path of the target. It is a valid field for the API entity types
16213	// of RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY,
16214	// RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value is / for
16215	// the root resource. When an applicable child entity inherits the content of
16216	// another entity of the same type with more general specifications of the other
16217	// location attributes, the child entity's path attribute must match that of
16218	// the parent entity as a prefix.
16219	Path *string `locationName:"path" type:"string"`
16220
16221	// The HTTP status code of a response. It is a valid field for the API entity
16222	// types of RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value
16223	// is * for any status code. When an applicable child entity inherits the content
16224	// of an entity of the same type with more general specifications of the other
16225	// location attributes, the child entity's statusCode attribute must match that
16226	// of the parent entity exactly.
16227	StatusCode *string `locationName:"statusCode" type:"string"`
16228
16229	// [Required] The type of API entity to which the documentation content applies.
16230	// Valid values are API, AUTHORIZER, MODEL, RESOURCE, METHOD, PATH_PARAMETER,
16231	// QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER,
16232	// and RESPONSE_BODY. Content inheritance does not apply to any entity of the
16233	// API, AUTHORIZER, METHOD, MODEL, REQUEST_BODY, or RESOURCE type.
16234	//
16235	// Type is a required field
16236	Type *string `locationName:"type" type:"string" required:"true" enum:"DocumentationPartType"`
16237}
16238
16239// String returns the string representation.
16240//
16241// API parameter values that are decorated as "sensitive" in the API will not
16242// be included in the string output. The member name will be present, but the
16243// value will be replaced with "sensitive".
16244func (s DocumentationPartLocation) String() string {
16245	return awsutil.Prettify(s)
16246}
16247
16248// GoString returns the string representation.
16249//
16250// API parameter values that are decorated as "sensitive" in the API will not
16251// be included in the string output. The member name will be present, but the
16252// value will be replaced with "sensitive".
16253func (s DocumentationPartLocation) GoString() string {
16254	return s.String()
16255}
16256
16257// Validate inspects the fields of the type to determine if they are valid.
16258func (s *DocumentationPartLocation) Validate() error {
16259	invalidParams := request.ErrInvalidParams{Context: "DocumentationPartLocation"}
16260	if s.Type == nil {
16261		invalidParams.Add(request.NewErrParamRequired("Type"))
16262	}
16263
16264	if invalidParams.Len() > 0 {
16265		return invalidParams
16266	}
16267	return nil
16268}
16269
16270// SetMethod sets the Method field's value.
16271func (s *DocumentationPartLocation) SetMethod(v string) *DocumentationPartLocation {
16272	s.Method = &v
16273	return s
16274}
16275
16276// SetName sets the Name field's value.
16277func (s *DocumentationPartLocation) SetName(v string) *DocumentationPartLocation {
16278	s.Name = &v
16279	return s
16280}
16281
16282// SetPath sets the Path field's value.
16283func (s *DocumentationPartLocation) SetPath(v string) *DocumentationPartLocation {
16284	s.Path = &v
16285	return s
16286}
16287
16288// SetStatusCode sets the StatusCode field's value.
16289func (s *DocumentationPartLocation) SetStatusCode(v string) *DocumentationPartLocation {
16290	s.StatusCode = &v
16291	return s
16292}
16293
16294// SetType sets the Type field's value.
16295func (s *DocumentationPartLocation) SetType(v string) *DocumentationPartLocation {
16296	s.Type = &v
16297	return s
16298}
16299
16300// A snapshot of the documentation of an API.
16301//
16302// Publishing API documentation involves creating a documentation version associated
16303// with an API stage and exporting the versioned documentation to an external
16304// (e.g., OpenAPI) file.
16305//
16306// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
16307// DocumentationPart, DocumentationVersions
16308type DocumentationVersion struct {
16309	_ struct{} `type:"structure"`
16310
16311	// The date when the API documentation snapshot is created.
16312	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
16313
16314	// The description of the API documentation snapshot.
16315	Description *string `locationName:"description" type:"string"`
16316
16317	// The version identifier of the API documentation snapshot.
16318	Version *string `locationName:"version" type:"string"`
16319}
16320
16321// String returns the string representation.
16322//
16323// API parameter values that are decorated as "sensitive" in the API will not
16324// be included in the string output. The member name will be present, but the
16325// value will be replaced with "sensitive".
16326func (s DocumentationVersion) String() string {
16327	return awsutil.Prettify(s)
16328}
16329
16330// GoString returns the string representation.
16331//
16332// API parameter values that are decorated as "sensitive" in the API will not
16333// be included in the string output. The member name will be present, but the
16334// value will be replaced with "sensitive".
16335func (s DocumentationVersion) GoString() string {
16336	return s.String()
16337}
16338
16339// SetCreatedDate sets the CreatedDate field's value.
16340func (s *DocumentationVersion) SetCreatedDate(v time.Time) *DocumentationVersion {
16341	s.CreatedDate = &v
16342	return s
16343}
16344
16345// SetDescription sets the Description field's value.
16346func (s *DocumentationVersion) SetDescription(v string) *DocumentationVersion {
16347	s.Description = &v
16348	return s
16349}
16350
16351// SetVersion sets the Version field's value.
16352func (s *DocumentationVersion) SetVersion(v string) *DocumentationVersion {
16353	s.Version = &v
16354	return s
16355}
16356
16357// Represents a custom domain name as a user-friendly host name of an API (RestApi).
16358//
16359// When you deploy an API, API Gateway creates a default host name for the API.
16360// This default API host name is of the {restapi-id}.execute-api.{region}.amazonaws.com
16361// format. With the default host name, you can access the API's root resource
16362// with the URL of https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/.
16363// When you set up a custom domain name of apis.example.com for this API, you
16364// can then access the same resource using the URL of the https://apis.examples.com/myApi,
16365// where myApi is the base path mapping (BasePathMapping) of your API under
16366// the custom domain name.
16367//
16368// Set a Custom Host Name for an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
16369type DomainName struct {
16370	_ struct{} `type:"structure"`
16371
16372	// The reference to an AWS-managed certificate that will be used by edge-optimized
16373	// endpoint for this domain name. AWS Certificate Manager is the only supported
16374	// source.
16375	CertificateArn *string `locationName:"certificateArn" type:"string"`
16376
16377	// The name of the certificate that will be used by edge-optimized endpoint
16378	// for this domain name.
16379	CertificateName *string `locationName:"certificateName" type:"string"`
16380
16381	// The timestamp when the certificate that was used by edge-optimized endpoint
16382	// for this domain name was uploaded.
16383	CertificateUploadDate *time.Time `locationName:"certificateUploadDate" type:"timestamp"`
16384
16385	// The domain name of the Amazon CloudFront distribution associated with this
16386	// custom domain name for an edge-optimized endpoint. You set up this association
16387	// when adding a DNS record pointing the custom domain name to this distribution
16388	// name. For more information about CloudFront distributions, see the Amazon
16389	// CloudFront documentation (https://aws.amazon.com/documentation/cloudfront/).
16390	DistributionDomainName *string `locationName:"distributionDomainName" type:"string"`
16391
16392	// The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized
16393	// endpoint. The valid value is Z2FDTNDATAQYW2 for all the regions. For more
16394	// information, see Set up a Regional Custom Domain Name (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html)
16395	// and AWS Regions and Endpoints for API Gateway (https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region).
16396	DistributionHostedZoneId *string `locationName:"distributionHostedZoneId" type:"string"`
16397
16398	// The custom domain name as an API host name, for example, my-api.example.com.
16399	DomainName *string `locationName:"domainName" type:"string"`
16400
16401	// The status of the DomainName migration. The valid values are AVAILABLE, UPDATING,
16402	// PENDING_CERTIFICATE_REIMPORT, and PENDING_OWNERSHIP_VERIFICATION. If the
16403	// status is UPDATING, the domain cannot be modified further until the existing
16404	// operation is complete. If it is AVAILABLE, the domain can be updated.
16405	DomainNameStatus *string `locationName:"domainNameStatus" type:"string" enum:"DomainNameStatus"`
16406
16407	// An optional text message containing detailed information about status of
16408	// the DomainName migration.
16409	DomainNameStatusMessage *string `locationName:"domainNameStatusMessage" type:"string"`
16410
16411	// The endpoint configuration of this DomainName showing the endpoint types
16412	// of the domain name.
16413	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
16414
16415	// The mutual TLS authentication configuration for a custom domain name. If
16416	// specified, API Gateway performs two-way authentication between the client
16417	// and the server. Clients must present a trusted certificate to access your
16418	// API.
16419	MutualTlsAuthentication *MutualTlsAuthentication `locationName:"mutualTlsAuthentication" type:"structure"`
16420
16421	// The ARN of the public certificate issued by ACM to validate ownership of
16422	// your custom domain. Only required when configuring mutual TLS and using an
16423	// ACM imported or private CA certificate ARN as the regionalCertificateArn.
16424	OwnershipVerificationCertificateArn *string `locationName:"ownershipVerificationCertificateArn" type:"string"`
16425
16426	// The reference to an AWS-managed certificate that will be used for validating
16427	// the regional domain name. AWS Certificate Manager is the only supported source.
16428	RegionalCertificateArn *string `locationName:"regionalCertificateArn" type:"string"`
16429
16430	// The name of the certificate that will be used for validating the regional
16431	// domain name.
16432	RegionalCertificateName *string `locationName:"regionalCertificateName" type:"string"`
16433
16434	// The domain name associated with the regional endpoint for this custom domain
16435	// name. You set up this association by adding a DNS record that points the
16436	// custom domain name to this regional domain name. The regional domain name
16437	// is returned by API Gateway when you create a regional endpoint.
16438	RegionalDomainName *string `locationName:"regionalDomainName" type:"string"`
16439
16440	// The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint.
16441	// 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)
16442	// and AWS Regions and Endpoints for API Gateway (https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region).
16443	RegionalHostedZoneId *string `locationName:"regionalHostedZoneId" type:"string"`
16444
16445	// The Transport Layer Security (TLS) version + cipher suite for this DomainName.
16446	// The valid values are TLS_1_0 and TLS_1_2.
16447	SecurityPolicy *string `locationName:"securityPolicy" type:"string" enum:"SecurityPolicy"`
16448
16449	// The collection of tags. Each tag element is associated with a given resource.
16450	Tags map[string]*string `locationName:"tags" type:"map"`
16451}
16452
16453// String returns the string representation.
16454//
16455// API parameter values that are decorated as "sensitive" in the API will not
16456// be included in the string output. The member name will be present, but the
16457// value will be replaced with "sensitive".
16458func (s DomainName) String() string {
16459	return awsutil.Prettify(s)
16460}
16461
16462// GoString returns the string representation.
16463//
16464// API parameter values that are decorated as "sensitive" in the API will not
16465// be included in the string output. The member name will be present, but the
16466// value will be replaced with "sensitive".
16467func (s DomainName) GoString() string {
16468	return s.String()
16469}
16470
16471// SetCertificateArn sets the CertificateArn field's value.
16472func (s *DomainName) SetCertificateArn(v string) *DomainName {
16473	s.CertificateArn = &v
16474	return s
16475}
16476
16477// SetCertificateName sets the CertificateName field's value.
16478func (s *DomainName) SetCertificateName(v string) *DomainName {
16479	s.CertificateName = &v
16480	return s
16481}
16482
16483// SetCertificateUploadDate sets the CertificateUploadDate field's value.
16484func (s *DomainName) SetCertificateUploadDate(v time.Time) *DomainName {
16485	s.CertificateUploadDate = &v
16486	return s
16487}
16488
16489// SetDistributionDomainName sets the DistributionDomainName field's value.
16490func (s *DomainName) SetDistributionDomainName(v string) *DomainName {
16491	s.DistributionDomainName = &v
16492	return s
16493}
16494
16495// SetDistributionHostedZoneId sets the DistributionHostedZoneId field's value.
16496func (s *DomainName) SetDistributionHostedZoneId(v string) *DomainName {
16497	s.DistributionHostedZoneId = &v
16498	return s
16499}
16500
16501// SetDomainName sets the DomainName field's value.
16502func (s *DomainName) SetDomainName(v string) *DomainName {
16503	s.DomainName = &v
16504	return s
16505}
16506
16507// SetDomainNameStatus sets the DomainNameStatus field's value.
16508func (s *DomainName) SetDomainNameStatus(v string) *DomainName {
16509	s.DomainNameStatus = &v
16510	return s
16511}
16512
16513// SetDomainNameStatusMessage sets the DomainNameStatusMessage field's value.
16514func (s *DomainName) SetDomainNameStatusMessage(v string) *DomainName {
16515	s.DomainNameStatusMessage = &v
16516	return s
16517}
16518
16519// SetEndpointConfiguration sets the EndpointConfiguration field's value.
16520func (s *DomainName) SetEndpointConfiguration(v *EndpointConfiguration) *DomainName {
16521	s.EndpointConfiguration = v
16522	return s
16523}
16524
16525// SetMutualTlsAuthentication sets the MutualTlsAuthentication field's value.
16526func (s *DomainName) SetMutualTlsAuthentication(v *MutualTlsAuthentication) *DomainName {
16527	s.MutualTlsAuthentication = v
16528	return s
16529}
16530
16531// SetOwnershipVerificationCertificateArn sets the OwnershipVerificationCertificateArn field's value.
16532func (s *DomainName) SetOwnershipVerificationCertificateArn(v string) *DomainName {
16533	s.OwnershipVerificationCertificateArn = &v
16534	return s
16535}
16536
16537// SetRegionalCertificateArn sets the RegionalCertificateArn field's value.
16538func (s *DomainName) SetRegionalCertificateArn(v string) *DomainName {
16539	s.RegionalCertificateArn = &v
16540	return s
16541}
16542
16543// SetRegionalCertificateName sets the RegionalCertificateName field's value.
16544func (s *DomainName) SetRegionalCertificateName(v string) *DomainName {
16545	s.RegionalCertificateName = &v
16546	return s
16547}
16548
16549// SetRegionalDomainName sets the RegionalDomainName field's value.
16550func (s *DomainName) SetRegionalDomainName(v string) *DomainName {
16551	s.RegionalDomainName = &v
16552	return s
16553}
16554
16555// SetRegionalHostedZoneId sets the RegionalHostedZoneId field's value.
16556func (s *DomainName) SetRegionalHostedZoneId(v string) *DomainName {
16557	s.RegionalHostedZoneId = &v
16558	return s
16559}
16560
16561// SetSecurityPolicy sets the SecurityPolicy field's value.
16562func (s *DomainName) SetSecurityPolicy(v string) *DomainName {
16563	s.SecurityPolicy = &v
16564	return s
16565}
16566
16567// SetTags sets the Tags field's value.
16568func (s *DomainName) SetTags(v map[string]*string) *DomainName {
16569	s.Tags = v
16570	return s
16571}
16572
16573// The endpoint configuration to indicate the types of endpoints an API (RestApi)
16574// or its custom domain name (DomainName) has.
16575type EndpointConfiguration struct {
16576	_ struct{} `type:"structure"`
16577
16578	// A list of endpoint types of an API (RestApi) or its custom domain name (DomainName).
16579	// For an edge-optimized API and its custom domain name, the endpoint type is
16580	// "EDGE". For a regional API and its custom domain name, the endpoint type
16581	// is REGIONAL. For a private API, the endpoint type is PRIVATE.
16582	Types []*string `locationName:"types" type:"list"`
16583
16584	// A list of VpcEndpointIds of an API (RestApi) against which to create Route53
16585	// ALIASes. It is only supported for PRIVATE endpoint type.
16586	VpcEndpointIds []*string `locationName:"vpcEndpointIds" type:"list"`
16587}
16588
16589// String returns the string representation.
16590//
16591// API parameter values that are decorated as "sensitive" in the API will not
16592// be included in the string output. The member name will be present, but the
16593// value will be replaced with "sensitive".
16594func (s EndpointConfiguration) String() string {
16595	return awsutil.Prettify(s)
16596}
16597
16598// GoString returns the string representation.
16599//
16600// API parameter values that are decorated as "sensitive" in the API will not
16601// be included in the string output. The member name will be present, but the
16602// value will be replaced with "sensitive".
16603func (s EndpointConfiguration) GoString() string {
16604	return s.String()
16605}
16606
16607// SetTypes sets the Types field's value.
16608func (s *EndpointConfiguration) SetTypes(v []*string) *EndpointConfiguration {
16609	s.Types = v
16610	return s
16611}
16612
16613// SetVpcEndpointIds sets the VpcEndpointIds field's value.
16614func (s *EndpointConfiguration) SetVpcEndpointIds(v []*string) *EndpointConfiguration {
16615	s.VpcEndpointIds = v
16616	return s
16617}
16618
16619// Request to flush authorizer cache entries on a specified stage.
16620type FlushStageAuthorizersCacheInput struct {
16621	_ struct{} `type:"structure" nopayload:"true"`
16622
16623	// 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 name of the stage to flush.
16629	//
16630	// StageName is a required field
16631	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
16632}
16633
16634// String returns the string representation.
16635//
16636// API parameter values that are decorated as "sensitive" in the API will not
16637// be included in the string output. The member name will be present, but the
16638// value will be replaced with "sensitive".
16639func (s FlushStageAuthorizersCacheInput) String() string {
16640	return awsutil.Prettify(s)
16641}
16642
16643// GoString returns the string representation.
16644//
16645// API parameter values that are decorated as "sensitive" in the API will not
16646// be included in the string output. The member name will be present, but the
16647// value will be replaced with "sensitive".
16648func (s FlushStageAuthorizersCacheInput) GoString() string {
16649	return s.String()
16650}
16651
16652// Validate inspects the fields of the type to determine if they are valid.
16653func (s *FlushStageAuthorizersCacheInput) Validate() error {
16654	invalidParams := request.ErrInvalidParams{Context: "FlushStageAuthorizersCacheInput"}
16655	if s.RestApiId == nil {
16656		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16657	}
16658	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16659		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16660	}
16661	if s.StageName == nil {
16662		invalidParams.Add(request.NewErrParamRequired("StageName"))
16663	}
16664	if s.StageName != nil && len(*s.StageName) < 1 {
16665		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
16666	}
16667
16668	if invalidParams.Len() > 0 {
16669		return invalidParams
16670	}
16671	return nil
16672}
16673
16674// SetRestApiId sets the RestApiId field's value.
16675func (s *FlushStageAuthorizersCacheInput) SetRestApiId(v string) *FlushStageAuthorizersCacheInput {
16676	s.RestApiId = &v
16677	return s
16678}
16679
16680// SetStageName sets the StageName field's value.
16681func (s *FlushStageAuthorizersCacheInput) SetStageName(v string) *FlushStageAuthorizersCacheInput {
16682	s.StageName = &v
16683	return s
16684}
16685
16686type FlushStageAuthorizersCacheOutput struct {
16687	_ struct{} `type:"structure"`
16688}
16689
16690// String returns the string representation.
16691//
16692// API parameter values that are decorated as "sensitive" in the API will not
16693// be included in the string output. The member name will be present, but the
16694// value will be replaced with "sensitive".
16695func (s FlushStageAuthorizersCacheOutput) String() string {
16696	return awsutil.Prettify(s)
16697}
16698
16699// GoString returns the string representation.
16700//
16701// API parameter values that are decorated as "sensitive" in the API will not
16702// be included in the string output. The member name will be present, but the
16703// value will be replaced with "sensitive".
16704func (s FlushStageAuthorizersCacheOutput) GoString() string {
16705	return s.String()
16706}
16707
16708// Requests API Gateway to flush a stage's cache.
16709type FlushStageCacheInput struct {
16710	_ struct{} `type:"structure" nopayload:"true"`
16711
16712	// [Required] The string identifier of the associated RestApi.
16713	//
16714	// RestApiId is a required field
16715	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
16716
16717	// [Required] The name of the stage to flush its cache.
16718	//
16719	// StageName is a required field
16720	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
16721}
16722
16723// String returns the string representation.
16724//
16725// API parameter values that are decorated as "sensitive" in the API will not
16726// be included in the string output. The member name will be present, but the
16727// value will be replaced with "sensitive".
16728func (s FlushStageCacheInput) String() string {
16729	return awsutil.Prettify(s)
16730}
16731
16732// GoString returns the string representation.
16733//
16734// API parameter values that are decorated as "sensitive" in the API will not
16735// be included in the string output. The member name will be present, but the
16736// value will be replaced with "sensitive".
16737func (s FlushStageCacheInput) GoString() string {
16738	return s.String()
16739}
16740
16741// Validate inspects the fields of the type to determine if they are valid.
16742func (s *FlushStageCacheInput) Validate() error {
16743	invalidParams := request.ErrInvalidParams{Context: "FlushStageCacheInput"}
16744	if s.RestApiId == nil {
16745		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
16746	}
16747	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
16748		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
16749	}
16750	if s.StageName == nil {
16751		invalidParams.Add(request.NewErrParamRequired("StageName"))
16752	}
16753	if s.StageName != nil && len(*s.StageName) < 1 {
16754		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
16755	}
16756
16757	if invalidParams.Len() > 0 {
16758		return invalidParams
16759	}
16760	return nil
16761}
16762
16763// SetRestApiId sets the RestApiId field's value.
16764func (s *FlushStageCacheInput) SetRestApiId(v string) *FlushStageCacheInput {
16765	s.RestApiId = &v
16766	return s
16767}
16768
16769// SetStageName sets the StageName field's value.
16770func (s *FlushStageCacheInput) SetStageName(v string) *FlushStageCacheInput {
16771	s.StageName = &v
16772	return s
16773}
16774
16775type FlushStageCacheOutput struct {
16776	_ struct{} `type:"structure"`
16777}
16778
16779// String returns the string representation.
16780//
16781// API parameter values that are decorated as "sensitive" in the API will not
16782// be included in the string output. The member name will be present, but the
16783// value will be replaced with "sensitive".
16784func (s FlushStageCacheOutput) String() string {
16785	return awsutil.Prettify(s)
16786}
16787
16788// GoString returns the string representation.
16789//
16790// API parameter values that are decorated as "sensitive" in the API will not
16791// be included in the string output. The member name will be present, but the
16792// value will be replaced with "sensitive".
16793func (s FlushStageCacheOutput) GoString() string {
16794	return s.String()
16795}
16796
16797// A request to generate a ClientCertificate resource.
16798type GenerateClientCertificateInput struct {
16799	_ struct{} `type:"structure"`
16800
16801	// The description of the ClientCertificate.
16802	Description *string `locationName:"description" type:"string"`
16803
16804	// The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
16805	// The tag key can be up to 128 characters and must not start with aws:. The
16806	// tag value can be up to 256 characters.
16807	Tags map[string]*string `locationName:"tags" type:"map"`
16808}
16809
16810// String returns the string representation.
16811//
16812// API parameter values that are decorated as "sensitive" in the API will not
16813// be included in the string output. The member name will be present, but the
16814// value will be replaced with "sensitive".
16815func (s GenerateClientCertificateInput) String() string {
16816	return awsutil.Prettify(s)
16817}
16818
16819// GoString returns the string representation.
16820//
16821// API parameter values that are decorated as "sensitive" in the API will not
16822// be included in the string output. The member name will be present, but the
16823// value will be replaced with "sensitive".
16824func (s GenerateClientCertificateInput) GoString() string {
16825	return s.String()
16826}
16827
16828// SetDescription sets the Description field's value.
16829func (s *GenerateClientCertificateInput) SetDescription(v string) *GenerateClientCertificateInput {
16830	s.Description = &v
16831	return s
16832}
16833
16834// SetTags sets the Tags field's value.
16835func (s *GenerateClientCertificateInput) SetTags(v map[string]*string) *GenerateClientCertificateInput {
16836	s.Tags = v
16837	return s
16838}
16839
16840// Requests API Gateway to get information about the current Account resource.
16841type GetAccountInput struct {
16842	_ struct{} `type:"structure" nopayload:"true"`
16843}
16844
16845// String returns the string representation.
16846//
16847// API parameter values that are decorated as "sensitive" in the API will not
16848// be included in the string output. The member name will be present, but the
16849// value will be replaced with "sensitive".
16850func (s GetAccountInput) String() string {
16851	return awsutil.Prettify(s)
16852}
16853
16854// GoString returns the string representation.
16855//
16856// API parameter values that are decorated as "sensitive" in the API will not
16857// be included in the string output. The member name will be present, but the
16858// value will be replaced with "sensitive".
16859func (s GetAccountInput) GoString() string {
16860	return s.String()
16861}
16862
16863// A request to get information about the current ApiKey resource.
16864type GetApiKeyInput struct {
16865	_ struct{} `type:"structure" nopayload:"true"`
16866
16867	// [Required] The identifier of the ApiKey resource.
16868	//
16869	// ApiKey is a required field
16870	ApiKey *string `location:"uri" locationName:"api_Key" type:"string" required:"true"`
16871
16872	// A boolean flag to specify whether (true) or not (false) the result contains
16873	// the key value.
16874	IncludeValue *bool `location:"querystring" locationName:"includeValue" type:"boolean"`
16875}
16876
16877// String returns the string representation.
16878//
16879// API parameter values that are decorated as "sensitive" in the API will not
16880// be included in the string output. The member name will be present, but the
16881// value will be replaced with "sensitive".
16882func (s GetApiKeyInput) String() string {
16883	return awsutil.Prettify(s)
16884}
16885
16886// GoString returns the string representation.
16887//
16888// API parameter values that are decorated as "sensitive" in the API will not
16889// be included in the string output. The member name will be present, but the
16890// value will be replaced with "sensitive".
16891func (s GetApiKeyInput) GoString() string {
16892	return s.String()
16893}
16894
16895// Validate inspects the fields of the type to determine if they are valid.
16896func (s *GetApiKeyInput) Validate() error {
16897	invalidParams := request.ErrInvalidParams{Context: "GetApiKeyInput"}
16898	if s.ApiKey == nil {
16899		invalidParams.Add(request.NewErrParamRequired("ApiKey"))
16900	}
16901	if s.ApiKey != nil && len(*s.ApiKey) < 1 {
16902		invalidParams.Add(request.NewErrParamMinLen("ApiKey", 1))
16903	}
16904
16905	if invalidParams.Len() > 0 {
16906		return invalidParams
16907	}
16908	return nil
16909}
16910
16911// SetApiKey sets the ApiKey field's value.
16912func (s *GetApiKeyInput) SetApiKey(v string) *GetApiKeyInput {
16913	s.ApiKey = &v
16914	return s
16915}
16916
16917// SetIncludeValue sets the IncludeValue field's value.
16918func (s *GetApiKeyInput) SetIncludeValue(v bool) *GetApiKeyInput {
16919	s.IncludeValue = &v
16920	return s
16921}
16922
16923// A request to get information about the current ApiKeys resource.
16924type GetApiKeysInput struct {
16925	_ struct{} `type:"structure" nopayload:"true"`
16926
16927	// The identifier of a customer in AWS Marketplace or an external system, such
16928	// as a developer portal.
16929	CustomerId *string `location:"querystring" locationName:"customerId" type:"string"`
16930
16931	// A boolean flag to specify whether (true) or not (false) the result contains
16932	// key values.
16933	IncludeValues *bool `location:"querystring" locationName:"includeValues" type:"boolean"`
16934
16935	// The maximum number of returned results per page. The default value is 25
16936	// and the maximum value is 500.
16937	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
16938
16939	// The name of queried API keys.
16940	NameQuery *string `location:"querystring" locationName:"name" type:"string"`
16941
16942	// The current pagination position in the paged result set.
16943	Position *string `location:"querystring" locationName:"position" type:"string"`
16944}
16945
16946// String returns the string representation.
16947//
16948// API parameter values that are decorated as "sensitive" in the API will not
16949// be included in the string output. The member name will be present, but the
16950// value will be replaced with "sensitive".
16951func (s GetApiKeysInput) String() string {
16952	return awsutil.Prettify(s)
16953}
16954
16955// GoString returns the string representation.
16956//
16957// API parameter values that are decorated as "sensitive" in the API will not
16958// be included in the string output. The member name will be present, but the
16959// value will be replaced with "sensitive".
16960func (s GetApiKeysInput) GoString() string {
16961	return s.String()
16962}
16963
16964// SetCustomerId sets the CustomerId field's value.
16965func (s *GetApiKeysInput) SetCustomerId(v string) *GetApiKeysInput {
16966	s.CustomerId = &v
16967	return s
16968}
16969
16970// SetIncludeValues sets the IncludeValues field's value.
16971func (s *GetApiKeysInput) SetIncludeValues(v bool) *GetApiKeysInput {
16972	s.IncludeValues = &v
16973	return s
16974}
16975
16976// SetLimit sets the Limit field's value.
16977func (s *GetApiKeysInput) SetLimit(v int64) *GetApiKeysInput {
16978	s.Limit = &v
16979	return s
16980}
16981
16982// SetNameQuery sets the NameQuery field's value.
16983func (s *GetApiKeysInput) SetNameQuery(v string) *GetApiKeysInput {
16984	s.NameQuery = &v
16985	return s
16986}
16987
16988// SetPosition sets the Position field's value.
16989func (s *GetApiKeysInput) SetPosition(v string) *GetApiKeysInput {
16990	s.Position = &v
16991	return s
16992}
16993
16994// Represents a collection of API keys as represented by an ApiKeys resource.
16995//
16996// Use API Keys (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html)
16997type GetApiKeysOutput struct {
16998	_ struct{} `type:"structure"`
16999
17000	// The current page of elements from this collection.
17001	Items []*ApiKey `locationName:"item" type:"list"`
17002
17003	Position *string `locationName:"position" type:"string"`
17004
17005	// A list of warning messages logged during the import of API keys when the
17006	// failOnWarnings option is set to true.
17007	Warnings []*string `locationName:"warnings" type:"list"`
17008}
17009
17010// String returns the string representation.
17011//
17012// API parameter values that are decorated as "sensitive" in the API will not
17013// be included in the string output. The member name will be present, but the
17014// value will be replaced with "sensitive".
17015func (s GetApiKeysOutput) String() string {
17016	return awsutil.Prettify(s)
17017}
17018
17019// GoString returns the string representation.
17020//
17021// API parameter values that are decorated as "sensitive" in the API will not
17022// be included in the string output. The member name will be present, but the
17023// value will be replaced with "sensitive".
17024func (s GetApiKeysOutput) GoString() string {
17025	return s.String()
17026}
17027
17028// SetItems sets the Items field's value.
17029func (s *GetApiKeysOutput) SetItems(v []*ApiKey) *GetApiKeysOutput {
17030	s.Items = v
17031	return s
17032}
17033
17034// SetPosition sets the Position field's value.
17035func (s *GetApiKeysOutput) SetPosition(v string) *GetApiKeysOutput {
17036	s.Position = &v
17037	return s
17038}
17039
17040// SetWarnings sets the Warnings field's value.
17041func (s *GetApiKeysOutput) SetWarnings(v []*string) *GetApiKeysOutput {
17042	s.Warnings = v
17043	return s
17044}
17045
17046// Request to describe an existing Authorizer resource.
17047type GetAuthorizerInput struct {
17048	_ struct{} `type:"structure" nopayload:"true"`
17049
17050	// [Required] The identifier of the Authorizer resource.
17051	//
17052	// AuthorizerId is a required field
17053	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
17054
17055	// [Required] The string identifier of the associated RestApi.
17056	//
17057	// RestApiId is a required field
17058	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17059}
17060
17061// String returns the string representation.
17062//
17063// API parameter values that are decorated as "sensitive" in the API will not
17064// be included in the string output. The member name will be present, but the
17065// value will be replaced with "sensitive".
17066func (s GetAuthorizerInput) String() string {
17067	return awsutil.Prettify(s)
17068}
17069
17070// GoString returns the string representation.
17071//
17072// API parameter values that are decorated as "sensitive" in the API will not
17073// be included in the string output. The member name will be present, but the
17074// value will be replaced with "sensitive".
17075func (s GetAuthorizerInput) GoString() string {
17076	return s.String()
17077}
17078
17079// Validate inspects the fields of the type to determine if they are valid.
17080func (s *GetAuthorizerInput) Validate() error {
17081	invalidParams := request.ErrInvalidParams{Context: "GetAuthorizerInput"}
17082	if s.AuthorizerId == nil {
17083		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
17084	}
17085	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
17086		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
17087	}
17088	if s.RestApiId == nil {
17089		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17090	}
17091	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17092		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17093	}
17094
17095	if invalidParams.Len() > 0 {
17096		return invalidParams
17097	}
17098	return nil
17099}
17100
17101// SetAuthorizerId sets the AuthorizerId field's value.
17102func (s *GetAuthorizerInput) SetAuthorizerId(v string) *GetAuthorizerInput {
17103	s.AuthorizerId = &v
17104	return s
17105}
17106
17107// SetRestApiId sets the RestApiId field's value.
17108func (s *GetAuthorizerInput) SetRestApiId(v string) *GetAuthorizerInput {
17109	s.RestApiId = &v
17110	return s
17111}
17112
17113// Request to describe an existing Authorizers resource.
17114type GetAuthorizersInput struct {
17115	_ struct{} `type:"structure" nopayload:"true"`
17116
17117	// The maximum number of returned results per page. The default value is 25
17118	// and the maximum value is 500.
17119	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
17120
17121	// The current pagination position in the paged result set.
17122	Position *string `location:"querystring" locationName:"position" type:"string"`
17123
17124	// [Required] The string identifier of the associated RestApi.
17125	//
17126	// RestApiId is a required field
17127	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17128}
17129
17130// String returns the string representation.
17131//
17132// API parameter values that are decorated as "sensitive" in the API will not
17133// be included in the string output. The member name will be present, but the
17134// value will be replaced with "sensitive".
17135func (s GetAuthorizersInput) String() string {
17136	return awsutil.Prettify(s)
17137}
17138
17139// GoString returns the string representation.
17140//
17141// API parameter values that are decorated as "sensitive" in the API will not
17142// be included in the string output. The member name will be present, but the
17143// value will be replaced with "sensitive".
17144func (s GetAuthorizersInput) GoString() string {
17145	return s.String()
17146}
17147
17148// Validate inspects the fields of the type to determine if they are valid.
17149func (s *GetAuthorizersInput) Validate() error {
17150	invalidParams := request.ErrInvalidParams{Context: "GetAuthorizersInput"}
17151	if s.RestApiId == nil {
17152		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17153	}
17154	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17155		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17156	}
17157
17158	if invalidParams.Len() > 0 {
17159		return invalidParams
17160	}
17161	return nil
17162}
17163
17164// SetLimit sets the Limit field's value.
17165func (s *GetAuthorizersInput) SetLimit(v int64) *GetAuthorizersInput {
17166	s.Limit = &v
17167	return s
17168}
17169
17170// SetPosition sets the Position field's value.
17171func (s *GetAuthorizersInput) SetPosition(v string) *GetAuthorizersInput {
17172	s.Position = &v
17173	return s
17174}
17175
17176// SetRestApiId sets the RestApiId field's value.
17177func (s *GetAuthorizersInput) SetRestApiId(v string) *GetAuthorizersInput {
17178	s.RestApiId = &v
17179	return s
17180}
17181
17182// Represents a collection of Authorizer resources.
17183//
17184// Use Lambda Function as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)
17185// Use Cognito User Pool as Authorizer (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)
17186type GetAuthorizersOutput struct {
17187	_ struct{} `type:"structure"`
17188
17189	// The current page of elements from this collection.
17190	Items []*Authorizer `locationName:"item" type:"list"`
17191
17192	Position *string `locationName:"position" type:"string"`
17193}
17194
17195// String returns the string representation.
17196//
17197// API parameter values that are decorated as "sensitive" in the API will not
17198// be included in the string output. The member name will be present, but the
17199// value will be replaced with "sensitive".
17200func (s GetAuthorizersOutput) String() string {
17201	return awsutil.Prettify(s)
17202}
17203
17204// GoString returns the string representation.
17205//
17206// API parameter values that are decorated as "sensitive" in the API will not
17207// be included in the string output. The member name will be present, but the
17208// value will be replaced with "sensitive".
17209func (s GetAuthorizersOutput) GoString() string {
17210	return s.String()
17211}
17212
17213// SetItems sets the Items field's value.
17214func (s *GetAuthorizersOutput) SetItems(v []*Authorizer) *GetAuthorizersOutput {
17215	s.Items = v
17216	return s
17217}
17218
17219// SetPosition sets the Position field's value.
17220func (s *GetAuthorizersOutput) SetPosition(v string) *GetAuthorizersOutput {
17221	s.Position = &v
17222	return s
17223}
17224
17225// Request to describe a BasePathMapping resource.
17226type GetBasePathMappingInput struct {
17227	_ struct{} `type:"structure" nopayload:"true"`
17228
17229	// [Required] The base path name that callers of the API must provide as part
17230	// of the URL after the domain name. This value must be unique for all of the
17231	// mappings across a single API. Specify '(none)' if you do not want callers
17232	// to specify any base path name after the domain name.
17233	//
17234	// BasePath is a required field
17235	BasePath *string `location:"uri" locationName:"base_path" type:"string" required:"true"`
17236
17237	// [Required] The domain name of the BasePathMapping resource to be described.
17238	//
17239	// DomainName is a required field
17240	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
17241}
17242
17243// String returns the string representation.
17244//
17245// API parameter values that are decorated as "sensitive" in the API will not
17246// be included in the string output. The member name will be present, but the
17247// value will be replaced with "sensitive".
17248func (s GetBasePathMappingInput) String() string {
17249	return awsutil.Prettify(s)
17250}
17251
17252// GoString returns the string representation.
17253//
17254// API parameter values that are decorated as "sensitive" in the API will not
17255// be included in the string output. The member name will be present, but the
17256// value will be replaced with "sensitive".
17257func (s GetBasePathMappingInput) GoString() string {
17258	return s.String()
17259}
17260
17261// Validate inspects the fields of the type to determine if they are valid.
17262func (s *GetBasePathMappingInput) Validate() error {
17263	invalidParams := request.ErrInvalidParams{Context: "GetBasePathMappingInput"}
17264	if s.BasePath == nil {
17265		invalidParams.Add(request.NewErrParamRequired("BasePath"))
17266	}
17267	if s.BasePath != nil && len(*s.BasePath) < 1 {
17268		invalidParams.Add(request.NewErrParamMinLen("BasePath", 1))
17269	}
17270	if s.DomainName == nil {
17271		invalidParams.Add(request.NewErrParamRequired("DomainName"))
17272	}
17273	if s.DomainName != nil && len(*s.DomainName) < 1 {
17274		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
17275	}
17276
17277	if invalidParams.Len() > 0 {
17278		return invalidParams
17279	}
17280	return nil
17281}
17282
17283// SetBasePath sets the BasePath field's value.
17284func (s *GetBasePathMappingInput) SetBasePath(v string) *GetBasePathMappingInput {
17285	s.BasePath = &v
17286	return s
17287}
17288
17289// SetDomainName sets the DomainName field's value.
17290func (s *GetBasePathMappingInput) SetDomainName(v string) *GetBasePathMappingInput {
17291	s.DomainName = &v
17292	return s
17293}
17294
17295// A request to get information about a collection of BasePathMapping resources.
17296type GetBasePathMappingsInput struct {
17297	_ struct{} `type:"structure" nopayload:"true"`
17298
17299	// [Required] The domain name of a BasePathMapping resource.
17300	//
17301	// DomainName is a required field
17302	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
17303
17304	// The maximum number of returned results per page. The default value is 25
17305	// and the maximum value is 500.
17306	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
17307
17308	// The current pagination position in the paged result set.
17309	Position *string `location:"querystring" locationName:"position" type:"string"`
17310}
17311
17312// String returns the string representation.
17313//
17314// API parameter values that are decorated as "sensitive" in the API will not
17315// be included in the string output. The member name will be present, but the
17316// value will be replaced with "sensitive".
17317func (s GetBasePathMappingsInput) String() string {
17318	return awsutil.Prettify(s)
17319}
17320
17321// GoString returns the string representation.
17322//
17323// API parameter values that are decorated as "sensitive" in the API will not
17324// be included in the string output. The member name will be present, but the
17325// value will be replaced with "sensitive".
17326func (s GetBasePathMappingsInput) GoString() string {
17327	return s.String()
17328}
17329
17330// Validate inspects the fields of the type to determine if they are valid.
17331func (s *GetBasePathMappingsInput) Validate() error {
17332	invalidParams := request.ErrInvalidParams{Context: "GetBasePathMappingsInput"}
17333	if s.DomainName == nil {
17334		invalidParams.Add(request.NewErrParamRequired("DomainName"))
17335	}
17336	if s.DomainName != nil && len(*s.DomainName) < 1 {
17337		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
17338	}
17339
17340	if invalidParams.Len() > 0 {
17341		return invalidParams
17342	}
17343	return nil
17344}
17345
17346// SetDomainName sets the DomainName field's value.
17347func (s *GetBasePathMappingsInput) SetDomainName(v string) *GetBasePathMappingsInput {
17348	s.DomainName = &v
17349	return s
17350}
17351
17352// SetLimit sets the Limit field's value.
17353func (s *GetBasePathMappingsInput) SetLimit(v int64) *GetBasePathMappingsInput {
17354	s.Limit = &v
17355	return s
17356}
17357
17358// SetPosition sets the Position field's value.
17359func (s *GetBasePathMappingsInput) SetPosition(v string) *GetBasePathMappingsInput {
17360	s.Position = &v
17361	return s
17362}
17363
17364// Represents a collection of BasePathMapping resources.
17365//
17366// Use Custom Domain Names (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
17367type GetBasePathMappingsOutput struct {
17368	_ struct{} `type:"structure"`
17369
17370	// The current page of elements from this collection.
17371	Items []*BasePathMapping `locationName:"item" type:"list"`
17372
17373	Position *string `locationName:"position" type:"string"`
17374}
17375
17376// String returns the string representation.
17377//
17378// API parameter values that are decorated as "sensitive" in the API will not
17379// be included in the string output. The member name will be present, but the
17380// value will be replaced with "sensitive".
17381func (s GetBasePathMappingsOutput) String() string {
17382	return awsutil.Prettify(s)
17383}
17384
17385// GoString returns the string representation.
17386//
17387// API parameter values that are decorated as "sensitive" in the API will not
17388// be included in the string output. The member name will be present, but the
17389// value will be replaced with "sensitive".
17390func (s GetBasePathMappingsOutput) GoString() string {
17391	return s.String()
17392}
17393
17394// SetItems sets the Items field's value.
17395func (s *GetBasePathMappingsOutput) SetItems(v []*BasePathMapping) *GetBasePathMappingsOutput {
17396	s.Items = v
17397	return s
17398}
17399
17400// SetPosition sets the Position field's value.
17401func (s *GetBasePathMappingsOutput) SetPosition(v string) *GetBasePathMappingsOutput {
17402	s.Position = &v
17403	return s
17404}
17405
17406// A request to get information about the current ClientCertificate resource.
17407type GetClientCertificateInput struct {
17408	_ struct{} `type:"structure" nopayload:"true"`
17409
17410	// [Required] The identifier of the ClientCertificate resource to be described.
17411	//
17412	// ClientCertificateId is a required field
17413	ClientCertificateId *string `location:"uri" locationName:"clientcertificate_id" type:"string" required:"true"`
17414}
17415
17416// String returns the string representation.
17417//
17418// API parameter values that are decorated as "sensitive" in the API will not
17419// be included in the string output. The member name will be present, but the
17420// value will be replaced with "sensitive".
17421func (s GetClientCertificateInput) String() string {
17422	return awsutil.Prettify(s)
17423}
17424
17425// GoString returns the string representation.
17426//
17427// API parameter values that are decorated as "sensitive" in the API will not
17428// be included in the string output. The member name will be present, but the
17429// value will be replaced with "sensitive".
17430func (s GetClientCertificateInput) GoString() string {
17431	return s.String()
17432}
17433
17434// Validate inspects the fields of the type to determine if they are valid.
17435func (s *GetClientCertificateInput) Validate() error {
17436	invalidParams := request.ErrInvalidParams{Context: "GetClientCertificateInput"}
17437	if s.ClientCertificateId == nil {
17438		invalidParams.Add(request.NewErrParamRequired("ClientCertificateId"))
17439	}
17440	if s.ClientCertificateId != nil && len(*s.ClientCertificateId) < 1 {
17441		invalidParams.Add(request.NewErrParamMinLen("ClientCertificateId", 1))
17442	}
17443
17444	if invalidParams.Len() > 0 {
17445		return invalidParams
17446	}
17447	return nil
17448}
17449
17450// SetClientCertificateId sets the ClientCertificateId field's value.
17451func (s *GetClientCertificateInput) SetClientCertificateId(v string) *GetClientCertificateInput {
17452	s.ClientCertificateId = &v
17453	return s
17454}
17455
17456// A request to get information about a collection of ClientCertificate resources.
17457type GetClientCertificatesInput struct {
17458	_ struct{} `type:"structure" nopayload:"true"`
17459
17460	// The maximum number of returned results per page. The default value is 25
17461	// and the maximum value is 500.
17462	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
17463
17464	// The current pagination position in the paged result set.
17465	Position *string `location:"querystring" locationName:"position" type:"string"`
17466}
17467
17468// String returns the string representation.
17469//
17470// API parameter values that are decorated as "sensitive" in the API will not
17471// be included in the string output. The member name will be present, but the
17472// value will be replaced with "sensitive".
17473func (s GetClientCertificatesInput) String() string {
17474	return awsutil.Prettify(s)
17475}
17476
17477// GoString returns the string representation.
17478//
17479// API parameter values that are decorated as "sensitive" in the API will not
17480// be included in the string output. The member name will be present, but the
17481// value will be replaced with "sensitive".
17482func (s GetClientCertificatesInput) GoString() string {
17483	return s.String()
17484}
17485
17486// SetLimit sets the Limit field's value.
17487func (s *GetClientCertificatesInput) SetLimit(v int64) *GetClientCertificatesInput {
17488	s.Limit = &v
17489	return s
17490}
17491
17492// SetPosition sets the Position field's value.
17493func (s *GetClientCertificatesInput) SetPosition(v string) *GetClientCertificatesInput {
17494	s.Position = &v
17495	return s
17496}
17497
17498// Represents a collection of ClientCertificate resources.
17499//
17500// Use Client-Side Certificate (https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html)
17501type GetClientCertificatesOutput struct {
17502	_ struct{} `type:"structure"`
17503
17504	// The current page of elements from this collection.
17505	Items []*ClientCertificate `locationName:"item" type:"list"`
17506
17507	Position *string `locationName:"position" type:"string"`
17508}
17509
17510// String returns the string representation.
17511//
17512// API parameter values that are decorated as "sensitive" in the API will not
17513// be included in the string output. The member name will be present, but the
17514// value will be replaced with "sensitive".
17515func (s GetClientCertificatesOutput) String() string {
17516	return awsutil.Prettify(s)
17517}
17518
17519// GoString returns the string representation.
17520//
17521// API parameter values that are decorated as "sensitive" in the API will not
17522// be included in the string output. The member name will be present, but the
17523// value will be replaced with "sensitive".
17524func (s GetClientCertificatesOutput) GoString() string {
17525	return s.String()
17526}
17527
17528// SetItems sets the Items field's value.
17529func (s *GetClientCertificatesOutput) SetItems(v []*ClientCertificate) *GetClientCertificatesOutput {
17530	s.Items = v
17531	return s
17532}
17533
17534// SetPosition sets the Position field's value.
17535func (s *GetClientCertificatesOutput) SetPosition(v string) *GetClientCertificatesOutput {
17536	s.Position = &v
17537	return s
17538}
17539
17540// Requests API Gateway to get information about a Deployment resource.
17541type GetDeploymentInput struct {
17542	_ struct{} `type:"structure" nopayload:"true"`
17543
17544	// [Required] The identifier of the Deployment resource to get information about.
17545	//
17546	// DeploymentId is a required field
17547	DeploymentId *string `location:"uri" locationName:"deployment_id" type:"string" required:"true"`
17548
17549	// A query parameter to retrieve the specified embedded resources of the returned
17550	// Deployment resource in the response. In a REST API call, this embed parameter
17551	// value is a list of comma-separated strings, as in GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=var1,var2.
17552	// The SDK and other platform-dependent libraries might use a different format
17553	// for the list. Currently, this request supports only retrieval of the embedded
17554	// API summary this way. Hence, the parameter value must be a single-valued
17555	// list containing only the "apisummary" string. For example, GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=apisummary.
17556	Embed []*string `location:"querystring" locationName:"embed" type:"list"`
17557
17558	// [Required] The string identifier of the associated RestApi.
17559	//
17560	// RestApiId is a required field
17561	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17562}
17563
17564// String returns the string representation.
17565//
17566// API parameter values that are decorated as "sensitive" in the API will not
17567// be included in the string output. The member name will be present, but the
17568// value will be replaced with "sensitive".
17569func (s GetDeploymentInput) String() string {
17570	return awsutil.Prettify(s)
17571}
17572
17573// GoString returns the string representation.
17574//
17575// API parameter values that are decorated as "sensitive" in the API will not
17576// be included in the string output. The member name will be present, but the
17577// value will be replaced with "sensitive".
17578func (s GetDeploymentInput) GoString() string {
17579	return s.String()
17580}
17581
17582// Validate inspects the fields of the type to determine if they are valid.
17583func (s *GetDeploymentInput) Validate() error {
17584	invalidParams := request.ErrInvalidParams{Context: "GetDeploymentInput"}
17585	if s.DeploymentId == nil {
17586		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
17587	}
17588	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
17589		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
17590	}
17591	if s.RestApiId == nil {
17592		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17593	}
17594	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17595		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17596	}
17597
17598	if invalidParams.Len() > 0 {
17599		return invalidParams
17600	}
17601	return nil
17602}
17603
17604// SetDeploymentId sets the DeploymentId field's value.
17605func (s *GetDeploymentInput) SetDeploymentId(v string) *GetDeploymentInput {
17606	s.DeploymentId = &v
17607	return s
17608}
17609
17610// SetEmbed sets the Embed field's value.
17611func (s *GetDeploymentInput) SetEmbed(v []*string) *GetDeploymentInput {
17612	s.Embed = v
17613	return s
17614}
17615
17616// SetRestApiId sets the RestApiId field's value.
17617func (s *GetDeploymentInput) SetRestApiId(v string) *GetDeploymentInput {
17618	s.RestApiId = &v
17619	return s
17620}
17621
17622// Requests API Gateway to get information about a Deployments collection.
17623type GetDeploymentsInput struct {
17624	_ struct{} `type:"structure" nopayload:"true"`
17625
17626	// The maximum number of returned results per page. The default value is 25
17627	// and the maximum value is 500.
17628	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
17629
17630	// The current pagination position in the paged result set.
17631	Position *string `location:"querystring" locationName:"position" type:"string"`
17632
17633	// [Required] The string identifier of the associated RestApi.
17634	//
17635	// RestApiId is a required field
17636	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17637}
17638
17639// String returns the string representation.
17640//
17641// API parameter values that are decorated as "sensitive" in the API will not
17642// be included in the string output. The member name will be present, but the
17643// value will be replaced with "sensitive".
17644func (s GetDeploymentsInput) String() string {
17645	return awsutil.Prettify(s)
17646}
17647
17648// GoString returns the string representation.
17649//
17650// API parameter values that are decorated as "sensitive" in the API will not
17651// be included in the string output. The member name will be present, but the
17652// value will be replaced with "sensitive".
17653func (s GetDeploymentsInput) GoString() string {
17654	return s.String()
17655}
17656
17657// Validate inspects the fields of the type to determine if they are valid.
17658func (s *GetDeploymentsInput) Validate() error {
17659	invalidParams := request.ErrInvalidParams{Context: "GetDeploymentsInput"}
17660	if s.RestApiId == nil {
17661		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17662	}
17663	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17664		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17665	}
17666
17667	if invalidParams.Len() > 0 {
17668		return invalidParams
17669	}
17670	return nil
17671}
17672
17673// SetLimit sets the Limit field's value.
17674func (s *GetDeploymentsInput) SetLimit(v int64) *GetDeploymentsInput {
17675	s.Limit = &v
17676	return s
17677}
17678
17679// SetPosition sets the Position field's value.
17680func (s *GetDeploymentsInput) SetPosition(v string) *GetDeploymentsInput {
17681	s.Position = &v
17682	return s
17683}
17684
17685// SetRestApiId sets the RestApiId field's value.
17686func (s *GetDeploymentsInput) SetRestApiId(v string) *GetDeploymentsInput {
17687	s.RestApiId = &v
17688	return s
17689}
17690
17691// Represents a collection resource that contains zero or more references to
17692// your existing deployments, and links that guide you on how to interact with
17693// your collection. The collection offers a paginated view of the contained
17694// deployments.
17695//
17696// To create a new deployment of a RestApi, make a POST request against this
17697// resource. To view, update, or delete an existing deployment, make a GET,
17698// PATCH, or DELETE request, respectively, on a specified Deployment resource.
17699//
17700// Deploying an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-deploy-api.html),
17701// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-deployment.html),
17702// AWS SDKs (https://aws.amazon.com/tools/)
17703type GetDeploymentsOutput struct {
17704	_ struct{} `type:"structure"`
17705
17706	// The current page of elements from this collection.
17707	Items []*Deployment `locationName:"item" type:"list"`
17708
17709	Position *string `locationName:"position" type:"string"`
17710}
17711
17712// String returns the string representation.
17713//
17714// API parameter values that are decorated as "sensitive" in the API will not
17715// be included in the string output. The member name will be present, but the
17716// value will be replaced with "sensitive".
17717func (s GetDeploymentsOutput) String() string {
17718	return awsutil.Prettify(s)
17719}
17720
17721// GoString returns the string representation.
17722//
17723// API parameter values that are decorated as "sensitive" in the API will not
17724// be included in the string output. The member name will be present, but the
17725// value will be replaced with "sensitive".
17726func (s GetDeploymentsOutput) GoString() string {
17727	return s.String()
17728}
17729
17730// SetItems sets the Items field's value.
17731func (s *GetDeploymentsOutput) SetItems(v []*Deployment) *GetDeploymentsOutput {
17732	s.Items = v
17733	return s
17734}
17735
17736// SetPosition sets the Position field's value.
17737func (s *GetDeploymentsOutput) SetPosition(v string) *GetDeploymentsOutput {
17738	s.Position = &v
17739	return s
17740}
17741
17742// Gets a specified documentation part of a given API.
17743type GetDocumentationPartInput struct {
17744	_ struct{} `type:"structure" nopayload:"true"`
17745
17746	// [Required] The string identifier of the associated RestApi.
17747	//
17748	// DocumentationPartId is a required field
17749	DocumentationPartId *string `location:"uri" locationName:"part_id" type:"string" required:"true"`
17750
17751	// [Required] The string identifier of the associated RestApi.
17752	//
17753	// RestApiId is a required field
17754	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17755}
17756
17757// String returns the string representation.
17758//
17759// API parameter values that are decorated as "sensitive" in the API will not
17760// be included in the string output. The member name will be present, but the
17761// value will be replaced with "sensitive".
17762func (s GetDocumentationPartInput) String() string {
17763	return awsutil.Prettify(s)
17764}
17765
17766// GoString returns the string representation.
17767//
17768// API parameter values that are decorated as "sensitive" in the API will not
17769// be included in the string output. The member name will be present, but the
17770// value will be replaced with "sensitive".
17771func (s GetDocumentationPartInput) GoString() string {
17772	return s.String()
17773}
17774
17775// Validate inspects the fields of the type to determine if they are valid.
17776func (s *GetDocumentationPartInput) Validate() error {
17777	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationPartInput"}
17778	if s.DocumentationPartId == nil {
17779		invalidParams.Add(request.NewErrParamRequired("DocumentationPartId"))
17780	}
17781	if s.DocumentationPartId != nil && len(*s.DocumentationPartId) < 1 {
17782		invalidParams.Add(request.NewErrParamMinLen("DocumentationPartId", 1))
17783	}
17784	if s.RestApiId == nil {
17785		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17786	}
17787	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17788		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17789	}
17790
17791	if invalidParams.Len() > 0 {
17792		return invalidParams
17793	}
17794	return nil
17795}
17796
17797// SetDocumentationPartId sets the DocumentationPartId field's value.
17798func (s *GetDocumentationPartInput) SetDocumentationPartId(v string) *GetDocumentationPartInput {
17799	s.DocumentationPartId = &v
17800	return s
17801}
17802
17803// SetRestApiId sets the RestApiId field's value.
17804func (s *GetDocumentationPartInput) SetRestApiId(v string) *GetDocumentationPartInput {
17805	s.RestApiId = &v
17806	return s
17807}
17808
17809// Gets the documentation parts of an API. The result may be filtered by the
17810// type, name, or path of API entities (targets).
17811type GetDocumentationPartsInput struct {
17812	_ struct{} `type:"structure" nopayload:"true"`
17813
17814	// The maximum number of returned results per page. The default value is 25
17815	// and the maximum value is 500.
17816	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
17817
17818	// The status of the API documentation parts to retrieve. Valid values are DOCUMENTED
17819	// for retrieving DocumentationPart resources with content and UNDOCUMENTED
17820	// for DocumentationPart resources without content.
17821	LocationStatus *string `location:"querystring" locationName:"locationStatus" type:"string" enum:"LocationStatusType"`
17822
17823	// The name of API entities of the to-be-retrieved documentation parts.
17824	NameQuery *string `location:"querystring" locationName:"name" type:"string"`
17825
17826	// The path of API entities of the to-be-retrieved documentation parts.
17827	Path *string `location:"querystring" locationName:"path" type:"string"`
17828
17829	// The current pagination position in the paged result set.
17830	Position *string `location:"querystring" locationName:"position" type:"string"`
17831
17832	// [Required] The string identifier of the associated RestApi.
17833	//
17834	// RestApiId is a required field
17835	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17836
17837	// The type of API entities of the to-be-retrieved documentation parts.
17838	Type *string `location:"querystring" locationName:"type" type:"string" enum:"DocumentationPartType"`
17839}
17840
17841// String returns the string representation.
17842//
17843// API parameter values that are decorated as "sensitive" in the API will not
17844// be included in the string output. The member name will be present, but the
17845// value will be replaced with "sensitive".
17846func (s GetDocumentationPartsInput) String() string {
17847	return awsutil.Prettify(s)
17848}
17849
17850// GoString returns the string representation.
17851//
17852// API parameter values that are decorated as "sensitive" in the API will not
17853// be included in the string output. The member name will be present, but the
17854// value will be replaced with "sensitive".
17855func (s GetDocumentationPartsInput) GoString() string {
17856	return s.String()
17857}
17858
17859// Validate inspects the fields of the type to determine if they are valid.
17860func (s *GetDocumentationPartsInput) Validate() error {
17861	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationPartsInput"}
17862	if s.RestApiId == nil {
17863		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
17864	}
17865	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
17866		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
17867	}
17868
17869	if invalidParams.Len() > 0 {
17870		return invalidParams
17871	}
17872	return nil
17873}
17874
17875// SetLimit sets the Limit field's value.
17876func (s *GetDocumentationPartsInput) SetLimit(v int64) *GetDocumentationPartsInput {
17877	s.Limit = &v
17878	return s
17879}
17880
17881// SetLocationStatus sets the LocationStatus field's value.
17882func (s *GetDocumentationPartsInput) SetLocationStatus(v string) *GetDocumentationPartsInput {
17883	s.LocationStatus = &v
17884	return s
17885}
17886
17887// SetNameQuery sets the NameQuery field's value.
17888func (s *GetDocumentationPartsInput) SetNameQuery(v string) *GetDocumentationPartsInput {
17889	s.NameQuery = &v
17890	return s
17891}
17892
17893// SetPath sets the Path field's value.
17894func (s *GetDocumentationPartsInput) SetPath(v string) *GetDocumentationPartsInput {
17895	s.Path = &v
17896	return s
17897}
17898
17899// SetPosition sets the Position field's value.
17900func (s *GetDocumentationPartsInput) SetPosition(v string) *GetDocumentationPartsInput {
17901	s.Position = &v
17902	return s
17903}
17904
17905// SetRestApiId sets the RestApiId field's value.
17906func (s *GetDocumentationPartsInput) SetRestApiId(v string) *GetDocumentationPartsInput {
17907	s.RestApiId = &v
17908	return s
17909}
17910
17911// SetType sets the Type field's value.
17912func (s *GetDocumentationPartsInput) SetType(v string) *GetDocumentationPartsInput {
17913	s.Type = &v
17914	return s
17915}
17916
17917// The collection of documentation parts of an API.
17918//
17919// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
17920// DocumentationPart
17921type GetDocumentationPartsOutput struct {
17922	_ struct{} `type:"structure"`
17923
17924	// The current page of elements from this collection.
17925	Items []*DocumentationPart `locationName:"item" type:"list"`
17926
17927	Position *string `locationName:"position" type:"string"`
17928}
17929
17930// String returns the string representation.
17931//
17932// API parameter values that are decorated as "sensitive" in the API will not
17933// be included in the string output. The member name will be present, but the
17934// value will be replaced with "sensitive".
17935func (s GetDocumentationPartsOutput) String() string {
17936	return awsutil.Prettify(s)
17937}
17938
17939// GoString returns the string representation.
17940//
17941// API parameter values that are decorated as "sensitive" in the API will not
17942// be included in the string output. The member name will be present, but the
17943// value will be replaced with "sensitive".
17944func (s GetDocumentationPartsOutput) GoString() string {
17945	return s.String()
17946}
17947
17948// SetItems sets the Items field's value.
17949func (s *GetDocumentationPartsOutput) SetItems(v []*DocumentationPart) *GetDocumentationPartsOutput {
17950	s.Items = v
17951	return s
17952}
17953
17954// SetPosition sets the Position field's value.
17955func (s *GetDocumentationPartsOutput) SetPosition(v string) *GetDocumentationPartsOutput {
17956	s.Position = &v
17957	return s
17958}
17959
17960// Gets a documentation snapshot of an API.
17961type GetDocumentationVersionInput struct {
17962	_ struct{} `type:"structure" nopayload:"true"`
17963
17964	// [Required] The version identifier of the to-be-retrieved documentation snapshot.
17965	//
17966	// DocumentationVersion is a required field
17967	DocumentationVersion *string `location:"uri" locationName:"doc_version" type:"string" required:"true"`
17968
17969	// [Required] The string identifier of the associated RestApi.
17970	//
17971	// RestApiId is a required field
17972	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
17973}
17974
17975// String returns the string representation.
17976//
17977// API parameter values that are decorated as "sensitive" in the API will not
17978// be included in the string output. The member name will be present, but the
17979// value will be replaced with "sensitive".
17980func (s GetDocumentationVersionInput) String() string {
17981	return awsutil.Prettify(s)
17982}
17983
17984// GoString returns the string representation.
17985//
17986// API parameter values that are decorated as "sensitive" in the API will not
17987// be included in the string output. The member name will be present, but the
17988// value will be replaced with "sensitive".
17989func (s GetDocumentationVersionInput) GoString() string {
17990	return s.String()
17991}
17992
17993// Validate inspects the fields of the type to determine if they are valid.
17994func (s *GetDocumentationVersionInput) Validate() error {
17995	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationVersionInput"}
17996	if s.DocumentationVersion == nil {
17997		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
17998	}
17999	if s.DocumentationVersion != nil && len(*s.DocumentationVersion) < 1 {
18000		invalidParams.Add(request.NewErrParamMinLen("DocumentationVersion", 1))
18001	}
18002	if s.RestApiId == nil {
18003		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18004	}
18005	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18006		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18007	}
18008
18009	if invalidParams.Len() > 0 {
18010		return invalidParams
18011	}
18012	return nil
18013}
18014
18015// SetDocumentationVersion sets the DocumentationVersion field's value.
18016func (s *GetDocumentationVersionInput) SetDocumentationVersion(v string) *GetDocumentationVersionInput {
18017	s.DocumentationVersion = &v
18018	return s
18019}
18020
18021// SetRestApiId sets the RestApiId field's value.
18022func (s *GetDocumentationVersionInput) SetRestApiId(v string) *GetDocumentationVersionInput {
18023	s.RestApiId = &v
18024	return s
18025}
18026
18027// Gets the documentation versions of an API.
18028type GetDocumentationVersionsInput struct {
18029	_ struct{} `type:"structure" nopayload:"true"`
18030
18031	// The maximum number of returned results per page. The default value is 25
18032	// and the maximum value is 500.
18033	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18034
18035	// The current pagination position in the paged result set.
18036	Position *string `location:"querystring" locationName:"position" type:"string"`
18037
18038	// [Required] The string identifier of the associated RestApi.
18039	//
18040	// RestApiId is a required field
18041	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18042}
18043
18044// String returns the string representation.
18045//
18046// API parameter values that are decorated as "sensitive" in the API will not
18047// be included in the string output. The member name will be present, but the
18048// value will be replaced with "sensitive".
18049func (s GetDocumentationVersionsInput) String() string {
18050	return awsutil.Prettify(s)
18051}
18052
18053// GoString returns the string representation.
18054//
18055// API parameter values that are decorated as "sensitive" in the API will not
18056// be included in the string output. The member name will be present, but the
18057// value will be replaced with "sensitive".
18058func (s GetDocumentationVersionsInput) GoString() string {
18059	return s.String()
18060}
18061
18062// Validate inspects the fields of the type to determine if they are valid.
18063func (s *GetDocumentationVersionsInput) Validate() error {
18064	invalidParams := request.ErrInvalidParams{Context: "GetDocumentationVersionsInput"}
18065	if s.RestApiId == nil {
18066		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18067	}
18068	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18069		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18070	}
18071
18072	if invalidParams.Len() > 0 {
18073		return invalidParams
18074	}
18075	return nil
18076}
18077
18078// SetLimit sets the Limit field's value.
18079func (s *GetDocumentationVersionsInput) SetLimit(v int64) *GetDocumentationVersionsInput {
18080	s.Limit = &v
18081	return s
18082}
18083
18084// SetPosition sets the Position field's value.
18085func (s *GetDocumentationVersionsInput) SetPosition(v string) *GetDocumentationVersionsInput {
18086	s.Position = &v
18087	return s
18088}
18089
18090// SetRestApiId sets the RestApiId field's value.
18091func (s *GetDocumentationVersionsInput) SetRestApiId(v string) *GetDocumentationVersionsInput {
18092	s.RestApiId = &v
18093	return s
18094}
18095
18096// The collection of documentation snapshots of an API.
18097//
18098// Use the DocumentationVersions to manage documentation snapshots associated
18099// with various API stages.
18100//
18101// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
18102// DocumentationPart, DocumentationVersion
18103type GetDocumentationVersionsOutput struct {
18104	_ struct{} `type:"structure"`
18105
18106	// The current page of elements from this collection.
18107	Items []*DocumentationVersion `locationName:"item" type:"list"`
18108
18109	Position *string `locationName:"position" type:"string"`
18110}
18111
18112// String returns the string representation.
18113//
18114// API parameter values that are decorated as "sensitive" in the API will not
18115// be included in the string output. The member name will be present, but the
18116// value will be replaced with "sensitive".
18117func (s GetDocumentationVersionsOutput) String() string {
18118	return awsutil.Prettify(s)
18119}
18120
18121// GoString returns the string representation.
18122//
18123// API parameter values that are decorated as "sensitive" in the API will not
18124// be included in the string output. The member name will be present, but the
18125// value will be replaced with "sensitive".
18126func (s GetDocumentationVersionsOutput) GoString() string {
18127	return s.String()
18128}
18129
18130// SetItems sets the Items field's value.
18131func (s *GetDocumentationVersionsOutput) SetItems(v []*DocumentationVersion) *GetDocumentationVersionsOutput {
18132	s.Items = v
18133	return s
18134}
18135
18136// SetPosition sets the Position field's value.
18137func (s *GetDocumentationVersionsOutput) SetPosition(v string) *GetDocumentationVersionsOutput {
18138	s.Position = &v
18139	return s
18140}
18141
18142// Request to get the name of a DomainName resource.
18143type GetDomainNameInput struct {
18144	_ struct{} `type:"structure" nopayload:"true"`
18145
18146	// [Required] The name of the DomainName resource.
18147	//
18148	// DomainName is a required field
18149	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
18150}
18151
18152// String returns the string representation.
18153//
18154// API parameter values that are decorated as "sensitive" in the API will not
18155// be included in the string output. The member name will be present, but the
18156// value will be replaced with "sensitive".
18157func (s GetDomainNameInput) String() string {
18158	return awsutil.Prettify(s)
18159}
18160
18161// GoString returns the string representation.
18162//
18163// API parameter values that are decorated as "sensitive" in the API will not
18164// be included in the string output. The member name will be present, but the
18165// value will be replaced with "sensitive".
18166func (s GetDomainNameInput) GoString() string {
18167	return s.String()
18168}
18169
18170// Validate inspects the fields of the type to determine if they are valid.
18171func (s *GetDomainNameInput) Validate() error {
18172	invalidParams := request.ErrInvalidParams{Context: "GetDomainNameInput"}
18173	if s.DomainName == nil {
18174		invalidParams.Add(request.NewErrParamRequired("DomainName"))
18175	}
18176	if s.DomainName != nil && len(*s.DomainName) < 1 {
18177		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
18178	}
18179
18180	if invalidParams.Len() > 0 {
18181		return invalidParams
18182	}
18183	return nil
18184}
18185
18186// SetDomainName sets the DomainName field's value.
18187func (s *GetDomainNameInput) SetDomainName(v string) *GetDomainNameInput {
18188	s.DomainName = &v
18189	return s
18190}
18191
18192// Request to describe a collection of DomainName resources.
18193type GetDomainNamesInput struct {
18194	_ struct{} `type:"structure" nopayload:"true"`
18195
18196	// The maximum number of returned results per page. The default value is 25
18197	// and the maximum value is 500.
18198	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18199
18200	// The current pagination position in the paged result set.
18201	Position *string `location:"querystring" locationName:"position" type:"string"`
18202}
18203
18204// String returns the string representation.
18205//
18206// API parameter values that are decorated as "sensitive" in the API will not
18207// be included in the string output. The member name will be present, but the
18208// value will be replaced with "sensitive".
18209func (s GetDomainNamesInput) String() string {
18210	return awsutil.Prettify(s)
18211}
18212
18213// GoString returns the string representation.
18214//
18215// API parameter values that are decorated as "sensitive" in the API will not
18216// be included in the string output. The member name will be present, but the
18217// value will be replaced with "sensitive".
18218func (s GetDomainNamesInput) GoString() string {
18219	return s.String()
18220}
18221
18222// SetLimit sets the Limit field's value.
18223func (s *GetDomainNamesInput) SetLimit(v int64) *GetDomainNamesInput {
18224	s.Limit = &v
18225	return s
18226}
18227
18228// SetPosition sets the Position field's value.
18229func (s *GetDomainNamesInput) SetPosition(v string) *GetDomainNamesInput {
18230	s.Position = &v
18231	return s
18232}
18233
18234// Represents a collection of DomainName resources.
18235//
18236// Use Client-Side Certificate (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)
18237type GetDomainNamesOutput struct {
18238	_ struct{} `type:"structure"`
18239
18240	// The current page of elements from this collection.
18241	Items []*DomainName `locationName:"item" type:"list"`
18242
18243	Position *string `locationName:"position" type:"string"`
18244}
18245
18246// String returns the string representation.
18247//
18248// API parameter values that are decorated as "sensitive" in the API will not
18249// be included in the string output. The member name will be present, but the
18250// value will be replaced with "sensitive".
18251func (s GetDomainNamesOutput) String() string {
18252	return awsutil.Prettify(s)
18253}
18254
18255// GoString returns the string representation.
18256//
18257// API parameter values that are decorated as "sensitive" in the API will not
18258// be included in the string output. The member name will be present, but the
18259// value will be replaced with "sensitive".
18260func (s GetDomainNamesOutput) GoString() string {
18261	return s.String()
18262}
18263
18264// SetItems sets the Items field's value.
18265func (s *GetDomainNamesOutput) SetItems(v []*DomainName) *GetDomainNamesOutput {
18266	s.Items = v
18267	return s
18268}
18269
18270// SetPosition sets the Position field's value.
18271func (s *GetDomainNamesOutput) SetPosition(v string) *GetDomainNamesOutput {
18272	s.Position = &v
18273	return s
18274}
18275
18276// Request a new export of a RestApi for a particular Stage.
18277type GetExportInput struct {
18278	_ struct{} `type:"structure" nopayload:"true"`
18279
18280	// The content-type of the export, for example application/json. Currently application/json
18281	// and application/yaml are supported for exportType ofoas30 and swagger. This
18282	// should be specified in the Accept header for direct API requests.
18283	Accepts *string `location:"header" locationName:"Accept" type:"string"`
18284
18285	// [Required] The type of export. Acceptable values are 'oas30' for OpenAPI
18286	// 3.0.x and 'swagger' for Swagger/OpenAPI 2.0.
18287	//
18288	// ExportType is a required field
18289	ExportType *string `location:"uri" locationName:"export_type" type:"string" required:"true"`
18290
18291	// A key-value map of query string parameters that specify properties of the
18292	// export, depending on the requested exportType. For exportType oas30 and swagger,
18293	// any combination of the following parameters are supported: extensions='integrations'
18294	// or extensions='apigateway' will export the API with x-amazon-apigateway-integration
18295	// extensions. extensions='authorizers' will export the API with x-amazon-apigateway-authorizer
18296	// extensions. postman will export the API with Postman extensions, allowing
18297	// for import to the Postman tool
18298	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
18299
18300	// [Required] The string identifier of the associated RestApi.
18301	//
18302	// RestApiId is a required field
18303	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18304
18305	// [Required] The name of the Stage that will be exported.
18306	//
18307	// StageName is a required field
18308	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
18309}
18310
18311// String returns the string representation.
18312//
18313// API parameter values that are decorated as "sensitive" in the API will not
18314// be included in the string output. The member name will be present, but the
18315// value will be replaced with "sensitive".
18316func (s GetExportInput) String() string {
18317	return awsutil.Prettify(s)
18318}
18319
18320// GoString returns the string representation.
18321//
18322// API parameter values that are decorated as "sensitive" in the API will not
18323// be included in the string output. The member name will be present, but the
18324// value will be replaced with "sensitive".
18325func (s GetExportInput) GoString() string {
18326	return s.String()
18327}
18328
18329// Validate inspects the fields of the type to determine if they are valid.
18330func (s *GetExportInput) Validate() error {
18331	invalidParams := request.ErrInvalidParams{Context: "GetExportInput"}
18332	if s.ExportType == nil {
18333		invalidParams.Add(request.NewErrParamRequired("ExportType"))
18334	}
18335	if s.ExportType != nil && len(*s.ExportType) < 1 {
18336		invalidParams.Add(request.NewErrParamMinLen("ExportType", 1))
18337	}
18338	if s.RestApiId == nil {
18339		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18340	}
18341	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18342		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18343	}
18344	if s.StageName == nil {
18345		invalidParams.Add(request.NewErrParamRequired("StageName"))
18346	}
18347	if s.StageName != nil && len(*s.StageName) < 1 {
18348		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
18349	}
18350
18351	if invalidParams.Len() > 0 {
18352		return invalidParams
18353	}
18354	return nil
18355}
18356
18357// SetAccepts sets the Accepts field's value.
18358func (s *GetExportInput) SetAccepts(v string) *GetExportInput {
18359	s.Accepts = &v
18360	return s
18361}
18362
18363// SetExportType sets the ExportType field's value.
18364func (s *GetExportInput) SetExportType(v string) *GetExportInput {
18365	s.ExportType = &v
18366	return s
18367}
18368
18369// SetParameters sets the Parameters field's value.
18370func (s *GetExportInput) SetParameters(v map[string]*string) *GetExportInput {
18371	s.Parameters = v
18372	return s
18373}
18374
18375// SetRestApiId sets the RestApiId field's value.
18376func (s *GetExportInput) SetRestApiId(v string) *GetExportInput {
18377	s.RestApiId = &v
18378	return s
18379}
18380
18381// SetStageName sets the StageName field's value.
18382func (s *GetExportInput) SetStageName(v string) *GetExportInput {
18383	s.StageName = &v
18384	return s
18385}
18386
18387// The binary blob response to GetExport, which contains the generated SDK.
18388type GetExportOutput struct {
18389	_ struct{} `type:"structure" payload:"Body"`
18390
18391	// The binary blob response to GetExport, which contains the export.
18392	Body []byte `locationName:"body" type:"blob"`
18393
18394	// The content-disposition header value in the HTTP response.
18395	ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"`
18396
18397	// The content-type header value in the HTTP response. This will correspond
18398	// to a valid 'accept' type in the request.
18399	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
18400}
18401
18402// String returns the string representation.
18403//
18404// API parameter values that are decorated as "sensitive" in the API will not
18405// be included in the string output. The member name will be present, but the
18406// value will be replaced with "sensitive".
18407func (s GetExportOutput) String() string {
18408	return awsutil.Prettify(s)
18409}
18410
18411// GoString returns the string representation.
18412//
18413// API parameter values that are decorated as "sensitive" in the API will not
18414// be included in the string output. The member name will be present, but the
18415// value will be replaced with "sensitive".
18416func (s GetExportOutput) GoString() string {
18417	return s.String()
18418}
18419
18420// SetBody sets the Body field's value.
18421func (s *GetExportOutput) SetBody(v []byte) *GetExportOutput {
18422	s.Body = v
18423	return s
18424}
18425
18426// SetContentDisposition sets the ContentDisposition field's value.
18427func (s *GetExportOutput) SetContentDisposition(v string) *GetExportOutput {
18428	s.ContentDisposition = &v
18429	return s
18430}
18431
18432// SetContentType sets the ContentType field's value.
18433func (s *GetExportOutput) SetContentType(v string) *GetExportOutput {
18434	s.ContentType = &v
18435	return s
18436}
18437
18438// Gets a GatewayResponse of a specified response type on the given RestApi.
18439type GetGatewayResponseInput struct {
18440	_ struct{} `type:"structure" nopayload:"true"`
18441
18442	// [Required]
18443	// The response type of the associated GatewayResponse.
18444	//
18445	// ResponseType is a required field
18446	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
18447
18448	// [Required] The string identifier of the associated RestApi.
18449	//
18450	// RestApiId is a required field
18451	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18452}
18453
18454// String returns the string representation.
18455//
18456// API parameter values that are decorated as "sensitive" in the API will not
18457// be included in the string output. The member name will be present, but the
18458// value will be replaced with "sensitive".
18459func (s GetGatewayResponseInput) String() string {
18460	return awsutil.Prettify(s)
18461}
18462
18463// GoString returns the string representation.
18464//
18465// API parameter values that are decorated as "sensitive" in the API will not
18466// be included in the string output. The member name will be present, but the
18467// value will be replaced with "sensitive".
18468func (s GetGatewayResponseInput) GoString() string {
18469	return s.String()
18470}
18471
18472// Validate inspects the fields of the type to determine if they are valid.
18473func (s *GetGatewayResponseInput) Validate() error {
18474	invalidParams := request.ErrInvalidParams{Context: "GetGatewayResponseInput"}
18475	if s.ResponseType == nil {
18476		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
18477	}
18478	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
18479		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
18480	}
18481	if s.RestApiId == nil {
18482		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18483	}
18484	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18485		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18486	}
18487
18488	if invalidParams.Len() > 0 {
18489		return invalidParams
18490	}
18491	return nil
18492}
18493
18494// SetResponseType sets the ResponseType field's value.
18495func (s *GetGatewayResponseInput) SetResponseType(v string) *GetGatewayResponseInput {
18496	s.ResponseType = &v
18497	return s
18498}
18499
18500// SetRestApiId sets the RestApiId field's value.
18501func (s *GetGatewayResponseInput) SetRestApiId(v string) *GetGatewayResponseInput {
18502	s.RestApiId = &v
18503	return s
18504}
18505
18506// Gets the GatewayResponses collection on the given RestApi. If an API developer
18507// has not added any definitions for gateway responses, the result will be the
18508// API Gateway-generated default GatewayResponses collection for the supported
18509// response types.
18510type GetGatewayResponsesInput struct {
18511	_ struct{} `type:"structure" nopayload:"true"`
18512
18513	// The maximum number of returned results per page. The default value is 25
18514	// and the maximum value is 500. The GatewayResponses collection does not support
18515	// pagination and the limit does not apply here.
18516	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
18517
18518	// The current pagination position in the paged result set. The GatewayResponse
18519	// collection does not support pagination and the position does not apply here.
18520	Position *string `location:"querystring" locationName:"position" type:"string"`
18521
18522	// [Required] The string identifier of the associated RestApi.
18523	//
18524	// RestApiId is a required field
18525	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18526}
18527
18528// String returns the string representation.
18529//
18530// API parameter values that are decorated as "sensitive" in the API will not
18531// be included in the string output. The member name will be present, but the
18532// value will be replaced with "sensitive".
18533func (s GetGatewayResponsesInput) String() string {
18534	return awsutil.Prettify(s)
18535}
18536
18537// GoString returns the string representation.
18538//
18539// API parameter values that are decorated as "sensitive" in the API will not
18540// be included in the string output. The member name will be present, but the
18541// value will be replaced with "sensitive".
18542func (s GetGatewayResponsesInput) GoString() string {
18543	return s.String()
18544}
18545
18546// Validate inspects the fields of the type to determine if they are valid.
18547func (s *GetGatewayResponsesInput) Validate() error {
18548	invalidParams := request.ErrInvalidParams{Context: "GetGatewayResponsesInput"}
18549	if s.RestApiId == nil {
18550		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18551	}
18552	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18553		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18554	}
18555
18556	if invalidParams.Len() > 0 {
18557		return invalidParams
18558	}
18559	return nil
18560}
18561
18562// SetLimit sets the Limit field's value.
18563func (s *GetGatewayResponsesInput) SetLimit(v int64) *GetGatewayResponsesInput {
18564	s.Limit = &v
18565	return s
18566}
18567
18568// SetPosition sets the Position field's value.
18569func (s *GetGatewayResponsesInput) SetPosition(v string) *GetGatewayResponsesInput {
18570	s.Position = &v
18571	return s
18572}
18573
18574// SetRestApiId sets the RestApiId field's value.
18575func (s *GetGatewayResponsesInput) SetRestApiId(v string) *GetGatewayResponsesInput {
18576	s.RestApiId = &v
18577	return s
18578}
18579
18580// The collection of the GatewayResponse instances of a RestApi as a responseType-to-GatewayResponse
18581// object map of key-value pairs. As such, pagination is not supported for querying
18582// this collection.
18583//
18584// For more information about valid gateway response types, see Gateway Response
18585// Types Supported by API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/supported-gateway-response-types.html)
18586//
18587// Example: Get the collection of gateway responses of an API
18588//
18589// Request
18590//
18591// This example request shows how to retrieve the GatewayResponses collection
18592// from an API.
18593//  GET /restapis/o81lxisefl/gatewayresponses HTTP/1.1 Host: beta-apigateway.us-east-1.amazonaws.com
18594//  Content-Type: application/json X-Amz-Date: 20170503T220604Z Authorization:
18595//  AWS4-HMAC-SHA256 Credential={access-key-id}/20170503/us-east-1/apigateway/aws4_request,
18596//  SignedHeaders=content-type;host;x-amz-date, Signature=59b42fe54a76a5de8adf2c67baa6d39206f8e9ad49a1d77ccc6a5da3103a398a
18597//  Cache-Control: no-cache Postman-Token: 5637af27-dc29-fc5c-9dfe-0645d52cb515
18598// Response
18599//
18600// The successful operation returns the 200 OK status code and a payload similar
18601// to the following:
18602//  { "_links": { "curies": { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html",
18603//  "name": "gatewayresponse", "templated": true }, "self": { "href": "/restapis/o81lxisefl/gatewayresponses"
18604//  }, "first": { "href": "/restapis/o81lxisefl/gatewayresponses" }, "gatewayresponse:by-type":
18605//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18606//  true }, "item": [ { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE"
18607//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND"
18608//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE" },
18609//  { "href": "/restapis/o81lxisefl/gatewayresponses/THROTTLED" }, { "href":
18610//  "/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE" }, { "href":
18611//  "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR" },
18612//  { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX" }, { "href":
18613//  "/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX" }, { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS"
18614//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY" },
18615//  { "href": "/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN" }, { "href":
18616//  "/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED" }, { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY"
18617//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED" }, { "href":
18618//  "/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR" }, { "href":
18619//  "/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED" }, { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT"
18620//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
18621//  }, { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE" },
18622//  { "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE" } ]
18623//  }, "_embedded": { "item": [ { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE"
18624//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
18625//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE"
18626//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18627//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18628//  "INTEGRATION_FAILURE", "statusCode": "504" }, { "_links": { "self": { "href":
18629//  "/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND" }, "gatewayresponse:put":
18630//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18631//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND"
18632//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18633//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18634//  "RESOURCE_NOT_FOUND", "statusCode": "404" }, { "_links": { "self": { "href":
18635//  "/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE" }, "gatewayresponse:put":
18636//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18637//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE"
18638//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18639//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18640//  "REQUEST_TOO_LARGE", "statusCode": "413" }, { "_links": { "self": { "href":
18641//  "/restapis/o81lxisefl/gatewayresponses/THROTTLED" }, "gatewayresponse:put":
18642//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18643//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/THROTTLED"
18644//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18645//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18646//  "THROTTLED", "statusCode": "429" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE"
18647//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
18648//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE"
18649//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18650//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18651//  "UNSUPPORTED_MEDIA_TYPE", "statusCode": "415" }, { "_links": { "self": {
18652//  "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR"
18653//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
18654//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR"
18655//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18656//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18657//  "AUTHORIZER_CONFIGURATION_ERROR", "statusCode": "500" }, { "_links": { "self":
18658//  { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX" }, "gatewayresponse:put":
18659//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18660//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX"
18661//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18662//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18663//  "DEFAULT_5XX" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX"
18664//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
18665//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX"
18666//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18667//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18668//  "DEFAULT_4XX" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS"
18669//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
18670//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS"
18671//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18672//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18673//  "BAD_REQUEST_PARAMETERS", "statusCode": "400" }, { "_links": { "self": {
18674//  "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY" }, "gatewayresponse:put":
18675//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18676//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY"
18677//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18678//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18679//  "BAD_REQUEST_BODY", "statusCode": "400" }, { "_links": { "self": { "href":
18680//  "/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN" }, "gatewayresponse:put":
18681//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18682//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN"
18683//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18684//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18685//  "EXPIRED_TOKEN", "statusCode": "403" }, { "_links": { "self": { "href":
18686//  "/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED" }, "gatewayresponse:put":
18687//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18688//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED"
18689//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18690//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18691//  "ACCESS_DENIED", "statusCode": "403" }, { "_links": { "self": { "href":
18692//  "/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY" }, "gatewayresponse:put":
18693//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18694//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY"
18695//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18696//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18697//  "INVALID_API_KEY", "statusCode": "403" }, { "_links": { "self": { "href":
18698//  "/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED" }, "gatewayresponse:put":
18699//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18700//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED"
18701//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18702//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18703//  "UNAUTHORIZED", "statusCode": "401" }, { "_links": { "self": { "href": "/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR"
18704//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
18705//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR"
18706//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18707//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18708//  "API_CONFIGURATION_ERROR", "statusCode": "500" }, { "_links": { "self":
18709//  { "href": "/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED" }, "gatewayresponse:put":
18710//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18711//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED"
18712//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18713//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18714//  "QUOTA_EXCEEDED", "statusCode": "429" }, { "_links": { "self": { "href":
18715//  "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT" }, "gatewayresponse:put":
18716//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18717//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT"
18718//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18719//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18720//  "INTEGRATION_TIMEOUT", "statusCode": "504" }, { "_links": { "self": { "href":
18721//  "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN" },
18722//  "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
18723//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
18724//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18725//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18726//  "MISSING_AUTHENTICATION_TOKEN", "statusCode": "403" }, { "_links": { "self":
18727//  { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE" }, "gatewayresponse:put":
18728//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18729//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE"
18730//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18731//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18732//  "INVALID_SIGNATURE", "statusCode": "403" }, { "_links": { "self": { "href":
18733//  "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE" }, "gatewayresponse:put":
18734//  { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}", "templated":
18735//  true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE"
18736//  } }, "defaultResponse": true, "responseParameters": {}, "responseTemplates":
18737//  { "application/json": "{\"message\":$context.error.messageString}" }, "responseType":
18738//  "AUTHORIZER_FAILURE", "statusCode": "500" } ] } }
18739//
18740// Customize Gateway Responses (https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html)
18741type GetGatewayResponsesOutput struct {
18742	_ struct{} `type:"structure"`
18743
18744	// Returns the entire collection, because of no pagination support.
18745	Items []*UpdateGatewayResponseOutput `locationName:"item" type:"list"`
18746
18747	Position *string `locationName:"position" type:"string"`
18748}
18749
18750// String returns the string representation.
18751//
18752// API parameter values that are decorated as "sensitive" in the API will not
18753// be included in the string output. The member name will be present, but the
18754// value will be replaced with "sensitive".
18755func (s GetGatewayResponsesOutput) String() string {
18756	return awsutil.Prettify(s)
18757}
18758
18759// GoString returns the string representation.
18760//
18761// API parameter values that are decorated as "sensitive" in the API will not
18762// be included in the string output. The member name will be present, but the
18763// value will be replaced with "sensitive".
18764func (s GetGatewayResponsesOutput) GoString() string {
18765	return s.String()
18766}
18767
18768// SetItems sets the Items field's value.
18769func (s *GetGatewayResponsesOutput) SetItems(v []*UpdateGatewayResponseOutput) *GetGatewayResponsesOutput {
18770	s.Items = v
18771	return s
18772}
18773
18774// SetPosition sets the Position field's value.
18775func (s *GetGatewayResponsesOutput) SetPosition(v string) *GetGatewayResponsesOutput {
18776	s.Position = &v
18777	return s
18778}
18779
18780// Represents a request to get the integration configuration.
18781type GetIntegrationInput struct {
18782	_ struct{} `type:"structure" nopayload:"true"`
18783
18784	// [Required] Specifies a get integration request's HTTP method.
18785	//
18786	// HttpMethod is a required field
18787	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
18788
18789	// [Required] Specifies a get integration request's resource identifier
18790	//
18791	// ResourceId is a required field
18792	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
18793
18794	// [Required] The string identifier of the associated RestApi.
18795	//
18796	// RestApiId is a required field
18797	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18798}
18799
18800// String returns the string representation.
18801//
18802// API parameter values that are decorated as "sensitive" in the API will not
18803// be included in the string output. The member name will be present, but the
18804// value will be replaced with "sensitive".
18805func (s GetIntegrationInput) String() string {
18806	return awsutil.Prettify(s)
18807}
18808
18809// GoString returns the string representation.
18810//
18811// API parameter values that are decorated as "sensitive" in the API will not
18812// be included in the string output. The member name will be present, but the
18813// value will be replaced with "sensitive".
18814func (s GetIntegrationInput) GoString() string {
18815	return s.String()
18816}
18817
18818// Validate inspects the fields of the type to determine if they are valid.
18819func (s *GetIntegrationInput) Validate() error {
18820	invalidParams := request.ErrInvalidParams{Context: "GetIntegrationInput"}
18821	if s.HttpMethod == nil {
18822		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
18823	}
18824	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
18825		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
18826	}
18827	if s.ResourceId == nil {
18828		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
18829	}
18830	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
18831		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
18832	}
18833	if s.RestApiId == nil {
18834		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18835	}
18836	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18837		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18838	}
18839
18840	if invalidParams.Len() > 0 {
18841		return invalidParams
18842	}
18843	return nil
18844}
18845
18846// SetHttpMethod sets the HttpMethod field's value.
18847func (s *GetIntegrationInput) SetHttpMethod(v string) *GetIntegrationInput {
18848	s.HttpMethod = &v
18849	return s
18850}
18851
18852// SetResourceId sets the ResourceId field's value.
18853func (s *GetIntegrationInput) SetResourceId(v string) *GetIntegrationInput {
18854	s.ResourceId = &v
18855	return s
18856}
18857
18858// SetRestApiId sets the RestApiId field's value.
18859func (s *GetIntegrationInput) SetRestApiId(v string) *GetIntegrationInput {
18860	s.RestApiId = &v
18861	return s
18862}
18863
18864// Represents a get integration response request.
18865type GetIntegrationResponseInput struct {
18866	_ struct{} `type:"structure" nopayload:"true"`
18867
18868	// [Required] Specifies a get integration response request's HTTP method.
18869	//
18870	// HttpMethod is a required field
18871	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
18872
18873	// [Required] Specifies a get integration response request's resource identifier.
18874	//
18875	// ResourceId is a required field
18876	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
18877
18878	// [Required] The string identifier of the associated RestApi.
18879	//
18880	// RestApiId is a required field
18881	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18882
18883	// [Required] Specifies a get integration response request's status code.
18884	//
18885	// StatusCode is a required field
18886	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
18887}
18888
18889// String returns the string representation.
18890//
18891// API parameter values that are decorated as "sensitive" in the API will not
18892// be included in the string output. The member name will be present, but the
18893// value will be replaced with "sensitive".
18894func (s GetIntegrationResponseInput) String() string {
18895	return awsutil.Prettify(s)
18896}
18897
18898// GoString returns the string representation.
18899//
18900// API parameter values that are decorated as "sensitive" in the API will not
18901// be included in the string output. The member name will be present, but the
18902// value will be replaced with "sensitive".
18903func (s GetIntegrationResponseInput) GoString() string {
18904	return s.String()
18905}
18906
18907// Validate inspects the fields of the type to determine if they are valid.
18908func (s *GetIntegrationResponseInput) Validate() error {
18909	invalidParams := request.ErrInvalidParams{Context: "GetIntegrationResponseInput"}
18910	if s.HttpMethod == nil {
18911		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
18912	}
18913	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
18914		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
18915	}
18916	if s.ResourceId == nil {
18917		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
18918	}
18919	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
18920		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
18921	}
18922	if s.RestApiId == nil {
18923		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
18924	}
18925	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
18926		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
18927	}
18928	if s.StatusCode == nil {
18929		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
18930	}
18931	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
18932		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
18933	}
18934
18935	if invalidParams.Len() > 0 {
18936		return invalidParams
18937	}
18938	return nil
18939}
18940
18941// SetHttpMethod sets the HttpMethod field's value.
18942func (s *GetIntegrationResponseInput) SetHttpMethod(v string) *GetIntegrationResponseInput {
18943	s.HttpMethod = &v
18944	return s
18945}
18946
18947// SetResourceId sets the ResourceId field's value.
18948func (s *GetIntegrationResponseInput) SetResourceId(v string) *GetIntegrationResponseInput {
18949	s.ResourceId = &v
18950	return s
18951}
18952
18953// SetRestApiId sets the RestApiId field's value.
18954func (s *GetIntegrationResponseInput) SetRestApiId(v string) *GetIntegrationResponseInput {
18955	s.RestApiId = &v
18956	return s
18957}
18958
18959// SetStatusCode sets the StatusCode field's value.
18960func (s *GetIntegrationResponseInput) SetStatusCode(v string) *GetIntegrationResponseInput {
18961	s.StatusCode = &v
18962	return s
18963}
18964
18965// Request to describe an existing Method resource.
18966type GetMethodInput struct {
18967	_ struct{} `type:"structure" nopayload:"true"`
18968
18969	// [Required] Specifies the method request's HTTP method type.
18970	//
18971	// HttpMethod is a required field
18972	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
18973
18974	// [Required] The Resource identifier for the Method resource.
18975	//
18976	// ResourceId is a required field
18977	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
18978
18979	// [Required] The string identifier of the associated RestApi.
18980	//
18981	// RestApiId is a required field
18982	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
18983}
18984
18985// String returns the string representation.
18986//
18987// API parameter values that are decorated as "sensitive" in the API will not
18988// be included in the string output. The member name will be present, but the
18989// value will be replaced with "sensitive".
18990func (s GetMethodInput) String() string {
18991	return awsutil.Prettify(s)
18992}
18993
18994// GoString returns the string representation.
18995//
18996// API parameter values that are decorated as "sensitive" in the API will not
18997// be included in the string output. The member name will be present, but the
18998// value will be replaced with "sensitive".
18999func (s GetMethodInput) GoString() string {
19000	return s.String()
19001}
19002
19003// Validate inspects the fields of the type to determine if they are valid.
19004func (s *GetMethodInput) Validate() error {
19005	invalidParams := request.ErrInvalidParams{Context: "GetMethodInput"}
19006	if s.HttpMethod == nil {
19007		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
19008	}
19009	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
19010		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
19011	}
19012	if s.ResourceId == nil {
19013		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
19014	}
19015	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
19016		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
19017	}
19018	if s.RestApiId == nil {
19019		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19020	}
19021	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19022		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19023	}
19024
19025	if invalidParams.Len() > 0 {
19026		return invalidParams
19027	}
19028	return nil
19029}
19030
19031// SetHttpMethod sets the HttpMethod field's value.
19032func (s *GetMethodInput) SetHttpMethod(v string) *GetMethodInput {
19033	s.HttpMethod = &v
19034	return s
19035}
19036
19037// SetResourceId sets the ResourceId field's value.
19038func (s *GetMethodInput) SetResourceId(v string) *GetMethodInput {
19039	s.ResourceId = &v
19040	return s
19041}
19042
19043// SetRestApiId sets the RestApiId field's value.
19044func (s *GetMethodInput) SetRestApiId(v string) *GetMethodInput {
19045	s.RestApiId = &v
19046	return s
19047}
19048
19049// Request to describe a MethodResponse resource.
19050type GetMethodResponseInput struct {
19051	_ struct{} `type:"structure" nopayload:"true"`
19052
19053	// [Required] The HTTP verb of the Method resource.
19054	//
19055	// HttpMethod is a required field
19056	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
19057
19058	// [Required] The Resource identifier for the MethodResponse resource.
19059	//
19060	// ResourceId is a required field
19061	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
19062
19063	// [Required] The string identifier of the associated RestApi.
19064	//
19065	// RestApiId is a required field
19066	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19067
19068	// [Required] The status code for the MethodResponse resource.
19069	//
19070	// StatusCode is a required field
19071	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
19072}
19073
19074// String returns the string representation.
19075//
19076// API parameter values that are decorated as "sensitive" in the API will not
19077// be included in the string output. The member name will be present, but the
19078// value will be replaced with "sensitive".
19079func (s GetMethodResponseInput) String() string {
19080	return awsutil.Prettify(s)
19081}
19082
19083// GoString returns the string representation.
19084//
19085// API parameter values that are decorated as "sensitive" in the API will not
19086// be included in the string output. The member name will be present, but the
19087// value will be replaced with "sensitive".
19088func (s GetMethodResponseInput) GoString() string {
19089	return s.String()
19090}
19091
19092// Validate inspects the fields of the type to determine if they are valid.
19093func (s *GetMethodResponseInput) Validate() error {
19094	invalidParams := request.ErrInvalidParams{Context: "GetMethodResponseInput"}
19095	if s.HttpMethod == nil {
19096		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
19097	}
19098	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
19099		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
19100	}
19101	if s.ResourceId == nil {
19102		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
19103	}
19104	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
19105		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
19106	}
19107	if s.RestApiId == nil {
19108		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19109	}
19110	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19111		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19112	}
19113	if s.StatusCode == nil {
19114		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
19115	}
19116	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
19117		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
19118	}
19119
19120	if invalidParams.Len() > 0 {
19121		return invalidParams
19122	}
19123	return nil
19124}
19125
19126// SetHttpMethod sets the HttpMethod field's value.
19127func (s *GetMethodResponseInput) SetHttpMethod(v string) *GetMethodResponseInput {
19128	s.HttpMethod = &v
19129	return s
19130}
19131
19132// SetResourceId sets the ResourceId field's value.
19133func (s *GetMethodResponseInput) SetResourceId(v string) *GetMethodResponseInput {
19134	s.ResourceId = &v
19135	return s
19136}
19137
19138// SetRestApiId sets the RestApiId field's value.
19139func (s *GetMethodResponseInput) SetRestApiId(v string) *GetMethodResponseInput {
19140	s.RestApiId = &v
19141	return s
19142}
19143
19144// SetStatusCode sets the StatusCode field's value.
19145func (s *GetMethodResponseInput) SetStatusCode(v string) *GetMethodResponseInput {
19146	s.StatusCode = &v
19147	return s
19148}
19149
19150// Request to list information about a model in an existing RestApi resource.
19151type GetModelInput struct {
19152	_ struct{} `type:"structure" nopayload:"true"`
19153
19154	// A query parameter of a Boolean value to resolve (true) all external model
19155	// references and returns a flattened model schema or not (false) The default
19156	// is false.
19157	Flatten *bool `location:"querystring" locationName:"flatten" type:"boolean"`
19158
19159	// [Required] The name of the model as an identifier.
19160	//
19161	// ModelName is a required field
19162	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
19163
19164	// [Required] The RestApi identifier under which the Model exists.
19165	//
19166	// RestApiId is a required field
19167	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19168}
19169
19170// String returns the string representation.
19171//
19172// API parameter values that are decorated as "sensitive" in the API will not
19173// be included in the string output. The member name will be present, but the
19174// value will be replaced with "sensitive".
19175func (s GetModelInput) String() string {
19176	return awsutil.Prettify(s)
19177}
19178
19179// GoString returns the string representation.
19180//
19181// API parameter values that are decorated as "sensitive" in the API will not
19182// be included in the string output. The member name will be present, but the
19183// value will be replaced with "sensitive".
19184func (s GetModelInput) GoString() string {
19185	return s.String()
19186}
19187
19188// Validate inspects the fields of the type to determine if they are valid.
19189func (s *GetModelInput) Validate() error {
19190	invalidParams := request.ErrInvalidParams{Context: "GetModelInput"}
19191	if s.ModelName == nil {
19192		invalidParams.Add(request.NewErrParamRequired("ModelName"))
19193	}
19194	if s.ModelName != nil && len(*s.ModelName) < 1 {
19195		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
19196	}
19197	if s.RestApiId == nil {
19198		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19199	}
19200	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19201		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19202	}
19203
19204	if invalidParams.Len() > 0 {
19205		return invalidParams
19206	}
19207	return nil
19208}
19209
19210// SetFlatten sets the Flatten field's value.
19211func (s *GetModelInput) SetFlatten(v bool) *GetModelInput {
19212	s.Flatten = &v
19213	return s
19214}
19215
19216// SetModelName sets the ModelName field's value.
19217func (s *GetModelInput) SetModelName(v string) *GetModelInput {
19218	s.ModelName = &v
19219	return s
19220}
19221
19222// SetRestApiId sets the RestApiId field's value.
19223func (s *GetModelInput) SetRestApiId(v string) *GetModelInput {
19224	s.RestApiId = &v
19225	return s
19226}
19227
19228// Request to generate a sample mapping template used to transform the payload.
19229type GetModelTemplateInput struct {
19230	_ struct{} `type:"structure" nopayload:"true"`
19231
19232	// [Required] The name of the model for which to generate a template.
19233	//
19234	// ModelName is a required field
19235	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
19236
19237	// [Required] The string identifier of the associated RestApi.
19238	//
19239	// RestApiId is a required field
19240	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19241}
19242
19243// String returns the string representation.
19244//
19245// API parameter values that are decorated as "sensitive" in the API will not
19246// be included in the string output. The member name will be present, but the
19247// value will be replaced with "sensitive".
19248func (s GetModelTemplateInput) String() string {
19249	return awsutil.Prettify(s)
19250}
19251
19252// GoString returns the string representation.
19253//
19254// API parameter values that are decorated as "sensitive" in the API will not
19255// be included in the string output. The member name will be present, but the
19256// value will be replaced with "sensitive".
19257func (s GetModelTemplateInput) GoString() string {
19258	return s.String()
19259}
19260
19261// Validate inspects the fields of the type to determine if they are valid.
19262func (s *GetModelTemplateInput) Validate() error {
19263	invalidParams := request.ErrInvalidParams{Context: "GetModelTemplateInput"}
19264	if s.ModelName == nil {
19265		invalidParams.Add(request.NewErrParamRequired("ModelName"))
19266	}
19267	if s.ModelName != nil && len(*s.ModelName) < 1 {
19268		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
19269	}
19270	if s.RestApiId == nil {
19271		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19272	}
19273	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19274		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19275	}
19276
19277	if invalidParams.Len() > 0 {
19278		return invalidParams
19279	}
19280	return nil
19281}
19282
19283// SetModelName sets the ModelName field's value.
19284func (s *GetModelTemplateInput) SetModelName(v string) *GetModelTemplateInput {
19285	s.ModelName = &v
19286	return s
19287}
19288
19289// SetRestApiId sets the RestApiId field's value.
19290func (s *GetModelTemplateInput) SetRestApiId(v string) *GetModelTemplateInput {
19291	s.RestApiId = &v
19292	return s
19293}
19294
19295// Represents a mapping template used to transform a payload.
19296//
19297// Mapping Templates (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html#models-mappings-mappings)
19298type GetModelTemplateOutput struct {
19299	_ struct{} `type:"structure"`
19300
19301	// The Apache Velocity Template Language (VTL) (https://velocity.apache.org/engine/devel/vtl-reference.html)
19302	// template content used for the template resource.
19303	Value *string `locationName:"value" type:"string"`
19304}
19305
19306// String returns the string representation.
19307//
19308// API parameter values that are decorated as "sensitive" in the API will not
19309// be included in the string output. The member name will be present, but the
19310// value will be replaced with "sensitive".
19311func (s GetModelTemplateOutput) String() string {
19312	return awsutil.Prettify(s)
19313}
19314
19315// GoString returns the string representation.
19316//
19317// API parameter values that are decorated as "sensitive" in the API will not
19318// be included in the string output. The member name will be present, but the
19319// value will be replaced with "sensitive".
19320func (s GetModelTemplateOutput) GoString() string {
19321	return s.String()
19322}
19323
19324// SetValue sets the Value field's value.
19325func (s *GetModelTemplateOutput) SetValue(v string) *GetModelTemplateOutput {
19326	s.Value = &v
19327	return s
19328}
19329
19330// Request to list existing Models defined for a RestApi resource.
19331type GetModelsInput struct {
19332	_ struct{} `type:"structure" nopayload:"true"`
19333
19334	// The maximum number of returned results per page. The default value is 25
19335	// and the maximum value is 500.
19336	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19337
19338	// The current pagination position in the paged result set.
19339	Position *string `location:"querystring" locationName:"position" type:"string"`
19340
19341	// [Required] The string identifier of the associated RestApi.
19342	//
19343	// RestApiId is a required field
19344	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19345}
19346
19347// String returns the string representation.
19348//
19349// API parameter values that are decorated as "sensitive" in the API will not
19350// be included in the string output. The member name will be present, but the
19351// value will be replaced with "sensitive".
19352func (s GetModelsInput) String() string {
19353	return awsutil.Prettify(s)
19354}
19355
19356// GoString returns the string representation.
19357//
19358// API parameter values that are decorated as "sensitive" in the API will not
19359// be included in the string output. The member name will be present, but the
19360// value will be replaced with "sensitive".
19361func (s GetModelsInput) GoString() string {
19362	return s.String()
19363}
19364
19365// Validate inspects the fields of the type to determine if they are valid.
19366func (s *GetModelsInput) Validate() error {
19367	invalidParams := request.ErrInvalidParams{Context: "GetModelsInput"}
19368	if s.RestApiId == nil {
19369		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19370	}
19371	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19372		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19373	}
19374
19375	if invalidParams.Len() > 0 {
19376		return invalidParams
19377	}
19378	return nil
19379}
19380
19381// SetLimit sets the Limit field's value.
19382func (s *GetModelsInput) SetLimit(v int64) *GetModelsInput {
19383	s.Limit = &v
19384	return s
19385}
19386
19387// SetPosition sets the Position field's value.
19388func (s *GetModelsInput) SetPosition(v string) *GetModelsInput {
19389	s.Position = &v
19390	return s
19391}
19392
19393// SetRestApiId sets the RestApiId field's value.
19394func (s *GetModelsInput) SetRestApiId(v string) *GetModelsInput {
19395	s.RestApiId = &v
19396	return s
19397}
19398
19399// Represents a collection of Model resources.
19400//
19401// Method, MethodResponse, Models and Mappings (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html)
19402type GetModelsOutput struct {
19403	_ struct{} `type:"structure"`
19404
19405	// The current page of elements from this collection.
19406	Items []*Model `locationName:"item" type:"list"`
19407
19408	Position *string `locationName:"position" type:"string"`
19409}
19410
19411// String returns the string representation.
19412//
19413// API parameter values that are decorated as "sensitive" in the API will not
19414// be included in the string output. The member name will be present, but the
19415// value will be replaced with "sensitive".
19416func (s GetModelsOutput) String() string {
19417	return awsutil.Prettify(s)
19418}
19419
19420// GoString returns the string representation.
19421//
19422// API parameter values that are decorated as "sensitive" in the API will not
19423// be included in the string output. The member name will be present, but the
19424// value will be replaced with "sensitive".
19425func (s GetModelsOutput) GoString() string {
19426	return s.String()
19427}
19428
19429// SetItems sets the Items field's value.
19430func (s *GetModelsOutput) SetItems(v []*Model) *GetModelsOutput {
19431	s.Items = v
19432	return s
19433}
19434
19435// SetPosition sets the Position field's value.
19436func (s *GetModelsOutput) SetPosition(v string) *GetModelsOutput {
19437	s.Position = &v
19438	return s
19439}
19440
19441// Gets a RequestValidator of a given RestApi.
19442type GetRequestValidatorInput struct {
19443	_ struct{} `type:"structure" nopayload:"true"`
19444
19445	// [Required] The identifier of the RequestValidator to be retrieved.
19446	//
19447	// RequestValidatorId is a required field
19448	RequestValidatorId *string `location:"uri" locationName:"requestvalidator_id" type:"string" required:"true"`
19449
19450	// [Required] The string identifier of the associated RestApi.
19451	//
19452	// RestApiId is a required field
19453	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19454}
19455
19456// String returns the string representation.
19457//
19458// API parameter values that are decorated as "sensitive" in the API will not
19459// be included in the string output. The member name will be present, but the
19460// value will be replaced with "sensitive".
19461func (s GetRequestValidatorInput) String() string {
19462	return awsutil.Prettify(s)
19463}
19464
19465// GoString returns the string representation.
19466//
19467// API parameter values that are decorated as "sensitive" in the API will not
19468// be included in the string output. The member name will be present, but the
19469// value will be replaced with "sensitive".
19470func (s GetRequestValidatorInput) GoString() string {
19471	return s.String()
19472}
19473
19474// Validate inspects the fields of the type to determine if they are valid.
19475func (s *GetRequestValidatorInput) Validate() error {
19476	invalidParams := request.ErrInvalidParams{Context: "GetRequestValidatorInput"}
19477	if s.RequestValidatorId == nil {
19478		invalidParams.Add(request.NewErrParamRequired("RequestValidatorId"))
19479	}
19480	if s.RequestValidatorId != nil && len(*s.RequestValidatorId) < 1 {
19481		invalidParams.Add(request.NewErrParamMinLen("RequestValidatorId", 1))
19482	}
19483	if s.RestApiId == nil {
19484		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19485	}
19486	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19487		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19488	}
19489
19490	if invalidParams.Len() > 0 {
19491		return invalidParams
19492	}
19493	return nil
19494}
19495
19496// SetRequestValidatorId sets the RequestValidatorId field's value.
19497func (s *GetRequestValidatorInput) SetRequestValidatorId(v string) *GetRequestValidatorInput {
19498	s.RequestValidatorId = &v
19499	return s
19500}
19501
19502// SetRestApiId sets the RestApiId field's value.
19503func (s *GetRequestValidatorInput) SetRestApiId(v string) *GetRequestValidatorInput {
19504	s.RestApiId = &v
19505	return s
19506}
19507
19508// Gets the RequestValidators collection of a given RestApi.
19509type GetRequestValidatorsInput struct {
19510	_ struct{} `type:"structure" nopayload:"true"`
19511
19512	// The maximum number of returned results per page. The default value is 25
19513	// and the maximum value is 500.
19514	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19515
19516	// The current pagination position in the paged result set.
19517	Position *string `location:"querystring" locationName:"position" type:"string"`
19518
19519	// [Required] The string identifier of the associated RestApi.
19520	//
19521	// RestApiId is a required field
19522	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19523}
19524
19525// String returns the string representation.
19526//
19527// API parameter values that are decorated as "sensitive" in the API will not
19528// be included in the string output. The member name will be present, but the
19529// value will be replaced with "sensitive".
19530func (s GetRequestValidatorsInput) String() string {
19531	return awsutil.Prettify(s)
19532}
19533
19534// GoString returns the string representation.
19535//
19536// API parameter values that are decorated as "sensitive" in the API will not
19537// be included in the string output. The member name will be present, but the
19538// value will be replaced with "sensitive".
19539func (s GetRequestValidatorsInput) GoString() string {
19540	return s.String()
19541}
19542
19543// Validate inspects the fields of the type to determine if they are valid.
19544func (s *GetRequestValidatorsInput) Validate() error {
19545	invalidParams := request.ErrInvalidParams{Context: "GetRequestValidatorsInput"}
19546	if s.RestApiId == nil {
19547		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19548	}
19549	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19550		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19551	}
19552
19553	if invalidParams.Len() > 0 {
19554		return invalidParams
19555	}
19556	return nil
19557}
19558
19559// SetLimit sets the Limit field's value.
19560func (s *GetRequestValidatorsInput) SetLimit(v int64) *GetRequestValidatorsInput {
19561	s.Limit = &v
19562	return s
19563}
19564
19565// SetPosition sets the Position field's value.
19566func (s *GetRequestValidatorsInput) SetPosition(v string) *GetRequestValidatorsInput {
19567	s.Position = &v
19568	return s
19569}
19570
19571// SetRestApiId sets the RestApiId field's value.
19572func (s *GetRequestValidatorsInput) SetRestApiId(v string) *GetRequestValidatorsInput {
19573	s.RestApiId = &v
19574	return s
19575}
19576
19577// A collection of RequestValidator resources of a given RestApi.
19578//
19579// In OpenAPI, the RequestValidators of an API is defined by the x-amazon-apigateway-request-validators
19580// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html#api-gateway-swagger-extensions-request-validators.html)
19581// extension.
19582//
19583// Enable Basic Request Validation in API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html)
19584type GetRequestValidatorsOutput struct {
19585	_ struct{} `type:"structure"`
19586
19587	// The current page of elements from this collection.
19588	Items []*UpdateRequestValidatorOutput `locationName:"item" type:"list"`
19589
19590	Position *string `locationName:"position" type:"string"`
19591}
19592
19593// String returns the string representation.
19594//
19595// API parameter values that are decorated as "sensitive" in the API will not
19596// be included in the string output. The member name will be present, but the
19597// value will be replaced with "sensitive".
19598func (s GetRequestValidatorsOutput) String() string {
19599	return awsutil.Prettify(s)
19600}
19601
19602// GoString returns the string representation.
19603//
19604// API parameter values that are decorated as "sensitive" in the API will not
19605// be included in the string output. The member name will be present, but the
19606// value will be replaced with "sensitive".
19607func (s GetRequestValidatorsOutput) GoString() string {
19608	return s.String()
19609}
19610
19611// SetItems sets the Items field's value.
19612func (s *GetRequestValidatorsOutput) SetItems(v []*UpdateRequestValidatorOutput) *GetRequestValidatorsOutput {
19613	s.Items = v
19614	return s
19615}
19616
19617// SetPosition sets the Position field's value.
19618func (s *GetRequestValidatorsOutput) SetPosition(v string) *GetRequestValidatorsOutput {
19619	s.Position = &v
19620	return s
19621}
19622
19623// Request to list information about a resource.
19624type GetResourceInput struct {
19625	_ struct{} `type:"structure" nopayload:"true"`
19626
19627	// A query parameter to retrieve the specified resources embedded in the returned
19628	// Resource representation in the response. This embed parameter value is a
19629	// list of comma-separated strings. Currently, the request supports only retrieval
19630	// of the embedded Method resources this way. The query parameter value must
19631	// be a single-valued list and contain the "methods" string. For example, GET
19632	// /restapis/{restapi_id}/resources/{resource_id}?embed=methods.
19633	Embed []*string `location:"querystring" locationName:"embed" type:"list"`
19634
19635	// [Required] The identifier for the Resource resource.
19636	//
19637	// ResourceId is a required field
19638	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
19639
19640	// [Required] The string identifier of the associated RestApi.
19641	//
19642	// RestApiId is a required field
19643	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19644}
19645
19646// String returns the string representation.
19647//
19648// API parameter values that are decorated as "sensitive" in the API will not
19649// be included in the string output. The member name will be present, but the
19650// value will be replaced with "sensitive".
19651func (s GetResourceInput) String() string {
19652	return awsutil.Prettify(s)
19653}
19654
19655// GoString returns the string representation.
19656//
19657// API parameter values that are decorated as "sensitive" in the API will not
19658// be included in the string output. The member name will be present, but the
19659// value will be replaced with "sensitive".
19660func (s GetResourceInput) GoString() string {
19661	return s.String()
19662}
19663
19664// Validate inspects the fields of the type to determine if they are valid.
19665func (s *GetResourceInput) Validate() error {
19666	invalidParams := request.ErrInvalidParams{Context: "GetResourceInput"}
19667	if s.ResourceId == nil {
19668		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
19669	}
19670	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
19671		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
19672	}
19673	if s.RestApiId == nil {
19674		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19675	}
19676	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19677		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19678	}
19679
19680	if invalidParams.Len() > 0 {
19681		return invalidParams
19682	}
19683	return nil
19684}
19685
19686// SetEmbed sets the Embed field's value.
19687func (s *GetResourceInput) SetEmbed(v []*string) *GetResourceInput {
19688	s.Embed = v
19689	return s
19690}
19691
19692// SetResourceId sets the ResourceId field's value.
19693func (s *GetResourceInput) SetResourceId(v string) *GetResourceInput {
19694	s.ResourceId = &v
19695	return s
19696}
19697
19698// SetRestApiId sets the RestApiId field's value.
19699func (s *GetResourceInput) SetRestApiId(v string) *GetResourceInput {
19700	s.RestApiId = &v
19701	return s
19702}
19703
19704// Request to list information about a collection of resources.
19705type GetResourcesInput struct {
19706	_ struct{} `type:"structure" nopayload:"true"`
19707
19708	// A query parameter used to retrieve the specified resources embedded in the
19709	// returned Resources resource in the response. This embed parameter value is
19710	// a list of comma-separated strings. Currently, the request supports only retrieval
19711	// of the embedded Method resources this way. The query parameter value must
19712	// be a single-valued list and contain the "methods" string. For example, GET
19713	// /restapis/{restapi_id}/resources?embed=methods.
19714	Embed []*string `location:"querystring" locationName:"embed" type:"list"`
19715
19716	// The maximum number of returned results per page. The default value is 25
19717	// and the maximum value is 500.
19718	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19719
19720	// The current pagination position in the paged result set.
19721	Position *string `location:"querystring" locationName:"position" type:"string"`
19722
19723	// [Required] The string identifier of the associated RestApi.
19724	//
19725	// RestApiId is a required field
19726	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19727}
19728
19729// String returns the string representation.
19730//
19731// API parameter values that are decorated as "sensitive" in the API will not
19732// be included in the string output. The member name will be present, but the
19733// value will be replaced with "sensitive".
19734func (s GetResourcesInput) String() string {
19735	return awsutil.Prettify(s)
19736}
19737
19738// GoString returns the string representation.
19739//
19740// API parameter values that are decorated as "sensitive" in the API will not
19741// be included in the string output. The member name will be present, but the
19742// value will be replaced with "sensitive".
19743func (s GetResourcesInput) GoString() string {
19744	return s.String()
19745}
19746
19747// Validate inspects the fields of the type to determine if they are valid.
19748func (s *GetResourcesInput) Validate() error {
19749	invalidParams := request.ErrInvalidParams{Context: "GetResourcesInput"}
19750	if s.RestApiId == nil {
19751		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19752	}
19753	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19754		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19755	}
19756
19757	if invalidParams.Len() > 0 {
19758		return invalidParams
19759	}
19760	return nil
19761}
19762
19763// SetEmbed sets the Embed field's value.
19764func (s *GetResourcesInput) SetEmbed(v []*string) *GetResourcesInput {
19765	s.Embed = v
19766	return s
19767}
19768
19769// SetLimit sets the Limit field's value.
19770func (s *GetResourcesInput) SetLimit(v int64) *GetResourcesInput {
19771	s.Limit = &v
19772	return s
19773}
19774
19775// SetPosition sets the Position field's value.
19776func (s *GetResourcesInput) SetPosition(v string) *GetResourcesInput {
19777	s.Position = &v
19778	return s
19779}
19780
19781// SetRestApiId sets the RestApiId field's value.
19782func (s *GetResourcesInput) SetRestApiId(v string) *GetResourcesInput {
19783	s.RestApiId = &v
19784	return s
19785}
19786
19787// Represents a collection of Resource resources.
19788//
19789// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
19790type GetResourcesOutput struct {
19791	_ struct{} `type:"structure"`
19792
19793	// The current page of elements from this collection.
19794	Items []*Resource `locationName:"item" type:"list"`
19795
19796	Position *string `locationName:"position" type:"string"`
19797}
19798
19799// String returns the string representation.
19800//
19801// API parameter values that are decorated as "sensitive" in the API will not
19802// be included in the string output. The member name will be present, but the
19803// value will be replaced with "sensitive".
19804func (s GetResourcesOutput) String() string {
19805	return awsutil.Prettify(s)
19806}
19807
19808// GoString returns the string representation.
19809//
19810// API parameter values that are decorated as "sensitive" in the API will not
19811// be included in the string output. The member name will be present, but the
19812// value will be replaced with "sensitive".
19813func (s GetResourcesOutput) GoString() string {
19814	return s.String()
19815}
19816
19817// SetItems sets the Items field's value.
19818func (s *GetResourcesOutput) SetItems(v []*Resource) *GetResourcesOutput {
19819	s.Items = v
19820	return s
19821}
19822
19823// SetPosition sets the Position field's value.
19824func (s *GetResourcesOutput) SetPosition(v string) *GetResourcesOutput {
19825	s.Position = &v
19826	return s
19827}
19828
19829// The GET request to list an existing RestApi defined for your collection.
19830type GetRestApiInput struct {
19831	_ struct{} `type:"structure" nopayload:"true"`
19832
19833	// [Required] The string identifier of the associated RestApi.
19834	//
19835	// RestApiId is a required field
19836	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19837}
19838
19839// String returns the string representation.
19840//
19841// API parameter values that are decorated as "sensitive" in the API will not
19842// be included in the string output. The member name will be present, but the
19843// value will be replaced with "sensitive".
19844func (s GetRestApiInput) String() string {
19845	return awsutil.Prettify(s)
19846}
19847
19848// GoString returns the string representation.
19849//
19850// API parameter values that are decorated as "sensitive" in the API will not
19851// be included in the string output. The member name will be present, but the
19852// value will be replaced with "sensitive".
19853func (s GetRestApiInput) GoString() string {
19854	return s.String()
19855}
19856
19857// Validate inspects the fields of the type to determine if they are valid.
19858func (s *GetRestApiInput) Validate() error {
19859	invalidParams := request.ErrInvalidParams{Context: "GetRestApiInput"}
19860	if s.RestApiId == nil {
19861		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
19862	}
19863	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
19864		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
19865	}
19866
19867	if invalidParams.Len() > 0 {
19868		return invalidParams
19869	}
19870	return nil
19871}
19872
19873// SetRestApiId sets the RestApiId field's value.
19874func (s *GetRestApiInput) SetRestApiId(v string) *GetRestApiInput {
19875	s.RestApiId = &v
19876	return s
19877}
19878
19879// The GET request to list existing RestApis defined for your collection.
19880type GetRestApisInput struct {
19881	_ struct{} `type:"structure" nopayload:"true"`
19882
19883	// The maximum number of returned results per page. The default value is 25
19884	// and the maximum value is 500.
19885	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
19886
19887	// The current pagination position in the paged result set.
19888	Position *string `location:"querystring" locationName:"position" type:"string"`
19889}
19890
19891// String returns the string representation.
19892//
19893// API parameter values that are decorated as "sensitive" in the API will not
19894// be included in the string output. The member name will be present, but the
19895// value will be replaced with "sensitive".
19896func (s GetRestApisInput) String() string {
19897	return awsutil.Prettify(s)
19898}
19899
19900// GoString returns the string representation.
19901//
19902// API parameter values that are decorated as "sensitive" in the API will not
19903// be included in the string output. The member name will be present, but the
19904// value will be replaced with "sensitive".
19905func (s GetRestApisInput) GoString() string {
19906	return s.String()
19907}
19908
19909// SetLimit sets the Limit field's value.
19910func (s *GetRestApisInput) SetLimit(v int64) *GetRestApisInput {
19911	s.Limit = &v
19912	return s
19913}
19914
19915// SetPosition sets the Position field's value.
19916func (s *GetRestApisInput) SetPosition(v string) *GetRestApisInput {
19917	s.Position = &v
19918	return s
19919}
19920
19921// Contains references to your APIs and links that guide you in how to interact
19922// with your collection. A collection offers a paginated view of your APIs.
19923//
19924// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
19925type GetRestApisOutput struct {
19926	_ struct{} `type:"structure"`
19927
19928	// The current page of elements from this collection.
19929	Items []*RestApi `locationName:"item" type:"list"`
19930
19931	Position *string `locationName:"position" type:"string"`
19932}
19933
19934// String returns the string representation.
19935//
19936// API parameter values that are decorated as "sensitive" in the API will not
19937// be included in the string output. The member name will be present, but the
19938// value will be replaced with "sensitive".
19939func (s GetRestApisOutput) String() string {
19940	return awsutil.Prettify(s)
19941}
19942
19943// GoString returns the string representation.
19944//
19945// API parameter values that are decorated as "sensitive" in the API will not
19946// be included in the string output. The member name will be present, but the
19947// value will be replaced with "sensitive".
19948func (s GetRestApisOutput) GoString() string {
19949	return s.String()
19950}
19951
19952// SetItems sets the Items field's value.
19953func (s *GetRestApisOutput) SetItems(v []*RestApi) *GetRestApisOutput {
19954	s.Items = v
19955	return s
19956}
19957
19958// SetPosition sets the Position field's value.
19959func (s *GetRestApisOutput) SetPosition(v string) *GetRestApisOutput {
19960	s.Position = &v
19961	return s
19962}
19963
19964// Request a new generated client SDK for a RestApi and Stage.
19965type GetSdkInput struct {
19966	_ struct{} `type:"structure" nopayload:"true"`
19967
19968	// A string-to-string key-value map of query parameters sdkType-dependent properties
19969	// of the SDK. For sdkType of objectivec or swift, a parameter named classPrefix
19970	// is required. For sdkType of android, parameters named groupId, artifactId,
19971	// artifactVersion, and invokerPackage are required. For sdkType of java, parameters
19972	// named serviceName and javaPackageName are required.
19973	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
19974
19975	// [Required] The string identifier of the associated RestApi.
19976	//
19977	// RestApiId is a required field
19978	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
19979
19980	// [Required] The language for the generated SDK. Currently java, javascript,
19981	// android, objectivec (for iOS), swift (for iOS), and ruby are supported.
19982	//
19983	// SdkType is a required field
19984	SdkType *string `location:"uri" locationName:"sdk_type" type:"string" required:"true"`
19985
19986	// [Required] The name of the Stage that the SDK will use.
19987	//
19988	// StageName is a required field
19989	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
19990}
19991
19992// String returns the string representation.
19993//
19994// API parameter values that are decorated as "sensitive" in the API will not
19995// be included in the string output. The member name will be present, but the
19996// value will be replaced with "sensitive".
19997func (s GetSdkInput) String() string {
19998	return awsutil.Prettify(s)
19999}
20000
20001// GoString returns the string representation.
20002//
20003// API parameter values that are decorated as "sensitive" in the API will not
20004// be included in the string output. The member name will be present, but the
20005// value will be replaced with "sensitive".
20006func (s GetSdkInput) GoString() string {
20007	return s.String()
20008}
20009
20010// Validate inspects the fields of the type to determine if they are valid.
20011func (s *GetSdkInput) Validate() error {
20012	invalidParams := request.ErrInvalidParams{Context: "GetSdkInput"}
20013	if s.RestApiId == nil {
20014		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
20015	}
20016	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
20017		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
20018	}
20019	if s.SdkType == nil {
20020		invalidParams.Add(request.NewErrParamRequired("SdkType"))
20021	}
20022	if s.SdkType != nil && len(*s.SdkType) < 1 {
20023		invalidParams.Add(request.NewErrParamMinLen("SdkType", 1))
20024	}
20025	if s.StageName == nil {
20026		invalidParams.Add(request.NewErrParamRequired("StageName"))
20027	}
20028	if s.StageName != nil && len(*s.StageName) < 1 {
20029		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
20030	}
20031
20032	if invalidParams.Len() > 0 {
20033		return invalidParams
20034	}
20035	return nil
20036}
20037
20038// SetParameters sets the Parameters field's value.
20039func (s *GetSdkInput) SetParameters(v map[string]*string) *GetSdkInput {
20040	s.Parameters = v
20041	return s
20042}
20043
20044// SetRestApiId sets the RestApiId field's value.
20045func (s *GetSdkInput) SetRestApiId(v string) *GetSdkInput {
20046	s.RestApiId = &v
20047	return s
20048}
20049
20050// SetSdkType sets the SdkType field's value.
20051func (s *GetSdkInput) SetSdkType(v string) *GetSdkInput {
20052	s.SdkType = &v
20053	return s
20054}
20055
20056// SetStageName sets the StageName field's value.
20057func (s *GetSdkInput) SetStageName(v string) *GetSdkInput {
20058	s.StageName = &v
20059	return s
20060}
20061
20062// The binary blob response to GetSdk, which contains the generated SDK.
20063type GetSdkOutput struct {
20064	_ struct{} `type:"structure" payload:"Body"`
20065
20066	// The binary blob response to GetSdk, which contains the generated SDK.
20067	Body []byte `locationName:"body" type:"blob"`
20068
20069	// The content-disposition header value in the HTTP response.
20070	ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"`
20071
20072	// The content-type header value in the HTTP response.
20073	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
20074}
20075
20076// String returns the string representation.
20077//
20078// API parameter values that are decorated as "sensitive" in the API will not
20079// be included in the string output. The member name will be present, but the
20080// value will be replaced with "sensitive".
20081func (s GetSdkOutput) String() string {
20082	return awsutil.Prettify(s)
20083}
20084
20085// GoString returns the string representation.
20086//
20087// API parameter values that are decorated as "sensitive" in the API will not
20088// be included in the string output. The member name will be present, but the
20089// value will be replaced with "sensitive".
20090func (s GetSdkOutput) GoString() string {
20091	return s.String()
20092}
20093
20094// SetBody sets the Body field's value.
20095func (s *GetSdkOutput) SetBody(v []byte) *GetSdkOutput {
20096	s.Body = v
20097	return s
20098}
20099
20100// SetContentDisposition sets the ContentDisposition field's value.
20101func (s *GetSdkOutput) SetContentDisposition(v string) *GetSdkOutput {
20102	s.ContentDisposition = &v
20103	return s
20104}
20105
20106// SetContentType sets the ContentType field's value.
20107func (s *GetSdkOutput) SetContentType(v string) *GetSdkOutput {
20108	s.ContentType = &v
20109	return s
20110}
20111
20112// Get an SdkType instance.
20113type GetSdkTypeInput struct {
20114	_ struct{} `type:"structure" nopayload:"true"`
20115
20116	// [Required] The identifier of the queried SdkType instance.
20117	//
20118	// Id is a required field
20119	Id *string `location:"uri" locationName:"sdktype_id" type:"string" required:"true"`
20120}
20121
20122// String returns the string representation.
20123//
20124// API parameter values that are decorated as "sensitive" in the API will not
20125// be included in the string output. The member name will be present, but the
20126// value will be replaced with "sensitive".
20127func (s GetSdkTypeInput) String() string {
20128	return awsutil.Prettify(s)
20129}
20130
20131// GoString returns the string representation.
20132//
20133// API parameter values that are decorated as "sensitive" in the API will not
20134// be included in the string output. The member name will be present, but the
20135// value will be replaced with "sensitive".
20136func (s GetSdkTypeInput) GoString() string {
20137	return s.String()
20138}
20139
20140// Validate inspects the fields of the type to determine if they are valid.
20141func (s *GetSdkTypeInput) Validate() error {
20142	invalidParams := request.ErrInvalidParams{Context: "GetSdkTypeInput"}
20143	if s.Id == nil {
20144		invalidParams.Add(request.NewErrParamRequired("Id"))
20145	}
20146	if s.Id != nil && len(*s.Id) < 1 {
20147		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
20148	}
20149
20150	if invalidParams.Len() > 0 {
20151		return invalidParams
20152	}
20153	return nil
20154}
20155
20156// SetId sets the Id field's value.
20157func (s *GetSdkTypeInput) SetId(v string) *GetSdkTypeInput {
20158	s.Id = &v
20159	return s
20160}
20161
20162// Get the SdkTypes collection.
20163type GetSdkTypesInput struct {
20164	_ struct{} `type:"structure" nopayload:"true"`
20165
20166	// The maximum number of returned results per page. The default value is 25
20167	// and the maximum value is 500.
20168	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
20169
20170	// The current pagination position in the paged result set.
20171	Position *string `location:"querystring" locationName:"position" type:"string"`
20172}
20173
20174// String returns the string representation.
20175//
20176// API parameter values that are decorated as "sensitive" in the API will not
20177// be included in the string output. The member name will be present, but the
20178// value will be replaced with "sensitive".
20179func (s GetSdkTypesInput) String() string {
20180	return awsutil.Prettify(s)
20181}
20182
20183// GoString returns the string representation.
20184//
20185// API parameter values that are decorated as "sensitive" in the API will not
20186// be included in the string output. The member name will be present, but the
20187// value will be replaced with "sensitive".
20188func (s GetSdkTypesInput) GoString() string {
20189	return s.String()
20190}
20191
20192// SetLimit sets the Limit field's value.
20193func (s *GetSdkTypesInput) SetLimit(v int64) *GetSdkTypesInput {
20194	s.Limit = &v
20195	return s
20196}
20197
20198// SetPosition sets the Position field's value.
20199func (s *GetSdkTypesInput) SetPosition(v string) *GetSdkTypesInput {
20200	s.Position = &v
20201	return s
20202}
20203
20204// The collection of SdkType instances.
20205type GetSdkTypesOutput struct {
20206	_ struct{} `type:"structure"`
20207
20208	// The current page of elements from this collection.
20209	Items []*SdkType `locationName:"item" type:"list"`
20210
20211	Position *string `locationName:"position" type:"string"`
20212}
20213
20214// String returns the string representation.
20215//
20216// API parameter values that are decorated as "sensitive" in the API will not
20217// be included in the string output. The member name will be present, but the
20218// value will be replaced with "sensitive".
20219func (s GetSdkTypesOutput) String() string {
20220	return awsutil.Prettify(s)
20221}
20222
20223// GoString returns the string representation.
20224//
20225// API parameter values that are decorated as "sensitive" in the API will not
20226// be included in the string output. The member name will be present, but the
20227// value will be replaced with "sensitive".
20228func (s GetSdkTypesOutput) GoString() string {
20229	return s.String()
20230}
20231
20232// SetItems sets the Items field's value.
20233func (s *GetSdkTypesOutput) SetItems(v []*SdkType) *GetSdkTypesOutput {
20234	s.Items = v
20235	return s
20236}
20237
20238// SetPosition sets the Position field's value.
20239func (s *GetSdkTypesOutput) SetPosition(v string) *GetSdkTypesOutput {
20240	s.Position = &v
20241	return s
20242}
20243
20244// Requests API Gateway to get information about a Stage resource.
20245type GetStageInput struct {
20246	_ struct{} `type:"structure" nopayload:"true"`
20247
20248	// [Required] The string identifier of the associated RestApi.
20249	//
20250	// RestApiId is a required field
20251	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
20252
20253	// [Required] The name of the Stage resource to get information about.
20254	//
20255	// StageName is a required field
20256	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
20257}
20258
20259// String returns the string representation.
20260//
20261// API parameter values that are decorated as "sensitive" in the API will not
20262// be included in the string output. The member name will be present, but the
20263// value will be replaced with "sensitive".
20264func (s GetStageInput) String() string {
20265	return awsutil.Prettify(s)
20266}
20267
20268// GoString returns the string representation.
20269//
20270// API parameter values that are decorated as "sensitive" in the API will not
20271// be included in the string output. The member name will be present, but the
20272// value will be replaced with "sensitive".
20273func (s GetStageInput) GoString() string {
20274	return s.String()
20275}
20276
20277// Validate inspects the fields of the type to determine if they are valid.
20278func (s *GetStageInput) Validate() error {
20279	invalidParams := request.ErrInvalidParams{Context: "GetStageInput"}
20280	if s.RestApiId == nil {
20281		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
20282	}
20283	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
20284		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
20285	}
20286	if s.StageName == nil {
20287		invalidParams.Add(request.NewErrParamRequired("StageName"))
20288	}
20289	if s.StageName != nil && len(*s.StageName) < 1 {
20290		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
20291	}
20292
20293	if invalidParams.Len() > 0 {
20294		return invalidParams
20295	}
20296	return nil
20297}
20298
20299// SetRestApiId sets the RestApiId field's value.
20300func (s *GetStageInput) SetRestApiId(v string) *GetStageInput {
20301	s.RestApiId = &v
20302	return s
20303}
20304
20305// SetStageName sets the StageName field's value.
20306func (s *GetStageInput) SetStageName(v string) *GetStageInput {
20307	s.StageName = &v
20308	return s
20309}
20310
20311// Requests API Gateway to get information about one or more Stage resources.
20312type GetStagesInput struct {
20313	_ struct{} `type:"structure" nopayload:"true"`
20314
20315	// The stages' deployment identifiers.
20316	DeploymentId *string `location:"querystring" locationName:"deploymentId" type:"string"`
20317
20318	// [Required] The string identifier of the associated RestApi.
20319	//
20320	// RestApiId is a required field
20321	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
20322}
20323
20324// String returns the string representation.
20325//
20326// API parameter values that are decorated as "sensitive" in the API will not
20327// be included in the string output. The member name will be present, but the
20328// value will be replaced with "sensitive".
20329func (s GetStagesInput) String() string {
20330	return awsutil.Prettify(s)
20331}
20332
20333// GoString returns the string representation.
20334//
20335// API parameter values that are decorated as "sensitive" in the API will not
20336// be included in the string output. The member name will be present, but the
20337// value will be replaced with "sensitive".
20338func (s GetStagesInput) GoString() string {
20339	return s.String()
20340}
20341
20342// Validate inspects the fields of the type to determine if they are valid.
20343func (s *GetStagesInput) Validate() error {
20344	invalidParams := request.ErrInvalidParams{Context: "GetStagesInput"}
20345	if s.RestApiId == nil {
20346		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
20347	}
20348	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
20349		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
20350	}
20351
20352	if invalidParams.Len() > 0 {
20353		return invalidParams
20354	}
20355	return nil
20356}
20357
20358// SetDeploymentId sets the DeploymentId field's value.
20359func (s *GetStagesInput) SetDeploymentId(v string) *GetStagesInput {
20360	s.DeploymentId = &v
20361	return s
20362}
20363
20364// SetRestApiId sets the RestApiId field's value.
20365func (s *GetStagesInput) SetRestApiId(v string) *GetStagesInput {
20366	s.RestApiId = &v
20367	return s
20368}
20369
20370// A list of Stage resources that are associated with the ApiKey resource.
20371//
20372// Deploying API in Stages (https://docs.aws.amazon.com/apigateway/latest/developerguide/stages.html)
20373type GetStagesOutput struct {
20374	_ struct{} `type:"structure"`
20375
20376	// The current page of elements from this collection.
20377	Item []*Stage `locationName:"item" type:"list"`
20378}
20379
20380// String returns the string representation.
20381//
20382// API parameter values that are decorated as "sensitive" in the API will not
20383// be included in the string output. The member name will be present, but the
20384// value will be replaced with "sensitive".
20385func (s GetStagesOutput) String() string {
20386	return awsutil.Prettify(s)
20387}
20388
20389// GoString returns the string representation.
20390//
20391// API parameter values that are decorated as "sensitive" in the API will not
20392// be included in the string output. The member name will be present, but the
20393// value will be replaced with "sensitive".
20394func (s GetStagesOutput) GoString() string {
20395	return s.String()
20396}
20397
20398// SetItem sets the Item field's value.
20399func (s *GetStagesOutput) SetItem(v []*Stage) *GetStagesOutput {
20400	s.Item = v
20401	return s
20402}
20403
20404// Gets the Tags collection for a given resource.
20405type GetTagsInput struct {
20406	_ struct{} `type:"structure" nopayload:"true"`
20407
20408	// (Not currently supported) The maximum number of returned results per page.
20409	// The default value is 25 and the maximum value is 500.
20410	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
20411
20412	// (Not currently supported) The current pagination position in the paged result
20413	// set.
20414	Position *string `location:"querystring" locationName:"position" type:"string"`
20415
20416	// [Required] The ARN of a resource that can be tagged.
20417	//
20418	// ResourceArn is a required field
20419	ResourceArn *string `location:"uri" locationName:"resource_arn" type:"string" required:"true"`
20420}
20421
20422// String returns the string representation.
20423//
20424// API parameter values that are decorated as "sensitive" in the API will not
20425// be included in the string output. The member name will be present, but the
20426// value will be replaced with "sensitive".
20427func (s GetTagsInput) String() string {
20428	return awsutil.Prettify(s)
20429}
20430
20431// GoString returns the string representation.
20432//
20433// API parameter values that are decorated as "sensitive" in the API will not
20434// be included in the string output. The member name will be present, but the
20435// value will be replaced with "sensitive".
20436func (s GetTagsInput) GoString() string {
20437	return s.String()
20438}
20439
20440// Validate inspects the fields of the type to determine if they are valid.
20441func (s *GetTagsInput) Validate() error {
20442	invalidParams := request.ErrInvalidParams{Context: "GetTagsInput"}
20443	if s.ResourceArn == nil {
20444		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
20445	}
20446	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
20447		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
20448	}
20449
20450	if invalidParams.Len() > 0 {
20451		return invalidParams
20452	}
20453	return nil
20454}
20455
20456// SetLimit sets the Limit field's value.
20457func (s *GetTagsInput) SetLimit(v int64) *GetTagsInput {
20458	s.Limit = &v
20459	return s
20460}
20461
20462// SetPosition sets the Position field's value.
20463func (s *GetTagsInput) SetPosition(v string) *GetTagsInput {
20464	s.Position = &v
20465	return s
20466}
20467
20468// SetResourceArn sets the ResourceArn field's value.
20469func (s *GetTagsInput) SetResourceArn(v string) *GetTagsInput {
20470	s.ResourceArn = &v
20471	return s
20472}
20473
20474// The collection of tags. Each tag element is associated with a given resource.
20475type GetTagsOutput struct {
20476	_ struct{} `type:"structure"`
20477
20478	// The collection of tags. Each tag element is associated with a given resource.
20479	Tags map[string]*string `locationName:"tags" type:"map"`
20480}
20481
20482// String returns the string representation.
20483//
20484// API parameter values that are decorated as "sensitive" in the API will not
20485// be included in the string output. The member name will be present, but the
20486// value will be replaced with "sensitive".
20487func (s GetTagsOutput) String() string {
20488	return awsutil.Prettify(s)
20489}
20490
20491// GoString returns the string representation.
20492//
20493// API parameter values that are decorated as "sensitive" in the API will not
20494// be included in the string output. The member name will be present, but the
20495// value will be replaced with "sensitive".
20496func (s GetTagsOutput) GoString() string {
20497	return s.String()
20498}
20499
20500// SetTags sets the Tags field's value.
20501func (s *GetTagsOutput) SetTags(v map[string]*string) *GetTagsOutput {
20502	s.Tags = v
20503	return s
20504}
20505
20506// The GET request to get the usage data of a usage plan in a specified time
20507// interval.
20508type GetUsageInput struct {
20509	_ struct{} `type:"structure" nopayload:"true"`
20510
20511	// [Required] The ending date (e.g., 2016-12-31) of the usage data.
20512	//
20513	// EndDate is a required field
20514	EndDate *string `location:"querystring" locationName:"endDate" type:"string" required:"true"`
20515
20516	// The Id of the API key associated with the resultant usage data.
20517	KeyId *string `location:"querystring" locationName:"keyId" type:"string"`
20518
20519	// The maximum number of returned results per page. The default value is 25
20520	// and the maximum value is 500.
20521	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
20522
20523	// The current pagination position in the paged result set.
20524	Position *string `location:"querystring" locationName:"position" type:"string"`
20525
20526	// [Required] The starting date (e.g., 2016-01-01) of the usage data.
20527	//
20528	// StartDate is a required field
20529	StartDate *string `location:"querystring" locationName:"startDate" type:"string" required:"true"`
20530
20531	// [Required] The Id of the usage plan associated with the usage data.
20532	//
20533	// UsagePlanId is a required field
20534	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
20535}
20536
20537// String returns the string representation.
20538//
20539// API parameter values that are decorated as "sensitive" in the API will not
20540// be included in the string output. The member name will be present, but the
20541// value will be replaced with "sensitive".
20542func (s GetUsageInput) String() string {
20543	return awsutil.Prettify(s)
20544}
20545
20546// GoString returns the string representation.
20547//
20548// API parameter values that are decorated as "sensitive" in the API will not
20549// be included in the string output. The member name will be present, but the
20550// value will be replaced with "sensitive".
20551func (s GetUsageInput) GoString() string {
20552	return s.String()
20553}
20554
20555// Validate inspects the fields of the type to determine if they are valid.
20556func (s *GetUsageInput) Validate() error {
20557	invalidParams := request.ErrInvalidParams{Context: "GetUsageInput"}
20558	if s.EndDate == nil {
20559		invalidParams.Add(request.NewErrParamRequired("EndDate"))
20560	}
20561	if s.StartDate == nil {
20562		invalidParams.Add(request.NewErrParamRequired("StartDate"))
20563	}
20564	if s.UsagePlanId == nil {
20565		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
20566	}
20567	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
20568		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
20569	}
20570
20571	if invalidParams.Len() > 0 {
20572		return invalidParams
20573	}
20574	return nil
20575}
20576
20577// SetEndDate sets the EndDate field's value.
20578func (s *GetUsageInput) SetEndDate(v string) *GetUsageInput {
20579	s.EndDate = &v
20580	return s
20581}
20582
20583// SetKeyId sets the KeyId field's value.
20584func (s *GetUsageInput) SetKeyId(v string) *GetUsageInput {
20585	s.KeyId = &v
20586	return s
20587}
20588
20589// SetLimit sets the Limit field's value.
20590func (s *GetUsageInput) SetLimit(v int64) *GetUsageInput {
20591	s.Limit = &v
20592	return s
20593}
20594
20595// SetPosition sets the Position field's value.
20596func (s *GetUsageInput) SetPosition(v string) *GetUsageInput {
20597	s.Position = &v
20598	return s
20599}
20600
20601// SetStartDate sets the StartDate field's value.
20602func (s *GetUsageInput) SetStartDate(v string) *GetUsageInput {
20603	s.StartDate = &v
20604	return s
20605}
20606
20607// SetUsagePlanId sets the UsagePlanId field's value.
20608func (s *GetUsageInput) SetUsagePlanId(v string) *GetUsageInput {
20609	s.UsagePlanId = &v
20610	return s
20611}
20612
20613// The GET request to get a usage plan of a given plan identifier.
20614type GetUsagePlanInput struct {
20615	_ struct{} `type:"structure" nopayload:"true"`
20616
20617	// [Required] The identifier of the UsagePlan resource to be retrieved.
20618	//
20619	// UsagePlanId is a required field
20620	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
20621}
20622
20623// String returns the string representation.
20624//
20625// API parameter values that are decorated as "sensitive" in the API will not
20626// be included in the string output. The member name will be present, but the
20627// value will be replaced with "sensitive".
20628func (s GetUsagePlanInput) String() string {
20629	return awsutil.Prettify(s)
20630}
20631
20632// GoString returns the string representation.
20633//
20634// API parameter values that are decorated as "sensitive" in the API will not
20635// be included in the string output. The member name will be present, but the
20636// value will be replaced with "sensitive".
20637func (s GetUsagePlanInput) GoString() string {
20638	return s.String()
20639}
20640
20641// Validate inspects the fields of the type to determine if they are valid.
20642func (s *GetUsagePlanInput) Validate() error {
20643	invalidParams := request.ErrInvalidParams{Context: "GetUsagePlanInput"}
20644	if s.UsagePlanId == nil {
20645		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
20646	}
20647	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
20648		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
20649	}
20650
20651	if invalidParams.Len() > 0 {
20652		return invalidParams
20653	}
20654	return nil
20655}
20656
20657// SetUsagePlanId sets the UsagePlanId field's value.
20658func (s *GetUsagePlanInput) SetUsagePlanId(v string) *GetUsagePlanInput {
20659	s.UsagePlanId = &v
20660	return s
20661}
20662
20663// The GET request to get a usage plan key of a given key identifier.
20664type GetUsagePlanKeyInput struct {
20665	_ struct{} `type:"structure" nopayload:"true"`
20666
20667	// [Required] The key Id of the to-be-retrieved UsagePlanKey resource representing
20668	// a plan customer.
20669	//
20670	// KeyId is a required field
20671	KeyId *string `location:"uri" locationName:"keyId" type:"string" required:"true"`
20672
20673	// [Required] The Id of the UsagePlan resource representing the usage plan containing
20674	// the to-be-retrieved UsagePlanKey resource representing a plan customer.
20675	//
20676	// UsagePlanId is a required field
20677	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
20678}
20679
20680// String returns the string representation.
20681//
20682// API parameter values that are decorated as "sensitive" in the API will not
20683// be included in the string output. The member name will be present, but the
20684// value will be replaced with "sensitive".
20685func (s GetUsagePlanKeyInput) String() string {
20686	return awsutil.Prettify(s)
20687}
20688
20689// GoString returns the string representation.
20690//
20691// API parameter values that are decorated as "sensitive" in the API will not
20692// be included in the string output. The member name will be present, but the
20693// value will be replaced with "sensitive".
20694func (s GetUsagePlanKeyInput) GoString() string {
20695	return s.String()
20696}
20697
20698// Validate inspects the fields of the type to determine if they are valid.
20699func (s *GetUsagePlanKeyInput) Validate() error {
20700	invalidParams := request.ErrInvalidParams{Context: "GetUsagePlanKeyInput"}
20701	if s.KeyId == nil {
20702		invalidParams.Add(request.NewErrParamRequired("KeyId"))
20703	}
20704	if s.KeyId != nil && len(*s.KeyId) < 1 {
20705		invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
20706	}
20707	if s.UsagePlanId == nil {
20708		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
20709	}
20710	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
20711		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
20712	}
20713
20714	if invalidParams.Len() > 0 {
20715		return invalidParams
20716	}
20717	return nil
20718}
20719
20720// SetKeyId sets the KeyId field's value.
20721func (s *GetUsagePlanKeyInput) SetKeyId(v string) *GetUsagePlanKeyInput {
20722	s.KeyId = &v
20723	return s
20724}
20725
20726// SetUsagePlanId sets the UsagePlanId field's value.
20727func (s *GetUsagePlanKeyInput) SetUsagePlanId(v string) *GetUsagePlanKeyInput {
20728	s.UsagePlanId = &v
20729	return s
20730}
20731
20732// The GET request to get all the usage plan keys representing the API keys
20733// added to a specified usage plan.
20734type GetUsagePlanKeysInput struct {
20735	_ struct{} `type:"structure" nopayload:"true"`
20736
20737	// The maximum number of returned results per page. The default value is 25
20738	// and the maximum value is 500.
20739	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
20740
20741	// A query parameter specifying the name of the to-be-returned usage plan keys.
20742	NameQuery *string `location:"querystring" locationName:"name" type:"string"`
20743
20744	// The current pagination position in the paged result set.
20745	Position *string `location:"querystring" locationName:"position" type:"string"`
20746
20747	// [Required] The Id of the UsagePlan resource representing the usage plan containing
20748	// the to-be-retrieved UsagePlanKey resource representing a plan customer.
20749	//
20750	// UsagePlanId is a required field
20751	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
20752}
20753
20754// String returns the string representation.
20755//
20756// API parameter values that are decorated as "sensitive" in the API will not
20757// be included in the string output. The member name will be present, but the
20758// value will be replaced with "sensitive".
20759func (s GetUsagePlanKeysInput) String() string {
20760	return awsutil.Prettify(s)
20761}
20762
20763// GoString returns the string representation.
20764//
20765// API parameter values that are decorated as "sensitive" in the API will not
20766// be included in the string output. The member name will be present, but the
20767// value will be replaced with "sensitive".
20768func (s GetUsagePlanKeysInput) GoString() string {
20769	return s.String()
20770}
20771
20772// Validate inspects the fields of the type to determine if they are valid.
20773func (s *GetUsagePlanKeysInput) Validate() error {
20774	invalidParams := request.ErrInvalidParams{Context: "GetUsagePlanKeysInput"}
20775	if s.UsagePlanId == nil {
20776		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
20777	}
20778	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
20779		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
20780	}
20781
20782	if invalidParams.Len() > 0 {
20783		return invalidParams
20784	}
20785	return nil
20786}
20787
20788// SetLimit sets the Limit field's value.
20789func (s *GetUsagePlanKeysInput) SetLimit(v int64) *GetUsagePlanKeysInput {
20790	s.Limit = &v
20791	return s
20792}
20793
20794// SetNameQuery sets the NameQuery field's value.
20795func (s *GetUsagePlanKeysInput) SetNameQuery(v string) *GetUsagePlanKeysInput {
20796	s.NameQuery = &v
20797	return s
20798}
20799
20800// SetPosition sets the Position field's value.
20801func (s *GetUsagePlanKeysInput) SetPosition(v string) *GetUsagePlanKeysInput {
20802	s.Position = &v
20803	return s
20804}
20805
20806// SetUsagePlanId sets the UsagePlanId field's value.
20807func (s *GetUsagePlanKeysInput) SetUsagePlanId(v string) *GetUsagePlanKeysInput {
20808	s.UsagePlanId = &v
20809	return s
20810}
20811
20812// Represents the collection of usage plan keys added to usage plans for the
20813// associated API keys and, possibly, other types of keys.
20814//
20815// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
20816type GetUsagePlanKeysOutput struct {
20817	_ struct{} `type:"structure"`
20818
20819	// The current page of elements from this collection.
20820	Items []*UsagePlanKey `locationName:"item" type:"list"`
20821
20822	Position *string `locationName:"position" type:"string"`
20823}
20824
20825// String returns the string representation.
20826//
20827// API parameter values that are decorated as "sensitive" in the API will not
20828// be included in the string output. The member name will be present, but the
20829// value will be replaced with "sensitive".
20830func (s GetUsagePlanKeysOutput) String() string {
20831	return awsutil.Prettify(s)
20832}
20833
20834// GoString returns the string representation.
20835//
20836// API parameter values that are decorated as "sensitive" in the API will not
20837// be included in the string output. The member name will be present, but the
20838// value will be replaced with "sensitive".
20839func (s GetUsagePlanKeysOutput) GoString() string {
20840	return s.String()
20841}
20842
20843// SetItems sets the Items field's value.
20844func (s *GetUsagePlanKeysOutput) SetItems(v []*UsagePlanKey) *GetUsagePlanKeysOutput {
20845	s.Items = v
20846	return s
20847}
20848
20849// SetPosition sets the Position field's value.
20850func (s *GetUsagePlanKeysOutput) SetPosition(v string) *GetUsagePlanKeysOutput {
20851	s.Position = &v
20852	return s
20853}
20854
20855// The GET request to get all the usage plans of the caller's account.
20856type GetUsagePlansInput struct {
20857	_ struct{} `type:"structure" nopayload:"true"`
20858
20859	// The identifier of the API key associated with the usage plans.
20860	KeyId *string `location:"querystring" locationName:"keyId" type:"string"`
20861
20862	// The maximum number of returned results per page. The default value is 25
20863	// and the maximum value is 500.
20864	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
20865
20866	// The current pagination position in the paged result set.
20867	Position *string `location:"querystring" locationName:"position" type:"string"`
20868}
20869
20870// String returns the string representation.
20871//
20872// API parameter values that are decorated as "sensitive" in the API will not
20873// be included in the string output. The member name will be present, but the
20874// value will be replaced with "sensitive".
20875func (s GetUsagePlansInput) String() string {
20876	return awsutil.Prettify(s)
20877}
20878
20879// GoString returns the string representation.
20880//
20881// API parameter values that are decorated as "sensitive" in the API will not
20882// be included in the string output. The member name will be present, but the
20883// value will be replaced with "sensitive".
20884func (s GetUsagePlansInput) GoString() string {
20885	return s.String()
20886}
20887
20888// SetKeyId sets the KeyId field's value.
20889func (s *GetUsagePlansInput) SetKeyId(v string) *GetUsagePlansInput {
20890	s.KeyId = &v
20891	return s
20892}
20893
20894// SetLimit sets the Limit field's value.
20895func (s *GetUsagePlansInput) SetLimit(v int64) *GetUsagePlansInput {
20896	s.Limit = &v
20897	return s
20898}
20899
20900// SetPosition sets the Position field's value.
20901func (s *GetUsagePlansInput) SetPosition(v string) *GetUsagePlansInput {
20902	s.Position = &v
20903	return s
20904}
20905
20906// Represents a collection of usage plans for an AWS account.
20907//
20908// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
20909type GetUsagePlansOutput struct {
20910	_ struct{} `type:"structure"`
20911
20912	// The current page of elements from this collection.
20913	Items []*UsagePlan `locationName:"item" type:"list"`
20914
20915	Position *string `locationName:"position" type:"string"`
20916}
20917
20918// String returns the string representation.
20919//
20920// API parameter values that are decorated as "sensitive" in the API will not
20921// be included in the string output. The member name will be present, but the
20922// value will be replaced with "sensitive".
20923func (s GetUsagePlansOutput) String() string {
20924	return awsutil.Prettify(s)
20925}
20926
20927// GoString returns the string representation.
20928//
20929// API parameter values that are decorated as "sensitive" in the API will not
20930// be included in the string output. The member name will be present, but the
20931// value will be replaced with "sensitive".
20932func (s GetUsagePlansOutput) GoString() string {
20933	return s.String()
20934}
20935
20936// SetItems sets the Items field's value.
20937func (s *GetUsagePlansOutput) SetItems(v []*UsagePlan) *GetUsagePlansOutput {
20938	s.Items = v
20939	return s
20940}
20941
20942// SetPosition sets the Position field's value.
20943func (s *GetUsagePlansOutput) SetPosition(v string) *GetUsagePlansOutput {
20944	s.Position = &v
20945	return s
20946}
20947
20948// Gets a specified VPC link under the caller's account in a region.
20949type GetVpcLinkInput struct {
20950	_ struct{} `type:"structure" nopayload:"true"`
20951
20952	// [Required] The identifier of the VpcLink. It is used in an Integration to
20953	// reference this VpcLink.
20954	//
20955	// VpcLinkId is a required field
20956	VpcLinkId *string `location:"uri" locationName:"vpclink_id" type:"string" required:"true"`
20957}
20958
20959// String returns the string representation.
20960//
20961// API parameter values that are decorated as "sensitive" in the API will not
20962// be included in the string output. The member name will be present, but the
20963// value will be replaced with "sensitive".
20964func (s GetVpcLinkInput) String() string {
20965	return awsutil.Prettify(s)
20966}
20967
20968// GoString returns the string representation.
20969//
20970// API parameter values that are decorated as "sensitive" in the API will not
20971// be included in the string output. The member name will be present, but the
20972// value will be replaced with "sensitive".
20973func (s GetVpcLinkInput) GoString() string {
20974	return s.String()
20975}
20976
20977// Validate inspects the fields of the type to determine if they are valid.
20978func (s *GetVpcLinkInput) Validate() error {
20979	invalidParams := request.ErrInvalidParams{Context: "GetVpcLinkInput"}
20980	if s.VpcLinkId == nil {
20981		invalidParams.Add(request.NewErrParamRequired("VpcLinkId"))
20982	}
20983	if s.VpcLinkId != nil && len(*s.VpcLinkId) < 1 {
20984		invalidParams.Add(request.NewErrParamMinLen("VpcLinkId", 1))
20985	}
20986
20987	if invalidParams.Len() > 0 {
20988		return invalidParams
20989	}
20990	return nil
20991}
20992
20993// SetVpcLinkId sets the VpcLinkId field's value.
20994func (s *GetVpcLinkInput) SetVpcLinkId(v string) *GetVpcLinkInput {
20995	s.VpcLinkId = &v
20996	return s
20997}
20998
20999// Gets the VpcLinks collection under the caller's account in a selected region.
21000type GetVpcLinksInput struct {
21001	_ struct{} `type:"structure" nopayload:"true"`
21002
21003	// The maximum number of returned results per page. The default value is 25
21004	// and the maximum value is 500.
21005	Limit *int64 `location:"querystring" locationName:"limit" type:"integer"`
21006
21007	// The current pagination position in the paged result set.
21008	Position *string `location:"querystring" locationName:"position" type:"string"`
21009}
21010
21011// String returns the string representation.
21012//
21013// API parameter values that are decorated as "sensitive" in the API will not
21014// be included in the string output. The member name will be present, but the
21015// value will be replaced with "sensitive".
21016func (s GetVpcLinksInput) String() string {
21017	return awsutil.Prettify(s)
21018}
21019
21020// GoString returns the string representation.
21021//
21022// API parameter values that are decorated as "sensitive" in the API will not
21023// be included in the string output. The member name will be present, but the
21024// value will be replaced with "sensitive".
21025func (s GetVpcLinksInput) GoString() string {
21026	return s.String()
21027}
21028
21029// SetLimit sets the Limit field's value.
21030func (s *GetVpcLinksInput) SetLimit(v int64) *GetVpcLinksInput {
21031	s.Limit = &v
21032	return s
21033}
21034
21035// SetPosition sets the Position field's value.
21036func (s *GetVpcLinksInput) SetPosition(v string) *GetVpcLinksInput {
21037	s.Position = &v
21038	return s
21039}
21040
21041// The collection of VPC links under the caller's account in a region.
21042//
21043// Getting Started with Private Integrations (https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-with-private-integration.html),
21044// Set up Private Integrations (https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-private-integration.html)
21045type GetVpcLinksOutput struct {
21046	_ struct{} `type:"structure"`
21047
21048	// The current page of elements from this collection.
21049	Items []*UpdateVpcLinkOutput `locationName:"item" type:"list"`
21050
21051	Position *string `locationName:"position" type:"string"`
21052}
21053
21054// String returns the string representation.
21055//
21056// API parameter values that are decorated as "sensitive" in the API will not
21057// be included in the string output. The member name will be present, but the
21058// value will be replaced with "sensitive".
21059func (s GetVpcLinksOutput) String() string {
21060	return awsutil.Prettify(s)
21061}
21062
21063// GoString returns the string representation.
21064//
21065// API parameter values that are decorated as "sensitive" in the API will not
21066// be included in the string output. The member name will be present, but the
21067// value will be replaced with "sensitive".
21068func (s GetVpcLinksOutput) GoString() string {
21069	return s.String()
21070}
21071
21072// SetItems sets the Items field's value.
21073func (s *GetVpcLinksOutput) SetItems(v []*UpdateVpcLinkOutput) *GetVpcLinksOutput {
21074	s.Items = v
21075	return s
21076}
21077
21078// SetPosition sets the Position field's value.
21079func (s *GetVpcLinksOutput) SetPosition(v string) *GetVpcLinksOutput {
21080	s.Position = &v
21081	return s
21082}
21083
21084// The POST request to import API keys from an external source, such as a CSV-formatted
21085// file.
21086type ImportApiKeysInput struct {
21087	_ struct{} `type:"structure" payload:"Body"`
21088
21089	// The payload of the POST request to import API keys. For the payload format,
21090	// see API Key File Format (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-key-file-format.html).
21091	//
21092	// Body is a required field
21093	Body []byte `locationName:"body" type:"blob" required:"true"`
21094
21095	// A query parameter to indicate whether to rollback ApiKey importation (true)
21096	// or not (false) when error is encountered.
21097	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
21098
21099	// A query parameter to specify the input format to imported API keys. Currently,
21100	// only the csv format is supported.
21101	//
21102	// Format is a required field
21103	Format *string `location:"querystring" locationName:"format" type:"string" required:"true" enum:"ApiKeysFormat"`
21104}
21105
21106// String returns the string representation.
21107//
21108// API parameter values that are decorated as "sensitive" in the API will not
21109// be included in the string output. The member name will be present, but the
21110// value will be replaced with "sensitive".
21111func (s ImportApiKeysInput) String() string {
21112	return awsutil.Prettify(s)
21113}
21114
21115// GoString returns the string representation.
21116//
21117// API parameter values that are decorated as "sensitive" in the API will not
21118// be included in the string output. The member name will be present, but the
21119// value will be replaced with "sensitive".
21120func (s ImportApiKeysInput) GoString() string {
21121	return s.String()
21122}
21123
21124// Validate inspects the fields of the type to determine if they are valid.
21125func (s *ImportApiKeysInput) Validate() error {
21126	invalidParams := request.ErrInvalidParams{Context: "ImportApiKeysInput"}
21127	if s.Body == nil {
21128		invalidParams.Add(request.NewErrParamRequired("Body"))
21129	}
21130	if s.Format == nil {
21131		invalidParams.Add(request.NewErrParamRequired("Format"))
21132	}
21133
21134	if invalidParams.Len() > 0 {
21135		return invalidParams
21136	}
21137	return nil
21138}
21139
21140// SetBody sets the Body field's value.
21141func (s *ImportApiKeysInput) SetBody(v []byte) *ImportApiKeysInput {
21142	s.Body = v
21143	return s
21144}
21145
21146// SetFailOnWarnings sets the FailOnWarnings field's value.
21147func (s *ImportApiKeysInput) SetFailOnWarnings(v bool) *ImportApiKeysInput {
21148	s.FailOnWarnings = &v
21149	return s
21150}
21151
21152// SetFormat sets the Format field's value.
21153func (s *ImportApiKeysInput) SetFormat(v string) *ImportApiKeysInput {
21154	s.Format = &v
21155	return s
21156}
21157
21158// The identifier of an ApiKey used in a UsagePlan.
21159type ImportApiKeysOutput struct {
21160	_ struct{} `type:"structure"`
21161
21162	// A list of all the ApiKey identifiers.
21163	Ids []*string `locationName:"ids" type:"list"`
21164
21165	// A list of warning messages.
21166	Warnings []*string `locationName:"warnings" type:"list"`
21167}
21168
21169// String returns the string representation.
21170//
21171// API parameter values that are decorated as "sensitive" in the API will not
21172// be included in the string output. The member name will be present, but the
21173// value will be replaced with "sensitive".
21174func (s ImportApiKeysOutput) String() string {
21175	return awsutil.Prettify(s)
21176}
21177
21178// GoString returns the string representation.
21179//
21180// API parameter values that are decorated as "sensitive" in the API will not
21181// be included in the string output. The member name will be present, but the
21182// value will be replaced with "sensitive".
21183func (s ImportApiKeysOutput) GoString() string {
21184	return s.String()
21185}
21186
21187// SetIds sets the Ids field's value.
21188func (s *ImportApiKeysOutput) SetIds(v []*string) *ImportApiKeysOutput {
21189	s.Ids = v
21190	return s
21191}
21192
21193// SetWarnings sets the Warnings field's value.
21194func (s *ImportApiKeysOutput) SetWarnings(v []*string) *ImportApiKeysOutput {
21195	s.Warnings = v
21196	return s
21197}
21198
21199// Import documentation parts from an external (e.g., OpenAPI) definition file.
21200type ImportDocumentationPartsInput struct {
21201	_ struct{} `type:"structure" payload:"Body"`
21202
21203	// [Required] Raw byte array representing the to-be-imported documentation parts.
21204	// To import from an OpenAPI file, this is a JSON object.
21205	//
21206	// Body is a required field
21207	Body []byte `locationName:"body" type:"blob" required:"true"`
21208
21209	// A query parameter to specify whether to rollback the documentation importation
21210	// (true) or not (false) when a warning is encountered. The default value is
21211	// false.
21212	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
21213
21214	// A query parameter to indicate whether to overwrite (OVERWRITE) any existing
21215	// DocumentationParts definition or to merge (MERGE) the new definition into
21216	// the existing one. The default value is MERGE.
21217	Mode *string `location:"querystring" locationName:"mode" type:"string" enum:"PutMode"`
21218
21219	// [Required] The string identifier of the associated RestApi.
21220	//
21221	// RestApiId is a required field
21222	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
21223}
21224
21225// String returns the string representation.
21226//
21227// API parameter values that are decorated as "sensitive" in the API will not
21228// be included in the string output. The member name will be present, but the
21229// value will be replaced with "sensitive".
21230func (s ImportDocumentationPartsInput) String() string {
21231	return awsutil.Prettify(s)
21232}
21233
21234// GoString returns the string representation.
21235//
21236// API parameter values that are decorated as "sensitive" in the API will not
21237// be included in the string output. The member name will be present, but the
21238// value will be replaced with "sensitive".
21239func (s ImportDocumentationPartsInput) GoString() string {
21240	return s.String()
21241}
21242
21243// Validate inspects the fields of the type to determine if they are valid.
21244func (s *ImportDocumentationPartsInput) Validate() error {
21245	invalidParams := request.ErrInvalidParams{Context: "ImportDocumentationPartsInput"}
21246	if s.Body == nil {
21247		invalidParams.Add(request.NewErrParamRequired("Body"))
21248	}
21249	if s.RestApiId == nil {
21250		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
21251	}
21252	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
21253		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
21254	}
21255
21256	if invalidParams.Len() > 0 {
21257		return invalidParams
21258	}
21259	return nil
21260}
21261
21262// SetBody sets the Body field's value.
21263func (s *ImportDocumentationPartsInput) SetBody(v []byte) *ImportDocumentationPartsInput {
21264	s.Body = v
21265	return s
21266}
21267
21268// SetFailOnWarnings sets the FailOnWarnings field's value.
21269func (s *ImportDocumentationPartsInput) SetFailOnWarnings(v bool) *ImportDocumentationPartsInput {
21270	s.FailOnWarnings = &v
21271	return s
21272}
21273
21274// SetMode sets the Mode field's value.
21275func (s *ImportDocumentationPartsInput) SetMode(v string) *ImportDocumentationPartsInput {
21276	s.Mode = &v
21277	return s
21278}
21279
21280// SetRestApiId sets the RestApiId field's value.
21281func (s *ImportDocumentationPartsInput) SetRestApiId(v string) *ImportDocumentationPartsInput {
21282	s.RestApiId = &v
21283	return s
21284}
21285
21286// A collection of the imported DocumentationPart identifiers.
21287//
21288// This is used to return the result when documentation parts in an external
21289// (e.g., OpenAPI) file are imported into API Gateway
21290//
21291// Documenting an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html),
21292// documentationpart:import (https://docs.aws.amazon.com/apigateway/api-reference/link-relation/documentationpart-import/),
21293// DocumentationPart
21294type ImportDocumentationPartsOutput struct {
21295	_ struct{} `type:"structure"`
21296
21297	// A list of the returned documentation part identifiers.
21298	Ids []*string `locationName:"ids" type:"list"`
21299
21300	// A list of warning messages reported during import of documentation parts.
21301	Warnings []*string `locationName:"warnings" type:"list"`
21302}
21303
21304// String returns the string representation.
21305//
21306// API parameter values that are decorated as "sensitive" in the API will not
21307// be included in the string output. The member name will be present, but the
21308// value will be replaced with "sensitive".
21309func (s ImportDocumentationPartsOutput) String() string {
21310	return awsutil.Prettify(s)
21311}
21312
21313// GoString returns the string representation.
21314//
21315// API parameter values that are decorated as "sensitive" in the API will not
21316// be included in the string output. The member name will be present, but the
21317// value will be replaced with "sensitive".
21318func (s ImportDocumentationPartsOutput) GoString() string {
21319	return s.String()
21320}
21321
21322// SetIds sets the Ids field's value.
21323func (s *ImportDocumentationPartsOutput) SetIds(v []*string) *ImportDocumentationPartsOutput {
21324	s.Ids = v
21325	return s
21326}
21327
21328// SetWarnings sets the Warnings field's value.
21329func (s *ImportDocumentationPartsOutput) SetWarnings(v []*string) *ImportDocumentationPartsOutput {
21330	s.Warnings = v
21331	return s
21332}
21333
21334// A POST request to import an API to API Gateway using an input of an API definition
21335// file.
21336type ImportRestApiInput struct {
21337	_ struct{} `type:"structure" payload:"Body"`
21338
21339	// [Required] The POST request body containing external API definitions. Currently,
21340	// only OpenAPI definition JSON/YAML files are supported. The maximum size of
21341	// the API definition file is 6MB.
21342	//
21343	// Body is a required field
21344	Body []byte `locationName:"body" type:"blob" required:"true"`
21345
21346	// A query parameter to indicate whether to rollback the API creation (true)
21347	// or not (false) when a warning is encountered. The default value is false.
21348	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
21349
21350	// A key-value map of context-specific query string parameters specifying the
21351	// behavior of different API importing operations. The following shows operation-specific
21352	// parameters and their supported values.
21353	//
21354	// To exclude DocumentationParts from the import, set parameters as ignore=documentation.
21355	//
21356	// To configure the endpoint type, set parameters as endpointConfigurationTypes=EDGE,
21357	// endpointConfigurationTypes=REGIONAL, or endpointConfigurationTypes=PRIVATE.
21358	// The default endpoint type is EDGE.
21359	//
21360	// To handle imported basepath, set parameters as basepath=ignore, basepath=prepend
21361	// or basepath=split.
21362	//
21363	// For example, the AWS CLI command to exclude documentation from the imported
21364	// API is:
21365	//
21366	//    aws apigateway import-rest-api --parameters ignore=documentation --body
21367	//    'file:///path/to/imported-api-body.json'
21368	//
21369	// The AWS CLI command to set the regional endpoint on the imported API is:
21370	//
21371	//    aws apigateway import-rest-api --parameters endpointConfigurationTypes=REGIONAL
21372	//    --body 'file:///path/to/imported-api-body.json'
21373	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
21374}
21375
21376// String returns the string representation.
21377//
21378// API parameter values that are decorated as "sensitive" in the API will not
21379// be included in the string output. The member name will be present, but the
21380// value will be replaced with "sensitive".
21381func (s ImportRestApiInput) String() string {
21382	return awsutil.Prettify(s)
21383}
21384
21385// GoString returns the string representation.
21386//
21387// API parameter values that are decorated as "sensitive" in the API will not
21388// be included in the string output. The member name will be present, but the
21389// value will be replaced with "sensitive".
21390func (s ImportRestApiInput) GoString() string {
21391	return s.String()
21392}
21393
21394// Validate inspects the fields of the type to determine if they are valid.
21395func (s *ImportRestApiInput) Validate() error {
21396	invalidParams := request.ErrInvalidParams{Context: "ImportRestApiInput"}
21397	if s.Body == nil {
21398		invalidParams.Add(request.NewErrParamRequired("Body"))
21399	}
21400
21401	if invalidParams.Len() > 0 {
21402		return invalidParams
21403	}
21404	return nil
21405}
21406
21407// SetBody sets the Body field's value.
21408func (s *ImportRestApiInput) SetBody(v []byte) *ImportRestApiInput {
21409	s.Body = v
21410	return s
21411}
21412
21413// SetFailOnWarnings sets the FailOnWarnings field's value.
21414func (s *ImportRestApiInput) SetFailOnWarnings(v bool) *ImportRestApiInput {
21415	s.FailOnWarnings = &v
21416	return s
21417}
21418
21419// SetParameters sets the Parameters field's value.
21420func (s *ImportRestApiInput) SetParameters(v map[string]*string) *ImportRestApiInput {
21421	s.Parameters = v
21422	return s
21423}
21424
21425// Represents an HTTP, HTTP_PROXY, AWS, AWS_PROXY, or Mock integration.
21426//
21427// In the API Gateway console, the built-in Lambda integration is an AWS integration.
21428//
21429// Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
21430type Integration struct {
21431	_ struct{} `type:"structure"`
21432
21433	// A list of request parameters whose values API Gateway caches. To be valid
21434	// values for cacheKeyParameters, these parameters must also be specified for
21435	// Method requestParameters.
21436	CacheKeyParameters []*string `locationName:"cacheKeyParameters" type:"list"`
21437
21438	// Specifies a group of related cached parameters. By default, API Gateway uses
21439	// the resource ID as the cacheNamespace. You can specify the same cacheNamespace
21440	// across resources to return the same cached data for requests to different
21441	// resources.
21442	CacheNamespace *string `locationName:"cacheNamespace" type:"string"`
21443
21444	// The (id (https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id))
21445	// of the VpcLink used for the integration when connectionType=VPC_LINK and
21446	// undefined, otherwise.
21447	ConnectionId *string `locationName:"connectionId" type:"string"`
21448
21449	// The type of the network connection to the integration endpoint. The valid
21450	// value is INTERNET for connections through the public routable internet or
21451	// VPC_LINK for private connections between API Gateway and a network load balancer
21452	// in a VPC. The default value is INTERNET.
21453	ConnectionType *string `locationName:"connectionType" type:"string" enum:"ConnectionType"`
21454
21455	// Specifies how to handle request payload content type conversions. Supported
21456	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
21457	//
21458	//    * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded
21459	//    string to the corresponding binary blob.
21460	//
21461	//    * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a
21462	//    Base64-encoded string.
21463	//
21464	// If this property is not defined, the request payload will be passed through
21465	// from the method request to integration request without modification, provided
21466	// that the passthroughBehavior is configured to support payload pass-through.
21467	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
21468
21469	// Specifies the credentials required for the integration, if any. For AWS integrations,
21470	// three options are available. To specify an IAM Role for API Gateway to assume,
21471	// use the role's Amazon Resource Name (ARN). To require that the caller's identity
21472	// be passed through from the request, specify the string arn:aws:iam::\*:user/\*.
21473	// To use resource-based permissions on supported AWS services, specify null.
21474	Credentials *string `locationName:"credentials" type:"string"`
21475
21476	// Specifies the integration's HTTP method type.
21477	HttpMethod *string `locationName:"httpMethod" type:"string"`
21478
21479	// Specifies the integration's responses.
21480	//
21481	// Example: Get integration responses of a method
21482	//
21483	// Request
21484	//   GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200
21485	//   HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
21486	//   X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request,
21487	//   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
21488	// Response
21489	//
21490	// The successful response returns 200 OK status and a payload as follows:
21491	//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
21492	//  "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
21493	//  "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
21494	//  }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
21495	//  } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'"
21496	//  }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream
21497	//  in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n"
21498	//  }, "statusCode": "200" }
21499	//
21500	// Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
21501	IntegrationResponses map[string]*IntegrationResponse `locationName:"integrationResponses" type:"map"`
21502
21503	// Specifies how the method request body of an unmapped content type will be
21504	// passed through the integration request to the back end without transformation.
21505	// A content type is unmapped if no mapping template is defined in the integration
21506	// or the content type does not match any of the mapped content types, as specified
21507	// in requestTemplates. The valid value is one of the following:
21508	//
21509	//    * WHEN_NO_MATCH: passes the method request body through the integration
21510	//    request to the back end without transformation when the method request
21511	//    content type does not match any content type associated with the mapping
21512	//    templates defined in the integration request.
21513	//
21514	//    * WHEN_NO_TEMPLATES: passes the method request body through the integration
21515	//    request to the back end without transformation when no mapping template
21516	//    is defined in the integration request. If a template is defined when this
21517	//    option is selected, the method request of an unmapped content-type will
21518	//    be rejected with an HTTP 415 Unsupported Media Type response.
21519	//
21520	//    * NEVER: rejects the method request with an HTTP 415 Unsupported Media
21521	//    Type response when either the method request content type does not match
21522	//    any content type associated with the mapping templates defined in the
21523	//    integration request or no mapping template is defined in the integration
21524	//    request.
21525	PassthroughBehavior *string `locationName:"passthroughBehavior" type:"string"`
21526
21527	// A key-value map specifying request parameters that are passed from the method
21528	// request to the back end. The key is an integration request parameter name
21529	// and the associated value is a method request parameter value or static value
21530	// that must be enclosed within single quotes and pre-encoded as required by
21531	// the back end. The method request parameter value must match the pattern of
21532	// method.request.{location}.{name}, where location is querystring, path, or
21533	// header and name must be a valid and unique method request parameter name.
21534	RequestParameters map[string]*string `locationName:"requestParameters" type:"map"`
21535
21536	// Represents a map of Velocity templates that are applied on the request payload
21537	// based on the value of the Content-Type header sent by the client. The content
21538	// type value is the key in this map, and the template (as a String) is the
21539	// value.
21540	RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
21541
21542	// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000
21543	// milliseconds or 29 seconds.
21544	TimeoutInMillis *int64 `locationName:"timeoutInMillis" type:"integer"`
21545
21546	// Specifies the TLS configuration for an integration.
21547	TlsConfig *TlsConfig `locationName:"tlsConfig" type:"structure"`
21548
21549	// Specifies an API method integration type. The valid value is one of the following:
21550	//
21551	//    * AWS: for integrating the API method request with an AWS service action,
21552	//    including the Lambda function-invoking action. With the Lambda function-invoking
21553	//    action, this is referred to as the Lambda custom integration. With any
21554	//    other AWS service action, this is known as AWS integration.
21555	//
21556	//    * AWS_PROXY: for integrating the API method request with the Lambda function-invoking
21557	//    action with the client request passed through as-is. This integration
21558	//    is also referred to as the Lambda proxy integration.
21559	//
21560	//    * HTTP: for integrating the API method request with an HTTP endpoint,
21561	//    including a private HTTP endpoint within a VPC. This integration is also
21562	//    referred to as the HTTP custom integration.
21563	//
21564	//    * HTTP_PROXY: for integrating the API method request with an HTTP endpoint,
21565	//    including a private HTTP endpoint within a VPC, with the client request
21566	//    passed through as-is. This is also referred to as the HTTP proxy integration.
21567	//
21568	//    * MOCK: for integrating the API method request with API Gateway as a "loop-back"
21569	//    endpoint without invoking any backend.
21570	//
21571	// For the HTTP and HTTP proxy integrations, each integration can specify a
21572	// protocol (http/https), port and path. Standard 80 and 443 ports are supported
21573	// as well as custom ports above 1024. An HTTP or HTTP proxy integration with
21574	// a connectionType of VPC_LINK is referred to as a private integration and
21575	// uses a VpcLink to connect API Gateway to a network load balancer of a VPC.
21576	Type *string `locationName:"type" type:"string" enum:"IntegrationType"`
21577
21578	// Specifies Uniform Resource Identifier (URI) of the integration endpoint.
21579	//
21580	//    * For HTTP or HTTP_PROXY integrations, the URI must be a fully formed,
21581	//    encoded HTTP(S) URL according to the RFC-3986 specification (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier),
21582	//    for either standard integration, where connectionType is not VPC_LINK,
21583	//    or private integration, where connectionType is VPC_LINK. For a private
21584	//    HTTP integration, the URI is not used for routing.
21585	//
21586	//    * For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}.
21587	//    Here, {Region} is the API Gateway region (e.g., us-east-1); {service}
21588	//    is the name of the integrated AWS service (e.g., s3); and {subdomain}
21589	//    is a designated subdomain supported by certain AWS service for fast host-name
21590	//    lookup. action can be used for an AWS service action-based API, using
21591	//    an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api}
21592	//    refers to a supported action {name} plus any required input parameters.
21593	//    Alternatively, path can be used for an AWS service path-based API. The
21594	//    ensuing service_api refers to the path to an AWS service resource, including
21595	//    the region of the integrated AWS service, if applicable. For example,
21596	//    for integration with the S3 API of GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html),
21597	//    the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}
21598	//    or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}
21599	Uri *string `locationName:"uri" type:"string"`
21600}
21601
21602// String returns the string representation.
21603//
21604// API parameter values that are decorated as "sensitive" in the API will not
21605// be included in the string output. The member name will be present, but the
21606// value will be replaced with "sensitive".
21607func (s Integration) String() string {
21608	return awsutil.Prettify(s)
21609}
21610
21611// GoString returns the string representation.
21612//
21613// API parameter values that are decorated as "sensitive" in the API will not
21614// be included in the string output. The member name will be present, but the
21615// value will be replaced with "sensitive".
21616func (s Integration) GoString() string {
21617	return s.String()
21618}
21619
21620// SetCacheKeyParameters sets the CacheKeyParameters field's value.
21621func (s *Integration) SetCacheKeyParameters(v []*string) *Integration {
21622	s.CacheKeyParameters = v
21623	return s
21624}
21625
21626// SetCacheNamespace sets the CacheNamespace field's value.
21627func (s *Integration) SetCacheNamespace(v string) *Integration {
21628	s.CacheNamespace = &v
21629	return s
21630}
21631
21632// SetConnectionId sets the ConnectionId field's value.
21633func (s *Integration) SetConnectionId(v string) *Integration {
21634	s.ConnectionId = &v
21635	return s
21636}
21637
21638// SetConnectionType sets the ConnectionType field's value.
21639func (s *Integration) SetConnectionType(v string) *Integration {
21640	s.ConnectionType = &v
21641	return s
21642}
21643
21644// SetContentHandling sets the ContentHandling field's value.
21645func (s *Integration) SetContentHandling(v string) *Integration {
21646	s.ContentHandling = &v
21647	return s
21648}
21649
21650// SetCredentials sets the Credentials field's value.
21651func (s *Integration) SetCredentials(v string) *Integration {
21652	s.Credentials = &v
21653	return s
21654}
21655
21656// SetHttpMethod sets the HttpMethod field's value.
21657func (s *Integration) SetHttpMethod(v string) *Integration {
21658	s.HttpMethod = &v
21659	return s
21660}
21661
21662// SetIntegrationResponses sets the IntegrationResponses field's value.
21663func (s *Integration) SetIntegrationResponses(v map[string]*IntegrationResponse) *Integration {
21664	s.IntegrationResponses = v
21665	return s
21666}
21667
21668// SetPassthroughBehavior sets the PassthroughBehavior field's value.
21669func (s *Integration) SetPassthroughBehavior(v string) *Integration {
21670	s.PassthroughBehavior = &v
21671	return s
21672}
21673
21674// SetRequestParameters sets the RequestParameters field's value.
21675func (s *Integration) SetRequestParameters(v map[string]*string) *Integration {
21676	s.RequestParameters = v
21677	return s
21678}
21679
21680// SetRequestTemplates sets the RequestTemplates field's value.
21681func (s *Integration) SetRequestTemplates(v map[string]*string) *Integration {
21682	s.RequestTemplates = v
21683	return s
21684}
21685
21686// SetTimeoutInMillis sets the TimeoutInMillis field's value.
21687func (s *Integration) SetTimeoutInMillis(v int64) *Integration {
21688	s.TimeoutInMillis = &v
21689	return s
21690}
21691
21692// SetTlsConfig sets the TlsConfig field's value.
21693func (s *Integration) SetTlsConfig(v *TlsConfig) *Integration {
21694	s.TlsConfig = v
21695	return s
21696}
21697
21698// SetType sets the Type field's value.
21699func (s *Integration) SetType(v string) *Integration {
21700	s.Type = &v
21701	return s
21702}
21703
21704// SetUri sets the Uri field's value.
21705func (s *Integration) SetUri(v string) *Integration {
21706	s.Uri = &v
21707	return s
21708}
21709
21710// Represents an integration response. The status code must map to an existing
21711// MethodResponse, and parameters and templates can be used to transform the
21712// back-end response.
21713//
21714// Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
21715type IntegrationResponse struct {
21716	_ struct{} `type:"structure"`
21717
21718	// Specifies how to handle response payload content type conversions. Supported
21719	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
21720	//
21721	//    * CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded
21722	//    string to the corresponding binary blob.
21723	//
21724	//    * CONVERT_TO_TEXT: Converts a response payload from a binary blob to a
21725	//    Base64-encoded string.
21726	//
21727	// If this property is not defined, the response payload will be passed through
21728	// from the integration response to the method response without modification.
21729	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
21730
21731	// A key-value map specifying response parameters that are passed to the method
21732	// response from the back end. The key is a method response header parameter
21733	// name and the mapped value is an integration response header value, a static
21734	// value enclosed within a pair of single quotes, or a JSON expression from
21735	// the integration response body. The mapping key must match the pattern of
21736	// method.response.header.{name}, where name is a valid and unique header name.
21737	// The mapped non-static value must match the pattern of integration.response.header.{name}
21738	// or integration.response.body.{JSON-expression}, where name is a valid and
21739	// unique response header name and JSON-expression is a valid JSON expression
21740	// without the $ prefix.
21741	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
21742
21743	// Specifies the templates used to transform the integration response body.
21744	// Response templates are represented as a key/value map, with a content-type
21745	// as the key and a template as the value.
21746	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
21747
21748	// Specifies the regular expression (regex) pattern used to choose an integration
21749	// response based on the response from the back end. For example, if the success
21750	// response returns nothing and the error response returns some string, you
21751	// could use the .+ regex to match error response. However, make sure that the
21752	// error response does not contain any newline (\n) character in such cases.
21753	// If the back end is an AWS Lambda function, the AWS Lambda function error
21754	// header is matched. For all other HTTP and AWS back ends, the HTTP status
21755	// code is matched.
21756	SelectionPattern *string `locationName:"selectionPattern" type:"string"`
21757
21758	// Specifies the status code that is used to map the integration response to
21759	// an existing MethodResponse.
21760	StatusCode *string `locationName:"statusCode" type:"string"`
21761}
21762
21763// String returns the string representation.
21764//
21765// API parameter values that are decorated as "sensitive" in the API will not
21766// be included in the string output. The member name will be present, but the
21767// value will be replaced with "sensitive".
21768func (s IntegrationResponse) String() string {
21769	return awsutil.Prettify(s)
21770}
21771
21772// GoString returns the string representation.
21773//
21774// API parameter values that are decorated as "sensitive" in the API will not
21775// be included in the string output. The member name will be present, but the
21776// value will be replaced with "sensitive".
21777func (s IntegrationResponse) GoString() string {
21778	return s.String()
21779}
21780
21781// SetContentHandling sets the ContentHandling field's value.
21782func (s *IntegrationResponse) SetContentHandling(v string) *IntegrationResponse {
21783	s.ContentHandling = &v
21784	return s
21785}
21786
21787// SetResponseParameters sets the ResponseParameters field's value.
21788func (s *IntegrationResponse) SetResponseParameters(v map[string]*string) *IntegrationResponse {
21789	s.ResponseParameters = v
21790	return s
21791}
21792
21793// SetResponseTemplates sets the ResponseTemplates field's value.
21794func (s *IntegrationResponse) SetResponseTemplates(v map[string]*string) *IntegrationResponse {
21795	s.ResponseTemplates = v
21796	return s
21797}
21798
21799// SetSelectionPattern sets the SelectionPattern field's value.
21800func (s *IntegrationResponse) SetSelectionPattern(v string) *IntegrationResponse {
21801	s.SelectionPattern = &v
21802	return s
21803}
21804
21805// SetStatusCode sets the StatusCode field's value.
21806func (s *IntegrationResponse) SetStatusCode(v string) *IntegrationResponse {
21807	s.StatusCode = &v
21808	return s
21809}
21810
21811// The request exceeded the rate limit. Retry after the specified time period.
21812type LimitExceededException struct {
21813	_            struct{}                  `type:"structure"`
21814	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21815
21816	Message_ *string `locationName:"message" type:"string"`
21817
21818	RetryAfterSeconds *string `location:"header" locationName:"Retry-After" type:"string"`
21819}
21820
21821// String returns the string representation.
21822//
21823// API parameter values that are decorated as "sensitive" in the API will not
21824// be included in the string output. The member name will be present, but the
21825// value will be replaced with "sensitive".
21826func (s LimitExceededException) String() string {
21827	return awsutil.Prettify(s)
21828}
21829
21830// GoString returns the string representation.
21831//
21832// API parameter values that are decorated as "sensitive" in the API will not
21833// be included in the string output. The member name will be present, but the
21834// value will be replaced with "sensitive".
21835func (s LimitExceededException) GoString() string {
21836	return s.String()
21837}
21838
21839func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
21840	return &LimitExceededException{
21841		RespMetadata: v,
21842	}
21843}
21844
21845// Code returns the exception type name.
21846func (s *LimitExceededException) Code() string {
21847	return "LimitExceededException"
21848}
21849
21850// Message returns the exception's message.
21851func (s *LimitExceededException) Message() string {
21852	if s.Message_ != nil {
21853		return *s.Message_
21854	}
21855	return ""
21856}
21857
21858// OrigErr always returns nil, satisfies awserr.Error interface.
21859func (s *LimitExceededException) OrigErr() error {
21860	return nil
21861}
21862
21863func (s *LimitExceededException) Error() string {
21864	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
21865}
21866
21867// Status code returns the HTTP status code for the request's response error.
21868func (s *LimitExceededException) StatusCode() int {
21869	return s.RespMetadata.StatusCode
21870}
21871
21872// RequestID returns the service's response RequestID for request.
21873func (s *LimitExceededException) RequestID() string {
21874	return s.RespMetadata.RequestID
21875}
21876
21877// Represents a client-facing interface by which the client calls the API to
21878// access back-end resources. A Method resource is integrated with an Integration
21879// resource. Both consist of a request and one or more responses. The method
21880// request takes the client input that is passed to the back end through the
21881// integration request. A method response returns the output from the back end
21882// to the client through an integration response. A method request is embodied
21883// in a Method resource, whereas an integration request is embodied in an Integration
21884// resource. On the other hand, a method response is represented by a MethodResponse
21885// resource, whereas an integration response is represented by an IntegrationResponse
21886// resource.
21887//
21888// Example: Retrive the GET method on a specified resource
21889//
21890// Request
21891//
21892// The following example request retrieves the information about the GET method
21893// on an API resource (3kzxbg5sa2) of an API (fugvjdxtri).
21894//  GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET HTTP/1.1 Content-Type:
21895//  application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T210259Z
21896//  Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request,
21897//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
21898// Response
21899//
21900// The successful response returns a 200 OK status code and a payload similar
21901// to the following:
21902//  { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html",
21903//  "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
21904//  "name": "integrationresponse", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html",
21905//  "name": "method", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
21906//  "name": "methodresponse", "templated": true } ], "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET",
21907//  "name": "GET", "title": "GET" }, "integration:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
21908//  }, "method:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
21909//  }, "method:integration": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
21910//  }, "method:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
21911//  "name": "200", "title": "200" }, "method:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
21912//  }, "methodresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}",
21913//  "templated": true } }, "apiKeyRequired": true, "authorizationType": "NONE",
21914//  "httpMethod": "GET", "_embedded": { "method:integration": { "_links": {
21915//  "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
21916//  }, "integration:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
21917//  }, "integration:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
21918//  "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
21919//  }, "integrationresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}",
21920//  "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "3kzxbg5sa2",
21921//  "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod":
21922//  "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": { "integration.request.header.Content-Type":
21923//  "'application/x-amz-json-1.1'" }, "requestTemplates": { "application/json":
21924//  "{\n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams",
21925//  "_embedded": { "integration:responses": { "_links": { "self": { "href":
21926//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
21927//  "name": "200", "title": "200" }, "integrationresponse:delete": { "href":
21928//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
21929//  }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
21930//  } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'"
21931//  }, "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\")"
21932//  }, "statusCode": "200" } } }, "method:responses": { "_links": { "self":
21933//  { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
21934//  "name": "200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
21935//  }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
21936//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
21937//  { "method.response.header.Content-Type": false }, "statusCode": "200" }
21938//  } }
21939// In the example above, the response template for the 200 OK response maps
21940// the JSON output from the ListStreams action in the back end to an XML output.
21941// 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
21942// 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)
21943// helper function.
21944//
21945// MethodResponse, Integration, IntegrationResponse, Resource, Set up an API's
21946// method (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings.html)
21947type Method struct {
21948	_ struct{} `type:"structure"`
21949
21950	// A boolean flag specifying whether a valid ApiKey is required to invoke this
21951	// method.
21952	ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"`
21953
21954	// A list of authorization scopes configured on the method. The scopes are used
21955	// with a COGNITO_USER_POOLS authorizer to authorize the method invocation.
21956	// The authorization works by matching the method scopes against the scopes
21957	// parsed from the access token in the incoming request. The method invocation
21958	// is authorized if any method scopes matches a claimed scope in the access
21959	// token. Otherwise, the invocation is not authorized. When the method scope
21960	// is configured, the client must provide an access token instead of an identity
21961	// token for authorization purposes.
21962	AuthorizationScopes []*string `locationName:"authorizationScopes" type:"list"`
21963
21964	// The method's authorization type. Valid values are NONE for open access, AWS_IAM
21965	// for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS
21966	// for using a Cognito user pool.
21967	AuthorizationType *string `locationName:"authorizationType" type:"string"`
21968
21969	// The identifier of an Authorizer to use on this method. The authorizationType
21970	// must be CUSTOM.
21971	AuthorizerId *string `locationName:"authorizerId" type:"string"`
21972
21973	// The method's HTTP verb.
21974	HttpMethod *string `locationName:"httpMethod" type:"string"`
21975
21976	// Gets the method's integration responsible for passing the client-submitted
21977	// request to the back end and performing necessary transformations to make
21978	// the request compliant with the back end.
21979	//
21980	// Example:
21981	//
21982	// Request
21983	//   GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration HTTP/1.1
21984	//   Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
21985	//   Content-Length: 117 X-Amz-Date: 20160613T213210Z Authorization: AWS4-HMAC-SHA256
21986	//   Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request,
21987	//   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
21988	// Response
21989	//
21990	// The successful response returns a 200 OK status code and a payload similar
21991	// to the following:
21992	//  { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html",
21993	//  "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
21994	//  "name": "integrationresponse", "templated": true } ], "self": { "href":
21995	//  "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:delete":
21996	//  { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration"
21997	//  }, "integration:responses": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200",
21998	//  "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration"
21999	//  }, "integrationresponse:put": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/{status_code}",
22000	//  "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "0cjtch",
22001	//  "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod":
22002	//  "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestTemplates": { "application/json":
22003	//  "{\n \"a\": \"$input.params('operand1')\",\n \"b\": \"$input.params('operand2')\",
22004	//  \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",
22005	//  "_embedded": { "integration:responses": { "_links": { "self": { "href":
22006	//  "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200",
22007	//  "name": "200", "title": "200" }, "integrationresponse:delete": { "href":
22008	//  "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200"
22009	//  }, "integrationresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200"
22010	//  } }, "responseParameters": { "method.response.header.operator": "integration.response.body.op",
22011	//  "method.response.header.operand_2": "integration.response.body.b", "method.response.header.operand_1":
22012	//  "integration.response.body.a" }, "responseTemplates": { "application/json":
22013	//  "#set($res = $input.path('$'))\n{\n \"result\": \"$res.a, $res.b, $res.op
22014	//  => $res.c\",\n \"a\" : \"$res.a\",\n \"b\" : \"$res.b\",\n \"op\" : \"$res.op\",\n
22015	//  \"c\" : \"$res.c\"\n}" }, "selectionPattern": "", "statusCode": "200" }
22016	//  } }
22017	//
22018	// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-integration.html)
22019	MethodIntegration *Integration `locationName:"methodIntegration" type:"structure"`
22020
22021	// Gets a method response associated with a given HTTP status code.
22022	//
22023	// The collection of method responses are encapsulated in a key-value map, where
22024	// the key is a response's HTTP status code and the value is a MethodResponse
22025	// resource that specifies the response returned to the caller from the back
22026	// end through the integration response.
22027	//
22028	// Example: Get a 200 OK response of a GET method
22029	//
22030	// Request
22031	//   GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200 HTTP/1.1
22032	//   Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
22033	//   Content-Length: 117 X-Amz-Date: 20160613T215008Z Authorization: AWS4-HMAC-SHA256
22034	//   Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request,
22035	//   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
22036	// Response
22037	//
22038	// The successful response returns a 200 OK status code and a payload similar
22039	// to the following:
22040	//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
22041	//  "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200",
22042	//  "title": "200" }, "methodresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200"
22043	//  }, "methodresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200"
22044	//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
22045	//  { "method.response.header.operator": false, "method.response.header.operand_2":
22046	//  false, "method.response.header.operand_1": false }, "statusCode": "200"
22047	//  }
22048	//
22049	// AWS CLI (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-method-response.html)
22050	MethodResponses map[string]*MethodResponse `locationName:"methodResponses" type:"map"`
22051
22052	// A human-friendly operation identifier for the method. For example, you can
22053	// assign the operationName of ListPets for the GET /pets method in the PetStore
22054	// example.
22055	OperationName *string `locationName:"operationName" type:"string"`
22056
22057	// A key-value map specifying data schemas, represented by Model resources,
22058	// (as the mapped value) of the request payloads of given content types (as
22059	// the mapping key).
22060	RequestModels map[string]*string `locationName:"requestModels" type:"map"`
22061
22062	// A key-value map defining required or optional method request parameters that
22063	// can be accepted by API Gateway. A key is a method request parameter name
22064	// matching the pattern of method.request.{location}.{name}, where location
22065	// is querystring, path, or header and name is a valid and unique parameter
22066	// name. The value associated with the key is a Boolean flag indicating whether
22067	// the parameter is required (true) or optional (false). The method request
22068	// parameter names defined here are available in Integration to be mapped to
22069	// integration request parameters or templates.
22070	RequestParameters map[string]*bool `locationName:"requestParameters" type:"map"`
22071
22072	// The identifier of a RequestValidator for request validation.
22073	RequestValidatorId *string `locationName:"requestValidatorId" type:"string"`
22074}
22075
22076// String returns the string representation.
22077//
22078// API parameter values that are decorated as "sensitive" in the API will not
22079// be included in the string output. The member name will be present, but the
22080// value will be replaced with "sensitive".
22081func (s Method) String() string {
22082	return awsutil.Prettify(s)
22083}
22084
22085// GoString returns the string representation.
22086//
22087// API parameter values that are decorated as "sensitive" in the API will not
22088// be included in the string output. The member name will be present, but the
22089// value will be replaced with "sensitive".
22090func (s Method) GoString() string {
22091	return s.String()
22092}
22093
22094// SetApiKeyRequired sets the ApiKeyRequired field's value.
22095func (s *Method) SetApiKeyRequired(v bool) *Method {
22096	s.ApiKeyRequired = &v
22097	return s
22098}
22099
22100// SetAuthorizationScopes sets the AuthorizationScopes field's value.
22101func (s *Method) SetAuthorizationScopes(v []*string) *Method {
22102	s.AuthorizationScopes = v
22103	return s
22104}
22105
22106// SetAuthorizationType sets the AuthorizationType field's value.
22107func (s *Method) SetAuthorizationType(v string) *Method {
22108	s.AuthorizationType = &v
22109	return s
22110}
22111
22112// SetAuthorizerId sets the AuthorizerId field's value.
22113func (s *Method) SetAuthorizerId(v string) *Method {
22114	s.AuthorizerId = &v
22115	return s
22116}
22117
22118// SetHttpMethod sets the HttpMethod field's value.
22119func (s *Method) SetHttpMethod(v string) *Method {
22120	s.HttpMethod = &v
22121	return s
22122}
22123
22124// SetMethodIntegration sets the MethodIntegration field's value.
22125func (s *Method) SetMethodIntegration(v *Integration) *Method {
22126	s.MethodIntegration = v
22127	return s
22128}
22129
22130// SetMethodResponses sets the MethodResponses field's value.
22131func (s *Method) SetMethodResponses(v map[string]*MethodResponse) *Method {
22132	s.MethodResponses = v
22133	return s
22134}
22135
22136// SetOperationName sets the OperationName field's value.
22137func (s *Method) SetOperationName(v string) *Method {
22138	s.OperationName = &v
22139	return s
22140}
22141
22142// SetRequestModels sets the RequestModels field's value.
22143func (s *Method) SetRequestModels(v map[string]*string) *Method {
22144	s.RequestModels = v
22145	return s
22146}
22147
22148// SetRequestParameters sets the RequestParameters field's value.
22149func (s *Method) SetRequestParameters(v map[string]*bool) *Method {
22150	s.RequestParameters = v
22151	return s
22152}
22153
22154// SetRequestValidatorId sets the RequestValidatorId field's value.
22155func (s *Method) SetRequestValidatorId(v string) *Method {
22156	s.RequestValidatorId = &v
22157	return s
22158}
22159
22160// Represents a method response of a given HTTP status code returned to the
22161// client. The method response is passed from the back end through the associated
22162// integration response that can be transformed using a mapping template.
22163//
22164// Example: A MethodResponse instance of an API
22165//
22166// Request
22167//
22168// The example request retrieves a MethodResponse of the 200 status code.
22169//  GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200
22170//  HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com
22171//  X-Amz-Date: 20160603T222952Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request,
22172//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
22173// Response
22174//
22175// The successful response returns 200 OK status and a payload as follows:
22176//  { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
22177//  "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
22178//  "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
22179//  }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
22180//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
22181//  { "method.response.header.Content-Type": false }, "statusCode": "200" }
22182//
22183// Method, IntegrationResponse, Integration Creating an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
22184type MethodResponse struct {
22185	_ struct{} `type:"structure"`
22186
22187	// Specifies the Model resources used for the response's content-type. Response
22188	// models are represented as a key/value map, with a content-type as the key
22189	// and a Model name as the value.
22190	ResponseModels map[string]*string `locationName:"responseModels" type:"map"`
22191
22192	// A key-value map specifying required or optional response parameters that
22193	// API Gateway can send back to the caller. A key defines a method response
22194	// header and the value specifies whether the associated method response header
22195	// is required or not. The expression of the key must match the pattern method.response.header.{name},
22196	// where name is a valid and unique header name. API Gateway passes certain
22197	// integration response data to the method response headers specified here according
22198	// to the mapping you prescribe in the API's IntegrationResponse. The integration
22199	// response data that can be mapped include an integration response header expressed
22200	// in integration.response.header.{name}, a static value enclosed within a pair
22201	// of single quotes (e.g., 'application/json'), or a JSON expression from the
22202	// back-end response payload in the form of integration.response.body.{JSON-expression},
22203	// where JSON-expression is a valid JSON expression without the $ prefix.)
22204	ResponseParameters map[string]*bool `locationName:"responseParameters" type:"map"`
22205
22206	// The method response's status code.
22207	StatusCode *string `locationName:"statusCode" type:"string"`
22208}
22209
22210// String returns the string representation.
22211//
22212// API parameter values that are decorated as "sensitive" in the API will not
22213// be included in the string output. The member name will be present, but the
22214// value will be replaced with "sensitive".
22215func (s MethodResponse) String() string {
22216	return awsutil.Prettify(s)
22217}
22218
22219// GoString returns the string representation.
22220//
22221// API parameter values that are decorated as "sensitive" in the API will not
22222// be included in the string output. The member name will be present, but the
22223// value will be replaced with "sensitive".
22224func (s MethodResponse) GoString() string {
22225	return s.String()
22226}
22227
22228// SetResponseModels sets the ResponseModels field's value.
22229func (s *MethodResponse) SetResponseModels(v map[string]*string) *MethodResponse {
22230	s.ResponseModels = v
22231	return s
22232}
22233
22234// SetResponseParameters sets the ResponseParameters field's value.
22235func (s *MethodResponse) SetResponseParameters(v map[string]*bool) *MethodResponse {
22236	s.ResponseParameters = v
22237	return s
22238}
22239
22240// SetStatusCode sets the StatusCode field's value.
22241func (s *MethodResponse) SetStatusCode(v string) *MethodResponse {
22242	s.StatusCode = &v
22243	return s
22244}
22245
22246// Specifies the method setting properties.
22247type MethodSetting struct {
22248	_ struct{} `type:"structure"`
22249
22250	// Specifies whether the cached responses are encrypted. The PATCH path for
22251	// this setting is /{method_setting_key}/caching/dataEncrypted, and the value
22252	// is a Boolean.
22253	CacheDataEncrypted *bool `locationName:"cacheDataEncrypted" type:"boolean"`
22254
22255	// Specifies the time to live (TTL), in seconds, for cached responses. The higher
22256	// the TTL, the longer the response will be cached. The PATCH path for this
22257	// setting is /{method_setting_key}/caching/ttlInSeconds, and the value is an
22258	// integer.
22259	CacheTtlInSeconds *int64 `locationName:"cacheTtlInSeconds" type:"integer"`
22260
22261	// Specifies whether responses should be cached and returned for requests. A
22262	// cache cluster must be enabled on the stage for responses to be cached. The
22263	// PATCH path for this setting is /{method_setting_key}/caching/enabled, and
22264	// the value is a Boolean.
22265	CachingEnabled *bool `locationName:"cachingEnabled" type:"boolean"`
22266
22267	// Specifies whether data trace logging is enabled for this method, which affects
22268	// the log entries pushed to Amazon CloudWatch Logs. The PATCH path for this
22269	// setting is /{method_setting_key}/logging/dataTrace, and the value is a Boolean.
22270	DataTraceEnabled *bool `locationName:"dataTraceEnabled" type:"boolean"`
22271
22272	// Specifies the logging level for this method, which affects the log entries
22273	// pushed to Amazon CloudWatch Logs. The PATCH path for this setting is /{method_setting_key}/logging/loglevel,
22274	// and the available levels are OFF, ERROR, and INFO. Choose ERROR to write
22275	// only error-level entries to CloudWatch Logs, or choose INFO to include all
22276	// ERROR events as well as extra informational events.
22277	LoggingLevel *string `locationName:"loggingLevel" type:"string"`
22278
22279	// Specifies whether Amazon CloudWatch metrics are enabled for this method.
22280	// The PATCH path for this setting is /{method_setting_key}/metrics/enabled,
22281	// and the value is a Boolean.
22282	MetricsEnabled *bool `locationName:"metricsEnabled" type:"boolean"`
22283
22284	// Specifies whether authorization is required for a cache invalidation request.
22285	// The PATCH path for this setting is /{method_setting_key}/caching/requireAuthorizationForCacheControl,
22286	// and the value is a Boolean.
22287	RequireAuthorizationForCacheControl *bool `locationName:"requireAuthorizationForCacheControl" type:"boolean"`
22288
22289	// Specifies the throttling burst limit. The PATCH path for this setting is
22290	// /{method_setting_key}/throttling/burstLimit, and the value is an integer.
22291	ThrottlingBurstLimit *int64 `locationName:"throttlingBurstLimit" type:"integer"`
22292
22293	// Specifies the throttling rate limit. The PATCH path for this setting is /{method_setting_key}/throttling/rateLimit,
22294	// and the value is a double.
22295	ThrottlingRateLimit *float64 `locationName:"throttlingRateLimit" type:"double"`
22296
22297	// Specifies how to handle unauthorized requests for cache invalidation. The
22298	// PATCH path for this setting is /{method_setting_key}/caching/unauthorizedCacheControlHeaderStrategy,
22299	// and the available values are FAIL_WITH_403, SUCCEED_WITH_RESPONSE_HEADER,
22300	// SUCCEED_WITHOUT_RESPONSE_HEADER.
22301	UnauthorizedCacheControlHeaderStrategy *string `locationName:"unauthorizedCacheControlHeaderStrategy" type:"string" enum:"UnauthorizedCacheControlHeaderStrategy"`
22302}
22303
22304// String returns the string representation.
22305//
22306// API parameter values that are decorated as "sensitive" in the API will not
22307// be included in the string output. The member name will be present, but the
22308// value will be replaced with "sensitive".
22309func (s MethodSetting) String() string {
22310	return awsutil.Prettify(s)
22311}
22312
22313// GoString returns the string representation.
22314//
22315// API parameter values that are decorated as "sensitive" in the API will not
22316// be included in the string output. The member name will be present, but the
22317// value will be replaced with "sensitive".
22318func (s MethodSetting) GoString() string {
22319	return s.String()
22320}
22321
22322// SetCacheDataEncrypted sets the CacheDataEncrypted field's value.
22323func (s *MethodSetting) SetCacheDataEncrypted(v bool) *MethodSetting {
22324	s.CacheDataEncrypted = &v
22325	return s
22326}
22327
22328// SetCacheTtlInSeconds sets the CacheTtlInSeconds field's value.
22329func (s *MethodSetting) SetCacheTtlInSeconds(v int64) *MethodSetting {
22330	s.CacheTtlInSeconds = &v
22331	return s
22332}
22333
22334// SetCachingEnabled sets the CachingEnabled field's value.
22335func (s *MethodSetting) SetCachingEnabled(v bool) *MethodSetting {
22336	s.CachingEnabled = &v
22337	return s
22338}
22339
22340// SetDataTraceEnabled sets the DataTraceEnabled field's value.
22341func (s *MethodSetting) SetDataTraceEnabled(v bool) *MethodSetting {
22342	s.DataTraceEnabled = &v
22343	return s
22344}
22345
22346// SetLoggingLevel sets the LoggingLevel field's value.
22347func (s *MethodSetting) SetLoggingLevel(v string) *MethodSetting {
22348	s.LoggingLevel = &v
22349	return s
22350}
22351
22352// SetMetricsEnabled sets the MetricsEnabled field's value.
22353func (s *MethodSetting) SetMetricsEnabled(v bool) *MethodSetting {
22354	s.MetricsEnabled = &v
22355	return s
22356}
22357
22358// SetRequireAuthorizationForCacheControl sets the RequireAuthorizationForCacheControl field's value.
22359func (s *MethodSetting) SetRequireAuthorizationForCacheControl(v bool) *MethodSetting {
22360	s.RequireAuthorizationForCacheControl = &v
22361	return s
22362}
22363
22364// SetThrottlingBurstLimit sets the ThrottlingBurstLimit field's value.
22365func (s *MethodSetting) SetThrottlingBurstLimit(v int64) *MethodSetting {
22366	s.ThrottlingBurstLimit = &v
22367	return s
22368}
22369
22370// SetThrottlingRateLimit sets the ThrottlingRateLimit field's value.
22371func (s *MethodSetting) SetThrottlingRateLimit(v float64) *MethodSetting {
22372	s.ThrottlingRateLimit = &v
22373	return s
22374}
22375
22376// SetUnauthorizedCacheControlHeaderStrategy sets the UnauthorizedCacheControlHeaderStrategy field's value.
22377func (s *MethodSetting) SetUnauthorizedCacheControlHeaderStrategy(v string) *MethodSetting {
22378	s.UnauthorizedCacheControlHeaderStrategy = &v
22379	return s
22380}
22381
22382// Represents a summary of a Method resource, given a particular date and time.
22383type MethodSnapshot struct {
22384	_ struct{} `type:"structure"`
22385
22386	// Specifies whether the method requires a valid ApiKey.
22387	ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"`
22388
22389	// The method's authorization type. Valid values are NONE for open access, AWS_IAM
22390	// for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS
22391	// for using a Cognito user pool.
22392	AuthorizationType *string `locationName:"authorizationType" type:"string"`
22393}
22394
22395// String returns the string representation.
22396//
22397// API parameter values that are decorated as "sensitive" in the API will not
22398// be included in the string output. The member name will be present, but the
22399// value will be replaced with "sensitive".
22400func (s MethodSnapshot) String() string {
22401	return awsutil.Prettify(s)
22402}
22403
22404// GoString returns the string representation.
22405//
22406// API parameter values that are decorated as "sensitive" in the API will not
22407// be included in the string output. The member name will be present, but the
22408// value will be replaced with "sensitive".
22409func (s MethodSnapshot) GoString() string {
22410	return s.String()
22411}
22412
22413// SetApiKeyRequired sets the ApiKeyRequired field's value.
22414func (s *MethodSnapshot) SetApiKeyRequired(v bool) *MethodSnapshot {
22415	s.ApiKeyRequired = &v
22416	return s
22417}
22418
22419// SetAuthorizationType sets the AuthorizationType field's value.
22420func (s *MethodSnapshot) SetAuthorizationType(v string) *MethodSnapshot {
22421	s.AuthorizationType = &v
22422	return s
22423}
22424
22425// Represents the data structure of a method's request or response payload.
22426//
22427// A request model defines the data structure of the client-supplied request
22428// payload. A response model defines the data structure of the response payload
22429// returned by the back end. Although not required, models are useful for mapping
22430// payloads between the front end and back end.
22431//
22432// A model is used for generating an API's SDK, validating the input request
22433// body, and creating a skeletal mapping template.
22434//
22435// Method, MethodResponse, Models and Mappings (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html)
22436type Model struct {
22437	_ struct{} `type:"structure"`
22438
22439	// The content-type for the model.
22440	ContentType *string `locationName:"contentType" type:"string"`
22441
22442	// The description of the model.
22443	Description *string `locationName:"description" type:"string"`
22444
22445	// The identifier for the model resource.
22446	Id *string `locationName:"id" type:"string"`
22447
22448	// The name of the model. Must be an alphanumeric string.
22449	Name *string `locationName:"name" type:"string"`
22450
22451	// The schema for the model. For application/json models, this should be JSON
22452	// schema draft 4 (https://tools.ietf.org/html/draft-zyp-json-schema-04) model.
22453	// Do not include "\*/" characters in the description of any properties because
22454	// such "\*/" characters may be interpreted as the closing marker for comments
22455	// in some languages, such as Java or JavaScript, causing the installation of
22456	// your API's SDK generated by API Gateway to fail.
22457	Schema *string `locationName:"schema" type:"string"`
22458}
22459
22460// String returns the string representation.
22461//
22462// API parameter values that are decorated as "sensitive" in the API will not
22463// be included in the string output. The member name will be present, but the
22464// value will be replaced with "sensitive".
22465func (s Model) String() string {
22466	return awsutil.Prettify(s)
22467}
22468
22469// GoString returns the string representation.
22470//
22471// API parameter values that are decorated as "sensitive" in the API will not
22472// be included in the string output. The member name will be present, but the
22473// value will be replaced with "sensitive".
22474func (s Model) GoString() string {
22475	return s.String()
22476}
22477
22478// SetContentType sets the ContentType field's value.
22479func (s *Model) SetContentType(v string) *Model {
22480	s.ContentType = &v
22481	return s
22482}
22483
22484// SetDescription sets the Description field's value.
22485func (s *Model) SetDescription(v string) *Model {
22486	s.Description = &v
22487	return s
22488}
22489
22490// SetId sets the Id field's value.
22491func (s *Model) SetId(v string) *Model {
22492	s.Id = &v
22493	return s
22494}
22495
22496// SetName sets the Name field's value.
22497func (s *Model) SetName(v string) *Model {
22498	s.Name = &v
22499	return s
22500}
22501
22502// SetSchema sets the Schema field's value.
22503func (s *Model) SetSchema(v string) *Model {
22504	s.Schema = &v
22505	return s
22506}
22507
22508// If specified, API Gateway performs two-way authentication between the client
22509// and the server. Clients must present a trusted certificate to access your
22510// custom domain name.
22511type MutualTlsAuthentication struct {
22512	_ struct{} `type:"structure"`
22513
22514	// An Amazon S3 URL that specifies the truststore for mutual TLS authentication,
22515	// for example s3://bucket-name/key-name. The truststore can contain certificates
22516	// from public or private certificate authorities. To update the truststore,
22517	// upload a new version to S3, and then update your custom domain name to use
22518	// the new version. To update the truststore, you must have permissions to access
22519	// the S3 object.
22520	TruststoreUri *string `locationName:"truststoreUri" type:"string"`
22521
22522	// The version of the S3 object that contains your truststore. To specify a
22523	// version, you must have versioning enabled for the S3 bucket.
22524	TruststoreVersion *string `locationName:"truststoreVersion" type:"string"`
22525
22526	// A list of warnings that API Gateway returns while processing your truststore.
22527	// Invalid certificates produce warnings. Mutual TLS is still enabled, but some
22528	// clients might not be able to access your API. To resolve warnings, upload
22529	// a new truststore to S3, and then update you domain name to use the new version.
22530	TruststoreWarnings []*string `locationName:"truststoreWarnings" type:"list"`
22531}
22532
22533// String returns the string representation.
22534//
22535// API parameter values that are decorated as "sensitive" in the API will not
22536// be included in the string output. The member name will be present, but the
22537// value will be replaced with "sensitive".
22538func (s MutualTlsAuthentication) String() string {
22539	return awsutil.Prettify(s)
22540}
22541
22542// GoString returns the string representation.
22543//
22544// API parameter values that are decorated as "sensitive" in the API will not
22545// be included in the string output. The member name will be present, but the
22546// value will be replaced with "sensitive".
22547func (s MutualTlsAuthentication) GoString() string {
22548	return s.String()
22549}
22550
22551// SetTruststoreUri sets the TruststoreUri field's value.
22552func (s *MutualTlsAuthentication) SetTruststoreUri(v string) *MutualTlsAuthentication {
22553	s.TruststoreUri = &v
22554	return s
22555}
22556
22557// SetTruststoreVersion sets the TruststoreVersion field's value.
22558func (s *MutualTlsAuthentication) SetTruststoreVersion(v string) *MutualTlsAuthentication {
22559	s.TruststoreVersion = &v
22560	return s
22561}
22562
22563// SetTruststoreWarnings sets the TruststoreWarnings field's value.
22564func (s *MutualTlsAuthentication) SetTruststoreWarnings(v []*string) *MutualTlsAuthentication {
22565	s.TruststoreWarnings = v
22566	return s
22567}
22568
22569// If specified, API Gateway performs two-way authentication between the client
22570// and the server. Clients must present a trusted certificate to access your
22571// custom domain name.
22572type MutualTlsAuthenticationInput struct {
22573	_ struct{} `type:"structure"`
22574
22575	// An Amazon S3 resource ARN that specifies the truststore for mutual TLS authentication,
22576	// for example, s3://bucket-name/key-name. The truststore can contain certificates
22577	// from public or private certificate authorities. To update the truststore,
22578	// upload a new version to S3, and then update your custom domain name to use
22579	// the new version. To update the truststore, you must have permissions to access
22580	// the S3 object.
22581	TruststoreUri *string `locationName:"truststoreUri" type:"string"`
22582
22583	// The version of the S3 object that contains your truststore. To specify a
22584	// version, you must have versioning enabled for the S3 bucket.
22585	TruststoreVersion *string `locationName:"truststoreVersion" type:"string"`
22586}
22587
22588// String returns the string representation.
22589//
22590// API parameter values that are decorated as "sensitive" in the API will not
22591// be included in the string output. The member name will be present, but the
22592// value will be replaced with "sensitive".
22593func (s MutualTlsAuthenticationInput) String() string {
22594	return awsutil.Prettify(s)
22595}
22596
22597// GoString returns the string representation.
22598//
22599// API parameter values that are decorated as "sensitive" in the API will not
22600// be included in the string output. The member name will be present, but the
22601// value will be replaced with "sensitive".
22602func (s MutualTlsAuthenticationInput) GoString() string {
22603	return s.String()
22604}
22605
22606// SetTruststoreUri sets the TruststoreUri field's value.
22607func (s *MutualTlsAuthenticationInput) SetTruststoreUri(v string) *MutualTlsAuthenticationInput {
22608	s.TruststoreUri = &v
22609	return s
22610}
22611
22612// SetTruststoreVersion sets the TruststoreVersion field's value.
22613func (s *MutualTlsAuthenticationInput) SetTruststoreVersion(v string) *MutualTlsAuthenticationInput {
22614	s.TruststoreVersion = &v
22615	return s
22616}
22617
22618// The requested resource is not found. Make sure that the request URI is correct.
22619type NotFoundException struct {
22620	_            struct{}                  `type:"structure"`
22621	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22622
22623	Message_ *string `locationName:"message" type:"string"`
22624}
22625
22626// String returns the string representation.
22627//
22628// API parameter values that are decorated as "sensitive" in the API will not
22629// be included in the string output. The member name will be present, but the
22630// value will be replaced with "sensitive".
22631func (s NotFoundException) String() string {
22632	return awsutil.Prettify(s)
22633}
22634
22635// GoString returns the string representation.
22636//
22637// API parameter values that are decorated as "sensitive" in the API will not
22638// be included in the string output. The member name will be present, but the
22639// value will be replaced with "sensitive".
22640func (s NotFoundException) GoString() string {
22641	return s.String()
22642}
22643
22644func newErrorNotFoundException(v protocol.ResponseMetadata) error {
22645	return &NotFoundException{
22646		RespMetadata: v,
22647	}
22648}
22649
22650// Code returns the exception type name.
22651func (s *NotFoundException) Code() string {
22652	return "NotFoundException"
22653}
22654
22655// Message returns the exception's message.
22656func (s *NotFoundException) Message() string {
22657	if s.Message_ != nil {
22658		return *s.Message_
22659	}
22660	return ""
22661}
22662
22663// OrigErr always returns nil, satisfies awserr.Error interface.
22664func (s *NotFoundException) OrigErr() error {
22665	return nil
22666}
22667
22668func (s *NotFoundException) Error() string {
22669	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22670}
22671
22672// Status code returns the HTTP status code for the request's response error.
22673func (s *NotFoundException) StatusCode() int {
22674	return s.RespMetadata.StatusCode
22675}
22676
22677// RequestID returns the service's response RequestID for request.
22678func (s *NotFoundException) RequestID() string {
22679	return s.RespMetadata.RequestID
22680}
22681
22682// A single patch operation to apply to the specified resource. Please refer
22683// to http://tools.ietf.org/html/rfc6902#section-4 for an explanation of how
22684// each operation is used.
22685type PatchOperation struct {
22686	_ struct{} `type:"structure"`
22687
22688	// The copy update operation's source as identified by a JSON-Pointer value
22689	// referencing the location within the targeted resource to copy the value from.
22690	// For example, to promote a canary deployment, you copy the canary deployment
22691	// ID to the affiliated deployment ID by calling a PATCH request on a Stage
22692	// resource with "op":"copy", "from":"/canarySettings/deploymentId" and "path":"/deploymentId".
22693	From *string `locationName:"from" type:"string"`
22694
22695	// An update operation to be performed with this PATCH request. The valid value
22696	// can be add, remove, replace or copy. Not all valid operations are supported
22697	// for a given resource. Support of the operations depends on specific operational
22698	// contexts. Attempts to apply an unsupported operation on a resource will return
22699	// an error message.
22700	Op *string `locationName:"op" type:"string" enum:"Op"`
22701
22702	// The op operation's target, as identified by a JSON Pointer (https://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-08)
22703	// value that references a location within the targeted resource. For example,
22704	// if the target resource has an updateable property of {"name":"value"}, the
22705	// path for this property is /name. If the name property value is a JSON object
22706	// (e.g., {"name": {"child/name": "child-value"}}), the path for the child/name
22707	// property will be /name/child~1name. Any slash ("/") character appearing in
22708	// path names must be escaped with "~1", as shown in the example above. Each
22709	// op operation can have only one path associated with it.
22710	Path *string `locationName:"path" type:"string"`
22711
22712	// The new target value of the update operation. It is applicable for the add
22713	// or replace operation. When using AWS CLI to update a property of a JSON value,
22714	// enclose the JSON object with a pair of single quotes in a Linux shell, e.g.,
22715	// '{"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).
22716	Value *string `locationName:"value" type:"string"`
22717}
22718
22719// String returns the string representation.
22720//
22721// API parameter values that are decorated as "sensitive" in the API will not
22722// be included in the string output. The member name will be present, but the
22723// value will be replaced with "sensitive".
22724func (s PatchOperation) String() string {
22725	return awsutil.Prettify(s)
22726}
22727
22728// GoString returns the string representation.
22729//
22730// API parameter values that are decorated as "sensitive" in the API will not
22731// be included in the string output. The member name will be present, but the
22732// value will be replaced with "sensitive".
22733func (s PatchOperation) GoString() string {
22734	return s.String()
22735}
22736
22737// SetFrom sets the From field's value.
22738func (s *PatchOperation) SetFrom(v string) *PatchOperation {
22739	s.From = &v
22740	return s
22741}
22742
22743// SetOp sets the Op field's value.
22744func (s *PatchOperation) SetOp(v string) *PatchOperation {
22745	s.Op = &v
22746	return s
22747}
22748
22749// SetPath sets the Path field's value.
22750func (s *PatchOperation) SetPath(v string) *PatchOperation {
22751	s.Path = &v
22752	return s
22753}
22754
22755// SetValue sets the Value field's value.
22756func (s *PatchOperation) SetValue(v string) *PatchOperation {
22757	s.Value = &v
22758	return s
22759}
22760
22761// Creates a customization of a GatewayResponse of a specified response type
22762// and status code on the given RestApi.
22763type PutGatewayResponseInput struct {
22764	_ struct{} `type:"structure"`
22765
22766	// Response parameters (paths, query strings and headers) of the GatewayResponse
22767	// as a string-to-string map of key-value pairs.
22768	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
22769
22770	// Response templates of the GatewayResponse as a string-to-string map of key-value
22771	// pairs.
22772	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
22773
22774	// [Required]
22775	// The response type of the associated GatewayResponse.
22776	//
22777	// ResponseType is a required field
22778	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
22779
22780	// [Required] The string identifier of the associated RestApi.
22781	//
22782	// RestApiId is a required field
22783	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
22784
22785	// The HTTP status code of the GatewayResponse.
22786	StatusCode *string `locationName:"statusCode" type:"string"`
22787}
22788
22789// String returns the string representation.
22790//
22791// API parameter values that are decorated as "sensitive" in the API will not
22792// be included in the string output. The member name will be present, but the
22793// value will be replaced with "sensitive".
22794func (s PutGatewayResponseInput) String() string {
22795	return awsutil.Prettify(s)
22796}
22797
22798// GoString returns the string representation.
22799//
22800// API parameter values that are decorated as "sensitive" in the API will not
22801// be included in the string output. The member name will be present, but the
22802// value will be replaced with "sensitive".
22803func (s PutGatewayResponseInput) GoString() string {
22804	return s.String()
22805}
22806
22807// Validate inspects the fields of the type to determine if they are valid.
22808func (s *PutGatewayResponseInput) Validate() error {
22809	invalidParams := request.ErrInvalidParams{Context: "PutGatewayResponseInput"}
22810	if s.ResponseType == nil {
22811		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
22812	}
22813	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
22814		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
22815	}
22816	if s.RestApiId == nil {
22817		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
22818	}
22819	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
22820		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
22821	}
22822
22823	if invalidParams.Len() > 0 {
22824		return invalidParams
22825	}
22826	return nil
22827}
22828
22829// SetResponseParameters sets the ResponseParameters field's value.
22830func (s *PutGatewayResponseInput) SetResponseParameters(v map[string]*string) *PutGatewayResponseInput {
22831	s.ResponseParameters = v
22832	return s
22833}
22834
22835// SetResponseTemplates sets the ResponseTemplates field's value.
22836func (s *PutGatewayResponseInput) SetResponseTemplates(v map[string]*string) *PutGatewayResponseInput {
22837	s.ResponseTemplates = v
22838	return s
22839}
22840
22841// SetResponseType sets the ResponseType field's value.
22842func (s *PutGatewayResponseInput) SetResponseType(v string) *PutGatewayResponseInput {
22843	s.ResponseType = &v
22844	return s
22845}
22846
22847// SetRestApiId sets the RestApiId field's value.
22848func (s *PutGatewayResponseInput) SetRestApiId(v string) *PutGatewayResponseInput {
22849	s.RestApiId = &v
22850	return s
22851}
22852
22853// SetStatusCode sets the StatusCode field's value.
22854func (s *PutGatewayResponseInput) SetStatusCode(v string) *PutGatewayResponseInput {
22855	s.StatusCode = &v
22856	return s
22857}
22858
22859// Sets up a method's integration.
22860type PutIntegrationInput struct {
22861	_ struct{} `type:"structure"`
22862
22863	// A list of request parameters whose values API Gateway caches. To be valid
22864	// values for cacheKeyParameters, these parameters must also be specified for
22865	// Method requestParameters.
22866	CacheKeyParameters []*string `locationName:"cacheKeyParameters" type:"list"`
22867
22868	// Specifies a group of related cached parameters. By default, API Gateway uses
22869	// the resource ID as the cacheNamespace. You can specify the same cacheNamespace
22870	// across resources to return the same cached data for requests to different
22871	// resources.
22872	CacheNamespace *string `locationName:"cacheNamespace" type:"string"`
22873
22874	// The (id (https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id))
22875	// of the VpcLink used for the integration when connectionType=VPC_LINK and
22876	// undefined, otherwise.
22877	ConnectionId *string `locationName:"connectionId" type:"string"`
22878
22879	// The type of the network connection to the integration endpoint. The valid
22880	// value is INTERNET for connections through the public routable internet or
22881	// VPC_LINK for private connections between API Gateway and a network load balancer
22882	// in a VPC. The default value is INTERNET.
22883	ConnectionType *string `locationName:"connectionType" type:"string" enum:"ConnectionType"`
22884
22885	// Specifies how to handle request payload content type conversions. Supported
22886	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
22887	//
22888	//    * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded
22889	//    string to the corresponding binary blob.
22890	//
22891	//    * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a
22892	//    Base64-encoded string.
22893	//
22894	// If this property is not defined, the request payload will be passed through
22895	// from the method request to integration request without modification, provided
22896	// that the passthroughBehavior is configured to support payload pass-through.
22897	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
22898
22899	// Specifies whether credentials are required for a put integration.
22900	Credentials *string `locationName:"credentials" type:"string"`
22901
22902	// [Required] Specifies a put integration request's HTTP method.
22903	//
22904	// HttpMethod is a required field
22905	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
22906
22907	// Specifies a put integration HTTP method. When the integration type is HTTP
22908	// or AWS, this field is required.
22909	IntegrationHttpMethod *string `locationName:"httpMethod" type:"string"`
22910
22911	// Specifies the pass-through behavior for incoming requests based on the Content-Type
22912	// header in the request, and the available mapping templates specified as the
22913	// requestTemplates property on the Integration resource. There are three valid
22914	// values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER.
22915	//
22916	//    * WHEN_NO_MATCH passes the request body for unmapped content types through
22917	//    to the integration back end without transformation.
22918	//
22919	//    * NEVER rejects unmapped content types with an HTTP 415 'Unsupported Media
22920	//    Type' response.
22921	//
22922	//    * WHEN_NO_TEMPLATES allows pass-through when the integration has NO content
22923	//    types mapped to templates. However if there is at least one content type
22924	//    defined, unmapped content types will be rejected with the same 415 response.
22925	PassthroughBehavior *string `locationName:"passthroughBehavior" type:"string"`
22926
22927	// A key-value map specifying request parameters that are passed from the method
22928	// request to the back end. The key is an integration request parameter name
22929	// and the associated value is a method request parameter value or static value
22930	// that must be enclosed within single quotes and pre-encoded as required by
22931	// the back end. The method request parameter value must match the pattern of
22932	// method.request.{location}.{name}, where location is querystring, path, or
22933	// header and name must be a valid and unique method request parameter name.
22934	RequestParameters map[string]*string `locationName:"requestParameters" type:"map"`
22935
22936	// Represents a map of Velocity templates that are applied on the request payload
22937	// based on the value of the Content-Type header sent by the client. The content
22938	// type value is the key in this map, and the template (as a String) is the
22939	// value.
22940	RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
22941
22942	// [Required] Specifies a put integration request's resource ID.
22943	//
22944	// ResourceId is a required field
22945	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
22946
22947	// [Required] The string identifier of the associated RestApi.
22948	//
22949	// RestApiId is a required field
22950	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
22951
22952	// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000
22953	// milliseconds or 29 seconds.
22954	TimeoutInMillis *int64 `locationName:"timeoutInMillis" type:"integer"`
22955
22956	TlsConfig *TlsConfig `locationName:"tlsConfig" type:"structure"`
22957
22958	// [Required] Specifies a put integration input's type.
22959	//
22960	// Type is a required field
22961	Type *string `locationName:"type" type:"string" required:"true" enum:"IntegrationType"`
22962
22963	// Specifies Uniform Resource Identifier (URI) of the integration endpoint.
22964	//
22965	//    * For HTTP or HTTP_PROXY integrations, the URI must be a fully formed,
22966	//    encoded HTTP(S) URL according to the RFC-3986 specification (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier),
22967	//    for either standard integration, where connectionType is not VPC_LINK,
22968	//    or private integration, where connectionType is VPC_LINK. For a private
22969	//    HTTP integration, the URI is not used for routing.
22970	//
22971	//    * For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}.
22972	//    Here, {Region} is the API Gateway region (e.g., us-east-1); {service}
22973	//    is the name of the integrated AWS service (e.g., s3); and {subdomain}
22974	//    is a designated subdomain supported by certain AWS service for fast host-name
22975	//    lookup. action can be used for an AWS service action-based API, using
22976	//    an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api}
22977	//    refers to a supported action {name} plus any required input parameters.
22978	//    Alternatively, path can be used for an AWS service path-based API. The
22979	//    ensuing service_api refers to the path to an AWS service resource, including
22980	//    the region of the integrated AWS service, if applicable. For example,
22981	//    for integration with the S3 API of GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html),
22982	//    the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}
22983	//    or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}
22984	Uri *string `locationName:"uri" type:"string"`
22985}
22986
22987// String returns the string representation.
22988//
22989// API parameter values that are decorated as "sensitive" in the API will not
22990// be included in the string output. The member name will be present, but the
22991// value will be replaced with "sensitive".
22992func (s PutIntegrationInput) String() string {
22993	return awsutil.Prettify(s)
22994}
22995
22996// GoString returns the string representation.
22997//
22998// API parameter values that are decorated as "sensitive" in the API will not
22999// be included in the string output. The member name will be present, but the
23000// value will be replaced with "sensitive".
23001func (s PutIntegrationInput) GoString() string {
23002	return s.String()
23003}
23004
23005// Validate inspects the fields of the type to determine if they are valid.
23006func (s *PutIntegrationInput) Validate() error {
23007	invalidParams := request.ErrInvalidParams{Context: "PutIntegrationInput"}
23008	if s.HttpMethod == nil {
23009		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
23010	}
23011	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
23012		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
23013	}
23014	if s.ResourceId == nil {
23015		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
23016	}
23017	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
23018		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
23019	}
23020	if s.RestApiId == nil {
23021		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23022	}
23023	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23024		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23025	}
23026	if s.Type == nil {
23027		invalidParams.Add(request.NewErrParamRequired("Type"))
23028	}
23029
23030	if invalidParams.Len() > 0 {
23031		return invalidParams
23032	}
23033	return nil
23034}
23035
23036// SetCacheKeyParameters sets the CacheKeyParameters field's value.
23037func (s *PutIntegrationInput) SetCacheKeyParameters(v []*string) *PutIntegrationInput {
23038	s.CacheKeyParameters = v
23039	return s
23040}
23041
23042// SetCacheNamespace sets the CacheNamespace field's value.
23043func (s *PutIntegrationInput) SetCacheNamespace(v string) *PutIntegrationInput {
23044	s.CacheNamespace = &v
23045	return s
23046}
23047
23048// SetConnectionId sets the ConnectionId field's value.
23049func (s *PutIntegrationInput) SetConnectionId(v string) *PutIntegrationInput {
23050	s.ConnectionId = &v
23051	return s
23052}
23053
23054// SetConnectionType sets the ConnectionType field's value.
23055func (s *PutIntegrationInput) SetConnectionType(v string) *PutIntegrationInput {
23056	s.ConnectionType = &v
23057	return s
23058}
23059
23060// SetContentHandling sets the ContentHandling field's value.
23061func (s *PutIntegrationInput) SetContentHandling(v string) *PutIntegrationInput {
23062	s.ContentHandling = &v
23063	return s
23064}
23065
23066// SetCredentials sets the Credentials field's value.
23067func (s *PutIntegrationInput) SetCredentials(v string) *PutIntegrationInput {
23068	s.Credentials = &v
23069	return s
23070}
23071
23072// SetHttpMethod sets the HttpMethod field's value.
23073func (s *PutIntegrationInput) SetHttpMethod(v string) *PutIntegrationInput {
23074	s.HttpMethod = &v
23075	return s
23076}
23077
23078// SetIntegrationHttpMethod sets the IntegrationHttpMethod field's value.
23079func (s *PutIntegrationInput) SetIntegrationHttpMethod(v string) *PutIntegrationInput {
23080	s.IntegrationHttpMethod = &v
23081	return s
23082}
23083
23084// SetPassthroughBehavior sets the PassthroughBehavior field's value.
23085func (s *PutIntegrationInput) SetPassthroughBehavior(v string) *PutIntegrationInput {
23086	s.PassthroughBehavior = &v
23087	return s
23088}
23089
23090// SetRequestParameters sets the RequestParameters field's value.
23091func (s *PutIntegrationInput) SetRequestParameters(v map[string]*string) *PutIntegrationInput {
23092	s.RequestParameters = v
23093	return s
23094}
23095
23096// SetRequestTemplates sets the RequestTemplates field's value.
23097func (s *PutIntegrationInput) SetRequestTemplates(v map[string]*string) *PutIntegrationInput {
23098	s.RequestTemplates = v
23099	return s
23100}
23101
23102// SetResourceId sets the ResourceId field's value.
23103func (s *PutIntegrationInput) SetResourceId(v string) *PutIntegrationInput {
23104	s.ResourceId = &v
23105	return s
23106}
23107
23108// SetRestApiId sets the RestApiId field's value.
23109func (s *PutIntegrationInput) SetRestApiId(v string) *PutIntegrationInput {
23110	s.RestApiId = &v
23111	return s
23112}
23113
23114// SetTimeoutInMillis sets the TimeoutInMillis field's value.
23115func (s *PutIntegrationInput) SetTimeoutInMillis(v int64) *PutIntegrationInput {
23116	s.TimeoutInMillis = &v
23117	return s
23118}
23119
23120// SetTlsConfig sets the TlsConfig field's value.
23121func (s *PutIntegrationInput) SetTlsConfig(v *TlsConfig) *PutIntegrationInput {
23122	s.TlsConfig = v
23123	return s
23124}
23125
23126// SetType sets the Type field's value.
23127func (s *PutIntegrationInput) SetType(v string) *PutIntegrationInput {
23128	s.Type = &v
23129	return s
23130}
23131
23132// SetUri sets the Uri field's value.
23133func (s *PutIntegrationInput) SetUri(v string) *PutIntegrationInput {
23134	s.Uri = &v
23135	return s
23136}
23137
23138// Represents a put integration response request.
23139type PutIntegrationResponseInput struct {
23140	_ struct{} `type:"structure"`
23141
23142	// Specifies how to handle response payload content type conversions. Supported
23143	// values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
23144	//
23145	//    * CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded
23146	//    string to the corresponding binary blob.
23147	//
23148	//    * CONVERT_TO_TEXT: Converts a response payload from a binary blob to a
23149	//    Base64-encoded string.
23150	//
23151	// If this property is not defined, the response payload will be passed through
23152	// from the integration response to the method response without modification.
23153	ContentHandling *string `locationName:"contentHandling" type:"string" enum:"ContentHandlingStrategy"`
23154
23155	// [Required] Specifies a put integration response request's HTTP method.
23156	//
23157	// HttpMethod is a required field
23158	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
23159
23160	// [Required] Specifies a put integration response request's resource identifier.
23161	//
23162	// ResourceId is a required field
23163	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
23164
23165	// A key-value map specifying response parameters that are passed to the method
23166	// response from the back end. The key is a method response header parameter
23167	// name and the mapped value is an integration response header value, a static
23168	// value enclosed within a pair of single quotes, or a JSON expression from
23169	// the integration response body. The mapping key must match the pattern of
23170	// method.response.header.{name}, where name is a valid and unique header name.
23171	// The mapped non-static value must match the pattern of integration.response.header.{name}
23172	// or integration.response.body.{JSON-expression}, where name must be a valid
23173	// and unique response header name and JSON-expression a valid JSON expression
23174	// without the $ prefix.
23175	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
23176
23177	// Specifies a put integration response's templates.
23178	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
23179
23180	// [Required] The string identifier of the associated RestApi.
23181	//
23182	// RestApiId is a required field
23183	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23184
23185	// Specifies the selection pattern of a put integration response.
23186	SelectionPattern *string `locationName:"selectionPattern" type:"string"`
23187
23188	// [Required] Specifies the status code that is used to map the integration
23189	// response to an existing MethodResponse.
23190	//
23191	// StatusCode is a required field
23192	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
23193}
23194
23195// String returns the string representation.
23196//
23197// API parameter values that are decorated as "sensitive" in the API will not
23198// be included in the string output. The member name will be present, but the
23199// value will be replaced with "sensitive".
23200func (s PutIntegrationResponseInput) String() string {
23201	return awsutil.Prettify(s)
23202}
23203
23204// GoString returns the string representation.
23205//
23206// API parameter values that are decorated as "sensitive" in the API will not
23207// be included in the string output. The member name will be present, but the
23208// value will be replaced with "sensitive".
23209func (s PutIntegrationResponseInput) GoString() string {
23210	return s.String()
23211}
23212
23213// Validate inspects the fields of the type to determine if they are valid.
23214func (s *PutIntegrationResponseInput) Validate() error {
23215	invalidParams := request.ErrInvalidParams{Context: "PutIntegrationResponseInput"}
23216	if s.HttpMethod == nil {
23217		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
23218	}
23219	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
23220		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
23221	}
23222	if s.ResourceId == nil {
23223		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
23224	}
23225	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
23226		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
23227	}
23228	if s.RestApiId == nil {
23229		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23230	}
23231	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23232		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23233	}
23234	if s.StatusCode == nil {
23235		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
23236	}
23237	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
23238		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
23239	}
23240
23241	if invalidParams.Len() > 0 {
23242		return invalidParams
23243	}
23244	return nil
23245}
23246
23247// SetContentHandling sets the ContentHandling field's value.
23248func (s *PutIntegrationResponseInput) SetContentHandling(v string) *PutIntegrationResponseInput {
23249	s.ContentHandling = &v
23250	return s
23251}
23252
23253// SetHttpMethod sets the HttpMethod field's value.
23254func (s *PutIntegrationResponseInput) SetHttpMethod(v string) *PutIntegrationResponseInput {
23255	s.HttpMethod = &v
23256	return s
23257}
23258
23259// SetResourceId sets the ResourceId field's value.
23260func (s *PutIntegrationResponseInput) SetResourceId(v string) *PutIntegrationResponseInput {
23261	s.ResourceId = &v
23262	return s
23263}
23264
23265// SetResponseParameters sets the ResponseParameters field's value.
23266func (s *PutIntegrationResponseInput) SetResponseParameters(v map[string]*string) *PutIntegrationResponseInput {
23267	s.ResponseParameters = v
23268	return s
23269}
23270
23271// SetResponseTemplates sets the ResponseTemplates field's value.
23272func (s *PutIntegrationResponseInput) SetResponseTemplates(v map[string]*string) *PutIntegrationResponseInput {
23273	s.ResponseTemplates = v
23274	return s
23275}
23276
23277// SetRestApiId sets the RestApiId field's value.
23278func (s *PutIntegrationResponseInput) SetRestApiId(v string) *PutIntegrationResponseInput {
23279	s.RestApiId = &v
23280	return s
23281}
23282
23283// SetSelectionPattern sets the SelectionPattern field's value.
23284func (s *PutIntegrationResponseInput) SetSelectionPattern(v string) *PutIntegrationResponseInput {
23285	s.SelectionPattern = &v
23286	return s
23287}
23288
23289// SetStatusCode sets the StatusCode field's value.
23290func (s *PutIntegrationResponseInput) SetStatusCode(v string) *PutIntegrationResponseInput {
23291	s.StatusCode = &v
23292	return s
23293}
23294
23295// Request to add a method to an existing Resource resource.
23296type PutMethodInput struct {
23297	_ struct{} `type:"structure"`
23298
23299	// Specifies whether the method required a valid ApiKey.
23300	ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"`
23301
23302	// A list of authorization scopes configured on the method. The scopes are used
23303	// with a COGNITO_USER_POOLS authorizer to authorize the method invocation.
23304	// The authorization works by matching the method scopes against the scopes
23305	// parsed from the access token in the incoming request. The method invocation
23306	// is authorized if any method scopes matches a claimed scope in the access
23307	// token. Otherwise, the invocation is not authorized. When the method scope
23308	// is configured, the client must provide an access token instead of an identity
23309	// token for authorization purposes.
23310	AuthorizationScopes []*string `locationName:"authorizationScopes" type:"list"`
23311
23312	// [Required] The method's authorization type. Valid values are NONE for open
23313	// access, AWS_IAM for using AWS IAM permissions, CUSTOM for using a custom
23314	// authorizer, or COGNITO_USER_POOLS for using a Cognito user pool.
23315	//
23316	// AuthorizationType is a required field
23317	AuthorizationType *string `locationName:"authorizationType" type:"string" required:"true"`
23318
23319	// Specifies the identifier of an Authorizer to use on this Method, if the type
23320	// is CUSTOM or COGNITO_USER_POOLS. The authorizer identifier is generated by
23321	// API Gateway when you created the authorizer.
23322	AuthorizerId *string `locationName:"authorizerId" type:"string"`
23323
23324	// [Required] Specifies the method request's HTTP method type.
23325	//
23326	// HttpMethod is a required field
23327	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
23328
23329	// A human-friendly operation identifier for the method. For example, you can
23330	// assign the operationName of ListPets for the GET /pets method in the PetStore
23331	// example.
23332	OperationName *string `locationName:"operationName" type:"string"`
23333
23334	// Specifies the Model resources used for the request's content type. Request
23335	// models are represented as a key/value map, with a content type as the key
23336	// and a Model name as the value.
23337	RequestModels map[string]*string `locationName:"requestModels" type:"map"`
23338
23339	// A key-value map defining required or optional method request parameters that
23340	// can be accepted by API Gateway. A key defines a method request parameter
23341	// name matching the pattern of method.request.{location}.{name}, where location
23342	// is querystring, path, or header and name is a valid and unique parameter
23343	// name. The value associated with the key is a Boolean flag indicating whether
23344	// the parameter is required (true) or optional (false). The method request
23345	// parameter names defined here are available in Integration to be mapped to
23346	// integration request parameters or body-mapping templates.
23347	RequestParameters map[string]*bool `locationName:"requestParameters" type:"map"`
23348
23349	// The identifier of a RequestValidator for validating the method request.
23350	RequestValidatorId *string `locationName:"requestValidatorId" type:"string"`
23351
23352	// [Required] The Resource identifier for the new Method resource.
23353	//
23354	// ResourceId is a required field
23355	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
23356
23357	// [Required] The string identifier of the associated RestApi.
23358	//
23359	// RestApiId is a required field
23360	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23361}
23362
23363// String returns the string representation.
23364//
23365// API parameter values that are decorated as "sensitive" in the API will not
23366// be included in the string output. The member name will be present, but the
23367// value will be replaced with "sensitive".
23368func (s PutMethodInput) String() string {
23369	return awsutil.Prettify(s)
23370}
23371
23372// GoString returns the string representation.
23373//
23374// API parameter values that are decorated as "sensitive" in the API will not
23375// be included in the string output. The member name will be present, but the
23376// value will be replaced with "sensitive".
23377func (s PutMethodInput) GoString() string {
23378	return s.String()
23379}
23380
23381// Validate inspects the fields of the type to determine if they are valid.
23382func (s *PutMethodInput) Validate() error {
23383	invalidParams := request.ErrInvalidParams{Context: "PutMethodInput"}
23384	if s.AuthorizationType == nil {
23385		invalidParams.Add(request.NewErrParamRequired("AuthorizationType"))
23386	}
23387	if s.HttpMethod == nil {
23388		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
23389	}
23390	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
23391		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
23392	}
23393	if s.ResourceId == nil {
23394		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
23395	}
23396	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
23397		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
23398	}
23399	if s.RestApiId == nil {
23400		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23401	}
23402	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23403		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23404	}
23405
23406	if invalidParams.Len() > 0 {
23407		return invalidParams
23408	}
23409	return nil
23410}
23411
23412// SetApiKeyRequired sets the ApiKeyRequired field's value.
23413func (s *PutMethodInput) SetApiKeyRequired(v bool) *PutMethodInput {
23414	s.ApiKeyRequired = &v
23415	return s
23416}
23417
23418// SetAuthorizationScopes sets the AuthorizationScopes field's value.
23419func (s *PutMethodInput) SetAuthorizationScopes(v []*string) *PutMethodInput {
23420	s.AuthorizationScopes = v
23421	return s
23422}
23423
23424// SetAuthorizationType sets the AuthorizationType field's value.
23425func (s *PutMethodInput) SetAuthorizationType(v string) *PutMethodInput {
23426	s.AuthorizationType = &v
23427	return s
23428}
23429
23430// SetAuthorizerId sets the AuthorizerId field's value.
23431func (s *PutMethodInput) SetAuthorizerId(v string) *PutMethodInput {
23432	s.AuthorizerId = &v
23433	return s
23434}
23435
23436// SetHttpMethod sets the HttpMethod field's value.
23437func (s *PutMethodInput) SetHttpMethod(v string) *PutMethodInput {
23438	s.HttpMethod = &v
23439	return s
23440}
23441
23442// SetOperationName sets the OperationName field's value.
23443func (s *PutMethodInput) SetOperationName(v string) *PutMethodInput {
23444	s.OperationName = &v
23445	return s
23446}
23447
23448// SetRequestModels sets the RequestModels field's value.
23449func (s *PutMethodInput) SetRequestModels(v map[string]*string) *PutMethodInput {
23450	s.RequestModels = v
23451	return s
23452}
23453
23454// SetRequestParameters sets the RequestParameters field's value.
23455func (s *PutMethodInput) SetRequestParameters(v map[string]*bool) *PutMethodInput {
23456	s.RequestParameters = v
23457	return s
23458}
23459
23460// SetRequestValidatorId sets the RequestValidatorId field's value.
23461func (s *PutMethodInput) SetRequestValidatorId(v string) *PutMethodInput {
23462	s.RequestValidatorId = &v
23463	return s
23464}
23465
23466// SetResourceId sets the ResourceId field's value.
23467func (s *PutMethodInput) SetResourceId(v string) *PutMethodInput {
23468	s.ResourceId = &v
23469	return s
23470}
23471
23472// SetRestApiId sets the RestApiId field's value.
23473func (s *PutMethodInput) SetRestApiId(v string) *PutMethodInput {
23474	s.RestApiId = &v
23475	return s
23476}
23477
23478// Request to add a MethodResponse to an existing Method resource.
23479type PutMethodResponseInput struct {
23480	_ struct{} `type:"structure"`
23481
23482	// [Required] The HTTP verb of the Method resource.
23483	//
23484	// HttpMethod is a required field
23485	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
23486
23487	// [Required] The Resource identifier for the Method resource.
23488	//
23489	// ResourceId is a required field
23490	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
23491
23492	// Specifies the Model resources used for the response's content type. Response
23493	// models are represented as a key/value map, with a content type as the key
23494	// and a Model name as the value.
23495	ResponseModels map[string]*string `locationName:"responseModels" type:"map"`
23496
23497	// A key-value map specifying required or optional response parameters that
23498	// API Gateway can send back to the caller. A key defines a method response
23499	// header name and the associated value is a Boolean flag indicating whether
23500	// the method response parameter is required or not. The method response header
23501	// names must match the pattern of method.response.header.{name}, where name
23502	// is a valid and unique header name. The response parameter names defined here
23503	// are available in the integration response to be mapped from an integration
23504	// response header expressed in integration.response.header.{name}, a static
23505	// value enclosed within a pair of single quotes (e.g., 'application/json'),
23506	// or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression},
23507	// where JSON-expression is a valid JSON expression without the $ prefix.)
23508	ResponseParameters map[string]*bool `locationName:"responseParameters" type:"map"`
23509
23510	// [Required] The string identifier of the associated RestApi.
23511	//
23512	// RestApiId is a required field
23513	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23514
23515	// [Required] The method response's status code.
23516	//
23517	// StatusCode is a required field
23518	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
23519}
23520
23521// String returns the string representation.
23522//
23523// API parameter values that are decorated as "sensitive" in the API will not
23524// be included in the string output. The member name will be present, but the
23525// value will be replaced with "sensitive".
23526func (s PutMethodResponseInput) String() string {
23527	return awsutil.Prettify(s)
23528}
23529
23530// GoString returns the string representation.
23531//
23532// API parameter values that are decorated as "sensitive" in the API will not
23533// be included in the string output. The member name will be present, but the
23534// value will be replaced with "sensitive".
23535func (s PutMethodResponseInput) GoString() string {
23536	return s.String()
23537}
23538
23539// Validate inspects the fields of the type to determine if they are valid.
23540func (s *PutMethodResponseInput) Validate() error {
23541	invalidParams := request.ErrInvalidParams{Context: "PutMethodResponseInput"}
23542	if s.HttpMethod == nil {
23543		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
23544	}
23545	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
23546		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
23547	}
23548	if s.ResourceId == nil {
23549		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
23550	}
23551	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
23552		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
23553	}
23554	if s.RestApiId == nil {
23555		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23556	}
23557	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23558		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23559	}
23560	if s.StatusCode == nil {
23561		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
23562	}
23563	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
23564		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
23565	}
23566
23567	if invalidParams.Len() > 0 {
23568		return invalidParams
23569	}
23570	return nil
23571}
23572
23573// SetHttpMethod sets the HttpMethod field's value.
23574func (s *PutMethodResponseInput) SetHttpMethod(v string) *PutMethodResponseInput {
23575	s.HttpMethod = &v
23576	return s
23577}
23578
23579// SetResourceId sets the ResourceId field's value.
23580func (s *PutMethodResponseInput) SetResourceId(v string) *PutMethodResponseInput {
23581	s.ResourceId = &v
23582	return s
23583}
23584
23585// SetResponseModels sets the ResponseModels field's value.
23586func (s *PutMethodResponseInput) SetResponseModels(v map[string]*string) *PutMethodResponseInput {
23587	s.ResponseModels = v
23588	return s
23589}
23590
23591// SetResponseParameters sets the ResponseParameters field's value.
23592func (s *PutMethodResponseInput) SetResponseParameters(v map[string]*bool) *PutMethodResponseInput {
23593	s.ResponseParameters = v
23594	return s
23595}
23596
23597// SetRestApiId sets the RestApiId field's value.
23598func (s *PutMethodResponseInput) SetRestApiId(v string) *PutMethodResponseInput {
23599	s.RestApiId = &v
23600	return s
23601}
23602
23603// SetStatusCode sets the StatusCode field's value.
23604func (s *PutMethodResponseInput) SetStatusCode(v string) *PutMethodResponseInput {
23605	s.StatusCode = &v
23606	return s
23607}
23608
23609// A PUT request to update an existing API, with external API definitions specified
23610// as the request body.
23611type PutRestApiInput struct {
23612	_ struct{} `type:"structure" payload:"Body"`
23613
23614	// [Required] The PUT request body containing external API definitions. Currently,
23615	// only OpenAPI definition JSON/YAML files are supported. The maximum size of
23616	// the API definition file is 6MB.
23617	//
23618	// Body is a required field
23619	Body []byte `locationName:"body" type:"blob" required:"true"`
23620
23621	// A query parameter to indicate whether to rollback the API update (true) or
23622	// not (false) when a warning is encountered. The default value is false.
23623	FailOnWarnings *bool `location:"querystring" locationName:"failonwarnings" type:"boolean"`
23624
23625	// The mode query parameter to specify the update mode. Valid values are "merge"
23626	// and "overwrite". By default, the update mode is "merge".
23627	Mode *string `location:"querystring" locationName:"mode" type:"string" enum:"PutMode"`
23628
23629	// Custom header parameters as part of the request. For example, to exclude
23630	// DocumentationParts from an imported API, set ignore=documentation as a parameters
23631	// value, as in the AWS CLI command of aws apigateway import-rest-api --parameters
23632	// ignore=documentation --body 'file:///path/to/imported-api-body.json'.
23633	Parameters map[string]*string `location:"querystring" locationName:"parameters" type:"map"`
23634
23635	// [Required] The string identifier of the associated RestApi.
23636	//
23637	// RestApiId is a required field
23638	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
23639}
23640
23641// String returns the string representation.
23642//
23643// API parameter values that are decorated as "sensitive" in the API will not
23644// be included in the string output. The member name will be present, but the
23645// value will be replaced with "sensitive".
23646func (s PutRestApiInput) String() string {
23647	return awsutil.Prettify(s)
23648}
23649
23650// GoString returns the string representation.
23651//
23652// API parameter values that are decorated as "sensitive" in the API will not
23653// be included in the string output. The member name will be present, but the
23654// value will be replaced with "sensitive".
23655func (s PutRestApiInput) GoString() string {
23656	return s.String()
23657}
23658
23659// Validate inspects the fields of the type to determine if they are valid.
23660func (s *PutRestApiInput) Validate() error {
23661	invalidParams := request.ErrInvalidParams{Context: "PutRestApiInput"}
23662	if s.Body == nil {
23663		invalidParams.Add(request.NewErrParamRequired("Body"))
23664	}
23665	if s.RestApiId == nil {
23666		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
23667	}
23668	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
23669		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
23670	}
23671
23672	if invalidParams.Len() > 0 {
23673		return invalidParams
23674	}
23675	return nil
23676}
23677
23678// SetBody sets the Body field's value.
23679func (s *PutRestApiInput) SetBody(v []byte) *PutRestApiInput {
23680	s.Body = v
23681	return s
23682}
23683
23684// SetFailOnWarnings sets the FailOnWarnings field's value.
23685func (s *PutRestApiInput) SetFailOnWarnings(v bool) *PutRestApiInput {
23686	s.FailOnWarnings = &v
23687	return s
23688}
23689
23690// SetMode sets the Mode field's value.
23691func (s *PutRestApiInput) SetMode(v string) *PutRestApiInput {
23692	s.Mode = &v
23693	return s
23694}
23695
23696// SetParameters sets the Parameters field's value.
23697func (s *PutRestApiInput) SetParameters(v map[string]*string) *PutRestApiInput {
23698	s.Parameters = v
23699	return s
23700}
23701
23702// SetRestApiId sets the RestApiId field's value.
23703func (s *PutRestApiInput) SetRestApiId(v string) *PutRestApiInput {
23704	s.RestApiId = &v
23705	return s
23706}
23707
23708// Quotas configured for a usage plan.
23709type QuotaSettings struct {
23710	_ struct{} `type:"structure"`
23711
23712	// The maximum number of requests that can be made in a given time period.
23713	Limit *int64 `locationName:"limit" type:"integer"`
23714
23715	// The day that a time period starts. For example, with a time period of WEEK,
23716	// an offset of 0 starts on Sunday, and an offset of 1 starts on Monday.
23717	Offset *int64 `locationName:"offset" type:"integer"`
23718
23719	// The time period in which the limit applies. Valid values are "DAY", "WEEK"
23720	// or "MONTH".
23721	Period *string `locationName:"period" type:"string" enum:"QuotaPeriodType"`
23722}
23723
23724// String returns the string representation.
23725//
23726// API parameter values that are decorated as "sensitive" in the API will not
23727// be included in the string output. The member name will be present, but the
23728// value will be replaced with "sensitive".
23729func (s QuotaSettings) String() string {
23730	return awsutil.Prettify(s)
23731}
23732
23733// GoString returns the string representation.
23734//
23735// API parameter values that are decorated as "sensitive" in the API will not
23736// be included in the string output. The member name will be present, but the
23737// value will be replaced with "sensitive".
23738func (s QuotaSettings) GoString() string {
23739	return s.String()
23740}
23741
23742// SetLimit sets the Limit field's value.
23743func (s *QuotaSettings) SetLimit(v int64) *QuotaSettings {
23744	s.Limit = &v
23745	return s
23746}
23747
23748// SetOffset sets the Offset field's value.
23749func (s *QuotaSettings) SetOffset(v int64) *QuotaSettings {
23750	s.Offset = &v
23751	return s
23752}
23753
23754// SetPeriod sets the Period field's value.
23755func (s *QuotaSettings) SetPeriod(v string) *QuotaSettings {
23756	s.Period = &v
23757	return s
23758}
23759
23760// Represents an API resource.
23761//
23762// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
23763type Resource struct {
23764	_ struct{} `type:"structure"`
23765
23766	// The resource's identifier.
23767	Id *string `locationName:"id" type:"string"`
23768
23769	// The parent resource's identifier.
23770	ParentId *string `locationName:"parentId" type:"string"`
23771
23772	// The full path for this resource.
23773	Path *string `locationName:"path" type:"string"`
23774
23775	// The last path segment for this resource.
23776	PathPart *string `locationName:"pathPart" type:"string"`
23777
23778	// Gets an API resource's method of a given HTTP verb.
23779	//
23780	// The resource methods are a map of methods indexed by methods' HTTP verbs
23781	// enabled on the resource. This method map is included in the 200 OK response
23782	// of the GET /restapis/{restapi_id}/resources/{resource_id} or GET /restapis/{restapi_id}/resources/{resource_id}?embed=methods
23783	// request.
23784	//
23785	// Example: Get the GET method of an API resource
23786	//
23787	// Request
23788	//  GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET HTTP/1.1 Content-Type:
23789	//  application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20170223T031827Z
23790	//  Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20170223/us-east-1/apigateway/aws4_request,
23791	//  SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
23792	// Response
23793	//  { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html",
23794	//  "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
23795	//  "name": "integrationresponse", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html",
23796	//  "name": "method", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
23797	//  "name": "methodresponse", "templated": true } ], "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET",
23798	//  "name": "GET", "title": "GET" }, "integration:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
23799	//  }, "method:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
23800	//  }, "method:integration": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
23801	//  }, "method:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
23802	//  "name": "200", "title": "200" }, "method:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET"
23803	//  }, "methodresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}",
23804	//  "templated": true } }, "apiKeyRequired": false, "authorizationType": "NONE",
23805	//  "httpMethod": "GET", "_embedded": { "method:integration": { "_links": {
23806	//  "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
23807	//  }, "integration:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
23808	//  }, "integration:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
23809	//  "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
23810	//  }, "integrationresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}",
23811	//  "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "3kzxbg5sa2",
23812	//  "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod":
23813	//  "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": { "integration.request.header.Content-Type":
23814	//  "'application/x-amz-json-1.1'" }, "requestTemplates": { "application/json":
23815	//  "{\n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams",
23816	//  "_embedded": { "integration:responses": { "_links": { "self": { "href":
23817	//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
23818	//  "name": "200", "title": "200" }, "integrationresponse:delete": { "href":
23819	//  "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
23820	//  }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
23821	//  } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'"
23822	//  }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream
23823	//  in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n"
23824	//  }, "statusCode": "200" } } }, "method:responses": { "_links": { "self":
23825	//  { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
23826	//  "name": "200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
23827	//  }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
23828	//  } }, "responseModels": { "application/json": "Empty" }, "responseParameters":
23829	//  { "method.response.header.Content-Type": false }, "statusCode": "200" }
23830	//  } }
23831	// If the OPTIONS is enabled on the resource, you can follow the example here
23832	// to get that method. Just replace the GET of the last path segment in the
23833	// request URL with OPTIONS.
23834	ResourceMethods map[string]*Method `locationName:"resourceMethods" type:"map"`
23835}
23836
23837// String returns the string representation.
23838//
23839// API parameter values that are decorated as "sensitive" in the API will not
23840// be included in the string output. The member name will be present, but the
23841// value will be replaced with "sensitive".
23842func (s Resource) String() string {
23843	return awsutil.Prettify(s)
23844}
23845
23846// GoString returns the string representation.
23847//
23848// API parameter values that are decorated as "sensitive" in the API will not
23849// be included in the string output. The member name will be present, but the
23850// value will be replaced with "sensitive".
23851func (s Resource) GoString() string {
23852	return s.String()
23853}
23854
23855// SetId sets the Id field's value.
23856func (s *Resource) SetId(v string) *Resource {
23857	s.Id = &v
23858	return s
23859}
23860
23861// SetParentId sets the ParentId field's value.
23862func (s *Resource) SetParentId(v string) *Resource {
23863	s.ParentId = &v
23864	return s
23865}
23866
23867// SetPath sets the Path field's value.
23868func (s *Resource) SetPath(v string) *Resource {
23869	s.Path = &v
23870	return s
23871}
23872
23873// SetPathPart sets the PathPart field's value.
23874func (s *Resource) SetPathPart(v string) *Resource {
23875	s.PathPart = &v
23876	return s
23877}
23878
23879// SetResourceMethods sets the ResourceMethods field's value.
23880func (s *Resource) SetResourceMethods(v map[string]*Method) *Resource {
23881	s.ResourceMethods = v
23882	return s
23883}
23884
23885// Represents a REST API.
23886//
23887// Create an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html)
23888type RestApi struct {
23889	_ struct{} `type:"structure"`
23890
23891	// The source of the API key for metering requests according to a usage plan.
23892	// Valid values are:
23893	//    * HEADER to read the API key from the X-API-Key header of a request.
23894	//
23895	//    * AUTHORIZER to read the API key from the UsageIdentifierKey from a custom
23896	//    authorizer.
23897	ApiKeySource *string `locationName:"apiKeySource" type:"string" enum:"ApiKeySourceType"`
23898
23899	// The list of binary media types supported by the RestApi. By default, the
23900	// RestApi supports only UTF-8-encoded text payloads.
23901	BinaryMediaTypes []*string `locationName:"binaryMediaTypes" type:"list"`
23902
23903	// The timestamp when the API was created.
23904	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
23905
23906	// The API's description.
23907	Description *string `locationName:"description" type:"string"`
23908
23909	// Specifies whether clients can invoke your API by using the default execute-api
23910	// endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com
23911	// endpoint. To require that clients use a custom domain name to invoke your
23912	// API, disable the default endpoint.
23913	DisableExecuteApiEndpoint *bool `locationName:"disableExecuteApiEndpoint" type:"boolean"`
23914
23915	// The endpoint configuration of this RestApi showing the endpoint types of
23916	// the API.
23917	EndpointConfiguration *EndpointConfiguration `locationName:"endpointConfiguration" type:"structure"`
23918
23919	// The API's identifier. This identifier is unique across all of your APIs in
23920	// API Gateway.
23921	Id *string `locationName:"id" type:"string"`
23922
23923	// A nullable integer that is used to enable compression (with non-negative
23924	// between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with
23925	// a null value) on an API. When compression is enabled, compression or decompression
23926	// is not applied on the payload if the payload size is smaller than this value.
23927	// Setting it to zero allows compression for any payload size.
23928	MinimumCompressionSize *int64 `locationName:"minimumCompressionSize" type:"integer"`
23929
23930	// The API's name.
23931	Name *string `locationName:"name" type:"string"`
23932
23933	// A stringified JSON policy document that applies to this RestApi regardless
23934	// of the caller and Method configuration.
23935	Policy *string `locationName:"policy" type:"string"`
23936
23937	// The collection of tags. Each tag element is associated with a given resource.
23938	Tags map[string]*string `locationName:"tags" type:"map"`
23939
23940	// A version identifier for the API.
23941	Version *string `locationName:"version" type:"string"`
23942
23943	// The warning messages reported when failonwarnings is turned on during API
23944	// import.
23945	Warnings []*string `locationName:"warnings" type:"list"`
23946}
23947
23948// String returns the string representation.
23949//
23950// API parameter values that are decorated as "sensitive" in the API will not
23951// be included in the string output. The member name will be present, but the
23952// value will be replaced with "sensitive".
23953func (s RestApi) String() string {
23954	return awsutil.Prettify(s)
23955}
23956
23957// GoString returns the string representation.
23958//
23959// API parameter values that are decorated as "sensitive" in the API will not
23960// be included in the string output. The member name will be present, but the
23961// value will be replaced with "sensitive".
23962func (s RestApi) GoString() string {
23963	return s.String()
23964}
23965
23966// SetApiKeySource sets the ApiKeySource field's value.
23967func (s *RestApi) SetApiKeySource(v string) *RestApi {
23968	s.ApiKeySource = &v
23969	return s
23970}
23971
23972// SetBinaryMediaTypes sets the BinaryMediaTypes field's value.
23973func (s *RestApi) SetBinaryMediaTypes(v []*string) *RestApi {
23974	s.BinaryMediaTypes = v
23975	return s
23976}
23977
23978// SetCreatedDate sets the CreatedDate field's value.
23979func (s *RestApi) SetCreatedDate(v time.Time) *RestApi {
23980	s.CreatedDate = &v
23981	return s
23982}
23983
23984// SetDescription sets the Description field's value.
23985func (s *RestApi) SetDescription(v string) *RestApi {
23986	s.Description = &v
23987	return s
23988}
23989
23990// SetDisableExecuteApiEndpoint sets the DisableExecuteApiEndpoint field's value.
23991func (s *RestApi) SetDisableExecuteApiEndpoint(v bool) *RestApi {
23992	s.DisableExecuteApiEndpoint = &v
23993	return s
23994}
23995
23996// SetEndpointConfiguration sets the EndpointConfiguration field's value.
23997func (s *RestApi) SetEndpointConfiguration(v *EndpointConfiguration) *RestApi {
23998	s.EndpointConfiguration = v
23999	return s
24000}
24001
24002// SetId sets the Id field's value.
24003func (s *RestApi) SetId(v string) *RestApi {
24004	s.Id = &v
24005	return s
24006}
24007
24008// SetMinimumCompressionSize sets the MinimumCompressionSize field's value.
24009func (s *RestApi) SetMinimumCompressionSize(v int64) *RestApi {
24010	s.MinimumCompressionSize = &v
24011	return s
24012}
24013
24014// SetName sets the Name field's value.
24015func (s *RestApi) SetName(v string) *RestApi {
24016	s.Name = &v
24017	return s
24018}
24019
24020// SetPolicy sets the Policy field's value.
24021func (s *RestApi) SetPolicy(v string) *RestApi {
24022	s.Policy = &v
24023	return s
24024}
24025
24026// SetTags sets the Tags field's value.
24027func (s *RestApi) SetTags(v map[string]*string) *RestApi {
24028	s.Tags = v
24029	return s
24030}
24031
24032// SetVersion sets the Version field's value.
24033func (s *RestApi) SetVersion(v string) *RestApi {
24034	s.Version = &v
24035	return s
24036}
24037
24038// SetWarnings sets the Warnings field's value.
24039func (s *RestApi) SetWarnings(v []*string) *RestApi {
24040	s.Warnings = v
24041	return s
24042}
24043
24044// A configuration property of an SDK type.
24045type SdkConfigurationProperty struct {
24046	_ struct{} `type:"structure"`
24047
24048	// The default value of an SdkType configuration property.
24049	DefaultValue *string `locationName:"defaultValue" type:"string"`
24050
24051	// The description of an SdkType configuration property.
24052	Description *string `locationName:"description" type:"string"`
24053
24054	// The user-friendly name of an SdkType configuration property.
24055	FriendlyName *string `locationName:"friendlyName" type:"string"`
24056
24057	// The name of a an SdkType configuration property.
24058	Name *string `locationName:"name" type:"string"`
24059
24060	// A boolean flag of an SdkType configuration property to indicate if the associated
24061	// SDK configuration property is required (true) or not (false).
24062	Required *bool `locationName:"required" type:"boolean"`
24063}
24064
24065// String returns the string representation.
24066//
24067// API parameter values that are decorated as "sensitive" in the API will not
24068// be included in the string output. The member name will be present, but the
24069// value will be replaced with "sensitive".
24070func (s SdkConfigurationProperty) String() string {
24071	return awsutil.Prettify(s)
24072}
24073
24074// GoString returns the string representation.
24075//
24076// API parameter values that are decorated as "sensitive" in the API will not
24077// be included in the string output. The member name will be present, but the
24078// value will be replaced with "sensitive".
24079func (s SdkConfigurationProperty) GoString() string {
24080	return s.String()
24081}
24082
24083// SetDefaultValue sets the DefaultValue field's value.
24084func (s *SdkConfigurationProperty) SetDefaultValue(v string) *SdkConfigurationProperty {
24085	s.DefaultValue = &v
24086	return s
24087}
24088
24089// SetDescription sets the Description field's value.
24090func (s *SdkConfigurationProperty) SetDescription(v string) *SdkConfigurationProperty {
24091	s.Description = &v
24092	return s
24093}
24094
24095// SetFriendlyName sets the FriendlyName field's value.
24096func (s *SdkConfigurationProperty) SetFriendlyName(v string) *SdkConfigurationProperty {
24097	s.FriendlyName = &v
24098	return s
24099}
24100
24101// SetName sets the Name field's value.
24102func (s *SdkConfigurationProperty) SetName(v string) *SdkConfigurationProperty {
24103	s.Name = &v
24104	return s
24105}
24106
24107// SetRequired sets the Required field's value.
24108func (s *SdkConfigurationProperty) SetRequired(v bool) *SdkConfigurationProperty {
24109	s.Required = &v
24110	return s
24111}
24112
24113// A type of SDK that API Gateway can generate.
24114type SdkType struct {
24115	_ struct{} `type:"structure"`
24116
24117	// A list of configuration properties of an SdkType.
24118	ConfigurationProperties []*SdkConfigurationProperty `locationName:"configurationProperties" type:"list"`
24119
24120	// The description of an SdkType.
24121	Description *string `locationName:"description" type:"string"`
24122
24123	// The user-friendly name of an SdkType instance.
24124	FriendlyName *string `locationName:"friendlyName" type:"string"`
24125
24126	// The identifier of an SdkType instance.
24127	Id *string `locationName:"id" type:"string"`
24128}
24129
24130// String returns the string representation.
24131//
24132// API parameter values that are decorated as "sensitive" in the API will not
24133// be included in the string output. The member name will be present, but the
24134// value will be replaced with "sensitive".
24135func (s SdkType) String() string {
24136	return awsutil.Prettify(s)
24137}
24138
24139// GoString returns the string representation.
24140//
24141// API parameter values that are decorated as "sensitive" in the API will not
24142// be included in the string output. The member name will be present, but the
24143// value will be replaced with "sensitive".
24144func (s SdkType) GoString() string {
24145	return s.String()
24146}
24147
24148// SetConfigurationProperties sets the ConfigurationProperties field's value.
24149func (s *SdkType) SetConfigurationProperties(v []*SdkConfigurationProperty) *SdkType {
24150	s.ConfigurationProperties = v
24151	return s
24152}
24153
24154// SetDescription sets the Description field's value.
24155func (s *SdkType) SetDescription(v string) *SdkType {
24156	s.Description = &v
24157	return s
24158}
24159
24160// SetFriendlyName sets the FriendlyName field's value.
24161func (s *SdkType) SetFriendlyName(v string) *SdkType {
24162	s.FriendlyName = &v
24163	return s
24164}
24165
24166// SetId sets the Id field's value.
24167func (s *SdkType) SetId(v string) *SdkType {
24168	s.Id = &v
24169	return s
24170}
24171
24172// The requested service is not available. For details see the accompanying
24173// error message. Retry after the specified time period.
24174type ServiceUnavailableException struct {
24175	_            struct{}                  `type:"structure"`
24176	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
24177
24178	Message_ *string `locationName:"message" type:"string"`
24179
24180	RetryAfterSeconds *string `location:"header" locationName:"Retry-After" type:"string"`
24181}
24182
24183// String returns the string representation.
24184//
24185// API parameter values that are decorated as "sensitive" in the API will not
24186// be included in the string output. The member name will be present, but the
24187// value will be replaced with "sensitive".
24188func (s ServiceUnavailableException) String() string {
24189	return awsutil.Prettify(s)
24190}
24191
24192// GoString returns the string representation.
24193//
24194// API parameter values that are decorated as "sensitive" in the API will not
24195// be included in the string output. The member name will be present, but the
24196// value will be replaced with "sensitive".
24197func (s ServiceUnavailableException) GoString() string {
24198	return s.String()
24199}
24200
24201func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
24202	return &ServiceUnavailableException{
24203		RespMetadata: v,
24204	}
24205}
24206
24207// Code returns the exception type name.
24208func (s *ServiceUnavailableException) Code() string {
24209	return "ServiceUnavailableException"
24210}
24211
24212// Message returns the exception's message.
24213func (s *ServiceUnavailableException) Message() string {
24214	if s.Message_ != nil {
24215		return *s.Message_
24216	}
24217	return ""
24218}
24219
24220// OrigErr always returns nil, satisfies awserr.Error interface.
24221func (s *ServiceUnavailableException) OrigErr() error {
24222	return nil
24223}
24224
24225func (s *ServiceUnavailableException) Error() string {
24226	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
24227}
24228
24229// Status code returns the HTTP status code for the request's response error.
24230func (s *ServiceUnavailableException) StatusCode() int {
24231	return s.RespMetadata.StatusCode
24232}
24233
24234// RequestID returns the service's response RequestID for request.
24235func (s *ServiceUnavailableException) RequestID() string {
24236	return s.RespMetadata.RequestID
24237}
24238
24239// Represents a unique identifier for a version of a deployed RestApi that is
24240// callable by users.
24241//
24242// Deploy an API (https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-deploy-api.html)
24243type Stage struct {
24244	_ struct{} `type:"structure"`
24245
24246	// Settings for logging access in this stage.
24247	AccessLogSettings *AccessLogSettings `locationName:"accessLogSettings" type:"structure"`
24248
24249	// Specifies whether a cache cluster is enabled for the stage.
24250	CacheClusterEnabled *bool `locationName:"cacheClusterEnabled" type:"boolean"`
24251
24252	// The size of the cache cluster for the stage, if enabled.
24253	CacheClusterSize *string `locationName:"cacheClusterSize" type:"string" enum:"CacheClusterSize"`
24254
24255	// The status of the cache cluster for the stage, if enabled.
24256	CacheClusterStatus *string `locationName:"cacheClusterStatus" type:"string" enum:"CacheClusterStatus"`
24257
24258	// Settings for the canary deployment in this stage.
24259	CanarySettings *CanarySettings `locationName:"canarySettings" type:"structure"`
24260
24261	// The identifier of a client certificate for an API stage.
24262	ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
24263
24264	// The timestamp when the stage was created.
24265	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
24266
24267	// The identifier of the Deployment that the stage points to.
24268	DeploymentId *string `locationName:"deploymentId" type:"string"`
24269
24270	// The stage's description.
24271	Description *string `locationName:"description" type:"string"`
24272
24273	// The version of the associated API documentation.
24274	DocumentationVersion *string `locationName:"documentationVersion" type:"string"`
24275
24276	// The timestamp when the stage last updated.
24277	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
24278
24279	// A map that defines the method settings for a Stage resource. Keys (designated
24280	// as /{method_setting_key below) are method paths defined as {resource_path}/{http_method}
24281	// for an individual method override, or /\*/\* for overriding all methods in
24282	// the stage.
24283	MethodSettings map[string]*MethodSetting `locationName:"methodSettings" type:"map"`
24284
24285	// The name of the stage is the first path segment in the Uniform Resource Identifier
24286	// (URI) of a call to API Gateway. Stage names can only contain alphanumeric
24287	// characters, hyphens, and underscores. Maximum length is 128 characters.
24288	StageName *string `locationName:"stageName" type:"string"`
24289
24290	// The collection of tags. Each tag element is associated with a given resource.
24291	Tags map[string]*string `locationName:"tags" type:"map"`
24292
24293	// Specifies whether active tracing with X-ray is enabled for the Stage.
24294	TracingEnabled *bool `locationName:"tracingEnabled" type:"boolean"`
24295
24296	// A map that defines the stage variables for a Stage resource. Variable names
24297	// can have alphanumeric and underscore characters, and the values must match
24298	// [A-Za-z0-9-._~:/?#&=,]+.
24299	Variables map[string]*string `locationName:"variables" type:"map"`
24300
24301	// The ARN of the WebAcl associated with the Stage.
24302	WebAclArn *string `locationName:"webAclArn" type:"string"`
24303}
24304
24305// String returns the string representation.
24306//
24307// API parameter values that are decorated as "sensitive" in the API will not
24308// be included in the string output. The member name will be present, but the
24309// value will be replaced with "sensitive".
24310func (s Stage) String() string {
24311	return awsutil.Prettify(s)
24312}
24313
24314// GoString returns the string representation.
24315//
24316// API parameter values that are decorated as "sensitive" in the API will not
24317// be included in the string output. The member name will be present, but the
24318// value will be replaced with "sensitive".
24319func (s Stage) GoString() string {
24320	return s.String()
24321}
24322
24323// SetAccessLogSettings sets the AccessLogSettings field's value.
24324func (s *Stage) SetAccessLogSettings(v *AccessLogSettings) *Stage {
24325	s.AccessLogSettings = v
24326	return s
24327}
24328
24329// SetCacheClusterEnabled sets the CacheClusterEnabled field's value.
24330func (s *Stage) SetCacheClusterEnabled(v bool) *Stage {
24331	s.CacheClusterEnabled = &v
24332	return s
24333}
24334
24335// SetCacheClusterSize sets the CacheClusterSize field's value.
24336func (s *Stage) SetCacheClusterSize(v string) *Stage {
24337	s.CacheClusterSize = &v
24338	return s
24339}
24340
24341// SetCacheClusterStatus sets the CacheClusterStatus field's value.
24342func (s *Stage) SetCacheClusterStatus(v string) *Stage {
24343	s.CacheClusterStatus = &v
24344	return s
24345}
24346
24347// SetCanarySettings sets the CanarySettings field's value.
24348func (s *Stage) SetCanarySettings(v *CanarySettings) *Stage {
24349	s.CanarySettings = v
24350	return s
24351}
24352
24353// SetClientCertificateId sets the ClientCertificateId field's value.
24354func (s *Stage) SetClientCertificateId(v string) *Stage {
24355	s.ClientCertificateId = &v
24356	return s
24357}
24358
24359// SetCreatedDate sets the CreatedDate field's value.
24360func (s *Stage) SetCreatedDate(v time.Time) *Stage {
24361	s.CreatedDate = &v
24362	return s
24363}
24364
24365// SetDeploymentId sets the DeploymentId field's value.
24366func (s *Stage) SetDeploymentId(v string) *Stage {
24367	s.DeploymentId = &v
24368	return s
24369}
24370
24371// SetDescription sets the Description field's value.
24372func (s *Stage) SetDescription(v string) *Stage {
24373	s.Description = &v
24374	return s
24375}
24376
24377// SetDocumentationVersion sets the DocumentationVersion field's value.
24378func (s *Stage) SetDocumentationVersion(v string) *Stage {
24379	s.DocumentationVersion = &v
24380	return s
24381}
24382
24383// SetLastUpdatedDate sets the LastUpdatedDate field's value.
24384func (s *Stage) SetLastUpdatedDate(v time.Time) *Stage {
24385	s.LastUpdatedDate = &v
24386	return s
24387}
24388
24389// SetMethodSettings sets the MethodSettings field's value.
24390func (s *Stage) SetMethodSettings(v map[string]*MethodSetting) *Stage {
24391	s.MethodSettings = v
24392	return s
24393}
24394
24395// SetStageName sets the StageName field's value.
24396func (s *Stage) SetStageName(v string) *Stage {
24397	s.StageName = &v
24398	return s
24399}
24400
24401// SetTags sets the Tags field's value.
24402func (s *Stage) SetTags(v map[string]*string) *Stage {
24403	s.Tags = v
24404	return s
24405}
24406
24407// SetTracingEnabled sets the TracingEnabled field's value.
24408func (s *Stage) SetTracingEnabled(v bool) *Stage {
24409	s.TracingEnabled = &v
24410	return s
24411}
24412
24413// SetVariables sets the Variables field's value.
24414func (s *Stage) SetVariables(v map[string]*string) *Stage {
24415	s.Variables = v
24416	return s
24417}
24418
24419// SetWebAclArn sets the WebAclArn field's value.
24420func (s *Stage) SetWebAclArn(v string) *Stage {
24421	s.WebAclArn = &v
24422	return s
24423}
24424
24425// A reference to a unique stage identified in the format {restApiId}/{stage}.
24426type StageKey struct {
24427	_ struct{} `type:"structure"`
24428
24429	// The string identifier of the associated RestApi.
24430	RestApiId *string `locationName:"restApiId" type:"string"`
24431
24432	// The stage name associated with the stage key.
24433	StageName *string `locationName:"stageName" type:"string"`
24434}
24435
24436// String returns the string representation.
24437//
24438// API parameter values that are decorated as "sensitive" in the API will not
24439// be included in the string output. The member name will be present, but the
24440// value will be replaced with "sensitive".
24441func (s StageKey) String() string {
24442	return awsutil.Prettify(s)
24443}
24444
24445// GoString returns the string representation.
24446//
24447// API parameter values that are decorated as "sensitive" in the API will not
24448// be included in the string output. The member name will be present, but the
24449// value will be replaced with "sensitive".
24450func (s StageKey) GoString() string {
24451	return s.String()
24452}
24453
24454// SetRestApiId sets the RestApiId field's value.
24455func (s *StageKey) SetRestApiId(v string) *StageKey {
24456	s.RestApiId = &v
24457	return s
24458}
24459
24460// SetStageName sets the StageName field's value.
24461func (s *StageKey) SetStageName(v string) *StageKey {
24462	s.StageName = &v
24463	return s
24464}
24465
24466// Adds or updates a tag on a given resource.
24467type TagResourceInput struct {
24468	_ struct{} `type:"structure"`
24469
24470	// [Required] The ARN of a resource that can be tagged.
24471	//
24472	// ResourceArn is a required field
24473	ResourceArn *string `location:"uri" locationName:"resource_arn" type:"string" required:"true"`
24474
24475	// [Required] The key-value map of strings. The valid character set is [a-zA-Z+-=._:/].
24476	// The tag key can be up to 128 characters and must not start with aws:. The
24477	// tag value can be up to 256 characters.
24478	//
24479	// Tags is a required field
24480	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
24481}
24482
24483// String returns the string representation.
24484//
24485// API parameter values that are decorated as "sensitive" in the API will not
24486// be included in the string output. The member name will be present, but the
24487// value will be replaced with "sensitive".
24488func (s TagResourceInput) String() string {
24489	return awsutil.Prettify(s)
24490}
24491
24492// GoString returns the string representation.
24493//
24494// API parameter values that are decorated as "sensitive" in the API will not
24495// be included in the string output. The member name will be present, but the
24496// value will be replaced with "sensitive".
24497func (s TagResourceInput) GoString() string {
24498	return s.String()
24499}
24500
24501// Validate inspects the fields of the type to determine if they are valid.
24502func (s *TagResourceInput) Validate() error {
24503	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
24504	if s.ResourceArn == nil {
24505		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
24506	}
24507	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
24508		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
24509	}
24510	if s.Tags == nil {
24511		invalidParams.Add(request.NewErrParamRequired("Tags"))
24512	}
24513
24514	if invalidParams.Len() > 0 {
24515		return invalidParams
24516	}
24517	return nil
24518}
24519
24520// SetResourceArn sets the ResourceArn field's value.
24521func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
24522	s.ResourceArn = &v
24523	return s
24524}
24525
24526// SetTags sets the Tags field's value.
24527func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
24528	s.Tags = v
24529	return s
24530}
24531
24532type TagResourceOutput struct {
24533	_ struct{} `type:"structure"`
24534}
24535
24536// String returns the string representation.
24537//
24538// API parameter values that are decorated as "sensitive" in the API will not
24539// be included in the string output. The member name will be present, but the
24540// value will be replaced with "sensitive".
24541func (s TagResourceOutput) String() string {
24542	return awsutil.Prettify(s)
24543}
24544
24545// GoString returns the string representation.
24546//
24547// API parameter values that are decorated as "sensitive" in the API will not
24548// be included in the string output. The member name will be present, but the
24549// value will be replaced with "sensitive".
24550func (s TagResourceOutput) GoString() string {
24551	return s.String()
24552}
24553
24554// Make a request to simulate the execution of an Authorizer.
24555type TestInvokeAuthorizerInput struct {
24556	_ struct{} `type:"structure"`
24557
24558	// [Optional] A key-value map of additional context variables.
24559	AdditionalContext map[string]*string `locationName:"additionalContext" type:"map"`
24560
24561	// [Required] Specifies a test invoke authorizer request's Authorizer ID.
24562	//
24563	// AuthorizerId is a required field
24564	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
24565
24566	// [Optional] The simulated request body of an incoming invocation request.
24567	Body *string `locationName:"body" type:"string"`
24568
24569	// [Required] A key-value map of headers to simulate an incoming invocation
24570	// request. This is where the incoming authorization token, or identity source,
24571	// should be specified.
24572	Headers map[string]*string `locationName:"headers" type:"map"`
24573
24574	// [Optional] The headers as a map from string to list of values to simulate
24575	// an incoming invocation request. This is where the incoming authorization
24576	// token, or identity source, may be specified.
24577	MultiValueHeaders map[string][]*string `locationName:"multiValueHeaders" type:"map"`
24578
24579	// [Optional] The URI path, including query string, of the simulated invocation
24580	// request. Use this to specify path parameters and query string parameters.
24581	PathWithQueryString *string `locationName:"pathWithQueryString" type:"string"`
24582
24583	// [Required] The string identifier of the associated RestApi.
24584	//
24585	// RestApiId is a required field
24586	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24587
24588	// A key-value map of stage variables to simulate an invocation on a deployed
24589	// Stage.
24590	StageVariables map[string]*string `locationName:"stageVariables" type:"map"`
24591}
24592
24593// String returns the string representation.
24594//
24595// API parameter values that are decorated as "sensitive" in the API will not
24596// be included in the string output. The member name will be present, but the
24597// value will be replaced with "sensitive".
24598func (s TestInvokeAuthorizerInput) String() string {
24599	return awsutil.Prettify(s)
24600}
24601
24602// GoString returns the string representation.
24603//
24604// API parameter values that are decorated as "sensitive" in the API will not
24605// be included in the string output. The member name will be present, but the
24606// value will be replaced with "sensitive".
24607func (s TestInvokeAuthorizerInput) GoString() string {
24608	return s.String()
24609}
24610
24611// Validate inspects the fields of the type to determine if they are valid.
24612func (s *TestInvokeAuthorizerInput) Validate() error {
24613	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
24614	if s.AuthorizerId == nil {
24615		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
24616	}
24617	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
24618		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
24619	}
24620	if s.RestApiId == nil {
24621		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24622	}
24623	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24624		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24625	}
24626
24627	if invalidParams.Len() > 0 {
24628		return invalidParams
24629	}
24630	return nil
24631}
24632
24633// SetAdditionalContext sets the AdditionalContext field's value.
24634func (s *TestInvokeAuthorizerInput) SetAdditionalContext(v map[string]*string) *TestInvokeAuthorizerInput {
24635	s.AdditionalContext = v
24636	return s
24637}
24638
24639// SetAuthorizerId sets the AuthorizerId field's value.
24640func (s *TestInvokeAuthorizerInput) SetAuthorizerId(v string) *TestInvokeAuthorizerInput {
24641	s.AuthorizerId = &v
24642	return s
24643}
24644
24645// SetBody sets the Body field's value.
24646func (s *TestInvokeAuthorizerInput) SetBody(v string) *TestInvokeAuthorizerInput {
24647	s.Body = &v
24648	return s
24649}
24650
24651// SetHeaders sets the Headers field's value.
24652func (s *TestInvokeAuthorizerInput) SetHeaders(v map[string]*string) *TestInvokeAuthorizerInput {
24653	s.Headers = v
24654	return s
24655}
24656
24657// SetMultiValueHeaders sets the MultiValueHeaders field's value.
24658func (s *TestInvokeAuthorizerInput) SetMultiValueHeaders(v map[string][]*string) *TestInvokeAuthorizerInput {
24659	s.MultiValueHeaders = v
24660	return s
24661}
24662
24663// SetPathWithQueryString sets the PathWithQueryString field's value.
24664func (s *TestInvokeAuthorizerInput) SetPathWithQueryString(v string) *TestInvokeAuthorizerInput {
24665	s.PathWithQueryString = &v
24666	return s
24667}
24668
24669// SetRestApiId sets the RestApiId field's value.
24670func (s *TestInvokeAuthorizerInput) SetRestApiId(v string) *TestInvokeAuthorizerInput {
24671	s.RestApiId = &v
24672	return s
24673}
24674
24675// SetStageVariables sets the StageVariables field's value.
24676func (s *TestInvokeAuthorizerInput) SetStageVariables(v map[string]*string) *TestInvokeAuthorizerInput {
24677	s.StageVariables = v
24678	return s
24679}
24680
24681// Represents the response of the test invoke request for a custom Authorizer
24682type TestInvokeAuthorizerOutput struct {
24683	_ struct{} `type:"structure"`
24684
24685	Authorization map[string][]*string `locationName:"authorization" type:"map"`
24686
24687	// The open identity claims (https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims),
24688	// with any supported custom attributes, returned from the Cognito Your User
24689	// Pool configured for the API.
24690	Claims map[string]*string `locationName:"claims" type:"map"`
24691
24692	// The HTTP status code that the client would have received. Value is 0 if the
24693	// authorizer succeeded.
24694	ClientStatus *int64 `locationName:"clientStatus" type:"integer"`
24695
24696	// The execution latency of the test authorizer request.
24697	Latency *int64 `locationName:"latency" type:"long"`
24698
24699	// The API Gateway execution log for the test authorizer request.
24700	Log *string `locationName:"log" type:"string"`
24701
24702	// The JSON policy document returned by the Authorizer
24703	Policy *string `locationName:"policy" type:"string"`
24704
24705	// The principal identity returned by the Authorizer
24706	PrincipalId *string `locationName:"principalId" type:"string"`
24707}
24708
24709// String returns the string representation.
24710//
24711// API parameter values that are decorated as "sensitive" in the API will not
24712// be included in the string output. The member name will be present, but the
24713// value will be replaced with "sensitive".
24714func (s TestInvokeAuthorizerOutput) String() string {
24715	return awsutil.Prettify(s)
24716}
24717
24718// GoString returns the string representation.
24719//
24720// API parameter values that are decorated as "sensitive" in the API will not
24721// be included in the string output. The member name will be present, but the
24722// value will be replaced with "sensitive".
24723func (s TestInvokeAuthorizerOutput) GoString() string {
24724	return s.String()
24725}
24726
24727// SetAuthorization sets the Authorization field's value.
24728func (s *TestInvokeAuthorizerOutput) SetAuthorization(v map[string][]*string) *TestInvokeAuthorizerOutput {
24729	s.Authorization = v
24730	return s
24731}
24732
24733// SetClaims sets the Claims field's value.
24734func (s *TestInvokeAuthorizerOutput) SetClaims(v map[string]*string) *TestInvokeAuthorizerOutput {
24735	s.Claims = v
24736	return s
24737}
24738
24739// SetClientStatus sets the ClientStatus field's value.
24740func (s *TestInvokeAuthorizerOutput) SetClientStatus(v int64) *TestInvokeAuthorizerOutput {
24741	s.ClientStatus = &v
24742	return s
24743}
24744
24745// SetLatency sets the Latency field's value.
24746func (s *TestInvokeAuthorizerOutput) SetLatency(v int64) *TestInvokeAuthorizerOutput {
24747	s.Latency = &v
24748	return s
24749}
24750
24751// SetLog sets the Log field's value.
24752func (s *TestInvokeAuthorizerOutput) SetLog(v string) *TestInvokeAuthorizerOutput {
24753	s.Log = &v
24754	return s
24755}
24756
24757// SetPolicy sets the Policy field's value.
24758func (s *TestInvokeAuthorizerOutput) SetPolicy(v string) *TestInvokeAuthorizerOutput {
24759	s.Policy = &v
24760	return s
24761}
24762
24763// SetPrincipalId sets the PrincipalId field's value.
24764func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
24765	s.PrincipalId = &v
24766	return s
24767}
24768
24769// Make a request to simulate the execution of a Method.
24770type TestInvokeMethodInput struct {
24771	_ struct{} `type:"structure"`
24772
24773	// The simulated request body of an incoming invocation request.
24774	Body *string `locationName:"body" type:"string"`
24775
24776	// A ClientCertificate identifier to use in the test invocation. API Gateway
24777	// will use the certificate when making the HTTPS request to the defined back-end
24778	// endpoint.
24779	ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
24780
24781	// A key-value map of headers to simulate an incoming invocation request.
24782	Headers map[string]*string `locationName:"headers" type:"map"`
24783
24784	// [Required] Specifies a test invoke method request's HTTP method.
24785	//
24786	// HttpMethod is a required field
24787	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
24788
24789	// The headers as a map from string to list of values to simulate an incoming
24790	// invocation request.
24791	MultiValueHeaders map[string][]*string `locationName:"multiValueHeaders" type:"map"`
24792
24793	// The URI path, including query string, of the simulated invocation request.
24794	// Use this to specify path parameters and query string parameters.
24795	PathWithQueryString *string `locationName:"pathWithQueryString" type:"string"`
24796
24797	// [Required] Specifies a test invoke method request's resource ID.
24798	//
24799	// ResourceId is a required field
24800	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
24801
24802	// [Required] The string identifier of the associated RestApi.
24803	//
24804	// RestApiId is a required field
24805	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
24806
24807	// A key-value map of stage variables to simulate an invocation on a deployed
24808	// Stage.
24809	StageVariables map[string]*string `locationName:"stageVariables" type:"map"`
24810}
24811
24812// String returns the string representation.
24813//
24814// API parameter values that are decorated as "sensitive" in the API will not
24815// be included in the string output. The member name will be present, but the
24816// value will be replaced with "sensitive".
24817func (s TestInvokeMethodInput) String() string {
24818	return awsutil.Prettify(s)
24819}
24820
24821// GoString returns the string representation.
24822//
24823// API parameter values that are decorated as "sensitive" in the API will not
24824// be included in the string output. The member name will be present, but the
24825// value will be replaced with "sensitive".
24826func (s TestInvokeMethodInput) GoString() string {
24827	return s.String()
24828}
24829
24830// Validate inspects the fields of the type to determine if they are valid.
24831func (s *TestInvokeMethodInput) Validate() error {
24832	invalidParams := request.ErrInvalidParams{Context: "TestInvokeMethodInput"}
24833	if s.HttpMethod == nil {
24834		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
24835	}
24836	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
24837		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
24838	}
24839	if s.ResourceId == nil {
24840		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
24841	}
24842	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
24843		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
24844	}
24845	if s.RestApiId == nil {
24846		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
24847	}
24848	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
24849		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
24850	}
24851
24852	if invalidParams.Len() > 0 {
24853		return invalidParams
24854	}
24855	return nil
24856}
24857
24858// SetBody sets the Body field's value.
24859func (s *TestInvokeMethodInput) SetBody(v string) *TestInvokeMethodInput {
24860	s.Body = &v
24861	return s
24862}
24863
24864// SetClientCertificateId sets the ClientCertificateId field's value.
24865func (s *TestInvokeMethodInput) SetClientCertificateId(v string) *TestInvokeMethodInput {
24866	s.ClientCertificateId = &v
24867	return s
24868}
24869
24870// SetHeaders sets the Headers field's value.
24871func (s *TestInvokeMethodInput) SetHeaders(v map[string]*string) *TestInvokeMethodInput {
24872	s.Headers = v
24873	return s
24874}
24875
24876// SetHttpMethod sets the HttpMethod field's value.
24877func (s *TestInvokeMethodInput) SetHttpMethod(v string) *TestInvokeMethodInput {
24878	s.HttpMethod = &v
24879	return s
24880}
24881
24882// SetMultiValueHeaders sets the MultiValueHeaders field's value.
24883func (s *TestInvokeMethodInput) SetMultiValueHeaders(v map[string][]*string) *TestInvokeMethodInput {
24884	s.MultiValueHeaders = v
24885	return s
24886}
24887
24888// SetPathWithQueryString sets the PathWithQueryString field's value.
24889func (s *TestInvokeMethodInput) SetPathWithQueryString(v string) *TestInvokeMethodInput {
24890	s.PathWithQueryString = &v
24891	return s
24892}
24893
24894// SetResourceId sets the ResourceId field's value.
24895func (s *TestInvokeMethodInput) SetResourceId(v string) *TestInvokeMethodInput {
24896	s.ResourceId = &v
24897	return s
24898}
24899
24900// SetRestApiId sets the RestApiId field's value.
24901func (s *TestInvokeMethodInput) SetRestApiId(v string) *TestInvokeMethodInput {
24902	s.RestApiId = &v
24903	return s
24904}
24905
24906// SetStageVariables sets the StageVariables field's value.
24907func (s *TestInvokeMethodInput) SetStageVariables(v map[string]*string) *TestInvokeMethodInput {
24908	s.StageVariables = v
24909	return s
24910}
24911
24912// Represents the response of the test invoke request in the HTTP method.
24913//
24914// 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)
24915type TestInvokeMethodOutput struct {
24916	_ struct{} `type:"structure"`
24917
24918	// The body of the HTTP response.
24919	Body *string `locationName:"body" type:"string"`
24920
24921	// The headers of the HTTP response.
24922	Headers map[string]*string `locationName:"headers" type:"map"`
24923
24924	// The execution latency of the test invoke request.
24925	Latency *int64 `locationName:"latency" type:"long"`
24926
24927	// The API Gateway execution log for the test invoke request.
24928	Log *string `locationName:"log" type:"string"`
24929
24930	// The headers of the HTTP response as a map from string to list of values.
24931	MultiValueHeaders map[string][]*string `locationName:"multiValueHeaders" type:"map"`
24932
24933	// The HTTP status code.
24934	Status *int64 `locationName:"status" type:"integer"`
24935}
24936
24937// String returns the string representation.
24938//
24939// API parameter values that are decorated as "sensitive" in the API will not
24940// be included in the string output. The member name will be present, but the
24941// value will be replaced with "sensitive".
24942func (s TestInvokeMethodOutput) String() string {
24943	return awsutil.Prettify(s)
24944}
24945
24946// GoString returns the string representation.
24947//
24948// API parameter values that are decorated as "sensitive" in the API will not
24949// be included in the string output. The member name will be present, but the
24950// value will be replaced with "sensitive".
24951func (s TestInvokeMethodOutput) GoString() string {
24952	return s.String()
24953}
24954
24955// SetBody sets the Body field's value.
24956func (s *TestInvokeMethodOutput) SetBody(v string) *TestInvokeMethodOutput {
24957	s.Body = &v
24958	return s
24959}
24960
24961// SetHeaders sets the Headers field's value.
24962func (s *TestInvokeMethodOutput) SetHeaders(v map[string]*string) *TestInvokeMethodOutput {
24963	s.Headers = v
24964	return s
24965}
24966
24967// SetLatency sets the Latency field's value.
24968func (s *TestInvokeMethodOutput) SetLatency(v int64) *TestInvokeMethodOutput {
24969	s.Latency = &v
24970	return s
24971}
24972
24973// SetLog sets the Log field's value.
24974func (s *TestInvokeMethodOutput) SetLog(v string) *TestInvokeMethodOutput {
24975	s.Log = &v
24976	return s
24977}
24978
24979// SetMultiValueHeaders sets the MultiValueHeaders field's value.
24980func (s *TestInvokeMethodOutput) SetMultiValueHeaders(v map[string][]*string) *TestInvokeMethodOutput {
24981	s.MultiValueHeaders = v
24982	return s
24983}
24984
24985// SetStatus sets the Status field's value.
24986func (s *TestInvokeMethodOutput) SetStatus(v int64) *TestInvokeMethodOutput {
24987	s.Status = &v
24988	return s
24989}
24990
24991// The API request rate limits.
24992type ThrottleSettings struct {
24993	_ struct{} `type:"structure"`
24994
24995	// The API request burst limit, the maximum rate limit over a time ranging from
24996	// one to a few seconds, depending upon whether the underlying token bucket
24997	// is at its full capacity.
24998	BurstLimit *int64 `locationName:"burstLimit" type:"integer"`
24999
25000	// The API request steady-state rate limit.
25001	RateLimit *float64 `locationName:"rateLimit" type:"double"`
25002}
25003
25004// String returns the string representation.
25005//
25006// API parameter values that are decorated as "sensitive" in the API will not
25007// be included in the string output. The member name will be present, but the
25008// value will be replaced with "sensitive".
25009func (s ThrottleSettings) String() string {
25010	return awsutil.Prettify(s)
25011}
25012
25013// GoString returns the string representation.
25014//
25015// API parameter values that are decorated as "sensitive" in the API will not
25016// be included in the string output. The member name will be present, but the
25017// value will be replaced with "sensitive".
25018func (s ThrottleSettings) GoString() string {
25019	return s.String()
25020}
25021
25022// SetBurstLimit sets the BurstLimit field's value.
25023func (s *ThrottleSettings) SetBurstLimit(v int64) *ThrottleSettings {
25024	s.BurstLimit = &v
25025	return s
25026}
25027
25028// SetRateLimit sets the RateLimit field's value.
25029func (s *ThrottleSettings) SetRateLimit(v float64) *ThrottleSettings {
25030	s.RateLimit = &v
25031	return s
25032}
25033
25034type TlsConfig struct {
25035	_ struct{} `type:"structure"`
25036
25037	// Specifies whether or not API Gateway skips verification that the certificate
25038	// for an integration endpoint is issued by a supported certificate authority
25039	// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html).
25040	// This isn’t recommended, but it enables you to use certificates that are
25041	// signed by private certificate authorities, or certificates that are self-signed.
25042	// If enabled, API Gateway still performs basic certificate validation, which
25043	// includes checking the certificate's expiration date, hostname, and presence
25044	// of a root certificate authority. Supported only for HTTP and HTTP_PROXY integrations.
25045	InsecureSkipVerification *bool `locationName:"insecureSkipVerification" type:"boolean"`
25046}
25047
25048// String returns the string representation.
25049//
25050// API parameter values that are decorated as "sensitive" in the API will not
25051// be included in the string output. The member name will be present, but the
25052// value will be replaced with "sensitive".
25053func (s TlsConfig) String() string {
25054	return awsutil.Prettify(s)
25055}
25056
25057// GoString returns the string representation.
25058//
25059// API parameter values that are decorated as "sensitive" in the API will not
25060// be included in the string output. The member name will be present, but the
25061// value will be replaced with "sensitive".
25062func (s TlsConfig) GoString() string {
25063	return s.String()
25064}
25065
25066// SetInsecureSkipVerification sets the InsecureSkipVerification field's value.
25067func (s *TlsConfig) SetInsecureSkipVerification(v bool) *TlsConfig {
25068	s.InsecureSkipVerification = &v
25069	return s
25070}
25071
25072// The request has reached its throttling limit. Retry after the specified time
25073// period.
25074type TooManyRequestsException struct {
25075	_            struct{}                  `type:"structure"`
25076	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
25077
25078	Message_ *string `locationName:"message" type:"string"`
25079
25080	RetryAfterSeconds *string `location:"header" locationName:"Retry-After" type:"string"`
25081}
25082
25083// String returns the string representation.
25084//
25085// API parameter values that are decorated as "sensitive" in the API will not
25086// be included in the string output. The member name will be present, but the
25087// value will be replaced with "sensitive".
25088func (s TooManyRequestsException) String() string {
25089	return awsutil.Prettify(s)
25090}
25091
25092// GoString returns the string representation.
25093//
25094// API parameter values that are decorated as "sensitive" in the API will not
25095// be included in the string output. The member name will be present, but the
25096// value will be replaced with "sensitive".
25097func (s TooManyRequestsException) GoString() string {
25098	return s.String()
25099}
25100
25101func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
25102	return &TooManyRequestsException{
25103		RespMetadata: v,
25104	}
25105}
25106
25107// Code returns the exception type name.
25108func (s *TooManyRequestsException) Code() string {
25109	return "TooManyRequestsException"
25110}
25111
25112// Message returns the exception's message.
25113func (s *TooManyRequestsException) Message() string {
25114	if s.Message_ != nil {
25115		return *s.Message_
25116	}
25117	return ""
25118}
25119
25120// OrigErr always returns nil, satisfies awserr.Error interface.
25121func (s *TooManyRequestsException) OrigErr() error {
25122	return nil
25123}
25124
25125func (s *TooManyRequestsException) Error() string {
25126	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
25127}
25128
25129// Status code returns the HTTP status code for the request's response error.
25130func (s *TooManyRequestsException) StatusCode() int {
25131	return s.RespMetadata.StatusCode
25132}
25133
25134// RequestID returns the service's response RequestID for request.
25135func (s *TooManyRequestsException) RequestID() string {
25136	return s.RespMetadata.RequestID
25137}
25138
25139// The request is denied because the caller has insufficient permissions.
25140type UnauthorizedException struct {
25141	_            struct{}                  `type:"structure"`
25142	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
25143
25144	Message_ *string `locationName:"message" type:"string"`
25145}
25146
25147// String returns the string representation.
25148//
25149// API parameter values that are decorated as "sensitive" in the API will not
25150// be included in the string output. The member name will be present, but the
25151// value will be replaced with "sensitive".
25152func (s UnauthorizedException) String() string {
25153	return awsutil.Prettify(s)
25154}
25155
25156// GoString returns the string representation.
25157//
25158// API parameter values that are decorated as "sensitive" in the API will not
25159// be included in the string output. The member name will be present, but the
25160// value will be replaced with "sensitive".
25161func (s UnauthorizedException) GoString() string {
25162	return s.String()
25163}
25164
25165func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
25166	return &UnauthorizedException{
25167		RespMetadata: v,
25168	}
25169}
25170
25171// Code returns the exception type name.
25172func (s *UnauthorizedException) Code() string {
25173	return "UnauthorizedException"
25174}
25175
25176// Message returns the exception's message.
25177func (s *UnauthorizedException) Message() string {
25178	if s.Message_ != nil {
25179		return *s.Message_
25180	}
25181	return ""
25182}
25183
25184// OrigErr always returns nil, satisfies awserr.Error interface.
25185func (s *UnauthorizedException) OrigErr() error {
25186	return nil
25187}
25188
25189func (s *UnauthorizedException) Error() string {
25190	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
25191}
25192
25193// Status code returns the HTTP status code for the request's response error.
25194func (s *UnauthorizedException) StatusCode() int {
25195	return s.RespMetadata.StatusCode
25196}
25197
25198// RequestID returns the service's response RequestID for request.
25199func (s *UnauthorizedException) RequestID() string {
25200	return s.RespMetadata.RequestID
25201}
25202
25203// Removes a tag from a given resource.
25204type UntagResourceInput struct {
25205	_ struct{} `type:"structure" nopayload:"true"`
25206
25207	// [Required] The ARN of a resource that can be tagged.
25208	//
25209	// ResourceArn is a required field
25210	ResourceArn *string `location:"uri" locationName:"resource_arn" type:"string" required:"true"`
25211
25212	// [Required] The Tag keys to delete.
25213	//
25214	// TagKeys is a required field
25215	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
25216}
25217
25218// String returns the string representation.
25219//
25220// API parameter values that are decorated as "sensitive" in the API will not
25221// be included in the string output. The member name will be present, but the
25222// value will be replaced with "sensitive".
25223func (s UntagResourceInput) String() string {
25224	return awsutil.Prettify(s)
25225}
25226
25227// GoString returns the string representation.
25228//
25229// API parameter values that are decorated as "sensitive" in the API will not
25230// be included in the string output. The member name will be present, but the
25231// value will be replaced with "sensitive".
25232func (s UntagResourceInput) GoString() string {
25233	return s.String()
25234}
25235
25236// Validate inspects the fields of the type to determine if they are valid.
25237func (s *UntagResourceInput) Validate() error {
25238	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
25239	if s.ResourceArn == nil {
25240		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
25241	}
25242	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
25243		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
25244	}
25245	if s.TagKeys == nil {
25246		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
25247	}
25248
25249	if invalidParams.Len() > 0 {
25250		return invalidParams
25251	}
25252	return nil
25253}
25254
25255// SetResourceArn sets the ResourceArn field's value.
25256func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
25257	s.ResourceArn = &v
25258	return s
25259}
25260
25261// SetTagKeys sets the TagKeys field's value.
25262func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
25263	s.TagKeys = v
25264	return s
25265}
25266
25267type UntagResourceOutput struct {
25268	_ struct{} `type:"structure"`
25269}
25270
25271// String returns the string representation.
25272//
25273// API parameter values that are decorated as "sensitive" in the API will not
25274// be included in the string output. The member name will be present, but the
25275// value will be replaced with "sensitive".
25276func (s UntagResourceOutput) String() string {
25277	return awsutil.Prettify(s)
25278}
25279
25280// GoString returns the string representation.
25281//
25282// API parameter values that are decorated as "sensitive" in the API will not
25283// be included in the string output. The member name will be present, but the
25284// value will be replaced with "sensitive".
25285func (s UntagResourceOutput) GoString() string {
25286	return s.String()
25287}
25288
25289// Requests API Gateway to change information about the current Account resource.
25290type UpdateAccountInput struct {
25291	_ struct{} `type:"structure"`
25292
25293	// A list of update operations to be applied to the specified resource and in
25294	// the order specified in this list.
25295	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25296}
25297
25298// String returns the string representation.
25299//
25300// API parameter values that are decorated as "sensitive" in the API will not
25301// be included in the string output. The member name will be present, but the
25302// value will be replaced with "sensitive".
25303func (s UpdateAccountInput) String() string {
25304	return awsutil.Prettify(s)
25305}
25306
25307// GoString returns the string representation.
25308//
25309// API parameter values that are decorated as "sensitive" in the API will not
25310// be included in the string output. The member name will be present, but the
25311// value will be replaced with "sensitive".
25312func (s UpdateAccountInput) GoString() string {
25313	return s.String()
25314}
25315
25316// SetPatchOperations sets the PatchOperations field's value.
25317func (s *UpdateAccountInput) SetPatchOperations(v []*PatchOperation) *UpdateAccountInput {
25318	s.PatchOperations = v
25319	return s
25320}
25321
25322// A request to change information about an ApiKey resource.
25323type UpdateApiKeyInput struct {
25324	_ struct{} `type:"structure"`
25325
25326	// [Required] The identifier of the ApiKey resource to be updated.
25327	//
25328	// ApiKey is a required field
25329	ApiKey *string `location:"uri" locationName:"api_Key" type:"string" required:"true"`
25330
25331	// A list of update operations to be applied to the specified resource and in
25332	// the order specified in this list.
25333	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25334}
25335
25336// String returns the string representation.
25337//
25338// API parameter values that are decorated as "sensitive" in the API will not
25339// be included in the string output. The member name will be present, but the
25340// value will be replaced with "sensitive".
25341func (s UpdateApiKeyInput) String() string {
25342	return awsutil.Prettify(s)
25343}
25344
25345// GoString returns the string representation.
25346//
25347// API parameter values that are decorated as "sensitive" in the API will not
25348// be included in the string output. The member name will be present, but the
25349// value will be replaced with "sensitive".
25350func (s UpdateApiKeyInput) GoString() string {
25351	return s.String()
25352}
25353
25354// Validate inspects the fields of the type to determine if they are valid.
25355func (s *UpdateApiKeyInput) Validate() error {
25356	invalidParams := request.ErrInvalidParams{Context: "UpdateApiKeyInput"}
25357	if s.ApiKey == nil {
25358		invalidParams.Add(request.NewErrParamRequired("ApiKey"))
25359	}
25360	if s.ApiKey != nil && len(*s.ApiKey) < 1 {
25361		invalidParams.Add(request.NewErrParamMinLen("ApiKey", 1))
25362	}
25363
25364	if invalidParams.Len() > 0 {
25365		return invalidParams
25366	}
25367	return nil
25368}
25369
25370// SetApiKey sets the ApiKey field's value.
25371func (s *UpdateApiKeyInput) SetApiKey(v string) *UpdateApiKeyInput {
25372	s.ApiKey = &v
25373	return s
25374}
25375
25376// SetPatchOperations sets the PatchOperations field's value.
25377func (s *UpdateApiKeyInput) SetPatchOperations(v []*PatchOperation) *UpdateApiKeyInput {
25378	s.PatchOperations = v
25379	return s
25380}
25381
25382// Request to update an existing Authorizer resource.
25383type UpdateAuthorizerInput struct {
25384	_ struct{} `type:"structure"`
25385
25386	// [Required] The identifier of the Authorizer resource.
25387	//
25388	// AuthorizerId is a required field
25389	AuthorizerId *string `location:"uri" locationName:"authorizer_id" type:"string" required:"true"`
25390
25391	// A list of update operations to be applied to the specified resource and in
25392	// the order specified in this list.
25393	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25394
25395	// [Required] The string identifier of the associated RestApi.
25396	//
25397	// RestApiId is a required field
25398	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
25399}
25400
25401// String returns the string representation.
25402//
25403// API parameter values that are decorated as "sensitive" in the API will not
25404// be included in the string output. The member name will be present, but the
25405// value will be replaced with "sensitive".
25406func (s UpdateAuthorizerInput) String() string {
25407	return awsutil.Prettify(s)
25408}
25409
25410// GoString returns the string representation.
25411//
25412// API parameter values that are decorated as "sensitive" in the API will not
25413// be included in the string output. The member name will be present, but the
25414// value will be replaced with "sensitive".
25415func (s UpdateAuthorizerInput) GoString() string {
25416	return s.String()
25417}
25418
25419// Validate inspects the fields of the type to determine if they are valid.
25420func (s *UpdateAuthorizerInput) Validate() error {
25421	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
25422	if s.AuthorizerId == nil {
25423		invalidParams.Add(request.NewErrParamRequired("AuthorizerId"))
25424	}
25425	if s.AuthorizerId != nil && len(*s.AuthorizerId) < 1 {
25426		invalidParams.Add(request.NewErrParamMinLen("AuthorizerId", 1))
25427	}
25428	if s.RestApiId == nil {
25429		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
25430	}
25431	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
25432		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
25433	}
25434
25435	if invalidParams.Len() > 0 {
25436		return invalidParams
25437	}
25438	return nil
25439}
25440
25441// SetAuthorizerId sets the AuthorizerId field's value.
25442func (s *UpdateAuthorizerInput) SetAuthorizerId(v string) *UpdateAuthorizerInput {
25443	s.AuthorizerId = &v
25444	return s
25445}
25446
25447// SetPatchOperations sets the PatchOperations field's value.
25448func (s *UpdateAuthorizerInput) SetPatchOperations(v []*PatchOperation) *UpdateAuthorizerInput {
25449	s.PatchOperations = v
25450	return s
25451}
25452
25453// SetRestApiId sets the RestApiId field's value.
25454func (s *UpdateAuthorizerInput) SetRestApiId(v string) *UpdateAuthorizerInput {
25455	s.RestApiId = &v
25456	return s
25457}
25458
25459// A request to change information about the BasePathMapping resource.
25460type UpdateBasePathMappingInput struct {
25461	_ struct{} `type:"structure"`
25462
25463	// [Required] The base path of the BasePathMapping resource to change.
25464	//
25465	// To specify an empty base path, set this parameter to '(none)'.
25466	//
25467	// BasePath is a required field
25468	BasePath *string `location:"uri" locationName:"base_path" type:"string" required:"true"`
25469
25470	// [Required] The domain name of the BasePathMapping resource to change.
25471	//
25472	// DomainName is a required field
25473	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
25474
25475	// A list of update operations to be applied to the specified resource and in
25476	// the order specified in this list.
25477	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25478}
25479
25480// String returns the string representation.
25481//
25482// API parameter values that are decorated as "sensitive" in the API will not
25483// be included in the string output. The member name will be present, but the
25484// value will be replaced with "sensitive".
25485func (s UpdateBasePathMappingInput) String() string {
25486	return awsutil.Prettify(s)
25487}
25488
25489// GoString returns the string representation.
25490//
25491// API parameter values that are decorated as "sensitive" in the API will not
25492// be included in the string output. The member name will be present, but the
25493// value will be replaced with "sensitive".
25494func (s UpdateBasePathMappingInput) GoString() string {
25495	return s.String()
25496}
25497
25498// Validate inspects the fields of the type to determine if they are valid.
25499func (s *UpdateBasePathMappingInput) Validate() error {
25500	invalidParams := request.ErrInvalidParams{Context: "UpdateBasePathMappingInput"}
25501	if s.BasePath == nil {
25502		invalidParams.Add(request.NewErrParamRequired("BasePath"))
25503	}
25504	if s.BasePath != nil && len(*s.BasePath) < 1 {
25505		invalidParams.Add(request.NewErrParamMinLen("BasePath", 1))
25506	}
25507	if s.DomainName == nil {
25508		invalidParams.Add(request.NewErrParamRequired("DomainName"))
25509	}
25510	if s.DomainName != nil && len(*s.DomainName) < 1 {
25511		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
25512	}
25513
25514	if invalidParams.Len() > 0 {
25515		return invalidParams
25516	}
25517	return nil
25518}
25519
25520// SetBasePath sets the BasePath field's value.
25521func (s *UpdateBasePathMappingInput) SetBasePath(v string) *UpdateBasePathMappingInput {
25522	s.BasePath = &v
25523	return s
25524}
25525
25526// SetDomainName sets the DomainName field's value.
25527func (s *UpdateBasePathMappingInput) SetDomainName(v string) *UpdateBasePathMappingInput {
25528	s.DomainName = &v
25529	return s
25530}
25531
25532// SetPatchOperations sets the PatchOperations field's value.
25533func (s *UpdateBasePathMappingInput) SetPatchOperations(v []*PatchOperation) *UpdateBasePathMappingInput {
25534	s.PatchOperations = v
25535	return s
25536}
25537
25538// A request to change information about an ClientCertificate resource.
25539type UpdateClientCertificateInput struct {
25540	_ struct{} `type:"structure"`
25541
25542	// [Required] The identifier of the ClientCertificate resource to be updated.
25543	//
25544	// ClientCertificateId is a required field
25545	ClientCertificateId *string `location:"uri" locationName:"clientcertificate_id" type:"string" required:"true"`
25546
25547	// A list of update operations to be applied to the specified resource and in
25548	// the order specified in this list.
25549	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25550}
25551
25552// String returns the string representation.
25553//
25554// API parameter values that are decorated as "sensitive" in the API will not
25555// be included in the string output. The member name will be present, but the
25556// value will be replaced with "sensitive".
25557func (s UpdateClientCertificateInput) String() string {
25558	return awsutil.Prettify(s)
25559}
25560
25561// GoString returns the string representation.
25562//
25563// API parameter values that are decorated as "sensitive" in the API will not
25564// be included in the string output. The member name will be present, but the
25565// value will be replaced with "sensitive".
25566func (s UpdateClientCertificateInput) GoString() string {
25567	return s.String()
25568}
25569
25570// Validate inspects the fields of the type to determine if they are valid.
25571func (s *UpdateClientCertificateInput) Validate() error {
25572	invalidParams := request.ErrInvalidParams{Context: "UpdateClientCertificateInput"}
25573	if s.ClientCertificateId == nil {
25574		invalidParams.Add(request.NewErrParamRequired("ClientCertificateId"))
25575	}
25576	if s.ClientCertificateId != nil && len(*s.ClientCertificateId) < 1 {
25577		invalidParams.Add(request.NewErrParamMinLen("ClientCertificateId", 1))
25578	}
25579
25580	if invalidParams.Len() > 0 {
25581		return invalidParams
25582	}
25583	return nil
25584}
25585
25586// SetClientCertificateId sets the ClientCertificateId field's value.
25587func (s *UpdateClientCertificateInput) SetClientCertificateId(v string) *UpdateClientCertificateInput {
25588	s.ClientCertificateId = &v
25589	return s
25590}
25591
25592// SetPatchOperations sets the PatchOperations field's value.
25593func (s *UpdateClientCertificateInput) SetPatchOperations(v []*PatchOperation) *UpdateClientCertificateInput {
25594	s.PatchOperations = v
25595	return s
25596}
25597
25598// Requests API Gateway to change information about a Deployment resource.
25599type UpdateDeploymentInput struct {
25600	_ struct{} `type:"structure"`
25601
25602	// The replacement identifier for the Deployment resource to change information
25603	// about.
25604	//
25605	// DeploymentId is a required field
25606	DeploymentId *string `location:"uri" locationName:"deployment_id" type:"string" required:"true"`
25607
25608	// A list of update operations to be applied to the specified resource and in
25609	// the order specified in this list.
25610	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25611
25612	// [Required] The string identifier of the associated RestApi.
25613	//
25614	// RestApiId is a required field
25615	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
25616}
25617
25618// String returns the string representation.
25619//
25620// API parameter values that are decorated as "sensitive" in the API will not
25621// be included in the string output. The member name will be present, but the
25622// value will be replaced with "sensitive".
25623func (s UpdateDeploymentInput) String() string {
25624	return awsutil.Prettify(s)
25625}
25626
25627// GoString returns the string representation.
25628//
25629// API parameter values that are decorated as "sensitive" in the API will not
25630// be included in the string output. The member name will be present, but the
25631// value will be replaced with "sensitive".
25632func (s UpdateDeploymentInput) GoString() string {
25633	return s.String()
25634}
25635
25636// Validate inspects the fields of the type to determine if they are valid.
25637func (s *UpdateDeploymentInput) Validate() error {
25638	invalidParams := request.ErrInvalidParams{Context: "UpdateDeploymentInput"}
25639	if s.DeploymentId == nil {
25640		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
25641	}
25642	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
25643		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
25644	}
25645	if s.RestApiId == nil {
25646		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
25647	}
25648	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
25649		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
25650	}
25651
25652	if invalidParams.Len() > 0 {
25653		return invalidParams
25654	}
25655	return nil
25656}
25657
25658// SetDeploymentId sets the DeploymentId field's value.
25659func (s *UpdateDeploymentInput) SetDeploymentId(v string) *UpdateDeploymentInput {
25660	s.DeploymentId = &v
25661	return s
25662}
25663
25664// SetPatchOperations sets the PatchOperations field's value.
25665func (s *UpdateDeploymentInput) SetPatchOperations(v []*PatchOperation) *UpdateDeploymentInput {
25666	s.PatchOperations = v
25667	return s
25668}
25669
25670// SetRestApiId sets the RestApiId field's value.
25671func (s *UpdateDeploymentInput) SetRestApiId(v string) *UpdateDeploymentInput {
25672	s.RestApiId = &v
25673	return s
25674}
25675
25676// Updates an existing documentation part of a given API.
25677type UpdateDocumentationPartInput struct {
25678	_ struct{} `type:"structure"`
25679
25680	// [Required] The identifier of the to-be-updated documentation part.
25681	//
25682	// DocumentationPartId is a required field
25683	DocumentationPartId *string `location:"uri" locationName:"part_id" type:"string" required:"true"`
25684
25685	// A list of update operations to be applied to the specified resource and in
25686	// the order specified in this list.
25687	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25688
25689	// [Required] The string identifier of the associated RestApi.
25690	//
25691	// RestApiId is a required field
25692	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
25693}
25694
25695// String returns the string representation.
25696//
25697// API parameter values that are decorated as "sensitive" in the API will not
25698// be included in the string output. The member name will be present, but the
25699// value will be replaced with "sensitive".
25700func (s UpdateDocumentationPartInput) String() string {
25701	return awsutil.Prettify(s)
25702}
25703
25704// GoString returns the string representation.
25705//
25706// API parameter values that are decorated as "sensitive" in the API will not
25707// be included in the string output. The member name will be present, but the
25708// value will be replaced with "sensitive".
25709func (s UpdateDocumentationPartInput) GoString() string {
25710	return s.String()
25711}
25712
25713// Validate inspects the fields of the type to determine if they are valid.
25714func (s *UpdateDocumentationPartInput) Validate() error {
25715	invalidParams := request.ErrInvalidParams{Context: "UpdateDocumentationPartInput"}
25716	if s.DocumentationPartId == nil {
25717		invalidParams.Add(request.NewErrParamRequired("DocumentationPartId"))
25718	}
25719	if s.DocumentationPartId != nil && len(*s.DocumentationPartId) < 1 {
25720		invalidParams.Add(request.NewErrParamMinLen("DocumentationPartId", 1))
25721	}
25722	if s.RestApiId == nil {
25723		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
25724	}
25725	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
25726		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
25727	}
25728
25729	if invalidParams.Len() > 0 {
25730		return invalidParams
25731	}
25732	return nil
25733}
25734
25735// SetDocumentationPartId sets the DocumentationPartId field's value.
25736func (s *UpdateDocumentationPartInput) SetDocumentationPartId(v string) *UpdateDocumentationPartInput {
25737	s.DocumentationPartId = &v
25738	return s
25739}
25740
25741// SetPatchOperations sets the PatchOperations field's value.
25742func (s *UpdateDocumentationPartInput) SetPatchOperations(v []*PatchOperation) *UpdateDocumentationPartInput {
25743	s.PatchOperations = v
25744	return s
25745}
25746
25747// SetRestApiId sets the RestApiId field's value.
25748func (s *UpdateDocumentationPartInput) SetRestApiId(v string) *UpdateDocumentationPartInput {
25749	s.RestApiId = &v
25750	return s
25751}
25752
25753// Updates an existing documentation version of an API.
25754type UpdateDocumentationVersionInput struct {
25755	_ struct{} `type:"structure"`
25756
25757	// [Required] The version identifier of the to-be-updated documentation version.
25758	//
25759	// DocumentationVersion is a required field
25760	DocumentationVersion *string `location:"uri" locationName:"doc_version" type:"string" required:"true"`
25761
25762	// A list of update operations to be applied to the specified resource and in
25763	// the order specified in this list.
25764	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25765
25766	// [Required] The string identifier of the associated RestApi..
25767	//
25768	// RestApiId is a required field
25769	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
25770}
25771
25772// String returns the string representation.
25773//
25774// API parameter values that are decorated as "sensitive" in the API will not
25775// be included in the string output. The member name will be present, but the
25776// value will be replaced with "sensitive".
25777func (s UpdateDocumentationVersionInput) String() string {
25778	return awsutil.Prettify(s)
25779}
25780
25781// GoString returns the string representation.
25782//
25783// API parameter values that are decorated as "sensitive" in the API will not
25784// be included in the string output. The member name will be present, but the
25785// value will be replaced with "sensitive".
25786func (s UpdateDocumentationVersionInput) GoString() string {
25787	return s.String()
25788}
25789
25790// Validate inspects the fields of the type to determine if they are valid.
25791func (s *UpdateDocumentationVersionInput) Validate() error {
25792	invalidParams := request.ErrInvalidParams{Context: "UpdateDocumentationVersionInput"}
25793	if s.DocumentationVersion == nil {
25794		invalidParams.Add(request.NewErrParamRequired("DocumentationVersion"))
25795	}
25796	if s.DocumentationVersion != nil && len(*s.DocumentationVersion) < 1 {
25797		invalidParams.Add(request.NewErrParamMinLen("DocumentationVersion", 1))
25798	}
25799	if s.RestApiId == nil {
25800		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
25801	}
25802	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
25803		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
25804	}
25805
25806	if invalidParams.Len() > 0 {
25807		return invalidParams
25808	}
25809	return nil
25810}
25811
25812// SetDocumentationVersion sets the DocumentationVersion field's value.
25813func (s *UpdateDocumentationVersionInput) SetDocumentationVersion(v string) *UpdateDocumentationVersionInput {
25814	s.DocumentationVersion = &v
25815	return s
25816}
25817
25818// SetPatchOperations sets the PatchOperations field's value.
25819func (s *UpdateDocumentationVersionInput) SetPatchOperations(v []*PatchOperation) *UpdateDocumentationVersionInput {
25820	s.PatchOperations = v
25821	return s
25822}
25823
25824// SetRestApiId sets the RestApiId field's value.
25825func (s *UpdateDocumentationVersionInput) SetRestApiId(v string) *UpdateDocumentationVersionInput {
25826	s.RestApiId = &v
25827	return s
25828}
25829
25830// A request to change information about the DomainName resource.
25831type UpdateDomainNameInput struct {
25832	_ struct{} `type:"structure"`
25833
25834	// [Required] The name of the DomainName resource to be changed.
25835	//
25836	// DomainName is a required field
25837	DomainName *string `location:"uri" locationName:"domain_name" type:"string" required:"true"`
25838
25839	// A list of update operations to be applied to the specified resource and in
25840	// the order specified in this list.
25841	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25842}
25843
25844// String returns the string representation.
25845//
25846// API parameter values that are decorated as "sensitive" in the API will not
25847// be included in the string output. The member name will be present, but the
25848// value will be replaced with "sensitive".
25849func (s UpdateDomainNameInput) String() string {
25850	return awsutil.Prettify(s)
25851}
25852
25853// GoString returns the string representation.
25854//
25855// API parameter values that are decorated as "sensitive" in the API will not
25856// be included in the string output. The member name will be present, but the
25857// value will be replaced with "sensitive".
25858func (s UpdateDomainNameInput) GoString() string {
25859	return s.String()
25860}
25861
25862// Validate inspects the fields of the type to determine if they are valid.
25863func (s *UpdateDomainNameInput) Validate() error {
25864	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainNameInput"}
25865	if s.DomainName == nil {
25866		invalidParams.Add(request.NewErrParamRequired("DomainName"))
25867	}
25868	if s.DomainName != nil && len(*s.DomainName) < 1 {
25869		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
25870	}
25871
25872	if invalidParams.Len() > 0 {
25873		return invalidParams
25874	}
25875	return nil
25876}
25877
25878// SetDomainName sets the DomainName field's value.
25879func (s *UpdateDomainNameInput) SetDomainName(v string) *UpdateDomainNameInput {
25880	s.DomainName = &v
25881	return s
25882}
25883
25884// SetPatchOperations sets the PatchOperations field's value.
25885func (s *UpdateDomainNameInput) SetPatchOperations(v []*PatchOperation) *UpdateDomainNameInput {
25886	s.PatchOperations = v
25887	return s
25888}
25889
25890// Updates a GatewayResponse of a specified response type on the given RestApi.
25891type UpdateGatewayResponseInput struct {
25892	_ struct{} `type:"structure"`
25893
25894	// A list of update operations to be applied to the specified resource and in
25895	// the order specified in this list.
25896	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
25897
25898	// [Required]
25899	// The response type of the associated GatewayResponse.
25900	//
25901	// ResponseType is a required field
25902	ResponseType *string `location:"uri" locationName:"response_type" type:"string" required:"true" enum:"GatewayResponseType"`
25903
25904	// [Required] The string identifier of the associated RestApi.
25905	//
25906	// RestApiId is a required field
25907	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
25908}
25909
25910// String returns the string representation.
25911//
25912// API parameter values that are decorated as "sensitive" in the API will not
25913// be included in the string output. The member name will be present, but the
25914// value will be replaced with "sensitive".
25915func (s UpdateGatewayResponseInput) String() string {
25916	return awsutil.Prettify(s)
25917}
25918
25919// GoString returns the string representation.
25920//
25921// API parameter values that are decorated as "sensitive" in the API will not
25922// be included in the string output. The member name will be present, but the
25923// value will be replaced with "sensitive".
25924func (s UpdateGatewayResponseInput) GoString() string {
25925	return s.String()
25926}
25927
25928// Validate inspects the fields of the type to determine if they are valid.
25929func (s *UpdateGatewayResponseInput) Validate() error {
25930	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewayResponseInput"}
25931	if s.ResponseType == nil {
25932		invalidParams.Add(request.NewErrParamRequired("ResponseType"))
25933	}
25934	if s.ResponseType != nil && len(*s.ResponseType) < 1 {
25935		invalidParams.Add(request.NewErrParamMinLen("ResponseType", 1))
25936	}
25937	if s.RestApiId == nil {
25938		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
25939	}
25940	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
25941		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
25942	}
25943
25944	if invalidParams.Len() > 0 {
25945		return invalidParams
25946	}
25947	return nil
25948}
25949
25950// SetPatchOperations sets the PatchOperations field's value.
25951func (s *UpdateGatewayResponseInput) SetPatchOperations(v []*PatchOperation) *UpdateGatewayResponseInput {
25952	s.PatchOperations = v
25953	return s
25954}
25955
25956// SetResponseType sets the ResponseType field's value.
25957func (s *UpdateGatewayResponseInput) SetResponseType(v string) *UpdateGatewayResponseInput {
25958	s.ResponseType = &v
25959	return s
25960}
25961
25962// SetRestApiId sets the RestApiId field's value.
25963func (s *UpdateGatewayResponseInput) SetRestApiId(v string) *UpdateGatewayResponseInput {
25964	s.RestApiId = &v
25965	return s
25966}
25967
25968// A gateway response of a given response type and status code, with optional
25969// response parameters and mapping templates.
25970//
25971// For more information about valid gateway response types, see Gateway Response
25972// Types Supported by API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/supported-gateway-response-types.html)
25973//
25974// Example: Get a Gateway Response of a given response type
25975//
25976// Request
25977//
25978// This example shows how to get a gateway response of the MISSING_AUTHENTICATION_TOKEN
25979// type.
25980//  GET /restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN HTTP/1.1
25981//  Host: beta-apigateway.us-east-1.amazonaws.com Content-Type: application/json
25982//  X-Amz-Date: 20170503T202516Z Authorization: AWS4-HMAC-SHA256 Credential={access-key-id}/20170503/us-east-1/apigateway/aws4_request,
25983//  SignedHeaders=content-type;host;x-amz-date, Signature=1b52460e3159c1a26cff29093855d50ea141c1c5b937528fecaf60f51129697a
25984//  Cache-Control: no-cache Postman-Token: 3b2a1ce9-c848-2e26-2e2f-9c2caefbed45
25985// The response type is specified as a URL path.
25986//
25987// Response
25988//
25989// The successful operation returns the 200 OK status code and a payload similar
25990// to the following:
25991//  { "_links": { "curies": { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html",
25992//  "name": "gatewayresponse", "templated": true }, "self": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
25993//  }, "gatewayresponse:delete": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
25994//  }, "gatewayresponse:put": { "href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
25995//  "templated": true }, "gatewayresponse:update": { "href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
25996//  } }, "defaultResponse": false, "responseParameters": { "gatewayresponse.header.x-request-path":
25997//  "method.request.path.petId", "gatewayresponse.header.Access-Control-Allow-Origin":
25998//  "'a.b.c'", "gatewayresponse.header.x-request-query": "method.request.querystring.q",
25999//  "gatewayresponse.header.x-request-header": "method.request.header.Accept"
26000//  }, "responseTemplates": { "application/json": "{\n \"message\": $context.error.messageString,\n
26001//  \"type\": \"$context.error.responseType\",\n \"stage\": \"$context.stage\",\n
26002//  \"resourcePath\": \"$context.resourcePath\",\n \"stageVariables.a\": \"$stageVariables.a\",\n
26003//  \"statusCode\": \"'404'\"\n}" }, "responseType": "MISSING_AUTHENTICATION_TOKEN",
26004//  "statusCode": "404" }
26005//
26006// Customize Gateway Responses (https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html)
26007type UpdateGatewayResponseOutput struct {
26008	_ struct{} `type:"structure"`
26009
26010	// A Boolean flag to indicate whether this GatewayResponse is the default gateway
26011	// response (true) or not (false). A default gateway response is one generated
26012	// by API Gateway without any customization by an API developer.
26013	DefaultResponse *bool `locationName:"defaultResponse" type:"boolean"`
26014
26015	// Response parameters (paths, query strings and headers) of the GatewayResponse
26016	// as a string-to-string map of key-value pairs.
26017	ResponseParameters map[string]*string `locationName:"responseParameters" type:"map"`
26018
26019	// Response templates of the GatewayResponse as a string-to-string map of key-value
26020	// pairs.
26021	ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
26022
26023	// The response type of the associated GatewayResponse.
26024	ResponseType *string `locationName:"responseType" type:"string" enum:"GatewayResponseType"`
26025
26026	// The HTTP status code for this GatewayResponse.
26027	StatusCode *string `locationName:"statusCode" type:"string"`
26028}
26029
26030// String returns the string representation.
26031//
26032// API parameter values that are decorated as "sensitive" in the API will not
26033// be included in the string output. The member name will be present, but the
26034// value will be replaced with "sensitive".
26035func (s UpdateGatewayResponseOutput) String() string {
26036	return awsutil.Prettify(s)
26037}
26038
26039// GoString returns the string representation.
26040//
26041// API parameter values that are decorated as "sensitive" in the API will not
26042// be included in the string output. The member name will be present, but the
26043// value will be replaced with "sensitive".
26044func (s UpdateGatewayResponseOutput) GoString() string {
26045	return s.String()
26046}
26047
26048// SetDefaultResponse sets the DefaultResponse field's value.
26049func (s *UpdateGatewayResponseOutput) SetDefaultResponse(v bool) *UpdateGatewayResponseOutput {
26050	s.DefaultResponse = &v
26051	return s
26052}
26053
26054// SetResponseParameters sets the ResponseParameters field's value.
26055func (s *UpdateGatewayResponseOutput) SetResponseParameters(v map[string]*string) *UpdateGatewayResponseOutput {
26056	s.ResponseParameters = v
26057	return s
26058}
26059
26060// SetResponseTemplates sets the ResponseTemplates field's value.
26061func (s *UpdateGatewayResponseOutput) SetResponseTemplates(v map[string]*string) *UpdateGatewayResponseOutput {
26062	s.ResponseTemplates = v
26063	return s
26064}
26065
26066// SetResponseType sets the ResponseType field's value.
26067func (s *UpdateGatewayResponseOutput) SetResponseType(v string) *UpdateGatewayResponseOutput {
26068	s.ResponseType = &v
26069	return s
26070}
26071
26072// SetStatusCode sets the StatusCode field's value.
26073func (s *UpdateGatewayResponseOutput) SetStatusCode(v string) *UpdateGatewayResponseOutput {
26074	s.StatusCode = &v
26075	return s
26076}
26077
26078// Represents an update integration request.
26079type UpdateIntegrationInput struct {
26080	_ struct{} `type:"structure"`
26081
26082	// [Required] Represents an update integration request's HTTP method.
26083	//
26084	// HttpMethod is a required field
26085	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
26086
26087	// A list of update operations to be applied to the specified resource and in
26088	// the order specified in this list.
26089	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
26090
26091	// [Required] Represents an update integration request's resource identifier.
26092	//
26093	// ResourceId is a required field
26094	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
26095
26096	// [Required] The string identifier of the associated RestApi.
26097	//
26098	// RestApiId is a required field
26099	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
26100}
26101
26102// String returns the string representation.
26103//
26104// API parameter values that are decorated as "sensitive" in the API will not
26105// be included in the string output. The member name will be present, but the
26106// value will be replaced with "sensitive".
26107func (s UpdateIntegrationInput) String() string {
26108	return awsutil.Prettify(s)
26109}
26110
26111// GoString returns the string representation.
26112//
26113// API parameter values that are decorated as "sensitive" in the API will not
26114// be included in the string output. The member name will be present, but the
26115// value will be replaced with "sensitive".
26116func (s UpdateIntegrationInput) GoString() string {
26117	return s.String()
26118}
26119
26120// Validate inspects the fields of the type to determine if they are valid.
26121func (s *UpdateIntegrationInput) Validate() error {
26122	invalidParams := request.ErrInvalidParams{Context: "UpdateIntegrationInput"}
26123	if s.HttpMethod == nil {
26124		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
26125	}
26126	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
26127		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
26128	}
26129	if s.ResourceId == nil {
26130		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
26131	}
26132	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
26133		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
26134	}
26135	if s.RestApiId == nil {
26136		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
26137	}
26138	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
26139		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
26140	}
26141
26142	if invalidParams.Len() > 0 {
26143		return invalidParams
26144	}
26145	return nil
26146}
26147
26148// SetHttpMethod sets the HttpMethod field's value.
26149func (s *UpdateIntegrationInput) SetHttpMethod(v string) *UpdateIntegrationInput {
26150	s.HttpMethod = &v
26151	return s
26152}
26153
26154// SetPatchOperations sets the PatchOperations field's value.
26155func (s *UpdateIntegrationInput) SetPatchOperations(v []*PatchOperation) *UpdateIntegrationInput {
26156	s.PatchOperations = v
26157	return s
26158}
26159
26160// SetResourceId sets the ResourceId field's value.
26161func (s *UpdateIntegrationInput) SetResourceId(v string) *UpdateIntegrationInput {
26162	s.ResourceId = &v
26163	return s
26164}
26165
26166// SetRestApiId sets the RestApiId field's value.
26167func (s *UpdateIntegrationInput) SetRestApiId(v string) *UpdateIntegrationInput {
26168	s.RestApiId = &v
26169	return s
26170}
26171
26172// Represents an update integration response request.
26173type UpdateIntegrationResponseInput struct {
26174	_ struct{} `type:"structure"`
26175
26176	// [Required] Specifies an update integration response request's HTTP method.
26177	//
26178	// HttpMethod is a required field
26179	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
26180
26181	// A list of update operations to be applied to the specified resource and in
26182	// the order specified in this list.
26183	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
26184
26185	// [Required] Specifies an update integration response request's resource identifier.
26186	//
26187	// ResourceId is a required field
26188	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
26189
26190	// [Required] The string identifier of the associated RestApi.
26191	//
26192	// RestApiId is a required field
26193	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
26194
26195	// [Required] Specifies an update integration response request's status code.
26196	//
26197	// StatusCode is a required field
26198	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
26199}
26200
26201// String returns the string representation.
26202//
26203// API parameter values that are decorated as "sensitive" in the API will not
26204// be included in the string output. The member name will be present, but the
26205// value will be replaced with "sensitive".
26206func (s UpdateIntegrationResponseInput) String() string {
26207	return awsutil.Prettify(s)
26208}
26209
26210// GoString returns the string representation.
26211//
26212// API parameter values that are decorated as "sensitive" in the API will not
26213// be included in the string output. The member name will be present, but the
26214// value will be replaced with "sensitive".
26215func (s UpdateIntegrationResponseInput) GoString() string {
26216	return s.String()
26217}
26218
26219// Validate inspects the fields of the type to determine if they are valid.
26220func (s *UpdateIntegrationResponseInput) Validate() error {
26221	invalidParams := request.ErrInvalidParams{Context: "UpdateIntegrationResponseInput"}
26222	if s.HttpMethod == nil {
26223		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
26224	}
26225	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
26226		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
26227	}
26228	if s.ResourceId == nil {
26229		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
26230	}
26231	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
26232		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
26233	}
26234	if s.RestApiId == nil {
26235		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
26236	}
26237	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
26238		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
26239	}
26240	if s.StatusCode == nil {
26241		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
26242	}
26243	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
26244		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
26245	}
26246
26247	if invalidParams.Len() > 0 {
26248		return invalidParams
26249	}
26250	return nil
26251}
26252
26253// SetHttpMethod sets the HttpMethod field's value.
26254func (s *UpdateIntegrationResponseInput) SetHttpMethod(v string) *UpdateIntegrationResponseInput {
26255	s.HttpMethod = &v
26256	return s
26257}
26258
26259// SetPatchOperations sets the PatchOperations field's value.
26260func (s *UpdateIntegrationResponseInput) SetPatchOperations(v []*PatchOperation) *UpdateIntegrationResponseInput {
26261	s.PatchOperations = v
26262	return s
26263}
26264
26265// SetResourceId sets the ResourceId field's value.
26266func (s *UpdateIntegrationResponseInput) SetResourceId(v string) *UpdateIntegrationResponseInput {
26267	s.ResourceId = &v
26268	return s
26269}
26270
26271// SetRestApiId sets the RestApiId field's value.
26272func (s *UpdateIntegrationResponseInput) SetRestApiId(v string) *UpdateIntegrationResponseInput {
26273	s.RestApiId = &v
26274	return s
26275}
26276
26277// SetStatusCode sets the StatusCode field's value.
26278func (s *UpdateIntegrationResponseInput) SetStatusCode(v string) *UpdateIntegrationResponseInput {
26279	s.StatusCode = &v
26280	return s
26281}
26282
26283// Request to update an existing Method resource.
26284type UpdateMethodInput struct {
26285	_ struct{} `type:"structure"`
26286
26287	// [Required] The HTTP verb of the Method resource.
26288	//
26289	// HttpMethod is a required field
26290	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
26291
26292	// A list of update operations to be applied to the specified resource and in
26293	// the order specified in this list.
26294	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
26295
26296	// [Required] The Resource identifier for the Method resource.
26297	//
26298	// ResourceId is a required field
26299	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
26300
26301	// [Required] The string identifier of the associated RestApi.
26302	//
26303	// RestApiId is a required field
26304	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
26305}
26306
26307// String returns the string representation.
26308//
26309// API parameter values that are decorated as "sensitive" in the API will not
26310// be included in the string output. The member name will be present, but the
26311// value will be replaced with "sensitive".
26312func (s UpdateMethodInput) String() string {
26313	return awsutil.Prettify(s)
26314}
26315
26316// GoString returns the string representation.
26317//
26318// API parameter values that are decorated as "sensitive" in the API will not
26319// be included in the string output. The member name will be present, but the
26320// value will be replaced with "sensitive".
26321func (s UpdateMethodInput) GoString() string {
26322	return s.String()
26323}
26324
26325// Validate inspects the fields of the type to determine if they are valid.
26326func (s *UpdateMethodInput) Validate() error {
26327	invalidParams := request.ErrInvalidParams{Context: "UpdateMethodInput"}
26328	if s.HttpMethod == nil {
26329		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
26330	}
26331	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
26332		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
26333	}
26334	if s.ResourceId == nil {
26335		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
26336	}
26337	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
26338		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
26339	}
26340	if s.RestApiId == nil {
26341		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
26342	}
26343	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
26344		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
26345	}
26346
26347	if invalidParams.Len() > 0 {
26348		return invalidParams
26349	}
26350	return nil
26351}
26352
26353// SetHttpMethod sets the HttpMethod field's value.
26354func (s *UpdateMethodInput) SetHttpMethod(v string) *UpdateMethodInput {
26355	s.HttpMethod = &v
26356	return s
26357}
26358
26359// SetPatchOperations sets the PatchOperations field's value.
26360func (s *UpdateMethodInput) SetPatchOperations(v []*PatchOperation) *UpdateMethodInput {
26361	s.PatchOperations = v
26362	return s
26363}
26364
26365// SetResourceId sets the ResourceId field's value.
26366func (s *UpdateMethodInput) SetResourceId(v string) *UpdateMethodInput {
26367	s.ResourceId = &v
26368	return s
26369}
26370
26371// SetRestApiId sets the RestApiId field's value.
26372func (s *UpdateMethodInput) SetRestApiId(v string) *UpdateMethodInput {
26373	s.RestApiId = &v
26374	return s
26375}
26376
26377// A request to update an existing MethodResponse resource.
26378type UpdateMethodResponseInput struct {
26379	_ struct{} `type:"structure"`
26380
26381	// [Required] The HTTP verb of the Method resource.
26382	//
26383	// HttpMethod is a required field
26384	HttpMethod *string `location:"uri" locationName:"http_method" type:"string" required:"true"`
26385
26386	// A list of update operations to be applied to the specified resource and in
26387	// the order specified in this list.
26388	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
26389
26390	// [Required] The Resource identifier for the MethodResponse resource.
26391	//
26392	// ResourceId is a required field
26393	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
26394
26395	// [Required] The string identifier of the associated RestApi.
26396	//
26397	// RestApiId is a required field
26398	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
26399
26400	// [Required] The status code for the MethodResponse resource.
26401	//
26402	// StatusCode is a required field
26403	StatusCode *string `location:"uri" locationName:"status_code" type:"string" required:"true"`
26404}
26405
26406// String returns the string representation.
26407//
26408// API parameter values that are decorated as "sensitive" in the API will not
26409// be included in the string output. The member name will be present, but the
26410// value will be replaced with "sensitive".
26411func (s UpdateMethodResponseInput) String() string {
26412	return awsutil.Prettify(s)
26413}
26414
26415// GoString returns the string representation.
26416//
26417// API parameter values that are decorated as "sensitive" in the API will not
26418// be included in the string output. The member name will be present, but the
26419// value will be replaced with "sensitive".
26420func (s UpdateMethodResponseInput) GoString() string {
26421	return s.String()
26422}
26423
26424// Validate inspects the fields of the type to determine if they are valid.
26425func (s *UpdateMethodResponseInput) Validate() error {
26426	invalidParams := request.ErrInvalidParams{Context: "UpdateMethodResponseInput"}
26427	if s.HttpMethod == nil {
26428		invalidParams.Add(request.NewErrParamRequired("HttpMethod"))
26429	}
26430	if s.HttpMethod != nil && len(*s.HttpMethod) < 1 {
26431		invalidParams.Add(request.NewErrParamMinLen("HttpMethod", 1))
26432	}
26433	if s.ResourceId == nil {
26434		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
26435	}
26436	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
26437		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
26438	}
26439	if s.RestApiId == nil {
26440		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
26441	}
26442	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
26443		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
26444	}
26445	if s.StatusCode == nil {
26446		invalidParams.Add(request.NewErrParamRequired("StatusCode"))
26447	}
26448	if s.StatusCode != nil && len(*s.StatusCode) < 1 {
26449		invalidParams.Add(request.NewErrParamMinLen("StatusCode", 1))
26450	}
26451
26452	if invalidParams.Len() > 0 {
26453		return invalidParams
26454	}
26455	return nil
26456}
26457
26458// SetHttpMethod sets the HttpMethod field's value.
26459func (s *UpdateMethodResponseInput) SetHttpMethod(v string) *UpdateMethodResponseInput {
26460	s.HttpMethod = &v
26461	return s
26462}
26463
26464// SetPatchOperations sets the PatchOperations field's value.
26465func (s *UpdateMethodResponseInput) SetPatchOperations(v []*PatchOperation) *UpdateMethodResponseInput {
26466	s.PatchOperations = v
26467	return s
26468}
26469
26470// SetResourceId sets the ResourceId field's value.
26471func (s *UpdateMethodResponseInput) SetResourceId(v string) *UpdateMethodResponseInput {
26472	s.ResourceId = &v
26473	return s
26474}
26475
26476// SetRestApiId sets the RestApiId field's value.
26477func (s *UpdateMethodResponseInput) SetRestApiId(v string) *UpdateMethodResponseInput {
26478	s.RestApiId = &v
26479	return s
26480}
26481
26482// SetStatusCode sets the StatusCode field's value.
26483func (s *UpdateMethodResponseInput) SetStatusCode(v string) *UpdateMethodResponseInput {
26484	s.StatusCode = &v
26485	return s
26486}
26487
26488// Request to update an existing model in an existing RestApi resource.
26489type UpdateModelInput struct {
26490	_ struct{} `type:"structure"`
26491
26492	// [Required] The name of the model to update.
26493	//
26494	// ModelName is a required field
26495	ModelName *string `location:"uri" locationName:"model_name" type:"string" required:"true"`
26496
26497	// A list of update operations to be applied to the specified resource and in
26498	// the order specified in this list.
26499	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
26500
26501	// [Required] The string identifier of the associated RestApi.
26502	//
26503	// RestApiId is a required field
26504	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
26505}
26506
26507// String returns the string representation.
26508//
26509// API parameter values that are decorated as "sensitive" in the API will not
26510// be included in the string output. The member name will be present, but the
26511// value will be replaced with "sensitive".
26512func (s UpdateModelInput) String() string {
26513	return awsutil.Prettify(s)
26514}
26515
26516// GoString returns the string representation.
26517//
26518// API parameter values that are decorated as "sensitive" in the API will not
26519// be included in the string output. The member name will be present, but the
26520// value will be replaced with "sensitive".
26521func (s UpdateModelInput) GoString() string {
26522	return s.String()
26523}
26524
26525// Validate inspects the fields of the type to determine if they are valid.
26526func (s *UpdateModelInput) Validate() error {
26527	invalidParams := request.ErrInvalidParams{Context: "UpdateModelInput"}
26528	if s.ModelName == nil {
26529		invalidParams.Add(request.NewErrParamRequired("ModelName"))
26530	}
26531	if s.ModelName != nil && len(*s.ModelName) < 1 {
26532		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
26533	}
26534	if s.RestApiId == nil {
26535		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
26536	}
26537	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
26538		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
26539	}
26540
26541	if invalidParams.Len() > 0 {
26542		return invalidParams
26543	}
26544	return nil
26545}
26546
26547// SetModelName sets the ModelName field's value.
26548func (s *UpdateModelInput) SetModelName(v string) *UpdateModelInput {
26549	s.ModelName = &v
26550	return s
26551}
26552
26553// SetPatchOperations sets the PatchOperations field's value.
26554func (s *UpdateModelInput) SetPatchOperations(v []*PatchOperation) *UpdateModelInput {
26555	s.PatchOperations = v
26556	return s
26557}
26558
26559// SetRestApiId sets the RestApiId field's value.
26560func (s *UpdateModelInput) SetRestApiId(v string) *UpdateModelInput {
26561	s.RestApiId = &v
26562	return s
26563}
26564
26565// Updates a RequestValidator of a given RestApi.
26566type UpdateRequestValidatorInput struct {
26567	_ struct{} `type:"structure"`
26568
26569	// A list of update operations to be applied to the specified resource and in
26570	// the order specified in this list.
26571	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
26572
26573	// [Required] The identifier of RequestValidator to be updated.
26574	//
26575	// RequestValidatorId is a required field
26576	RequestValidatorId *string `location:"uri" locationName:"requestvalidator_id" type:"string" required:"true"`
26577
26578	// [Required] The string identifier of the associated RestApi.
26579	//
26580	// RestApiId is a required field
26581	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
26582}
26583
26584// String returns the string representation.
26585//
26586// API parameter values that are decorated as "sensitive" in the API will not
26587// be included in the string output. The member name will be present, but the
26588// value will be replaced with "sensitive".
26589func (s UpdateRequestValidatorInput) String() string {
26590	return awsutil.Prettify(s)
26591}
26592
26593// GoString returns the string representation.
26594//
26595// API parameter values that are decorated as "sensitive" in the API will not
26596// be included in the string output. The member name will be present, but the
26597// value will be replaced with "sensitive".
26598func (s UpdateRequestValidatorInput) GoString() string {
26599	return s.String()
26600}
26601
26602// Validate inspects the fields of the type to determine if they are valid.
26603func (s *UpdateRequestValidatorInput) Validate() error {
26604	invalidParams := request.ErrInvalidParams{Context: "UpdateRequestValidatorInput"}
26605	if s.RequestValidatorId == nil {
26606		invalidParams.Add(request.NewErrParamRequired("RequestValidatorId"))
26607	}
26608	if s.RequestValidatorId != nil && len(*s.RequestValidatorId) < 1 {
26609		invalidParams.Add(request.NewErrParamMinLen("RequestValidatorId", 1))
26610	}
26611	if s.RestApiId == nil {
26612		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
26613	}
26614	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
26615		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
26616	}
26617
26618	if invalidParams.Len() > 0 {
26619		return invalidParams
26620	}
26621	return nil
26622}
26623
26624// SetPatchOperations sets the PatchOperations field's value.
26625func (s *UpdateRequestValidatorInput) SetPatchOperations(v []*PatchOperation) *UpdateRequestValidatorInput {
26626	s.PatchOperations = v
26627	return s
26628}
26629
26630// SetRequestValidatorId sets the RequestValidatorId field's value.
26631func (s *UpdateRequestValidatorInput) SetRequestValidatorId(v string) *UpdateRequestValidatorInput {
26632	s.RequestValidatorId = &v
26633	return s
26634}
26635
26636// SetRestApiId sets the RestApiId field's value.
26637func (s *UpdateRequestValidatorInput) SetRestApiId(v string) *UpdateRequestValidatorInput {
26638	s.RestApiId = &v
26639	return s
26640}
26641
26642// A set of validation rules for incoming Method requests.
26643//
26644// In OpenAPI, a RequestValidator of an API is defined by the x-amazon-apigateway-request-validators.requestValidator
26645// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html#api-gateway-swagger-extensions-request-validators.requestValidator.html)
26646// object. It the referenced using the x-amazon-apigateway-request-validator
26647// (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html#api-gateway-swagger-extensions-request-validator)
26648// property.
26649//
26650// Enable Basic Request Validation in API Gateway (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html)
26651type UpdateRequestValidatorOutput struct {
26652	_ struct{} `type:"structure"`
26653
26654	// The identifier of this RequestValidator.
26655	Id *string `locationName:"id" type:"string"`
26656
26657	// The name of this RequestValidator
26658	Name *string `locationName:"name" type:"string"`
26659
26660	// A Boolean flag to indicate whether to validate a request body according to
26661	// the configured Model schema.
26662	ValidateRequestBody *bool `locationName:"validateRequestBody" type:"boolean"`
26663
26664	// A Boolean flag to indicate whether to validate request parameters (true)
26665	// or not (false).
26666	ValidateRequestParameters *bool `locationName:"validateRequestParameters" type:"boolean"`
26667}
26668
26669// String returns the string representation.
26670//
26671// API parameter values that are decorated as "sensitive" in the API will not
26672// be included in the string output. The member name will be present, but the
26673// value will be replaced with "sensitive".
26674func (s UpdateRequestValidatorOutput) String() string {
26675	return awsutil.Prettify(s)
26676}
26677
26678// GoString returns the string representation.
26679//
26680// API parameter values that are decorated as "sensitive" in the API will not
26681// be included in the string output. The member name will be present, but the
26682// value will be replaced with "sensitive".
26683func (s UpdateRequestValidatorOutput) GoString() string {
26684	return s.String()
26685}
26686
26687// SetId sets the Id field's value.
26688func (s *UpdateRequestValidatorOutput) SetId(v string) *UpdateRequestValidatorOutput {
26689	s.Id = &v
26690	return s
26691}
26692
26693// SetName sets the Name field's value.
26694func (s *UpdateRequestValidatorOutput) SetName(v string) *UpdateRequestValidatorOutput {
26695	s.Name = &v
26696	return s
26697}
26698
26699// SetValidateRequestBody sets the ValidateRequestBody field's value.
26700func (s *UpdateRequestValidatorOutput) SetValidateRequestBody(v bool) *UpdateRequestValidatorOutput {
26701	s.ValidateRequestBody = &v
26702	return s
26703}
26704
26705// SetValidateRequestParameters sets the ValidateRequestParameters field's value.
26706func (s *UpdateRequestValidatorOutput) SetValidateRequestParameters(v bool) *UpdateRequestValidatorOutput {
26707	s.ValidateRequestParameters = &v
26708	return s
26709}
26710
26711// Request to change information about a Resource resource.
26712type UpdateResourceInput struct {
26713	_ struct{} `type:"structure"`
26714
26715	// A list of update operations to be applied to the specified resource and in
26716	// the order specified in this list.
26717	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
26718
26719	// [Required] The identifier of the Resource resource.
26720	//
26721	// ResourceId is a required field
26722	ResourceId *string `location:"uri" locationName:"resource_id" type:"string" required:"true"`
26723
26724	// [Required] The string identifier of the associated RestApi.
26725	//
26726	// RestApiId is a required field
26727	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
26728}
26729
26730// String returns the string representation.
26731//
26732// API parameter values that are decorated as "sensitive" in the API will not
26733// be included in the string output. The member name will be present, but the
26734// value will be replaced with "sensitive".
26735func (s UpdateResourceInput) String() string {
26736	return awsutil.Prettify(s)
26737}
26738
26739// GoString returns the string representation.
26740//
26741// API parameter values that are decorated as "sensitive" in the API will not
26742// be included in the string output. The member name will be present, but the
26743// value will be replaced with "sensitive".
26744func (s UpdateResourceInput) GoString() string {
26745	return s.String()
26746}
26747
26748// Validate inspects the fields of the type to determine if they are valid.
26749func (s *UpdateResourceInput) Validate() error {
26750	invalidParams := request.ErrInvalidParams{Context: "UpdateResourceInput"}
26751	if s.ResourceId == nil {
26752		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
26753	}
26754	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
26755		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
26756	}
26757	if s.RestApiId == nil {
26758		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
26759	}
26760	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
26761		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
26762	}
26763
26764	if invalidParams.Len() > 0 {
26765		return invalidParams
26766	}
26767	return nil
26768}
26769
26770// SetPatchOperations sets the PatchOperations field's value.
26771func (s *UpdateResourceInput) SetPatchOperations(v []*PatchOperation) *UpdateResourceInput {
26772	s.PatchOperations = v
26773	return s
26774}
26775
26776// SetResourceId sets the ResourceId field's value.
26777func (s *UpdateResourceInput) SetResourceId(v string) *UpdateResourceInput {
26778	s.ResourceId = &v
26779	return s
26780}
26781
26782// SetRestApiId sets the RestApiId field's value.
26783func (s *UpdateResourceInput) SetRestApiId(v string) *UpdateResourceInput {
26784	s.RestApiId = &v
26785	return s
26786}
26787
26788// Request to update an existing RestApi resource in your collection.
26789type UpdateRestApiInput struct {
26790	_ struct{} `type:"structure"`
26791
26792	// A list of update operations to be applied to the specified resource and in
26793	// the order specified in this list.
26794	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
26795
26796	// [Required] The string identifier of the associated RestApi.
26797	//
26798	// RestApiId is a required field
26799	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
26800}
26801
26802// String returns the string representation.
26803//
26804// API parameter values that are decorated as "sensitive" in the API will not
26805// be included in the string output. The member name will be present, but the
26806// value will be replaced with "sensitive".
26807func (s UpdateRestApiInput) String() string {
26808	return awsutil.Prettify(s)
26809}
26810
26811// GoString returns the string representation.
26812//
26813// API parameter values that are decorated as "sensitive" in the API will not
26814// be included in the string output. The member name will be present, but the
26815// value will be replaced with "sensitive".
26816func (s UpdateRestApiInput) GoString() string {
26817	return s.String()
26818}
26819
26820// Validate inspects the fields of the type to determine if they are valid.
26821func (s *UpdateRestApiInput) Validate() error {
26822	invalidParams := request.ErrInvalidParams{Context: "UpdateRestApiInput"}
26823	if s.RestApiId == nil {
26824		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
26825	}
26826	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
26827		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
26828	}
26829
26830	if invalidParams.Len() > 0 {
26831		return invalidParams
26832	}
26833	return nil
26834}
26835
26836// SetPatchOperations sets the PatchOperations field's value.
26837func (s *UpdateRestApiInput) SetPatchOperations(v []*PatchOperation) *UpdateRestApiInput {
26838	s.PatchOperations = v
26839	return s
26840}
26841
26842// SetRestApiId sets the RestApiId field's value.
26843func (s *UpdateRestApiInput) SetRestApiId(v string) *UpdateRestApiInput {
26844	s.RestApiId = &v
26845	return s
26846}
26847
26848// Requests API Gateway to change information about a Stage resource.
26849type UpdateStageInput struct {
26850	_ struct{} `type:"structure"`
26851
26852	// A list of update operations to be applied to the specified resource and in
26853	// the order specified in this list.
26854	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
26855
26856	// [Required] The string identifier of the associated RestApi.
26857	//
26858	// RestApiId is a required field
26859	RestApiId *string `location:"uri" locationName:"restapi_id" type:"string" required:"true"`
26860
26861	// [Required] The name of the Stage resource to change information about.
26862	//
26863	// StageName is a required field
26864	StageName *string `location:"uri" locationName:"stage_name" type:"string" required:"true"`
26865}
26866
26867// String returns the string representation.
26868//
26869// API parameter values that are decorated as "sensitive" in the API will not
26870// be included in the string output. The member name will be present, but the
26871// value will be replaced with "sensitive".
26872func (s UpdateStageInput) String() string {
26873	return awsutil.Prettify(s)
26874}
26875
26876// GoString returns the string representation.
26877//
26878// API parameter values that are decorated as "sensitive" in the API will not
26879// be included in the string output. The member name will be present, but the
26880// value will be replaced with "sensitive".
26881func (s UpdateStageInput) GoString() string {
26882	return s.String()
26883}
26884
26885// Validate inspects the fields of the type to determine if they are valid.
26886func (s *UpdateStageInput) Validate() error {
26887	invalidParams := request.ErrInvalidParams{Context: "UpdateStageInput"}
26888	if s.RestApiId == nil {
26889		invalidParams.Add(request.NewErrParamRequired("RestApiId"))
26890	}
26891	if s.RestApiId != nil && len(*s.RestApiId) < 1 {
26892		invalidParams.Add(request.NewErrParamMinLen("RestApiId", 1))
26893	}
26894	if s.StageName == nil {
26895		invalidParams.Add(request.NewErrParamRequired("StageName"))
26896	}
26897	if s.StageName != nil && len(*s.StageName) < 1 {
26898		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
26899	}
26900
26901	if invalidParams.Len() > 0 {
26902		return invalidParams
26903	}
26904	return nil
26905}
26906
26907// SetPatchOperations sets the PatchOperations field's value.
26908func (s *UpdateStageInput) SetPatchOperations(v []*PatchOperation) *UpdateStageInput {
26909	s.PatchOperations = v
26910	return s
26911}
26912
26913// SetRestApiId sets the RestApiId field's value.
26914func (s *UpdateStageInput) SetRestApiId(v string) *UpdateStageInput {
26915	s.RestApiId = &v
26916	return s
26917}
26918
26919// SetStageName sets the StageName field's value.
26920func (s *UpdateStageInput) SetStageName(v string) *UpdateStageInput {
26921	s.StageName = &v
26922	return s
26923}
26924
26925// The PATCH request to grant a temporary extension to the remaining quota of
26926// a usage plan associated with a specified API key.
26927type UpdateUsageInput struct {
26928	_ struct{} `type:"structure"`
26929
26930	// [Required] The identifier of the API key associated with the usage plan in
26931	// which a temporary extension is granted to the remaining quota.
26932	//
26933	// KeyId is a required field
26934	KeyId *string `location:"uri" locationName:"keyId" type:"string" required:"true"`
26935
26936	// A list of update operations to be applied to the specified resource and in
26937	// the order specified in this list.
26938	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
26939
26940	// [Required] The Id of the usage plan associated with the usage data.
26941	//
26942	// UsagePlanId is a required field
26943	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
26944}
26945
26946// String returns the string representation.
26947//
26948// API parameter values that are decorated as "sensitive" in the API will not
26949// be included in the string output. The member name will be present, but the
26950// value will be replaced with "sensitive".
26951func (s UpdateUsageInput) String() string {
26952	return awsutil.Prettify(s)
26953}
26954
26955// GoString returns the string representation.
26956//
26957// API parameter values that are decorated as "sensitive" in the API will not
26958// be included in the string output. The member name will be present, but the
26959// value will be replaced with "sensitive".
26960func (s UpdateUsageInput) GoString() string {
26961	return s.String()
26962}
26963
26964// Validate inspects the fields of the type to determine if they are valid.
26965func (s *UpdateUsageInput) Validate() error {
26966	invalidParams := request.ErrInvalidParams{Context: "UpdateUsageInput"}
26967	if s.KeyId == nil {
26968		invalidParams.Add(request.NewErrParamRequired("KeyId"))
26969	}
26970	if s.KeyId != nil && len(*s.KeyId) < 1 {
26971		invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
26972	}
26973	if s.UsagePlanId == nil {
26974		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
26975	}
26976	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
26977		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
26978	}
26979
26980	if invalidParams.Len() > 0 {
26981		return invalidParams
26982	}
26983	return nil
26984}
26985
26986// SetKeyId sets the KeyId field's value.
26987func (s *UpdateUsageInput) SetKeyId(v string) *UpdateUsageInput {
26988	s.KeyId = &v
26989	return s
26990}
26991
26992// SetPatchOperations sets the PatchOperations field's value.
26993func (s *UpdateUsageInput) SetPatchOperations(v []*PatchOperation) *UpdateUsageInput {
26994	s.PatchOperations = v
26995	return s
26996}
26997
26998// SetUsagePlanId sets the UsagePlanId field's value.
26999func (s *UpdateUsageInput) SetUsagePlanId(v string) *UpdateUsageInput {
27000	s.UsagePlanId = &v
27001	return s
27002}
27003
27004// The PATCH request to update a usage plan of a given plan Id.
27005type UpdateUsagePlanInput struct {
27006	_ struct{} `type:"structure"`
27007
27008	// A list of update operations to be applied to the specified resource and in
27009	// the order specified in this list.
27010	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
27011
27012	// [Required] The Id of the to-be-updated usage plan.
27013	//
27014	// UsagePlanId is a required field
27015	UsagePlanId *string `location:"uri" locationName:"usageplanId" type:"string" required:"true"`
27016}
27017
27018// String returns the string representation.
27019//
27020// API parameter values that are decorated as "sensitive" in the API will not
27021// be included in the string output. The member name will be present, but the
27022// value will be replaced with "sensitive".
27023func (s UpdateUsagePlanInput) String() string {
27024	return awsutil.Prettify(s)
27025}
27026
27027// GoString returns the string representation.
27028//
27029// API parameter values that are decorated as "sensitive" in the API will not
27030// be included in the string output. The member name will be present, but the
27031// value will be replaced with "sensitive".
27032func (s UpdateUsagePlanInput) GoString() string {
27033	return s.String()
27034}
27035
27036// Validate inspects the fields of the type to determine if they are valid.
27037func (s *UpdateUsagePlanInput) Validate() error {
27038	invalidParams := request.ErrInvalidParams{Context: "UpdateUsagePlanInput"}
27039	if s.UsagePlanId == nil {
27040		invalidParams.Add(request.NewErrParamRequired("UsagePlanId"))
27041	}
27042	if s.UsagePlanId != nil && len(*s.UsagePlanId) < 1 {
27043		invalidParams.Add(request.NewErrParamMinLen("UsagePlanId", 1))
27044	}
27045
27046	if invalidParams.Len() > 0 {
27047		return invalidParams
27048	}
27049	return nil
27050}
27051
27052// SetPatchOperations sets the PatchOperations field's value.
27053func (s *UpdateUsagePlanInput) SetPatchOperations(v []*PatchOperation) *UpdateUsagePlanInput {
27054	s.PatchOperations = v
27055	return s
27056}
27057
27058// SetUsagePlanId sets the UsagePlanId field's value.
27059func (s *UpdateUsagePlanInput) SetUsagePlanId(v string) *UpdateUsagePlanInput {
27060	s.UsagePlanId = &v
27061	return s
27062}
27063
27064// Updates an existing VpcLink of a specified identifier.
27065type UpdateVpcLinkInput struct {
27066	_ struct{} `type:"structure"`
27067
27068	// A list of update operations to be applied to the specified resource and in
27069	// the order specified in this list.
27070	PatchOperations []*PatchOperation `locationName:"patchOperations" type:"list"`
27071
27072	// [Required] The identifier of the VpcLink. It is used in an Integration to
27073	// reference this VpcLink.
27074	//
27075	// VpcLinkId is a required field
27076	VpcLinkId *string `location:"uri" locationName:"vpclink_id" type:"string" required:"true"`
27077}
27078
27079// String returns the string representation.
27080//
27081// API parameter values that are decorated as "sensitive" in the API will not
27082// be included in the string output. The member name will be present, but the
27083// value will be replaced with "sensitive".
27084func (s UpdateVpcLinkInput) String() string {
27085	return awsutil.Prettify(s)
27086}
27087
27088// GoString returns the string representation.
27089//
27090// API parameter values that are decorated as "sensitive" in the API will not
27091// be included in the string output. The member name will be present, but the
27092// value will be replaced with "sensitive".
27093func (s UpdateVpcLinkInput) GoString() string {
27094	return s.String()
27095}
27096
27097// Validate inspects the fields of the type to determine if they are valid.
27098func (s *UpdateVpcLinkInput) Validate() error {
27099	invalidParams := request.ErrInvalidParams{Context: "UpdateVpcLinkInput"}
27100	if s.VpcLinkId == nil {
27101		invalidParams.Add(request.NewErrParamRequired("VpcLinkId"))
27102	}
27103	if s.VpcLinkId != nil && len(*s.VpcLinkId) < 1 {
27104		invalidParams.Add(request.NewErrParamMinLen("VpcLinkId", 1))
27105	}
27106
27107	if invalidParams.Len() > 0 {
27108		return invalidParams
27109	}
27110	return nil
27111}
27112
27113// SetPatchOperations sets the PatchOperations field's value.
27114func (s *UpdateVpcLinkInput) SetPatchOperations(v []*PatchOperation) *UpdateVpcLinkInput {
27115	s.PatchOperations = v
27116	return s
27117}
27118
27119// SetVpcLinkId sets the VpcLinkId field's value.
27120func (s *UpdateVpcLinkInput) SetVpcLinkId(v string) *UpdateVpcLinkInput {
27121	s.VpcLinkId = &v
27122	return s
27123}
27124
27125// An API Gateway VPC link for a RestApi to access resources in an Amazon Virtual
27126// Private Cloud (VPC).
27127//
27128// To enable access to a resource in an Amazon Virtual Private Cloud through
27129// Amazon API Gateway, you, as an API developer, create a VpcLink resource targeted
27130// for one or more network load balancers of the VPC and then integrate an API
27131// method with a private integration that uses the VpcLink. The private integration
27132// has an integration type of HTTP or HTTP_PROXY and has a connection type of
27133// VPC_LINK. The integration uses the connectionId property to identify the
27134// VpcLink used.
27135type UpdateVpcLinkOutput struct {
27136	_ struct{} `type:"structure"`
27137
27138	// The description of the VPC link.
27139	Description *string `locationName:"description" type:"string"`
27140
27141	// The identifier of the VpcLink. It is used in an Integration to reference
27142	// this VpcLink.
27143	Id *string `locationName:"id" type:"string"`
27144
27145	// The name used to label and identify the VPC link.
27146	Name *string `locationName:"name" type:"string"`
27147
27148	// The status of the VPC link. The valid values are AVAILABLE, PENDING, DELETING,
27149	// or FAILED. Deploying an API will wait if the status is PENDING and will fail
27150	// if the status is DELETING.
27151	Status *string `locationName:"status" type:"string" enum:"VpcLinkStatus"`
27152
27153	// A description about the VPC link status.
27154	StatusMessage *string `locationName:"statusMessage" type:"string"`
27155
27156	// The collection of tags. Each tag element is associated with a given resource.
27157	Tags map[string]*string `locationName:"tags" type:"map"`
27158
27159	// The ARN of the network load balancer of the VPC targeted by the VPC link.
27160	// The network load balancer must be owned by the same AWS account of the API
27161	// owner.
27162	TargetArns []*string `locationName:"targetArns" type:"list"`
27163}
27164
27165// String returns the string representation.
27166//
27167// API parameter values that are decorated as "sensitive" in the API will not
27168// be included in the string output. The member name will be present, but the
27169// value will be replaced with "sensitive".
27170func (s UpdateVpcLinkOutput) String() string {
27171	return awsutil.Prettify(s)
27172}
27173
27174// GoString returns the string representation.
27175//
27176// API parameter values that are decorated as "sensitive" in the API will not
27177// be included in the string output. The member name will be present, but the
27178// value will be replaced with "sensitive".
27179func (s UpdateVpcLinkOutput) GoString() string {
27180	return s.String()
27181}
27182
27183// SetDescription sets the Description field's value.
27184func (s *UpdateVpcLinkOutput) SetDescription(v string) *UpdateVpcLinkOutput {
27185	s.Description = &v
27186	return s
27187}
27188
27189// SetId sets the Id field's value.
27190func (s *UpdateVpcLinkOutput) SetId(v string) *UpdateVpcLinkOutput {
27191	s.Id = &v
27192	return s
27193}
27194
27195// SetName sets the Name field's value.
27196func (s *UpdateVpcLinkOutput) SetName(v string) *UpdateVpcLinkOutput {
27197	s.Name = &v
27198	return s
27199}
27200
27201// SetStatus sets the Status field's value.
27202func (s *UpdateVpcLinkOutput) SetStatus(v string) *UpdateVpcLinkOutput {
27203	s.Status = &v
27204	return s
27205}
27206
27207// SetStatusMessage sets the StatusMessage field's value.
27208func (s *UpdateVpcLinkOutput) SetStatusMessage(v string) *UpdateVpcLinkOutput {
27209	s.StatusMessage = &v
27210	return s
27211}
27212
27213// SetTags sets the Tags field's value.
27214func (s *UpdateVpcLinkOutput) SetTags(v map[string]*string) *UpdateVpcLinkOutput {
27215	s.Tags = v
27216	return s
27217}
27218
27219// SetTargetArns sets the TargetArns field's value.
27220func (s *UpdateVpcLinkOutput) SetTargetArns(v []*string) *UpdateVpcLinkOutput {
27221	s.TargetArns = v
27222	return s
27223}
27224
27225// Represents the usage data of a usage plan.
27226//
27227// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html),
27228// 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)
27229type Usage struct {
27230	_ struct{} `type:"structure"`
27231
27232	// The ending date of the usage data.
27233	EndDate *string `locationName:"endDate" type:"string"`
27234
27235	// The usage data, as daily logs of used and remaining quotas, over the specified
27236	// time interval indexed over the API keys in a usage plan. For example, {...,
27237	// "values" : { "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}, where {api_key}
27238	// stands for an API key value and the daily log entry is of the format [used
27239	// quota, remaining quota].
27240	Items map[string][][]*int64 `locationName:"values" type:"map"`
27241
27242	Position *string `locationName:"position" type:"string"`
27243
27244	// The starting date of the usage data.
27245	StartDate *string `locationName:"startDate" type:"string"`
27246
27247	// The plan Id associated with this usage data.
27248	UsagePlanId *string `locationName:"usagePlanId" type:"string"`
27249}
27250
27251// String returns the string representation.
27252//
27253// API parameter values that are decorated as "sensitive" in the API will not
27254// be included in the string output. The member name will be present, but the
27255// value will be replaced with "sensitive".
27256func (s Usage) String() string {
27257	return awsutil.Prettify(s)
27258}
27259
27260// GoString returns the string representation.
27261//
27262// API parameter values that are decorated as "sensitive" in the API will not
27263// be included in the string output. The member name will be present, but the
27264// value will be replaced with "sensitive".
27265func (s Usage) GoString() string {
27266	return s.String()
27267}
27268
27269// SetEndDate sets the EndDate field's value.
27270func (s *Usage) SetEndDate(v string) *Usage {
27271	s.EndDate = &v
27272	return s
27273}
27274
27275// SetItems sets the Items field's value.
27276func (s *Usage) SetItems(v map[string][][]*int64) *Usage {
27277	s.Items = v
27278	return s
27279}
27280
27281// SetPosition sets the Position field's value.
27282func (s *Usage) SetPosition(v string) *Usage {
27283	s.Position = &v
27284	return s
27285}
27286
27287// SetStartDate sets the StartDate field's value.
27288func (s *Usage) SetStartDate(v string) *Usage {
27289	s.StartDate = &v
27290	return s
27291}
27292
27293// SetUsagePlanId sets the UsagePlanId field's value.
27294func (s *Usage) SetUsagePlanId(v string) *Usage {
27295	s.UsagePlanId = &v
27296	return s
27297}
27298
27299// Represents a usage plan than can specify who can assess associated API stages
27300// with specified request limits and quotas.
27301//
27302// In a usage plan, you associate an API by specifying the API's Id and a stage
27303// name of the specified API. You add plan customers by adding API keys to the
27304// plan.
27305//
27306// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
27307type UsagePlan struct {
27308	_ struct{} `type:"structure"`
27309
27310	// The associated API stages of a usage plan.
27311	ApiStages []*ApiStage `locationName:"apiStages" type:"list"`
27312
27313	// The description of a usage plan.
27314	Description *string `locationName:"description" type:"string"`
27315
27316	// The identifier of a UsagePlan resource.
27317	Id *string `locationName:"id" type:"string"`
27318
27319	// The name of a usage plan.
27320	Name *string `locationName:"name" type:"string"`
27321
27322	// The AWS Markeplace product identifier to associate with the usage plan as
27323	// a SaaS product on AWS Marketplace.
27324	ProductCode *string `locationName:"productCode" type:"string"`
27325
27326	// The maximum number of permitted requests per a given unit time interval.
27327	Quota *QuotaSettings `locationName:"quota" type:"structure"`
27328
27329	// The collection of tags. Each tag element is associated with a given resource.
27330	Tags map[string]*string `locationName:"tags" type:"map"`
27331
27332	// The request throttle limits of a usage plan.
27333	Throttle *ThrottleSettings `locationName:"throttle" type:"structure"`
27334}
27335
27336// String returns the string representation.
27337//
27338// API parameter values that are decorated as "sensitive" in the API will not
27339// be included in the string output. The member name will be present, but the
27340// value will be replaced with "sensitive".
27341func (s UsagePlan) String() string {
27342	return awsutil.Prettify(s)
27343}
27344
27345// GoString returns the string representation.
27346//
27347// API parameter values that are decorated as "sensitive" in the API will not
27348// be included in the string output. The member name will be present, but the
27349// value will be replaced with "sensitive".
27350func (s UsagePlan) GoString() string {
27351	return s.String()
27352}
27353
27354// SetApiStages sets the ApiStages field's value.
27355func (s *UsagePlan) SetApiStages(v []*ApiStage) *UsagePlan {
27356	s.ApiStages = v
27357	return s
27358}
27359
27360// SetDescription sets the Description field's value.
27361func (s *UsagePlan) SetDescription(v string) *UsagePlan {
27362	s.Description = &v
27363	return s
27364}
27365
27366// SetId sets the Id field's value.
27367func (s *UsagePlan) SetId(v string) *UsagePlan {
27368	s.Id = &v
27369	return s
27370}
27371
27372// SetName sets the Name field's value.
27373func (s *UsagePlan) SetName(v string) *UsagePlan {
27374	s.Name = &v
27375	return s
27376}
27377
27378// SetProductCode sets the ProductCode field's value.
27379func (s *UsagePlan) SetProductCode(v string) *UsagePlan {
27380	s.ProductCode = &v
27381	return s
27382}
27383
27384// SetQuota sets the Quota field's value.
27385func (s *UsagePlan) SetQuota(v *QuotaSettings) *UsagePlan {
27386	s.Quota = v
27387	return s
27388}
27389
27390// SetTags sets the Tags field's value.
27391func (s *UsagePlan) SetTags(v map[string]*string) *UsagePlan {
27392	s.Tags = v
27393	return s
27394}
27395
27396// SetThrottle sets the Throttle field's value.
27397func (s *UsagePlan) SetThrottle(v *ThrottleSettings) *UsagePlan {
27398	s.Throttle = v
27399	return s
27400}
27401
27402// Represents a usage plan key to identify a plan customer.
27403//
27404// To associate an API stage with a selected API key in a usage plan, you must
27405// create a UsagePlanKey resource to represent the selected ApiKey.
27406//
27407// "
27408// Create and Use Usage Plans (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
27409type UsagePlanKey struct {
27410	_ struct{} `type:"structure"`
27411
27412	// The Id of a usage plan key.
27413	Id *string `locationName:"id" type:"string"`
27414
27415	// The name of a usage plan key.
27416	Name *string `locationName:"name" type:"string"`
27417
27418	// The type of a usage plan key. Currently, the valid key type is API_KEY.
27419	Type *string `locationName:"type" type:"string"`
27420
27421	// The value of a usage plan key.
27422	Value *string `locationName:"value" type:"string"`
27423}
27424
27425// String returns the string representation.
27426//
27427// API parameter values that are decorated as "sensitive" in the API will not
27428// be included in the string output. The member name will be present, but the
27429// value will be replaced with "sensitive".
27430func (s UsagePlanKey) String() string {
27431	return awsutil.Prettify(s)
27432}
27433
27434// GoString returns the string representation.
27435//
27436// API parameter values that are decorated as "sensitive" in the API will not
27437// be included in the string output. The member name will be present, but the
27438// value will be replaced with "sensitive".
27439func (s UsagePlanKey) GoString() string {
27440	return s.String()
27441}
27442
27443// SetId sets the Id field's value.
27444func (s *UsagePlanKey) SetId(v string) *UsagePlanKey {
27445	s.Id = &v
27446	return s
27447}
27448
27449// SetName sets the Name field's value.
27450func (s *UsagePlanKey) SetName(v string) *UsagePlanKey {
27451	s.Name = &v
27452	return s
27453}
27454
27455// SetType sets the Type field's value.
27456func (s *UsagePlanKey) SetType(v string) *UsagePlanKey {
27457	s.Type = &v
27458	return s
27459}
27460
27461// SetValue sets the Value field's value.
27462func (s *UsagePlanKey) SetValue(v string) *UsagePlanKey {
27463	s.Value = &v
27464	return s
27465}
27466
27467const (
27468	// ApiKeySourceTypeHeader is a ApiKeySourceType enum value
27469	ApiKeySourceTypeHeader = "HEADER"
27470
27471	// ApiKeySourceTypeAuthorizer is a ApiKeySourceType enum value
27472	ApiKeySourceTypeAuthorizer = "AUTHORIZER"
27473)
27474
27475// ApiKeySourceType_Values returns all elements of the ApiKeySourceType enum
27476func ApiKeySourceType_Values() []string {
27477	return []string{
27478		ApiKeySourceTypeHeader,
27479		ApiKeySourceTypeAuthorizer,
27480	}
27481}
27482
27483const (
27484	// ApiKeysFormatCsv is a ApiKeysFormat enum value
27485	ApiKeysFormatCsv = "csv"
27486)
27487
27488// ApiKeysFormat_Values returns all elements of the ApiKeysFormat enum
27489func ApiKeysFormat_Values() []string {
27490	return []string{
27491		ApiKeysFormatCsv,
27492	}
27493}
27494
27495// The authorizer type. Valid values are TOKEN for a Lambda function using a
27496// single authorization token submitted in a custom header, REQUEST for a Lambda
27497// function using incoming request parameters, and COGNITO_USER_POOLS for using
27498// an Amazon Cognito user pool.
27499const (
27500	// AuthorizerTypeToken is a AuthorizerType enum value
27501	AuthorizerTypeToken = "TOKEN"
27502
27503	// AuthorizerTypeRequest is a AuthorizerType enum value
27504	AuthorizerTypeRequest = "REQUEST"
27505
27506	// AuthorizerTypeCognitoUserPools is a AuthorizerType enum value
27507	AuthorizerTypeCognitoUserPools = "COGNITO_USER_POOLS"
27508)
27509
27510// AuthorizerType_Values returns all elements of the AuthorizerType enum
27511func AuthorizerType_Values() []string {
27512	return []string{
27513		AuthorizerTypeToken,
27514		AuthorizerTypeRequest,
27515		AuthorizerTypeCognitoUserPools,
27516	}
27517}
27518
27519// Returns the size of the CacheCluster.
27520const (
27521	// CacheClusterSize05 is a CacheClusterSize enum value
27522	CacheClusterSize05 = "0.5"
27523
27524	// CacheClusterSize16 is a CacheClusterSize enum value
27525	CacheClusterSize16 = "1.6"
27526
27527	// CacheClusterSize61 is a CacheClusterSize enum value
27528	CacheClusterSize61 = "6.1"
27529
27530	// CacheClusterSize135 is a CacheClusterSize enum value
27531	CacheClusterSize135 = "13.5"
27532
27533	// CacheClusterSize284 is a CacheClusterSize enum value
27534	CacheClusterSize284 = "28.4"
27535
27536	// CacheClusterSize582 is a CacheClusterSize enum value
27537	CacheClusterSize582 = "58.2"
27538
27539	// CacheClusterSize118 is a CacheClusterSize enum value
27540	CacheClusterSize118 = "118"
27541
27542	// CacheClusterSize237 is a CacheClusterSize enum value
27543	CacheClusterSize237 = "237"
27544)
27545
27546// CacheClusterSize_Values returns all elements of the CacheClusterSize enum
27547func CacheClusterSize_Values() []string {
27548	return []string{
27549		CacheClusterSize05,
27550		CacheClusterSize16,
27551		CacheClusterSize61,
27552		CacheClusterSize135,
27553		CacheClusterSize284,
27554		CacheClusterSize582,
27555		CacheClusterSize118,
27556		CacheClusterSize237,
27557	}
27558}
27559
27560// Returns the status of the CacheCluster.
27561const (
27562	// CacheClusterStatusCreateInProgress is a CacheClusterStatus enum value
27563	CacheClusterStatusCreateInProgress = "CREATE_IN_PROGRESS"
27564
27565	// CacheClusterStatusAvailable is a CacheClusterStatus enum value
27566	CacheClusterStatusAvailable = "AVAILABLE"
27567
27568	// CacheClusterStatusDeleteInProgress is a CacheClusterStatus enum value
27569	CacheClusterStatusDeleteInProgress = "DELETE_IN_PROGRESS"
27570
27571	// CacheClusterStatusNotAvailable is a CacheClusterStatus enum value
27572	CacheClusterStatusNotAvailable = "NOT_AVAILABLE"
27573
27574	// CacheClusterStatusFlushInProgress is a CacheClusterStatus enum value
27575	CacheClusterStatusFlushInProgress = "FLUSH_IN_PROGRESS"
27576)
27577
27578// CacheClusterStatus_Values returns all elements of the CacheClusterStatus enum
27579func CacheClusterStatus_Values() []string {
27580	return []string{
27581		CacheClusterStatusCreateInProgress,
27582		CacheClusterStatusAvailable,
27583		CacheClusterStatusDeleteInProgress,
27584		CacheClusterStatusNotAvailable,
27585		CacheClusterStatusFlushInProgress,
27586	}
27587}
27588
27589const (
27590	// ConnectionTypeInternet is a ConnectionType enum value
27591	ConnectionTypeInternet = "INTERNET"
27592
27593	// ConnectionTypeVpcLink is a ConnectionType enum value
27594	ConnectionTypeVpcLink = "VPC_LINK"
27595)
27596
27597// ConnectionType_Values returns all elements of the ConnectionType enum
27598func ConnectionType_Values() []string {
27599	return []string{
27600		ConnectionTypeInternet,
27601		ConnectionTypeVpcLink,
27602	}
27603}
27604
27605const (
27606	// ContentHandlingStrategyConvertToBinary is a ContentHandlingStrategy enum value
27607	ContentHandlingStrategyConvertToBinary = "CONVERT_TO_BINARY"
27608
27609	// ContentHandlingStrategyConvertToText is a ContentHandlingStrategy enum value
27610	ContentHandlingStrategyConvertToText = "CONVERT_TO_TEXT"
27611)
27612
27613// ContentHandlingStrategy_Values returns all elements of the ContentHandlingStrategy enum
27614func ContentHandlingStrategy_Values() []string {
27615	return []string{
27616		ContentHandlingStrategyConvertToBinary,
27617		ContentHandlingStrategyConvertToText,
27618	}
27619}
27620
27621const (
27622	// DocumentationPartTypeApi is a DocumentationPartType enum value
27623	DocumentationPartTypeApi = "API"
27624
27625	// DocumentationPartTypeAuthorizer is a DocumentationPartType enum value
27626	DocumentationPartTypeAuthorizer = "AUTHORIZER"
27627
27628	// DocumentationPartTypeModel is a DocumentationPartType enum value
27629	DocumentationPartTypeModel = "MODEL"
27630
27631	// DocumentationPartTypeResource is a DocumentationPartType enum value
27632	DocumentationPartTypeResource = "RESOURCE"
27633
27634	// DocumentationPartTypeMethod is a DocumentationPartType enum value
27635	DocumentationPartTypeMethod = "METHOD"
27636
27637	// DocumentationPartTypePathParameter is a DocumentationPartType enum value
27638	DocumentationPartTypePathParameter = "PATH_PARAMETER"
27639
27640	// DocumentationPartTypeQueryParameter is a DocumentationPartType enum value
27641	DocumentationPartTypeQueryParameter = "QUERY_PARAMETER"
27642
27643	// DocumentationPartTypeRequestHeader is a DocumentationPartType enum value
27644	DocumentationPartTypeRequestHeader = "REQUEST_HEADER"
27645
27646	// DocumentationPartTypeRequestBody is a DocumentationPartType enum value
27647	DocumentationPartTypeRequestBody = "REQUEST_BODY"
27648
27649	// DocumentationPartTypeResponse is a DocumentationPartType enum value
27650	DocumentationPartTypeResponse = "RESPONSE"
27651
27652	// DocumentationPartTypeResponseHeader is a DocumentationPartType enum value
27653	DocumentationPartTypeResponseHeader = "RESPONSE_HEADER"
27654
27655	// DocumentationPartTypeResponseBody is a DocumentationPartType enum value
27656	DocumentationPartTypeResponseBody = "RESPONSE_BODY"
27657)
27658
27659// DocumentationPartType_Values returns all elements of the DocumentationPartType enum
27660func DocumentationPartType_Values() []string {
27661	return []string{
27662		DocumentationPartTypeApi,
27663		DocumentationPartTypeAuthorizer,
27664		DocumentationPartTypeModel,
27665		DocumentationPartTypeResource,
27666		DocumentationPartTypeMethod,
27667		DocumentationPartTypePathParameter,
27668		DocumentationPartTypeQueryParameter,
27669		DocumentationPartTypeRequestHeader,
27670		DocumentationPartTypeRequestBody,
27671		DocumentationPartTypeResponse,
27672		DocumentationPartTypeResponseHeader,
27673		DocumentationPartTypeResponseBody,
27674	}
27675}
27676
27677const (
27678	// DomainNameStatusAvailable is a DomainNameStatus enum value
27679	DomainNameStatusAvailable = "AVAILABLE"
27680
27681	// DomainNameStatusUpdating is a DomainNameStatus enum value
27682	DomainNameStatusUpdating = "UPDATING"
27683
27684	// DomainNameStatusPending is a DomainNameStatus enum value
27685	DomainNameStatusPending = "PENDING"
27686
27687	// DomainNameStatusPendingCertificateReimport is a DomainNameStatus enum value
27688	DomainNameStatusPendingCertificateReimport = "PENDING_CERTIFICATE_REIMPORT"
27689
27690	// DomainNameStatusPendingOwnershipVerification is a DomainNameStatus enum value
27691	DomainNameStatusPendingOwnershipVerification = "PENDING_OWNERSHIP_VERIFICATION"
27692)
27693
27694// DomainNameStatus_Values returns all elements of the DomainNameStatus enum
27695func DomainNameStatus_Values() []string {
27696	return []string{
27697		DomainNameStatusAvailable,
27698		DomainNameStatusUpdating,
27699		DomainNameStatusPending,
27700		DomainNameStatusPendingCertificateReimport,
27701		DomainNameStatusPendingOwnershipVerification,
27702	}
27703}
27704
27705// The endpoint type. The valid values are EDGE for edge-optimized API setup,
27706// most suitable for mobile applications; REGIONAL for regional API endpoint
27707// setup, most suitable for calling from AWS Region; and PRIVATE for private
27708// APIs.
27709const (
27710	// EndpointTypeRegional is a EndpointType enum value
27711	EndpointTypeRegional = "REGIONAL"
27712
27713	// EndpointTypeEdge is a EndpointType enum value
27714	EndpointTypeEdge = "EDGE"
27715
27716	// EndpointTypePrivate is a EndpointType enum value
27717	EndpointTypePrivate = "PRIVATE"
27718)
27719
27720// EndpointType_Values returns all elements of the EndpointType enum
27721func EndpointType_Values() []string {
27722	return []string{
27723		EndpointTypeRegional,
27724		EndpointTypeEdge,
27725		EndpointTypePrivate,
27726	}
27727}
27728
27729const (
27730	// GatewayResponseTypeDefault4xx is a GatewayResponseType enum value
27731	GatewayResponseTypeDefault4xx = "DEFAULT_4XX"
27732
27733	// GatewayResponseTypeDefault5xx is a GatewayResponseType enum value
27734	GatewayResponseTypeDefault5xx = "DEFAULT_5XX"
27735
27736	// GatewayResponseTypeResourceNotFound is a GatewayResponseType enum value
27737	GatewayResponseTypeResourceNotFound = "RESOURCE_NOT_FOUND"
27738
27739	// GatewayResponseTypeUnauthorized is a GatewayResponseType enum value
27740	GatewayResponseTypeUnauthorized = "UNAUTHORIZED"
27741
27742	// GatewayResponseTypeInvalidApiKey is a GatewayResponseType enum value
27743	GatewayResponseTypeInvalidApiKey = "INVALID_API_KEY"
27744
27745	// GatewayResponseTypeAccessDenied is a GatewayResponseType enum value
27746	GatewayResponseTypeAccessDenied = "ACCESS_DENIED"
27747
27748	// GatewayResponseTypeAuthorizerFailure is a GatewayResponseType enum value
27749	GatewayResponseTypeAuthorizerFailure = "AUTHORIZER_FAILURE"
27750
27751	// GatewayResponseTypeAuthorizerConfigurationError is a GatewayResponseType enum value
27752	GatewayResponseTypeAuthorizerConfigurationError = "AUTHORIZER_CONFIGURATION_ERROR"
27753
27754	// GatewayResponseTypeInvalidSignature is a GatewayResponseType enum value
27755	GatewayResponseTypeInvalidSignature = "INVALID_SIGNATURE"
27756
27757	// GatewayResponseTypeExpiredToken is a GatewayResponseType enum value
27758	GatewayResponseTypeExpiredToken = "EXPIRED_TOKEN"
27759
27760	// GatewayResponseTypeMissingAuthenticationToken is a GatewayResponseType enum value
27761	GatewayResponseTypeMissingAuthenticationToken = "MISSING_AUTHENTICATION_TOKEN"
27762
27763	// GatewayResponseTypeIntegrationFailure is a GatewayResponseType enum value
27764	GatewayResponseTypeIntegrationFailure = "INTEGRATION_FAILURE"
27765
27766	// GatewayResponseTypeIntegrationTimeout is a GatewayResponseType enum value
27767	GatewayResponseTypeIntegrationTimeout = "INTEGRATION_TIMEOUT"
27768
27769	// GatewayResponseTypeApiConfigurationError is a GatewayResponseType enum value
27770	GatewayResponseTypeApiConfigurationError = "API_CONFIGURATION_ERROR"
27771
27772	// GatewayResponseTypeUnsupportedMediaType is a GatewayResponseType enum value
27773	GatewayResponseTypeUnsupportedMediaType = "UNSUPPORTED_MEDIA_TYPE"
27774
27775	// GatewayResponseTypeBadRequestParameters is a GatewayResponseType enum value
27776	GatewayResponseTypeBadRequestParameters = "BAD_REQUEST_PARAMETERS"
27777
27778	// GatewayResponseTypeBadRequestBody is a GatewayResponseType enum value
27779	GatewayResponseTypeBadRequestBody = "BAD_REQUEST_BODY"
27780
27781	// GatewayResponseTypeRequestTooLarge is a GatewayResponseType enum value
27782	GatewayResponseTypeRequestTooLarge = "REQUEST_TOO_LARGE"
27783
27784	// GatewayResponseTypeThrottled is a GatewayResponseType enum value
27785	GatewayResponseTypeThrottled = "THROTTLED"
27786
27787	// GatewayResponseTypeQuotaExceeded is a GatewayResponseType enum value
27788	GatewayResponseTypeQuotaExceeded = "QUOTA_EXCEEDED"
27789
27790	// GatewayResponseTypeWafFiltered is a GatewayResponseType enum value
27791	GatewayResponseTypeWafFiltered = "WAF_FILTERED"
27792)
27793
27794// GatewayResponseType_Values returns all elements of the GatewayResponseType enum
27795func GatewayResponseType_Values() []string {
27796	return []string{
27797		GatewayResponseTypeDefault4xx,
27798		GatewayResponseTypeDefault5xx,
27799		GatewayResponseTypeResourceNotFound,
27800		GatewayResponseTypeUnauthorized,
27801		GatewayResponseTypeInvalidApiKey,
27802		GatewayResponseTypeAccessDenied,
27803		GatewayResponseTypeAuthorizerFailure,
27804		GatewayResponseTypeAuthorizerConfigurationError,
27805		GatewayResponseTypeInvalidSignature,
27806		GatewayResponseTypeExpiredToken,
27807		GatewayResponseTypeMissingAuthenticationToken,
27808		GatewayResponseTypeIntegrationFailure,
27809		GatewayResponseTypeIntegrationTimeout,
27810		GatewayResponseTypeApiConfigurationError,
27811		GatewayResponseTypeUnsupportedMediaType,
27812		GatewayResponseTypeBadRequestParameters,
27813		GatewayResponseTypeBadRequestBody,
27814		GatewayResponseTypeRequestTooLarge,
27815		GatewayResponseTypeThrottled,
27816		GatewayResponseTypeQuotaExceeded,
27817		GatewayResponseTypeWafFiltered,
27818	}
27819}
27820
27821// The integration type. The valid value is HTTP for integrating an API method
27822// with an HTTP backend; AWS with any AWS service endpoints; MOCK for testing
27823// without actually invoking the backend; HTTP_PROXY for integrating with the
27824// HTTP proxy integration; AWS_PROXY for integrating with the Lambda proxy integration.
27825const (
27826	// IntegrationTypeHttp is a IntegrationType enum value
27827	IntegrationTypeHttp = "HTTP"
27828
27829	// IntegrationTypeAws is a IntegrationType enum value
27830	IntegrationTypeAws = "AWS"
27831
27832	// IntegrationTypeMock is a IntegrationType enum value
27833	IntegrationTypeMock = "MOCK"
27834
27835	// IntegrationTypeHttpProxy is a IntegrationType enum value
27836	IntegrationTypeHttpProxy = "HTTP_PROXY"
27837
27838	// IntegrationTypeAwsProxy is a IntegrationType enum value
27839	IntegrationTypeAwsProxy = "AWS_PROXY"
27840)
27841
27842// IntegrationType_Values returns all elements of the IntegrationType enum
27843func IntegrationType_Values() []string {
27844	return []string{
27845		IntegrationTypeHttp,
27846		IntegrationTypeAws,
27847		IntegrationTypeMock,
27848		IntegrationTypeHttpProxy,
27849		IntegrationTypeAwsProxy,
27850	}
27851}
27852
27853const (
27854	// LocationStatusTypeDocumented is a LocationStatusType enum value
27855	LocationStatusTypeDocumented = "DOCUMENTED"
27856
27857	// LocationStatusTypeUndocumented is a LocationStatusType enum value
27858	LocationStatusTypeUndocumented = "UNDOCUMENTED"
27859)
27860
27861// LocationStatusType_Values returns all elements of the LocationStatusType enum
27862func LocationStatusType_Values() []string {
27863	return []string{
27864		LocationStatusTypeDocumented,
27865		LocationStatusTypeUndocumented,
27866	}
27867}
27868
27869const (
27870	// OpAdd is a Op enum value
27871	OpAdd = "add"
27872
27873	// OpRemove is a Op enum value
27874	OpRemove = "remove"
27875
27876	// OpReplace is a Op enum value
27877	OpReplace = "replace"
27878
27879	// OpMove is a Op enum value
27880	OpMove = "move"
27881
27882	// OpCopy is a Op enum value
27883	OpCopy = "copy"
27884
27885	// OpTest is a Op enum value
27886	OpTest = "test"
27887)
27888
27889// Op_Values returns all elements of the Op enum
27890func Op_Values() []string {
27891	return []string{
27892		OpAdd,
27893		OpRemove,
27894		OpReplace,
27895		OpMove,
27896		OpCopy,
27897		OpTest,
27898	}
27899}
27900
27901const (
27902	// PutModeMerge is a PutMode enum value
27903	PutModeMerge = "merge"
27904
27905	// PutModeOverwrite is a PutMode enum value
27906	PutModeOverwrite = "overwrite"
27907)
27908
27909// PutMode_Values returns all elements of the PutMode enum
27910func PutMode_Values() []string {
27911	return []string{
27912		PutModeMerge,
27913		PutModeOverwrite,
27914	}
27915}
27916
27917const (
27918	// QuotaPeriodTypeDay is a QuotaPeriodType enum value
27919	QuotaPeriodTypeDay = "DAY"
27920
27921	// QuotaPeriodTypeWeek is a QuotaPeriodType enum value
27922	QuotaPeriodTypeWeek = "WEEK"
27923
27924	// QuotaPeriodTypeMonth is a QuotaPeriodType enum value
27925	QuotaPeriodTypeMonth = "MONTH"
27926)
27927
27928// QuotaPeriodType_Values returns all elements of the QuotaPeriodType enum
27929func QuotaPeriodType_Values() []string {
27930	return []string{
27931		QuotaPeriodTypeDay,
27932		QuotaPeriodTypeWeek,
27933		QuotaPeriodTypeMonth,
27934	}
27935}
27936
27937const (
27938	// SecurityPolicyTls10 is a SecurityPolicy enum value
27939	SecurityPolicyTls10 = "TLS_1_0"
27940
27941	// SecurityPolicyTls12 is a SecurityPolicy enum value
27942	SecurityPolicyTls12 = "TLS_1_2"
27943)
27944
27945// SecurityPolicy_Values returns all elements of the SecurityPolicy enum
27946func SecurityPolicy_Values() []string {
27947	return []string{
27948		SecurityPolicyTls10,
27949		SecurityPolicyTls12,
27950	}
27951}
27952
27953const (
27954	// UnauthorizedCacheControlHeaderStrategyFailWith403 is a UnauthorizedCacheControlHeaderStrategy enum value
27955	UnauthorizedCacheControlHeaderStrategyFailWith403 = "FAIL_WITH_403"
27956
27957	// UnauthorizedCacheControlHeaderStrategySucceedWithResponseHeader is a UnauthorizedCacheControlHeaderStrategy enum value
27958	UnauthorizedCacheControlHeaderStrategySucceedWithResponseHeader = "SUCCEED_WITH_RESPONSE_HEADER"
27959
27960	// UnauthorizedCacheControlHeaderStrategySucceedWithoutResponseHeader is a UnauthorizedCacheControlHeaderStrategy enum value
27961	UnauthorizedCacheControlHeaderStrategySucceedWithoutResponseHeader = "SUCCEED_WITHOUT_RESPONSE_HEADER"
27962)
27963
27964// UnauthorizedCacheControlHeaderStrategy_Values returns all elements of the UnauthorizedCacheControlHeaderStrategy enum
27965func UnauthorizedCacheControlHeaderStrategy_Values() []string {
27966	return []string{
27967		UnauthorizedCacheControlHeaderStrategyFailWith403,
27968		UnauthorizedCacheControlHeaderStrategySucceedWithResponseHeader,
27969		UnauthorizedCacheControlHeaderStrategySucceedWithoutResponseHeader,
27970	}
27971}
27972
27973const (
27974	// VpcLinkStatusAvailable is a VpcLinkStatus enum value
27975	VpcLinkStatusAvailable = "AVAILABLE"
27976
27977	// VpcLinkStatusPending is a VpcLinkStatus enum value
27978	VpcLinkStatusPending = "PENDING"
27979
27980	// VpcLinkStatusDeleting is a VpcLinkStatus enum value
27981	VpcLinkStatusDeleting = "DELETING"
27982
27983	// VpcLinkStatusFailed is a VpcLinkStatus enum value
27984	VpcLinkStatusFailed = "FAILED"
27985)
27986
27987// VpcLinkStatus_Values returns all elements of the VpcLinkStatus enum
27988func VpcLinkStatus_Values() []string {
27989	return []string{
27990		VpcLinkStatusAvailable,
27991		VpcLinkStatusPending,
27992		VpcLinkStatusDeleting,
27993		VpcLinkStatusFailed,
27994	}
27995}
27996