1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package serverlessapplicationrepository
4
5import (
6	"fmt"
7
8	"github.com/aws/aws-sdk-go/aws"
9	"github.com/aws/aws-sdk-go/aws/awsutil"
10	"github.com/aws/aws-sdk-go/aws/request"
11	"github.com/aws/aws-sdk-go/private/protocol"
12	"github.com/aws/aws-sdk-go/private/protocol/restjson"
13)
14
15const opCreateApplication = "CreateApplication"
16
17// CreateApplicationRequest generates a "aws/request.Request" representing the
18// client's request for the CreateApplication operation. The "output" return
19// value will be populated with the request's response once the request completes
20// successfully.
21//
22// Use "Send" method on the returned Request to send the API call to the service.
23// the "output" return value is not valid until after Send returns without error.
24//
25// See CreateApplication for more information on using the CreateApplication
26// API call, and error handling.
27//
28// This method is useful when you want to inject custom logic or configuration
29// into the SDK's request lifecycle. Such as custom headers, or retry logic.
30//
31//
32//    // Example sending a request using the CreateApplicationRequest method.
33//    req, resp := client.CreateApplicationRequest(params)
34//
35//    err := req.Send()
36//    if err == nil { // resp is now filled
37//        fmt.Println(resp)
38//    }
39//
40// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateApplication
41func (c *ServerlessApplicationRepository) CreateApplicationRequest(input *CreateApplicationRequest) (req *request.Request, output *CreateApplicationOutput) {
42	op := &request.Operation{
43		Name:       opCreateApplication,
44		HTTPMethod: "POST",
45		HTTPPath:   "/applications",
46	}
47
48	if input == nil {
49		input = &CreateApplicationRequest{}
50	}
51
52	output = &CreateApplicationOutput{}
53	req = c.newRequest(op, input, output)
54	return
55}
56
57// CreateApplication API operation for AWSServerlessApplicationRepository.
58//
59// Creates an application, optionally including an AWS SAM file to create the
60// first application version in the same call.
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 AWSServerlessApplicationRepository's
67// API operation CreateApplication for usage and error information.
68//
69// Returned Error Codes:
70//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
71//   The client is sending more than the allowed number of requests per unit of
72//   time.
73//
74//   * ErrCodeBadRequestException "BadRequestException"
75//   One of the parameters in the request is invalid.
76//
77//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
78//   The AWS Serverless Application Repository service encountered an internal
79//   error.
80//
81//   * ErrCodeConflictException "ConflictException"
82//   The resource already exists.
83//
84//   * ErrCodeForbiddenException "ForbiddenException"
85//   The client is not authenticated.
86//
87// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateApplication
88func (c *ServerlessApplicationRepository) CreateApplication(input *CreateApplicationRequest) (*CreateApplicationOutput, error) {
89	req, out := c.CreateApplicationRequest(input)
90	return out, req.Send()
91}
92
93// CreateApplicationWithContext is the same as CreateApplication with the addition of
94// the ability to pass a context and additional request options.
95//
96// See CreateApplication for details on how to use this API operation.
97//
98// The context must be non-nil and will be used for request cancellation. If
99// the context is nil a panic will occur. In the future the SDK may create
100// sub-contexts for http.Requests. See https://golang.org/pkg/context/
101// for more information on using Contexts.
102func (c *ServerlessApplicationRepository) CreateApplicationWithContext(ctx aws.Context, input *CreateApplicationRequest, opts ...request.Option) (*CreateApplicationOutput, error) {
103	req, out := c.CreateApplicationRequest(input)
104	req.SetContext(ctx)
105	req.ApplyOptions(opts...)
106	return out, req.Send()
107}
108
109const opCreateApplicationVersion = "CreateApplicationVersion"
110
111// CreateApplicationVersionRequest generates a "aws/request.Request" representing the
112// client's request for the CreateApplicationVersion operation. The "output" return
113// value will be populated with the request's response once the request completes
114// successfully.
115//
116// Use "Send" method on the returned Request to send the API call to the service.
117// the "output" return value is not valid until after Send returns without error.
118//
119// See CreateApplicationVersion for more information on using the CreateApplicationVersion
120// API call, and error handling.
121//
122// This method is useful when you want to inject custom logic or configuration
123// into the SDK's request lifecycle. Such as custom headers, or retry logic.
124//
125//
126//    // Example sending a request using the CreateApplicationVersionRequest method.
127//    req, resp := client.CreateApplicationVersionRequest(params)
128//
129//    err := req.Send()
130//    if err == nil { // resp is now filled
131//        fmt.Println(resp)
132//    }
133//
134// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateApplicationVersion
135func (c *ServerlessApplicationRepository) CreateApplicationVersionRequest(input *CreateApplicationVersionRequest) (req *request.Request, output *CreateApplicationVersionOutput) {
136	op := &request.Operation{
137		Name:       opCreateApplicationVersion,
138		HTTPMethod: "PUT",
139		HTTPPath:   "/applications/{applicationId}/versions/{semanticVersion}",
140	}
141
142	if input == nil {
143		input = &CreateApplicationVersionRequest{}
144	}
145
146	output = &CreateApplicationVersionOutput{}
147	req = c.newRequest(op, input, output)
148	return
149}
150
151// CreateApplicationVersion API operation for AWSServerlessApplicationRepository.
152//
153// Creates an application version.
154//
155// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
156// with awserr.Error's Code and Message methods to get detailed information about
157// the error.
158//
159// See the AWS API reference guide for AWSServerlessApplicationRepository's
160// API operation CreateApplicationVersion for usage and error information.
161//
162// Returned Error Codes:
163//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
164//   The client is sending more than the allowed number of requests per unit of
165//   time.
166//
167//   * ErrCodeBadRequestException "BadRequestException"
168//   One of the parameters in the request is invalid.
169//
170//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
171//   The AWS Serverless Application Repository service encountered an internal
172//   error.
173//
174//   * ErrCodeConflictException "ConflictException"
175//   The resource already exists.
176//
177//   * ErrCodeForbiddenException "ForbiddenException"
178//   The client is not authenticated.
179//
180// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateApplicationVersion
181func (c *ServerlessApplicationRepository) CreateApplicationVersion(input *CreateApplicationVersionRequest) (*CreateApplicationVersionOutput, error) {
182	req, out := c.CreateApplicationVersionRequest(input)
183	return out, req.Send()
184}
185
186// CreateApplicationVersionWithContext is the same as CreateApplicationVersion with the addition of
187// the ability to pass a context and additional request options.
188//
189// See CreateApplicationVersion for details on how to use this API operation.
190//
191// The context must be non-nil and will be used for request cancellation. If
192// the context is nil a panic will occur. In the future the SDK may create
193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
194// for more information on using Contexts.
195func (c *ServerlessApplicationRepository) CreateApplicationVersionWithContext(ctx aws.Context, input *CreateApplicationVersionRequest, opts ...request.Option) (*CreateApplicationVersionOutput, error) {
196	req, out := c.CreateApplicationVersionRequest(input)
197	req.SetContext(ctx)
198	req.ApplyOptions(opts...)
199	return out, req.Send()
200}
201
202const opCreateCloudFormationChangeSet = "CreateCloudFormationChangeSet"
203
204// CreateCloudFormationChangeSetRequest generates a "aws/request.Request" representing the
205// client's request for the CreateCloudFormationChangeSet operation. The "output" return
206// value will be populated with the request's response once the request completes
207// successfully.
208//
209// Use "Send" method on the returned Request to send the API call to the service.
210// the "output" return value is not valid until after Send returns without error.
211//
212// See CreateCloudFormationChangeSet for more information on using the CreateCloudFormationChangeSet
213// API call, and error handling.
214//
215// This method is useful when you want to inject custom logic or configuration
216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
217//
218//
219//    // Example sending a request using the CreateCloudFormationChangeSetRequest method.
220//    req, resp := client.CreateCloudFormationChangeSetRequest(params)
221//
222//    err := req.Send()
223//    if err == nil { // resp is now filled
224//        fmt.Println(resp)
225//    }
226//
227// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateCloudFormationChangeSet
228func (c *ServerlessApplicationRepository) CreateCloudFormationChangeSetRequest(input *CreateCloudFormationChangeSetRequest) (req *request.Request, output *CreateCloudFormationChangeSetOutput) {
229	op := &request.Operation{
230		Name:       opCreateCloudFormationChangeSet,
231		HTTPMethod: "POST",
232		HTTPPath:   "/applications/{applicationId}/changesets",
233	}
234
235	if input == nil {
236		input = &CreateCloudFormationChangeSetRequest{}
237	}
238
239	output = &CreateCloudFormationChangeSetOutput{}
240	req = c.newRequest(op, input, output)
241	return
242}
243
244// CreateCloudFormationChangeSet API operation for AWSServerlessApplicationRepository.
245//
246// Creates an AWS CloudFormation change set for the given application.
247//
248// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
249// with awserr.Error's Code and Message methods to get detailed information about
250// the error.
251//
252// See the AWS API reference guide for AWSServerlessApplicationRepository's
253// API operation CreateCloudFormationChangeSet for usage and error information.
254//
255// Returned Error Codes:
256//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
257//   The client is sending more than the allowed number of requests per unit of
258//   time.
259//
260//   * ErrCodeBadRequestException "BadRequestException"
261//   One of the parameters in the request is invalid.
262//
263//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
264//   The AWS Serverless Application Repository service encountered an internal
265//   error.
266//
267//   * ErrCodeForbiddenException "ForbiddenException"
268//   The client is not authenticated.
269//
270// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateCloudFormationChangeSet
271func (c *ServerlessApplicationRepository) CreateCloudFormationChangeSet(input *CreateCloudFormationChangeSetRequest) (*CreateCloudFormationChangeSetOutput, error) {
272	req, out := c.CreateCloudFormationChangeSetRequest(input)
273	return out, req.Send()
274}
275
276// CreateCloudFormationChangeSetWithContext is the same as CreateCloudFormationChangeSet with the addition of
277// the ability to pass a context and additional request options.
278//
279// See CreateCloudFormationChangeSet for details on how to use this API operation.
280//
281// The context must be non-nil and will be used for request cancellation. If
282// the context is nil a panic will occur. In the future the SDK may create
283// sub-contexts for http.Requests. See https://golang.org/pkg/context/
284// for more information on using Contexts.
285func (c *ServerlessApplicationRepository) CreateCloudFormationChangeSetWithContext(ctx aws.Context, input *CreateCloudFormationChangeSetRequest, opts ...request.Option) (*CreateCloudFormationChangeSetOutput, error) {
286	req, out := c.CreateCloudFormationChangeSetRequest(input)
287	req.SetContext(ctx)
288	req.ApplyOptions(opts...)
289	return out, req.Send()
290}
291
292const opCreateCloudFormationTemplate = "CreateCloudFormationTemplate"
293
294// CreateCloudFormationTemplateRequest generates a "aws/request.Request" representing the
295// client's request for the CreateCloudFormationTemplate operation. The "output" return
296// value will be populated with the request's response once the request completes
297// successfully.
298//
299// Use "Send" method on the returned Request to send the API call to the service.
300// the "output" return value is not valid until after Send returns without error.
301//
302// See CreateCloudFormationTemplate for more information on using the CreateCloudFormationTemplate
303// API call, and error handling.
304//
305// This method is useful when you want to inject custom logic or configuration
306// into the SDK's request lifecycle. Such as custom headers, or retry logic.
307//
308//
309//    // Example sending a request using the CreateCloudFormationTemplateRequest method.
310//    req, resp := client.CreateCloudFormationTemplateRequest(params)
311//
312//    err := req.Send()
313//    if err == nil { // resp is now filled
314//        fmt.Println(resp)
315//    }
316//
317// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateCloudFormationTemplate
318func (c *ServerlessApplicationRepository) CreateCloudFormationTemplateRequest(input *CreateCloudFormationTemplateInput) (req *request.Request, output *CreateCloudFormationTemplateOutput) {
319	op := &request.Operation{
320		Name:       opCreateCloudFormationTemplate,
321		HTTPMethod: "POST",
322		HTTPPath:   "/applications/{applicationId}/templates",
323	}
324
325	if input == nil {
326		input = &CreateCloudFormationTemplateInput{}
327	}
328
329	output = &CreateCloudFormationTemplateOutput{}
330	req = c.newRequest(op, input, output)
331	return
332}
333
334// CreateCloudFormationTemplate API operation for AWSServerlessApplicationRepository.
335//
336// Creates an AWS CloudFormation template.
337//
338// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
339// with awserr.Error's Code and Message methods to get detailed information about
340// the error.
341//
342// See the AWS API reference guide for AWSServerlessApplicationRepository's
343// API operation CreateCloudFormationTemplate for usage and error information.
344//
345// Returned Error Codes:
346//   * ErrCodeNotFoundException "NotFoundException"
347//   The resource (for example, an access policy statement) specified in the request
348//   doesn't exist.
349//
350//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
351//   The client is sending more than the allowed number of requests per unit of
352//   time.
353//
354//   * ErrCodeBadRequestException "BadRequestException"
355//   One of the parameters in the request is invalid.
356//
357//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
358//   The AWS Serverless Application Repository service encountered an internal
359//   error.
360//
361//   * ErrCodeForbiddenException "ForbiddenException"
362//   The client is not authenticated.
363//
364// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateCloudFormationTemplate
365func (c *ServerlessApplicationRepository) CreateCloudFormationTemplate(input *CreateCloudFormationTemplateInput) (*CreateCloudFormationTemplateOutput, error) {
366	req, out := c.CreateCloudFormationTemplateRequest(input)
367	return out, req.Send()
368}
369
370// CreateCloudFormationTemplateWithContext is the same as CreateCloudFormationTemplate with the addition of
371// the ability to pass a context and additional request options.
372//
373// See CreateCloudFormationTemplate for details on how to use this API operation.
374//
375// The context must be non-nil and will be used for request cancellation. If
376// the context is nil a panic will occur. In the future the SDK may create
377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
378// for more information on using Contexts.
379func (c *ServerlessApplicationRepository) CreateCloudFormationTemplateWithContext(ctx aws.Context, input *CreateCloudFormationTemplateInput, opts ...request.Option) (*CreateCloudFormationTemplateOutput, error) {
380	req, out := c.CreateCloudFormationTemplateRequest(input)
381	req.SetContext(ctx)
382	req.ApplyOptions(opts...)
383	return out, req.Send()
384}
385
386const opDeleteApplication = "DeleteApplication"
387
388// DeleteApplicationRequest generates a "aws/request.Request" representing the
389// client's request for the DeleteApplication operation. The "output" return
390// value will be populated with the request's response once the request completes
391// successfully.
392//
393// Use "Send" method on the returned Request to send the API call to the service.
394// the "output" return value is not valid until after Send returns without error.
395//
396// See DeleteApplication for more information on using the DeleteApplication
397// API call, and error handling.
398//
399// This method is useful when you want to inject custom logic or configuration
400// into the SDK's request lifecycle. Such as custom headers, or retry logic.
401//
402//
403//    // Example sending a request using the DeleteApplicationRequest method.
404//    req, resp := client.DeleteApplicationRequest(params)
405//
406//    err := req.Send()
407//    if err == nil { // resp is now filled
408//        fmt.Println(resp)
409//    }
410//
411// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/DeleteApplication
412func (c *ServerlessApplicationRepository) DeleteApplicationRequest(input *DeleteApplicationInput) (req *request.Request, output *DeleteApplicationOutput) {
413	op := &request.Operation{
414		Name:       opDeleteApplication,
415		HTTPMethod: "DELETE",
416		HTTPPath:   "/applications/{applicationId}",
417	}
418
419	if input == nil {
420		input = &DeleteApplicationInput{}
421	}
422
423	output = &DeleteApplicationOutput{}
424	req = c.newRequest(op, input, output)
425	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
426	return
427}
428
429// DeleteApplication API operation for AWSServerlessApplicationRepository.
430//
431// Deletes the specified application.
432//
433// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
434// with awserr.Error's Code and Message methods to get detailed information about
435// the error.
436//
437// See the AWS API reference guide for AWSServerlessApplicationRepository's
438// API operation DeleteApplication for usage and error information.
439//
440// Returned Error Codes:
441//   * ErrCodeBadRequestException "BadRequestException"
442//   One of the parameters in the request is invalid.
443//
444//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
445//   The AWS Serverless Application Repository service encountered an internal
446//   error.
447//
448//   * ErrCodeForbiddenException "ForbiddenException"
449//   The client is not authenticated.
450//
451//   * ErrCodeNotFoundException "NotFoundException"
452//   The resource (for example, an access policy statement) specified in the request
453//   doesn't exist.
454//
455//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
456//   The client is sending more than the allowed number of requests per unit of
457//   time.
458//
459//   * ErrCodeConflictException "ConflictException"
460//   The resource already exists.
461//
462// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/DeleteApplication
463func (c *ServerlessApplicationRepository) DeleteApplication(input *DeleteApplicationInput) (*DeleteApplicationOutput, error) {
464	req, out := c.DeleteApplicationRequest(input)
465	return out, req.Send()
466}
467
468// DeleteApplicationWithContext is the same as DeleteApplication with the addition of
469// the ability to pass a context and additional request options.
470//
471// See DeleteApplication for details on how to use this API operation.
472//
473// The context must be non-nil and will be used for request cancellation. If
474// the context is nil a panic will occur. In the future the SDK may create
475// sub-contexts for http.Requests. See https://golang.org/pkg/context/
476// for more information on using Contexts.
477func (c *ServerlessApplicationRepository) DeleteApplicationWithContext(ctx aws.Context, input *DeleteApplicationInput, opts ...request.Option) (*DeleteApplicationOutput, error) {
478	req, out := c.DeleteApplicationRequest(input)
479	req.SetContext(ctx)
480	req.ApplyOptions(opts...)
481	return out, req.Send()
482}
483
484const opGetApplication = "GetApplication"
485
486// GetApplicationRequest generates a "aws/request.Request" representing the
487// client's request for the GetApplication operation. The "output" return
488// value will be populated with the request's response once the request completes
489// successfully.
490//
491// Use "Send" method on the returned Request to send the API call to the service.
492// the "output" return value is not valid until after Send returns without error.
493//
494// See GetApplication for more information on using the GetApplication
495// API call, and error handling.
496//
497// This method is useful when you want to inject custom logic or configuration
498// into the SDK's request lifecycle. Such as custom headers, or retry logic.
499//
500//
501//    // Example sending a request using the GetApplicationRequest method.
502//    req, resp := client.GetApplicationRequest(params)
503//
504//    err := req.Send()
505//    if err == nil { // resp is now filled
506//        fmt.Println(resp)
507//    }
508//
509// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/GetApplication
510func (c *ServerlessApplicationRepository) GetApplicationRequest(input *GetApplicationInput) (req *request.Request, output *GetApplicationOutput) {
511	op := &request.Operation{
512		Name:       opGetApplication,
513		HTTPMethod: "GET",
514		HTTPPath:   "/applications/{applicationId}",
515	}
516
517	if input == nil {
518		input = &GetApplicationInput{}
519	}
520
521	output = &GetApplicationOutput{}
522	req = c.newRequest(op, input, output)
523	return
524}
525
526// GetApplication API operation for AWSServerlessApplicationRepository.
527//
528// Gets the specified application.
529//
530// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
531// with awserr.Error's Code and Message methods to get detailed information about
532// the error.
533//
534// See the AWS API reference guide for AWSServerlessApplicationRepository's
535// API operation GetApplication for usage and error information.
536//
537// Returned Error Codes:
538//   * ErrCodeNotFoundException "NotFoundException"
539//   The resource (for example, an access policy statement) specified in the request
540//   doesn't exist.
541//
542//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
543//   The client is sending more than the allowed number of requests per unit of
544//   time.
545//
546//   * ErrCodeBadRequestException "BadRequestException"
547//   One of the parameters in the request is invalid.
548//
549//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
550//   The AWS Serverless Application Repository service encountered an internal
551//   error.
552//
553//   * ErrCodeForbiddenException "ForbiddenException"
554//   The client is not authenticated.
555//
556// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/GetApplication
557func (c *ServerlessApplicationRepository) GetApplication(input *GetApplicationInput) (*GetApplicationOutput, error) {
558	req, out := c.GetApplicationRequest(input)
559	return out, req.Send()
560}
561
562// GetApplicationWithContext is the same as GetApplication with the addition of
563// the ability to pass a context and additional request options.
564//
565// See GetApplication for details on how to use this API operation.
566//
567// The context must be non-nil and will be used for request cancellation. If
568// the context is nil a panic will occur. In the future the SDK may create
569// sub-contexts for http.Requests. See https://golang.org/pkg/context/
570// for more information on using Contexts.
571func (c *ServerlessApplicationRepository) GetApplicationWithContext(ctx aws.Context, input *GetApplicationInput, opts ...request.Option) (*GetApplicationOutput, error) {
572	req, out := c.GetApplicationRequest(input)
573	req.SetContext(ctx)
574	req.ApplyOptions(opts...)
575	return out, req.Send()
576}
577
578const opGetApplicationPolicy = "GetApplicationPolicy"
579
580// GetApplicationPolicyRequest generates a "aws/request.Request" representing the
581// client's request for the GetApplicationPolicy operation. The "output" return
582// value will be populated with the request's response once the request completes
583// successfully.
584//
585// Use "Send" method on the returned Request to send the API call to the service.
586// the "output" return value is not valid until after Send returns without error.
587//
588// See GetApplicationPolicy for more information on using the GetApplicationPolicy
589// API call, and error handling.
590//
591// This method is useful when you want to inject custom logic or configuration
592// into the SDK's request lifecycle. Such as custom headers, or retry logic.
593//
594//
595//    // Example sending a request using the GetApplicationPolicyRequest method.
596//    req, resp := client.GetApplicationPolicyRequest(params)
597//
598//    err := req.Send()
599//    if err == nil { // resp is now filled
600//        fmt.Println(resp)
601//    }
602//
603// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/GetApplicationPolicy
604func (c *ServerlessApplicationRepository) GetApplicationPolicyRequest(input *GetApplicationPolicyInput) (req *request.Request, output *GetApplicationPolicyOutput) {
605	op := &request.Operation{
606		Name:       opGetApplicationPolicy,
607		HTTPMethod: "GET",
608		HTTPPath:   "/applications/{applicationId}/policy",
609	}
610
611	if input == nil {
612		input = &GetApplicationPolicyInput{}
613	}
614
615	output = &GetApplicationPolicyOutput{}
616	req = c.newRequest(op, input, output)
617	return
618}
619
620// GetApplicationPolicy API operation for AWSServerlessApplicationRepository.
621//
622// Retrieves the policy for the application.
623//
624// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
625// with awserr.Error's Code and Message methods to get detailed information about
626// the error.
627//
628// See the AWS API reference guide for AWSServerlessApplicationRepository's
629// API operation GetApplicationPolicy for usage and error information.
630//
631// Returned Error Codes:
632//   * ErrCodeNotFoundException "NotFoundException"
633//   The resource (for example, an access policy statement) specified in the request
634//   doesn't exist.
635//
636//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
637//   The client is sending more than the allowed number of requests per unit of
638//   time.
639//
640//   * ErrCodeBadRequestException "BadRequestException"
641//   One of the parameters in the request is invalid.
642//
643//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
644//   The AWS Serverless Application Repository service encountered an internal
645//   error.
646//
647//   * ErrCodeForbiddenException "ForbiddenException"
648//   The client is not authenticated.
649//
650// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/GetApplicationPolicy
651func (c *ServerlessApplicationRepository) GetApplicationPolicy(input *GetApplicationPolicyInput) (*GetApplicationPolicyOutput, error) {
652	req, out := c.GetApplicationPolicyRequest(input)
653	return out, req.Send()
654}
655
656// GetApplicationPolicyWithContext is the same as GetApplicationPolicy with the addition of
657// the ability to pass a context and additional request options.
658//
659// See GetApplicationPolicy for details on how to use this API operation.
660//
661// The context must be non-nil and will be used for request cancellation. If
662// the context is nil a panic will occur. In the future the SDK may create
663// sub-contexts for http.Requests. See https://golang.org/pkg/context/
664// for more information on using Contexts.
665func (c *ServerlessApplicationRepository) GetApplicationPolicyWithContext(ctx aws.Context, input *GetApplicationPolicyInput, opts ...request.Option) (*GetApplicationPolicyOutput, error) {
666	req, out := c.GetApplicationPolicyRequest(input)
667	req.SetContext(ctx)
668	req.ApplyOptions(opts...)
669	return out, req.Send()
670}
671
672const opGetCloudFormationTemplate = "GetCloudFormationTemplate"
673
674// GetCloudFormationTemplateRequest generates a "aws/request.Request" representing the
675// client's request for the GetCloudFormationTemplate operation. The "output" return
676// value will be populated with the request's response once the request completes
677// successfully.
678//
679// Use "Send" method on the returned Request to send the API call to the service.
680// the "output" return value is not valid until after Send returns without error.
681//
682// See GetCloudFormationTemplate for more information on using the GetCloudFormationTemplate
683// API call, and error handling.
684//
685// This method is useful when you want to inject custom logic or configuration
686// into the SDK's request lifecycle. Such as custom headers, or retry logic.
687//
688//
689//    // Example sending a request using the GetCloudFormationTemplateRequest method.
690//    req, resp := client.GetCloudFormationTemplateRequest(params)
691//
692//    err := req.Send()
693//    if err == nil { // resp is now filled
694//        fmt.Println(resp)
695//    }
696//
697// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/GetCloudFormationTemplate
698func (c *ServerlessApplicationRepository) GetCloudFormationTemplateRequest(input *GetCloudFormationTemplateInput) (req *request.Request, output *GetCloudFormationTemplateOutput) {
699	op := &request.Operation{
700		Name:       opGetCloudFormationTemplate,
701		HTTPMethod: "GET",
702		HTTPPath:   "/applications/{applicationId}/templates/{templateId}",
703	}
704
705	if input == nil {
706		input = &GetCloudFormationTemplateInput{}
707	}
708
709	output = &GetCloudFormationTemplateOutput{}
710	req = c.newRequest(op, input, output)
711	return
712}
713
714// GetCloudFormationTemplate API operation for AWSServerlessApplicationRepository.
715//
716// Gets the specified AWS CloudFormation template.
717//
718// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
719// with awserr.Error's Code and Message methods to get detailed information about
720// the error.
721//
722// See the AWS API reference guide for AWSServerlessApplicationRepository's
723// API operation GetCloudFormationTemplate for usage and error information.
724//
725// Returned Error Codes:
726//   * ErrCodeNotFoundException "NotFoundException"
727//   The resource (for example, an access policy statement) specified in the request
728//   doesn't exist.
729//
730//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
731//   The client is sending more than the allowed number of requests per unit of
732//   time.
733//
734//   * ErrCodeBadRequestException "BadRequestException"
735//   One of the parameters in the request is invalid.
736//
737//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
738//   The AWS Serverless Application Repository service encountered an internal
739//   error.
740//
741//   * ErrCodeForbiddenException "ForbiddenException"
742//   The client is not authenticated.
743//
744// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/GetCloudFormationTemplate
745func (c *ServerlessApplicationRepository) GetCloudFormationTemplate(input *GetCloudFormationTemplateInput) (*GetCloudFormationTemplateOutput, error) {
746	req, out := c.GetCloudFormationTemplateRequest(input)
747	return out, req.Send()
748}
749
750// GetCloudFormationTemplateWithContext is the same as GetCloudFormationTemplate with the addition of
751// the ability to pass a context and additional request options.
752//
753// See GetCloudFormationTemplate for details on how to use this API operation.
754//
755// The context must be non-nil and will be used for request cancellation. If
756// the context is nil a panic will occur. In the future the SDK may create
757// sub-contexts for http.Requests. See https://golang.org/pkg/context/
758// for more information on using Contexts.
759func (c *ServerlessApplicationRepository) GetCloudFormationTemplateWithContext(ctx aws.Context, input *GetCloudFormationTemplateInput, opts ...request.Option) (*GetCloudFormationTemplateOutput, error) {
760	req, out := c.GetCloudFormationTemplateRequest(input)
761	req.SetContext(ctx)
762	req.ApplyOptions(opts...)
763	return out, req.Send()
764}
765
766const opListApplicationDependencies = "ListApplicationDependencies"
767
768// ListApplicationDependenciesRequest generates a "aws/request.Request" representing the
769// client's request for the ListApplicationDependencies operation. The "output" return
770// value will be populated with the request's response once the request completes
771// successfully.
772//
773// Use "Send" method on the returned Request to send the API call to the service.
774// the "output" return value is not valid until after Send returns without error.
775//
776// See ListApplicationDependencies for more information on using the ListApplicationDependencies
777// API call, and error handling.
778//
779// This method is useful when you want to inject custom logic or configuration
780// into the SDK's request lifecycle. Such as custom headers, or retry logic.
781//
782//
783//    // Example sending a request using the ListApplicationDependenciesRequest method.
784//    req, resp := client.ListApplicationDependenciesRequest(params)
785//
786//    err := req.Send()
787//    if err == nil { // resp is now filled
788//        fmt.Println(resp)
789//    }
790//
791// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/ListApplicationDependencies
792func (c *ServerlessApplicationRepository) ListApplicationDependenciesRequest(input *ListApplicationDependenciesInput) (req *request.Request, output *ListApplicationDependenciesOutput) {
793	op := &request.Operation{
794		Name:       opListApplicationDependencies,
795		HTTPMethod: "GET",
796		HTTPPath:   "/applications/{applicationId}/dependencies",
797		Paginator: &request.Paginator{
798			InputTokens:     []string{"NextToken"},
799			OutputTokens:    []string{"NextToken"},
800			LimitToken:      "MaxItems",
801			TruncationToken: "",
802		},
803	}
804
805	if input == nil {
806		input = &ListApplicationDependenciesInput{}
807	}
808
809	output = &ListApplicationDependenciesOutput{}
810	req = c.newRequest(op, input, output)
811	return
812}
813
814// ListApplicationDependencies API operation for AWSServerlessApplicationRepository.
815//
816// Retrieves the list of applications nested in the containing application.
817//
818// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
819// with awserr.Error's Code and Message methods to get detailed information about
820// the error.
821//
822// See the AWS API reference guide for AWSServerlessApplicationRepository's
823// API operation ListApplicationDependencies for usage and error information.
824//
825// Returned Error Codes:
826//   * ErrCodeNotFoundException "NotFoundException"
827//   The resource (for example, an access policy statement) specified in the request
828//   doesn't exist.
829//
830//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
831//   The client is sending more than the allowed number of requests per unit of
832//   time.
833//
834//   * ErrCodeBadRequestException "BadRequestException"
835//   One of the parameters in the request is invalid.
836//
837//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
838//   The AWS Serverless Application Repository service encountered an internal
839//   error.
840//
841//   * ErrCodeForbiddenException "ForbiddenException"
842//   The client is not authenticated.
843//
844// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/ListApplicationDependencies
845func (c *ServerlessApplicationRepository) ListApplicationDependencies(input *ListApplicationDependenciesInput) (*ListApplicationDependenciesOutput, error) {
846	req, out := c.ListApplicationDependenciesRequest(input)
847	return out, req.Send()
848}
849
850// ListApplicationDependenciesWithContext is the same as ListApplicationDependencies with the addition of
851// the ability to pass a context and additional request options.
852//
853// See ListApplicationDependencies for details on how to use this API operation.
854//
855// The context must be non-nil and will be used for request cancellation. If
856// the context is nil a panic will occur. In the future the SDK may create
857// sub-contexts for http.Requests. See https://golang.org/pkg/context/
858// for more information on using Contexts.
859func (c *ServerlessApplicationRepository) ListApplicationDependenciesWithContext(ctx aws.Context, input *ListApplicationDependenciesInput, opts ...request.Option) (*ListApplicationDependenciesOutput, error) {
860	req, out := c.ListApplicationDependenciesRequest(input)
861	req.SetContext(ctx)
862	req.ApplyOptions(opts...)
863	return out, req.Send()
864}
865
866// ListApplicationDependenciesPages iterates over the pages of a ListApplicationDependencies operation,
867// calling the "fn" function with the response data for each page. To stop
868// iterating, return false from the fn function.
869//
870// See ListApplicationDependencies method for more information on how to use this operation.
871//
872// Note: This operation can generate multiple requests to a service.
873//
874//    // Example iterating over at most 3 pages of a ListApplicationDependencies operation.
875//    pageNum := 0
876//    err := client.ListApplicationDependenciesPages(params,
877//        func(page *serverlessapplicationrepository.ListApplicationDependenciesOutput, lastPage bool) bool {
878//            pageNum++
879//            fmt.Println(page)
880//            return pageNum <= 3
881//        })
882//
883func (c *ServerlessApplicationRepository) ListApplicationDependenciesPages(input *ListApplicationDependenciesInput, fn func(*ListApplicationDependenciesOutput, bool) bool) error {
884	return c.ListApplicationDependenciesPagesWithContext(aws.BackgroundContext(), input, fn)
885}
886
887// ListApplicationDependenciesPagesWithContext same as ListApplicationDependenciesPages except
888// it takes a Context and allows setting request options on the pages.
889//
890// The context must be non-nil and will be used for request cancellation. If
891// the context is nil a panic will occur. In the future the SDK may create
892// sub-contexts for http.Requests. See https://golang.org/pkg/context/
893// for more information on using Contexts.
894func (c *ServerlessApplicationRepository) ListApplicationDependenciesPagesWithContext(ctx aws.Context, input *ListApplicationDependenciesInput, fn func(*ListApplicationDependenciesOutput, bool) bool, opts ...request.Option) error {
895	p := request.Pagination{
896		NewRequest: func() (*request.Request, error) {
897			var inCpy *ListApplicationDependenciesInput
898			if input != nil {
899				tmp := *input
900				inCpy = &tmp
901			}
902			req, _ := c.ListApplicationDependenciesRequest(inCpy)
903			req.SetContext(ctx)
904			req.ApplyOptions(opts...)
905			return req, nil
906		},
907	}
908
909	for p.Next() {
910		if !fn(p.Page().(*ListApplicationDependenciesOutput), !p.HasNextPage()) {
911			break
912		}
913	}
914
915	return p.Err()
916}
917
918const opListApplicationVersions = "ListApplicationVersions"
919
920// ListApplicationVersionsRequest generates a "aws/request.Request" representing the
921// client's request for the ListApplicationVersions operation. The "output" return
922// value will be populated with the request's response once the request completes
923// successfully.
924//
925// Use "Send" method on the returned Request to send the API call to the service.
926// the "output" return value is not valid until after Send returns without error.
927//
928// See ListApplicationVersions for more information on using the ListApplicationVersions
929// API call, and error handling.
930//
931// This method is useful when you want to inject custom logic or configuration
932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
933//
934//
935//    // Example sending a request using the ListApplicationVersionsRequest method.
936//    req, resp := client.ListApplicationVersionsRequest(params)
937//
938//    err := req.Send()
939//    if err == nil { // resp is now filled
940//        fmt.Println(resp)
941//    }
942//
943// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/ListApplicationVersions
944func (c *ServerlessApplicationRepository) ListApplicationVersionsRequest(input *ListApplicationVersionsInput) (req *request.Request, output *ListApplicationVersionsOutput) {
945	op := &request.Operation{
946		Name:       opListApplicationVersions,
947		HTTPMethod: "GET",
948		HTTPPath:   "/applications/{applicationId}/versions",
949		Paginator: &request.Paginator{
950			InputTokens:     []string{"NextToken"},
951			OutputTokens:    []string{"NextToken"},
952			LimitToken:      "MaxItems",
953			TruncationToken: "",
954		},
955	}
956
957	if input == nil {
958		input = &ListApplicationVersionsInput{}
959	}
960
961	output = &ListApplicationVersionsOutput{}
962	req = c.newRequest(op, input, output)
963	return
964}
965
966// ListApplicationVersions API operation for AWSServerlessApplicationRepository.
967//
968// Lists versions for the specified application.
969//
970// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
971// with awserr.Error's Code and Message methods to get detailed information about
972// the error.
973//
974// See the AWS API reference guide for AWSServerlessApplicationRepository's
975// API operation ListApplicationVersions for usage and error information.
976//
977// Returned Error Codes:
978//   * ErrCodeNotFoundException "NotFoundException"
979//   The resource (for example, an access policy statement) specified in the request
980//   doesn't exist.
981//
982//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
983//   The client is sending more than the allowed number of requests per unit of
984//   time.
985//
986//   * ErrCodeBadRequestException "BadRequestException"
987//   One of the parameters in the request is invalid.
988//
989//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
990//   The AWS Serverless Application Repository service encountered an internal
991//   error.
992//
993//   * ErrCodeForbiddenException "ForbiddenException"
994//   The client is not authenticated.
995//
996// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/ListApplicationVersions
997func (c *ServerlessApplicationRepository) ListApplicationVersions(input *ListApplicationVersionsInput) (*ListApplicationVersionsOutput, error) {
998	req, out := c.ListApplicationVersionsRequest(input)
999	return out, req.Send()
1000}
1001
1002// ListApplicationVersionsWithContext is the same as ListApplicationVersions with the addition of
1003// the ability to pass a context and additional request options.
1004//
1005// See ListApplicationVersions for details on how to use this API operation.
1006//
1007// The context must be non-nil and will be used for request cancellation. If
1008// the context is nil a panic will occur. In the future the SDK may create
1009// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1010// for more information on using Contexts.
1011func (c *ServerlessApplicationRepository) ListApplicationVersionsWithContext(ctx aws.Context, input *ListApplicationVersionsInput, opts ...request.Option) (*ListApplicationVersionsOutput, error) {
1012	req, out := c.ListApplicationVersionsRequest(input)
1013	req.SetContext(ctx)
1014	req.ApplyOptions(opts...)
1015	return out, req.Send()
1016}
1017
1018// ListApplicationVersionsPages iterates over the pages of a ListApplicationVersions operation,
1019// calling the "fn" function with the response data for each page. To stop
1020// iterating, return false from the fn function.
1021//
1022// See ListApplicationVersions method for more information on how to use this operation.
1023//
1024// Note: This operation can generate multiple requests to a service.
1025//
1026//    // Example iterating over at most 3 pages of a ListApplicationVersions operation.
1027//    pageNum := 0
1028//    err := client.ListApplicationVersionsPages(params,
1029//        func(page *serverlessapplicationrepository.ListApplicationVersionsOutput, lastPage bool) bool {
1030//            pageNum++
1031//            fmt.Println(page)
1032//            return pageNum <= 3
1033//        })
1034//
1035func (c *ServerlessApplicationRepository) ListApplicationVersionsPages(input *ListApplicationVersionsInput, fn func(*ListApplicationVersionsOutput, bool) bool) error {
1036	return c.ListApplicationVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
1037}
1038
1039// ListApplicationVersionsPagesWithContext same as ListApplicationVersionsPages except
1040// it takes a Context and allows setting request options on the pages.
1041//
1042// The context must be non-nil and will be used for request cancellation. If
1043// the context is nil a panic will occur. In the future the SDK may create
1044// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1045// for more information on using Contexts.
1046func (c *ServerlessApplicationRepository) ListApplicationVersionsPagesWithContext(ctx aws.Context, input *ListApplicationVersionsInput, fn func(*ListApplicationVersionsOutput, bool) bool, opts ...request.Option) error {
1047	p := request.Pagination{
1048		NewRequest: func() (*request.Request, error) {
1049			var inCpy *ListApplicationVersionsInput
1050			if input != nil {
1051				tmp := *input
1052				inCpy = &tmp
1053			}
1054			req, _ := c.ListApplicationVersionsRequest(inCpy)
1055			req.SetContext(ctx)
1056			req.ApplyOptions(opts...)
1057			return req, nil
1058		},
1059	}
1060
1061	for p.Next() {
1062		if !fn(p.Page().(*ListApplicationVersionsOutput), !p.HasNextPage()) {
1063			break
1064		}
1065	}
1066
1067	return p.Err()
1068}
1069
1070const opListApplications = "ListApplications"
1071
1072// ListApplicationsRequest generates a "aws/request.Request" representing the
1073// client's request for the ListApplications operation. The "output" return
1074// value will be populated with the request's response once the request completes
1075// successfully.
1076//
1077// Use "Send" method on the returned Request to send the API call to the service.
1078// the "output" return value is not valid until after Send returns without error.
1079//
1080// See ListApplications for more information on using the ListApplications
1081// API call, and error handling.
1082//
1083// This method is useful when you want to inject custom logic or configuration
1084// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1085//
1086//
1087//    // Example sending a request using the ListApplicationsRequest method.
1088//    req, resp := client.ListApplicationsRequest(params)
1089//
1090//    err := req.Send()
1091//    if err == nil { // resp is now filled
1092//        fmt.Println(resp)
1093//    }
1094//
1095// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/ListApplications
1096func (c *ServerlessApplicationRepository) ListApplicationsRequest(input *ListApplicationsInput) (req *request.Request, output *ListApplicationsOutput) {
1097	op := &request.Operation{
1098		Name:       opListApplications,
1099		HTTPMethod: "GET",
1100		HTTPPath:   "/applications",
1101		Paginator: &request.Paginator{
1102			InputTokens:     []string{"NextToken"},
1103			OutputTokens:    []string{"NextToken"},
1104			LimitToken:      "MaxItems",
1105			TruncationToken: "",
1106		},
1107	}
1108
1109	if input == nil {
1110		input = &ListApplicationsInput{}
1111	}
1112
1113	output = &ListApplicationsOutput{}
1114	req = c.newRequest(op, input, output)
1115	return
1116}
1117
1118// ListApplications API operation for AWSServerlessApplicationRepository.
1119//
1120// Lists applications owned by the requester.
1121//
1122// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1123// with awserr.Error's Code and Message methods to get detailed information about
1124// the error.
1125//
1126// See the AWS API reference guide for AWSServerlessApplicationRepository's
1127// API operation ListApplications for usage and error information.
1128//
1129// Returned Error Codes:
1130//   * ErrCodeNotFoundException "NotFoundException"
1131//   The resource (for example, an access policy statement) specified in the request
1132//   doesn't exist.
1133//
1134//   * ErrCodeBadRequestException "BadRequestException"
1135//   One of the parameters in the request is invalid.
1136//
1137//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1138//   The AWS Serverless Application Repository service encountered an internal
1139//   error.
1140//
1141//   * ErrCodeForbiddenException "ForbiddenException"
1142//   The client is not authenticated.
1143//
1144// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/ListApplications
1145func (c *ServerlessApplicationRepository) ListApplications(input *ListApplicationsInput) (*ListApplicationsOutput, error) {
1146	req, out := c.ListApplicationsRequest(input)
1147	return out, req.Send()
1148}
1149
1150// ListApplicationsWithContext is the same as ListApplications with the addition of
1151// the ability to pass a context and additional request options.
1152//
1153// See ListApplications for details on how to use this API operation.
1154//
1155// The context must be non-nil and will be used for request cancellation. If
1156// the context is nil a panic will occur. In the future the SDK may create
1157// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1158// for more information on using Contexts.
1159func (c *ServerlessApplicationRepository) ListApplicationsWithContext(ctx aws.Context, input *ListApplicationsInput, opts ...request.Option) (*ListApplicationsOutput, error) {
1160	req, out := c.ListApplicationsRequest(input)
1161	req.SetContext(ctx)
1162	req.ApplyOptions(opts...)
1163	return out, req.Send()
1164}
1165
1166// ListApplicationsPages iterates over the pages of a ListApplications operation,
1167// calling the "fn" function with the response data for each page. To stop
1168// iterating, return false from the fn function.
1169//
1170// See ListApplications method for more information on how to use this operation.
1171//
1172// Note: This operation can generate multiple requests to a service.
1173//
1174//    // Example iterating over at most 3 pages of a ListApplications operation.
1175//    pageNum := 0
1176//    err := client.ListApplicationsPages(params,
1177//        func(page *serverlessapplicationrepository.ListApplicationsOutput, lastPage bool) bool {
1178//            pageNum++
1179//            fmt.Println(page)
1180//            return pageNum <= 3
1181//        })
1182//
1183func (c *ServerlessApplicationRepository) ListApplicationsPages(input *ListApplicationsInput, fn func(*ListApplicationsOutput, bool) bool) error {
1184	return c.ListApplicationsPagesWithContext(aws.BackgroundContext(), input, fn)
1185}
1186
1187// ListApplicationsPagesWithContext same as ListApplicationsPages except
1188// it takes a Context and allows setting request options on the pages.
1189//
1190// The context must be non-nil and will be used for request cancellation. If
1191// the context is nil a panic will occur. In the future the SDK may create
1192// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1193// for more information on using Contexts.
1194func (c *ServerlessApplicationRepository) ListApplicationsPagesWithContext(ctx aws.Context, input *ListApplicationsInput, fn func(*ListApplicationsOutput, bool) bool, opts ...request.Option) error {
1195	p := request.Pagination{
1196		NewRequest: func() (*request.Request, error) {
1197			var inCpy *ListApplicationsInput
1198			if input != nil {
1199				tmp := *input
1200				inCpy = &tmp
1201			}
1202			req, _ := c.ListApplicationsRequest(inCpy)
1203			req.SetContext(ctx)
1204			req.ApplyOptions(opts...)
1205			return req, nil
1206		},
1207	}
1208
1209	for p.Next() {
1210		if !fn(p.Page().(*ListApplicationsOutput), !p.HasNextPage()) {
1211			break
1212		}
1213	}
1214
1215	return p.Err()
1216}
1217
1218const opPutApplicationPolicy = "PutApplicationPolicy"
1219
1220// PutApplicationPolicyRequest generates a "aws/request.Request" representing the
1221// client's request for the PutApplicationPolicy operation. The "output" return
1222// value will be populated with the request's response once the request completes
1223// successfully.
1224//
1225// Use "Send" method on the returned Request to send the API call to the service.
1226// the "output" return value is not valid until after Send returns without error.
1227//
1228// See PutApplicationPolicy for more information on using the PutApplicationPolicy
1229// API call, and error handling.
1230//
1231// This method is useful when you want to inject custom logic or configuration
1232// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1233//
1234//
1235//    // Example sending a request using the PutApplicationPolicyRequest method.
1236//    req, resp := client.PutApplicationPolicyRequest(params)
1237//
1238//    err := req.Send()
1239//    if err == nil { // resp is now filled
1240//        fmt.Println(resp)
1241//    }
1242//
1243// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/PutApplicationPolicy
1244func (c *ServerlessApplicationRepository) PutApplicationPolicyRequest(input *PutApplicationPolicyInput) (req *request.Request, output *PutApplicationPolicyOutput) {
1245	op := &request.Operation{
1246		Name:       opPutApplicationPolicy,
1247		HTTPMethod: "PUT",
1248		HTTPPath:   "/applications/{applicationId}/policy",
1249	}
1250
1251	if input == nil {
1252		input = &PutApplicationPolicyInput{}
1253	}
1254
1255	output = &PutApplicationPolicyOutput{}
1256	req = c.newRequest(op, input, output)
1257	return
1258}
1259
1260// PutApplicationPolicy API operation for AWSServerlessApplicationRepository.
1261//
1262// Sets the permission policy for an application. For the list of actions supported
1263// for this operation, see Application Permissions (https://docs.aws.amazon.com/serverlessrepo/latest/devguide/access-control-resource-based.html#application-permissions) .
1264//
1265// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1266// with awserr.Error's Code and Message methods to get detailed information about
1267// the error.
1268//
1269// See the AWS API reference guide for AWSServerlessApplicationRepository's
1270// API operation PutApplicationPolicy for usage and error information.
1271//
1272// Returned Error Codes:
1273//   * ErrCodeNotFoundException "NotFoundException"
1274//   The resource (for example, an access policy statement) specified in the request
1275//   doesn't exist.
1276//
1277//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1278//   The client is sending more than the allowed number of requests per unit of
1279//   time.
1280//
1281//   * ErrCodeBadRequestException "BadRequestException"
1282//   One of the parameters in the request is invalid.
1283//
1284//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1285//   The AWS Serverless Application Repository service encountered an internal
1286//   error.
1287//
1288//   * ErrCodeForbiddenException "ForbiddenException"
1289//   The client is not authenticated.
1290//
1291// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/PutApplicationPolicy
1292func (c *ServerlessApplicationRepository) PutApplicationPolicy(input *PutApplicationPolicyInput) (*PutApplicationPolicyOutput, error) {
1293	req, out := c.PutApplicationPolicyRequest(input)
1294	return out, req.Send()
1295}
1296
1297// PutApplicationPolicyWithContext is the same as PutApplicationPolicy with the addition of
1298// the ability to pass a context and additional request options.
1299//
1300// See PutApplicationPolicy for details on how to use this API operation.
1301//
1302// The context must be non-nil and will be used for request cancellation. If
1303// the context is nil a panic will occur. In the future the SDK may create
1304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1305// for more information on using Contexts.
1306func (c *ServerlessApplicationRepository) PutApplicationPolicyWithContext(ctx aws.Context, input *PutApplicationPolicyInput, opts ...request.Option) (*PutApplicationPolicyOutput, error) {
1307	req, out := c.PutApplicationPolicyRequest(input)
1308	req.SetContext(ctx)
1309	req.ApplyOptions(opts...)
1310	return out, req.Send()
1311}
1312
1313const opUpdateApplication = "UpdateApplication"
1314
1315// UpdateApplicationRequest generates a "aws/request.Request" representing the
1316// client's request for the UpdateApplication operation. The "output" return
1317// value will be populated with the request's response once the request completes
1318// successfully.
1319//
1320// Use "Send" method on the returned Request to send the API call to the service.
1321// the "output" return value is not valid until after Send returns without error.
1322//
1323// See UpdateApplication for more information on using the UpdateApplication
1324// API call, and error handling.
1325//
1326// This method is useful when you want to inject custom logic or configuration
1327// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1328//
1329//
1330//    // Example sending a request using the UpdateApplicationRequest method.
1331//    req, resp := client.UpdateApplicationRequest(params)
1332//
1333//    err := req.Send()
1334//    if err == nil { // resp is now filled
1335//        fmt.Println(resp)
1336//    }
1337//
1338// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/UpdateApplication
1339func (c *ServerlessApplicationRepository) UpdateApplicationRequest(input *UpdateApplicationRequest) (req *request.Request, output *UpdateApplicationOutput) {
1340	op := &request.Operation{
1341		Name:       opUpdateApplication,
1342		HTTPMethod: "PATCH",
1343		HTTPPath:   "/applications/{applicationId}",
1344	}
1345
1346	if input == nil {
1347		input = &UpdateApplicationRequest{}
1348	}
1349
1350	output = &UpdateApplicationOutput{}
1351	req = c.newRequest(op, input, output)
1352	return
1353}
1354
1355// UpdateApplication API operation for AWSServerlessApplicationRepository.
1356//
1357// Updates the specified application.
1358//
1359// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1360// with awserr.Error's Code and Message methods to get detailed information about
1361// the error.
1362//
1363// See the AWS API reference guide for AWSServerlessApplicationRepository's
1364// API operation UpdateApplication for usage and error information.
1365//
1366// Returned Error Codes:
1367//   * ErrCodeBadRequestException "BadRequestException"
1368//   One of the parameters in the request is invalid.
1369//
1370//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1371//   The AWS Serverless Application Repository service encountered an internal
1372//   error.
1373//
1374//   * ErrCodeForbiddenException "ForbiddenException"
1375//   The client is not authenticated.
1376//
1377//   * ErrCodeNotFoundException "NotFoundException"
1378//   The resource (for example, an access policy statement) specified in the request
1379//   doesn't exist.
1380//
1381//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1382//   The client is sending more than the allowed number of requests per unit of
1383//   time.
1384//
1385//   * ErrCodeConflictException "ConflictException"
1386//   The resource already exists.
1387//
1388// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/UpdateApplication
1389func (c *ServerlessApplicationRepository) UpdateApplication(input *UpdateApplicationRequest) (*UpdateApplicationOutput, error) {
1390	req, out := c.UpdateApplicationRequest(input)
1391	return out, req.Send()
1392}
1393
1394// UpdateApplicationWithContext is the same as UpdateApplication with the addition of
1395// the ability to pass a context and additional request options.
1396//
1397// See UpdateApplication for details on how to use this API operation.
1398//
1399// The context must be non-nil and will be used for request cancellation. If
1400// the context is nil a panic will occur. In the future the SDK may create
1401// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1402// for more information on using Contexts.
1403func (c *ServerlessApplicationRepository) UpdateApplicationWithContext(ctx aws.Context, input *UpdateApplicationRequest, opts ...request.Option) (*UpdateApplicationOutput, error) {
1404	req, out := c.UpdateApplicationRequest(input)
1405	req.SetContext(ctx)
1406	req.ApplyOptions(opts...)
1407	return out, req.Send()
1408}
1409
1410// A nested application summary.
1411type ApplicationDependencySummary struct {
1412	_ struct{} `type:"structure"`
1413
1414	// The Amazon Resource Name (ARN) of the nested application.
1415	//
1416	// ApplicationId is a required field
1417	ApplicationId *string `locationName:"applicationId" type:"string" required:"true"`
1418
1419	// The semantic version of the nested application.
1420	//
1421	// SemanticVersion is a required field
1422	SemanticVersion *string `locationName:"semanticVersion" type:"string" required:"true"`
1423}
1424
1425// String returns the string representation
1426func (s ApplicationDependencySummary) String() string {
1427	return awsutil.Prettify(s)
1428}
1429
1430// GoString returns the string representation
1431func (s ApplicationDependencySummary) GoString() string {
1432	return s.String()
1433}
1434
1435// SetApplicationId sets the ApplicationId field's value.
1436func (s *ApplicationDependencySummary) SetApplicationId(v string) *ApplicationDependencySummary {
1437	s.ApplicationId = &v
1438	return s
1439}
1440
1441// SetSemanticVersion sets the SemanticVersion field's value.
1442func (s *ApplicationDependencySummary) SetSemanticVersion(v string) *ApplicationDependencySummary {
1443	s.SemanticVersion = &v
1444	return s
1445}
1446
1447// Policy statement applied to the application.
1448type ApplicationPolicyStatement struct {
1449	_ struct{} `type:"structure"`
1450
1451	// For the list of actions supported for this operation, see Application Permissions
1452	// (https://docs.aws.amazon.com/serverlessrepo/latest/devguide/access-control-resource-based.html#application-permissions).
1453	//
1454	// Actions is a required field
1455	Actions []*string `locationName:"actions" type:"list" required:"true"`
1456
1457	// An array of AWS account IDs, or * to make the application public.
1458	//
1459	// Principals is a required field
1460	Principals []*string `locationName:"principals" type:"list" required:"true"`
1461
1462	// A unique ID for the statement.
1463	StatementId *string `locationName:"statementId" type:"string"`
1464}
1465
1466// String returns the string representation
1467func (s ApplicationPolicyStatement) String() string {
1468	return awsutil.Prettify(s)
1469}
1470
1471// GoString returns the string representation
1472func (s ApplicationPolicyStatement) GoString() string {
1473	return s.String()
1474}
1475
1476// Validate inspects the fields of the type to determine if they are valid.
1477func (s *ApplicationPolicyStatement) Validate() error {
1478	invalidParams := request.ErrInvalidParams{Context: "ApplicationPolicyStatement"}
1479	if s.Actions == nil {
1480		invalidParams.Add(request.NewErrParamRequired("Actions"))
1481	}
1482	if s.Principals == nil {
1483		invalidParams.Add(request.NewErrParamRequired("Principals"))
1484	}
1485
1486	if invalidParams.Len() > 0 {
1487		return invalidParams
1488	}
1489	return nil
1490}
1491
1492// SetActions sets the Actions field's value.
1493func (s *ApplicationPolicyStatement) SetActions(v []*string) *ApplicationPolicyStatement {
1494	s.Actions = v
1495	return s
1496}
1497
1498// SetPrincipals sets the Principals field's value.
1499func (s *ApplicationPolicyStatement) SetPrincipals(v []*string) *ApplicationPolicyStatement {
1500	s.Principals = v
1501	return s
1502}
1503
1504// SetStatementId sets the StatementId field's value.
1505func (s *ApplicationPolicyStatement) SetStatementId(v string) *ApplicationPolicyStatement {
1506	s.StatementId = &v
1507	return s
1508}
1509
1510// Summary of details about the application.
1511type ApplicationSummary struct {
1512	_ struct{} `type:"structure"`
1513
1514	// The application Amazon Resource Name (ARN).
1515	//
1516	// ApplicationId is a required field
1517	ApplicationId *string `locationName:"applicationId" type:"string" required:"true"`
1518
1519	// The name of the author publishing the app.
1520	//
1521	// Minimum length=1. Maximum length=127.
1522	//
1523	// Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
1524	//
1525	// Author is a required field
1526	Author *string `locationName:"author" type:"string" required:"true"`
1527
1528	// The date and time this resource was created.
1529	CreationTime *string `locationName:"creationTime" type:"string"`
1530
1531	// The description of the application.
1532	//
1533	// Minimum length=1. Maximum length=256
1534	//
1535	// Description is a required field
1536	Description *string `locationName:"description" type:"string" required:"true"`
1537
1538	// A URL with more information about the application, for example the location
1539	// of your GitHub repository for the application.
1540	HomePageUrl *string `locationName:"homePageUrl" type:"string"`
1541
1542	// Labels to improve discovery of apps in search results.
1543	//
1544	// Minimum length=1. Maximum length=127. Maximum number of labels: 10
1545	//
1546	// Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
1547	Labels []*string `locationName:"labels" type:"list"`
1548
1549	// The name of the application.
1550	//
1551	// Minimum length=1. Maximum length=140
1552	//
1553	// Pattern: "[a-zA-Z0-9\\-]+";
1554	//
1555	// Name is a required field
1556	Name *string `locationName:"name" type:"string" required:"true"`
1557
1558	// A valid identifier from https://spdx.org/licenses/ (https://spdx.org/licenses/).
1559	SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"`
1560}
1561
1562// String returns the string representation
1563func (s ApplicationSummary) String() string {
1564	return awsutil.Prettify(s)
1565}
1566
1567// GoString returns the string representation
1568func (s ApplicationSummary) GoString() string {
1569	return s.String()
1570}
1571
1572// SetApplicationId sets the ApplicationId field's value.
1573func (s *ApplicationSummary) SetApplicationId(v string) *ApplicationSummary {
1574	s.ApplicationId = &v
1575	return s
1576}
1577
1578// SetAuthor sets the Author field's value.
1579func (s *ApplicationSummary) SetAuthor(v string) *ApplicationSummary {
1580	s.Author = &v
1581	return s
1582}
1583
1584// SetCreationTime sets the CreationTime field's value.
1585func (s *ApplicationSummary) SetCreationTime(v string) *ApplicationSummary {
1586	s.CreationTime = &v
1587	return s
1588}
1589
1590// SetDescription sets the Description field's value.
1591func (s *ApplicationSummary) SetDescription(v string) *ApplicationSummary {
1592	s.Description = &v
1593	return s
1594}
1595
1596// SetHomePageUrl sets the HomePageUrl field's value.
1597func (s *ApplicationSummary) SetHomePageUrl(v string) *ApplicationSummary {
1598	s.HomePageUrl = &v
1599	return s
1600}
1601
1602// SetLabels sets the Labels field's value.
1603func (s *ApplicationSummary) SetLabels(v []*string) *ApplicationSummary {
1604	s.Labels = v
1605	return s
1606}
1607
1608// SetName sets the Name field's value.
1609func (s *ApplicationSummary) SetName(v string) *ApplicationSummary {
1610	s.Name = &v
1611	return s
1612}
1613
1614// SetSpdxLicenseId sets the SpdxLicenseId field's value.
1615func (s *ApplicationSummary) SetSpdxLicenseId(v string) *ApplicationSummary {
1616	s.SpdxLicenseId = &v
1617	return s
1618}
1619
1620type CreateApplicationOutput struct {
1621	_ struct{} `type:"structure"`
1622
1623	ApplicationId *string `locationName:"applicationId" type:"string"`
1624
1625	Author *string `locationName:"author" type:"string"`
1626
1627	CreationTime *string `locationName:"creationTime" type:"string"`
1628
1629	Description *string `locationName:"description" type:"string"`
1630
1631	HomePageUrl *string `locationName:"homePageUrl" type:"string"`
1632
1633	IsVerifiedAuthor *bool `locationName:"isVerifiedAuthor" type:"boolean"`
1634
1635	Labels []*string `locationName:"labels" type:"list"`
1636
1637	LicenseUrl *string `locationName:"licenseUrl" type:"string"`
1638
1639	Name *string `locationName:"name" type:"string"`
1640
1641	ReadmeUrl *string `locationName:"readmeUrl" type:"string"`
1642
1643	SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"`
1644
1645	VerifiedAuthorUrl *string `locationName:"verifiedAuthorUrl" type:"string"`
1646
1647	// Application version details.
1648	Version *Version `locationName:"version" type:"structure"`
1649}
1650
1651// String returns the string representation
1652func (s CreateApplicationOutput) String() string {
1653	return awsutil.Prettify(s)
1654}
1655
1656// GoString returns the string representation
1657func (s CreateApplicationOutput) GoString() string {
1658	return s.String()
1659}
1660
1661// SetApplicationId sets the ApplicationId field's value.
1662func (s *CreateApplicationOutput) SetApplicationId(v string) *CreateApplicationOutput {
1663	s.ApplicationId = &v
1664	return s
1665}
1666
1667// SetAuthor sets the Author field's value.
1668func (s *CreateApplicationOutput) SetAuthor(v string) *CreateApplicationOutput {
1669	s.Author = &v
1670	return s
1671}
1672
1673// SetCreationTime sets the CreationTime field's value.
1674func (s *CreateApplicationOutput) SetCreationTime(v string) *CreateApplicationOutput {
1675	s.CreationTime = &v
1676	return s
1677}
1678
1679// SetDescription sets the Description field's value.
1680func (s *CreateApplicationOutput) SetDescription(v string) *CreateApplicationOutput {
1681	s.Description = &v
1682	return s
1683}
1684
1685// SetHomePageUrl sets the HomePageUrl field's value.
1686func (s *CreateApplicationOutput) SetHomePageUrl(v string) *CreateApplicationOutput {
1687	s.HomePageUrl = &v
1688	return s
1689}
1690
1691// SetIsVerifiedAuthor sets the IsVerifiedAuthor field's value.
1692func (s *CreateApplicationOutput) SetIsVerifiedAuthor(v bool) *CreateApplicationOutput {
1693	s.IsVerifiedAuthor = &v
1694	return s
1695}
1696
1697// SetLabels sets the Labels field's value.
1698func (s *CreateApplicationOutput) SetLabels(v []*string) *CreateApplicationOutput {
1699	s.Labels = v
1700	return s
1701}
1702
1703// SetLicenseUrl sets the LicenseUrl field's value.
1704func (s *CreateApplicationOutput) SetLicenseUrl(v string) *CreateApplicationOutput {
1705	s.LicenseUrl = &v
1706	return s
1707}
1708
1709// SetName sets the Name field's value.
1710func (s *CreateApplicationOutput) SetName(v string) *CreateApplicationOutput {
1711	s.Name = &v
1712	return s
1713}
1714
1715// SetReadmeUrl sets the ReadmeUrl field's value.
1716func (s *CreateApplicationOutput) SetReadmeUrl(v string) *CreateApplicationOutput {
1717	s.ReadmeUrl = &v
1718	return s
1719}
1720
1721// SetSpdxLicenseId sets the SpdxLicenseId field's value.
1722func (s *CreateApplicationOutput) SetSpdxLicenseId(v string) *CreateApplicationOutput {
1723	s.SpdxLicenseId = &v
1724	return s
1725}
1726
1727// SetVerifiedAuthorUrl sets the VerifiedAuthorUrl field's value.
1728func (s *CreateApplicationOutput) SetVerifiedAuthorUrl(v string) *CreateApplicationOutput {
1729	s.VerifiedAuthorUrl = &v
1730	return s
1731}
1732
1733// SetVersion sets the Version field's value.
1734func (s *CreateApplicationOutput) SetVersion(v *Version) *CreateApplicationOutput {
1735	s.Version = v
1736	return s
1737}
1738
1739type CreateApplicationRequest struct {
1740	_ struct{} `type:"structure"`
1741
1742	// Author is a required field
1743	Author *string `locationName:"author" type:"string" required:"true"`
1744
1745	// Description is a required field
1746	Description *string `locationName:"description" type:"string" required:"true"`
1747
1748	HomePageUrl *string `locationName:"homePageUrl" type:"string"`
1749
1750	Labels []*string `locationName:"labels" type:"list"`
1751
1752	LicenseBody *string `locationName:"licenseBody" type:"string"`
1753
1754	LicenseUrl *string `locationName:"licenseUrl" type:"string"`
1755
1756	// Name is a required field
1757	Name *string `locationName:"name" type:"string" required:"true"`
1758
1759	ReadmeBody *string `locationName:"readmeBody" type:"string"`
1760
1761	ReadmeUrl *string `locationName:"readmeUrl" type:"string"`
1762
1763	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
1764
1765	SourceCodeArchiveUrl *string `locationName:"sourceCodeArchiveUrl" type:"string"`
1766
1767	SourceCodeUrl *string `locationName:"sourceCodeUrl" type:"string"`
1768
1769	SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"`
1770
1771	TemplateBody *string `locationName:"templateBody" type:"string"`
1772
1773	TemplateUrl *string `locationName:"templateUrl" type:"string"`
1774}
1775
1776// String returns the string representation
1777func (s CreateApplicationRequest) String() string {
1778	return awsutil.Prettify(s)
1779}
1780
1781// GoString returns the string representation
1782func (s CreateApplicationRequest) GoString() string {
1783	return s.String()
1784}
1785
1786// Validate inspects the fields of the type to determine if they are valid.
1787func (s *CreateApplicationRequest) Validate() error {
1788	invalidParams := request.ErrInvalidParams{Context: "CreateApplicationRequest"}
1789	if s.Author == nil {
1790		invalidParams.Add(request.NewErrParamRequired("Author"))
1791	}
1792	if s.Description == nil {
1793		invalidParams.Add(request.NewErrParamRequired("Description"))
1794	}
1795	if s.Name == nil {
1796		invalidParams.Add(request.NewErrParamRequired("Name"))
1797	}
1798
1799	if invalidParams.Len() > 0 {
1800		return invalidParams
1801	}
1802	return nil
1803}
1804
1805// SetAuthor sets the Author field's value.
1806func (s *CreateApplicationRequest) SetAuthor(v string) *CreateApplicationRequest {
1807	s.Author = &v
1808	return s
1809}
1810
1811// SetDescription sets the Description field's value.
1812func (s *CreateApplicationRequest) SetDescription(v string) *CreateApplicationRequest {
1813	s.Description = &v
1814	return s
1815}
1816
1817// SetHomePageUrl sets the HomePageUrl field's value.
1818func (s *CreateApplicationRequest) SetHomePageUrl(v string) *CreateApplicationRequest {
1819	s.HomePageUrl = &v
1820	return s
1821}
1822
1823// SetLabels sets the Labels field's value.
1824func (s *CreateApplicationRequest) SetLabels(v []*string) *CreateApplicationRequest {
1825	s.Labels = v
1826	return s
1827}
1828
1829// SetLicenseBody sets the LicenseBody field's value.
1830func (s *CreateApplicationRequest) SetLicenseBody(v string) *CreateApplicationRequest {
1831	s.LicenseBody = &v
1832	return s
1833}
1834
1835// SetLicenseUrl sets the LicenseUrl field's value.
1836func (s *CreateApplicationRequest) SetLicenseUrl(v string) *CreateApplicationRequest {
1837	s.LicenseUrl = &v
1838	return s
1839}
1840
1841// SetName sets the Name field's value.
1842func (s *CreateApplicationRequest) SetName(v string) *CreateApplicationRequest {
1843	s.Name = &v
1844	return s
1845}
1846
1847// SetReadmeBody sets the ReadmeBody field's value.
1848func (s *CreateApplicationRequest) SetReadmeBody(v string) *CreateApplicationRequest {
1849	s.ReadmeBody = &v
1850	return s
1851}
1852
1853// SetReadmeUrl sets the ReadmeUrl field's value.
1854func (s *CreateApplicationRequest) SetReadmeUrl(v string) *CreateApplicationRequest {
1855	s.ReadmeUrl = &v
1856	return s
1857}
1858
1859// SetSemanticVersion sets the SemanticVersion field's value.
1860func (s *CreateApplicationRequest) SetSemanticVersion(v string) *CreateApplicationRequest {
1861	s.SemanticVersion = &v
1862	return s
1863}
1864
1865// SetSourceCodeArchiveUrl sets the SourceCodeArchiveUrl field's value.
1866func (s *CreateApplicationRequest) SetSourceCodeArchiveUrl(v string) *CreateApplicationRequest {
1867	s.SourceCodeArchiveUrl = &v
1868	return s
1869}
1870
1871// SetSourceCodeUrl sets the SourceCodeUrl field's value.
1872func (s *CreateApplicationRequest) SetSourceCodeUrl(v string) *CreateApplicationRequest {
1873	s.SourceCodeUrl = &v
1874	return s
1875}
1876
1877// SetSpdxLicenseId sets the SpdxLicenseId field's value.
1878func (s *CreateApplicationRequest) SetSpdxLicenseId(v string) *CreateApplicationRequest {
1879	s.SpdxLicenseId = &v
1880	return s
1881}
1882
1883// SetTemplateBody sets the TemplateBody field's value.
1884func (s *CreateApplicationRequest) SetTemplateBody(v string) *CreateApplicationRequest {
1885	s.TemplateBody = &v
1886	return s
1887}
1888
1889// SetTemplateUrl sets the TemplateUrl field's value.
1890func (s *CreateApplicationRequest) SetTemplateUrl(v string) *CreateApplicationRequest {
1891	s.TemplateUrl = &v
1892	return s
1893}
1894
1895type CreateApplicationVersionOutput struct {
1896	_ struct{} `type:"structure"`
1897
1898	ApplicationId *string `locationName:"applicationId" type:"string"`
1899
1900	CreationTime *string `locationName:"creationTime" type:"string"`
1901
1902	ParameterDefinitions []*ParameterDefinition `locationName:"parameterDefinitions" type:"list"`
1903
1904	RequiredCapabilities []*string `locationName:"requiredCapabilities" type:"list"`
1905
1906	ResourcesSupported *bool `locationName:"resourcesSupported" type:"boolean"`
1907
1908	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
1909
1910	SourceCodeArchiveUrl *string `locationName:"sourceCodeArchiveUrl" type:"string"`
1911
1912	SourceCodeUrl *string `locationName:"sourceCodeUrl" type:"string"`
1913
1914	TemplateUrl *string `locationName:"templateUrl" type:"string"`
1915}
1916
1917// String returns the string representation
1918func (s CreateApplicationVersionOutput) String() string {
1919	return awsutil.Prettify(s)
1920}
1921
1922// GoString returns the string representation
1923func (s CreateApplicationVersionOutput) GoString() string {
1924	return s.String()
1925}
1926
1927// SetApplicationId sets the ApplicationId field's value.
1928func (s *CreateApplicationVersionOutput) SetApplicationId(v string) *CreateApplicationVersionOutput {
1929	s.ApplicationId = &v
1930	return s
1931}
1932
1933// SetCreationTime sets the CreationTime field's value.
1934func (s *CreateApplicationVersionOutput) SetCreationTime(v string) *CreateApplicationVersionOutput {
1935	s.CreationTime = &v
1936	return s
1937}
1938
1939// SetParameterDefinitions sets the ParameterDefinitions field's value.
1940func (s *CreateApplicationVersionOutput) SetParameterDefinitions(v []*ParameterDefinition) *CreateApplicationVersionOutput {
1941	s.ParameterDefinitions = v
1942	return s
1943}
1944
1945// SetRequiredCapabilities sets the RequiredCapabilities field's value.
1946func (s *CreateApplicationVersionOutput) SetRequiredCapabilities(v []*string) *CreateApplicationVersionOutput {
1947	s.RequiredCapabilities = v
1948	return s
1949}
1950
1951// SetResourcesSupported sets the ResourcesSupported field's value.
1952func (s *CreateApplicationVersionOutput) SetResourcesSupported(v bool) *CreateApplicationVersionOutput {
1953	s.ResourcesSupported = &v
1954	return s
1955}
1956
1957// SetSemanticVersion sets the SemanticVersion field's value.
1958func (s *CreateApplicationVersionOutput) SetSemanticVersion(v string) *CreateApplicationVersionOutput {
1959	s.SemanticVersion = &v
1960	return s
1961}
1962
1963// SetSourceCodeArchiveUrl sets the SourceCodeArchiveUrl field's value.
1964func (s *CreateApplicationVersionOutput) SetSourceCodeArchiveUrl(v string) *CreateApplicationVersionOutput {
1965	s.SourceCodeArchiveUrl = &v
1966	return s
1967}
1968
1969// SetSourceCodeUrl sets the SourceCodeUrl field's value.
1970func (s *CreateApplicationVersionOutput) SetSourceCodeUrl(v string) *CreateApplicationVersionOutput {
1971	s.SourceCodeUrl = &v
1972	return s
1973}
1974
1975// SetTemplateUrl sets the TemplateUrl field's value.
1976func (s *CreateApplicationVersionOutput) SetTemplateUrl(v string) *CreateApplicationVersionOutput {
1977	s.TemplateUrl = &v
1978	return s
1979}
1980
1981type CreateApplicationVersionRequest struct {
1982	_ struct{} `type:"structure"`
1983
1984	// ApplicationId is a required field
1985	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
1986
1987	// SemanticVersion is a required field
1988	SemanticVersion *string `location:"uri" locationName:"semanticVersion" type:"string" required:"true"`
1989
1990	SourceCodeArchiveUrl *string `locationName:"sourceCodeArchiveUrl" type:"string"`
1991
1992	SourceCodeUrl *string `locationName:"sourceCodeUrl" type:"string"`
1993
1994	TemplateBody *string `locationName:"templateBody" type:"string"`
1995
1996	TemplateUrl *string `locationName:"templateUrl" type:"string"`
1997}
1998
1999// String returns the string representation
2000func (s CreateApplicationVersionRequest) String() string {
2001	return awsutil.Prettify(s)
2002}
2003
2004// GoString returns the string representation
2005func (s CreateApplicationVersionRequest) GoString() string {
2006	return s.String()
2007}
2008
2009// Validate inspects the fields of the type to determine if they are valid.
2010func (s *CreateApplicationVersionRequest) Validate() error {
2011	invalidParams := request.ErrInvalidParams{Context: "CreateApplicationVersionRequest"}
2012	if s.ApplicationId == nil {
2013		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2014	}
2015	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2016		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2017	}
2018	if s.SemanticVersion == nil {
2019		invalidParams.Add(request.NewErrParamRequired("SemanticVersion"))
2020	}
2021	if s.SemanticVersion != nil && len(*s.SemanticVersion) < 1 {
2022		invalidParams.Add(request.NewErrParamMinLen("SemanticVersion", 1))
2023	}
2024
2025	if invalidParams.Len() > 0 {
2026		return invalidParams
2027	}
2028	return nil
2029}
2030
2031// SetApplicationId sets the ApplicationId field's value.
2032func (s *CreateApplicationVersionRequest) SetApplicationId(v string) *CreateApplicationVersionRequest {
2033	s.ApplicationId = &v
2034	return s
2035}
2036
2037// SetSemanticVersion sets the SemanticVersion field's value.
2038func (s *CreateApplicationVersionRequest) SetSemanticVersion(v string) *CreateApplicationVersionRequest {
2039	s.SemanticVersion = &v
2040	return s
2041}
2042
2043// SetSourceCodeArchiveUrl sets the SourceCodeArchiveUrl field's value.
2044func (s *CreateApplicationVersionRequest) SetSourceCodeArchiveUrl(v string) *CreateApplicationVersionRequest {
2045	s.SourceCodeArchiveUrl = &v
2046	return s
2047}
2048
2049// SetSourceCodeUrl sets the SourceCodeUrl field's value.
2050func (s *CreateApplicationVersionRequest) SetSourceCodeUrl(v string) *CreateApplicationVersionRequest {
2051	s.SourceCodeUrl = &v
2052	return s
2053}
2054
2055// SetTemplateBody sets the TemplateBody field's value.
2056func (s *CreateApplicationVersionRequest) SetTemplateBody(v string) *CreateApplicationVersionRequest {
2057	s.TemplateBody = &v
2058	return s
2059}
2060
2061// SetTemplateUrl sets the TemplateUrl field's value.
2062func (s *CreateApplicationVersionRequest) SetTemplateUrl(v string) *CreateApplicationVersionRequest {
2063	s.TemplateUrl = &v
2064	return s
2065}
2066
2067type CreateCloudFormationChangeSetOutput struct {
2068	_ struct{} `type:"structure"`
2069
2070	ApplicationId *string `locationName:"applicationId" type:"string"`
2071
2072	ChangeSetId *string `locationName:"changeSetId" type:"string"`
2073
2074	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
2075
2076	StackId *string `locationName:"stackId" type:"string"`
2077}
2078
2079// String returns the string representation
2080func (s CreateCloudFormationChangeSetOutput) String() string {
2081	return awsutil.Prettify(s)
2082}
2083
2084// GoString returns the string representation
2085func (s CreateCloudFormationChangeSetOutput) GoString() string {
2086	return s.String()
2087}
2088
2089// SetApplicationId sets the ApplicationId field's value.
2090func (s *CreateCloudFormationChangeSetOutput) SetApplicationId(v string) *CreateCloudFormationChangeSetOutput {
2091	s.ApplicationId = &v
2092	return s
2093}
2094
2095// SetChangeSetId sets the ChangeSetId field's value.
2096func (s *CreateCloudFormationChangeSetOutput) SetChangeSetId(v string) *CreateCloudFormationChangeSetOutput {
2097	s.ChangeSetId = &v
2098	return s
2099}
2100
2101// SetSemanticVersion sets the SemanticVersion field's value.
2102func (s *CreateCloudFormationChangeSetOutput) SetSemanticVersion(v string) *CreateCloudFormationChangeSetOutput {
2103	s.SemanticVersion = &v
2104	return s
2105}
2106
2107// SetStackId sets the StackId field's value.
2108func (s *CreateCloudFormationChangeSetOutput) SetStackId(v string) *CreateCloudFormationChangeSetOutput {
2109	s.StackId = &v
2110	return s
2111}
2112
2113type CreateCloudFormationChangeSetRequest struct {
2114	_ struct{} `type:"structure"`
2115
2116	// ApplicationId is a required field
2117	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2118
2119	Capabilities []*string `locationName:"capabilities" type:"list"`
2120
2121	ChangeSetName *string `locationName:"changeSetName" type:"string"`
2122
2123	ClientToken *string `locationName:"clientToken" type:"string"`
2124
2125	Description *string `locationName:"description" type:"string"`
2126
2127	NotificationArns []*string `locationName:"notificationArns" type:"list"`
2128
2129	ParameterOverrides []*ParameterValue `locationName:"parameterOverrides" type:"list"`
2130
2131	ResourceTypes []*string `locationName:"resourceTypes" type:"list"`
2132
2133	// This property corresponds to the AWS CloudFormation RollbackConfiguration
2134	// (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration)
2135	// Data Type.
2136	RollbackConfiguration *RollbackConfiguration `locationName:"rollbackConfiguration" type:"structure"`
2137
2138	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
2139
2140	// StackName is a required field
2141	StackName *string `locationName:"stackName" type:"string" required:"true"`
2142
2143	Tags []*Tag `locationName:"tags" type:"list"`
2144
2145	TemplateId *string `locationName:"templateId" type:"string"`
2146}
2147
2148// String returns the string representation
2149func (s CreateCloudFormationChangeSetRequest) String() string {
2150	return awsutil.Prettify(s)
2151}
2152
2153// GoString returns the string representation
2154func (s CreateCloudFormationChangeSetRequest) GoString() string {
2155	return s.String()
2156}
2157
2158// Validate inspects the fields of the type to determine if they are valid.
2159func (s *CreateCloudFormationChangeSetRequest) Validate() error {
2160	invalidParams := request.ErrInvalidParams{Context: "CreateCloudFormationChangeSetRequest"}
2161	if s.ApplicationId == nil {
2162		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2163	}
2164	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2165		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2166	}
2167	if s.StackName == nil {
2168		invalidParams.Add(request.NewErrParamRequired("StackName"))
2169	}
2170	if s.ParameterOverrides != nil {
2171		for i, v := range s.ParameterOverrides {
2172			if v == nil {
2173				continue
2174			}
2175			if err := v.Validate(); err != nil {
2176				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ParameterOverrides", i), err.(request.ErrInvalidParams))
2177			}
2178		}
2179	}
2180	if s.RollbackConfiguration != nil {
2181		if err := s.RollbackConfiguration.Validate(); err != nil {
2182			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
2183		}
2184	}
2185	if s.Tags != nil {
2186		for i, v := range s.Tags {
2187			if v == nil {
2188				continue
2189			}
2190			if err := v.Validate(); err != nil {
2191				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2192			}
2193		}
2194	}
2195
2196	if invalidParams.Len() > 0 {
2197		return invalidParams
2198	}
2199	return nil
2200}
2201
2202// SetApplicationId sets the ApplicationId field's value.
2203func (s *CreateCloudFormationChangeSetRequest) SetApplicationId(v string) *CreateCloudFormationChangeSetRequest {
2204	s.ApplicationId = &v
2205	return s
2206}
2207
2208// SetCapabilities sets the Capabilities field's value.
2209func (s *CreateCloudFormationChangeSetRequest) SetCapabilities(v []*string) *CreateCloudFormationChangeSetRequest {
2210	s.Capabilities = v
2211	return s
2212}
2213
2214// SetChangeSetName sets the ChangeSetName field's value.
2215func (s *CreateCloudFormationChangeSetRequest) SetChangeSetName(v string) *CreateCloudFormationChangeSetRequest {
2216	s.ChangeSetName = &v
2217	return s
2218}
2219
2220// SetClientToken sets the ClientToken field's value.
2221func (s *CreateCloudFormationChangeSetRequest) SetClientToken(v string) *CreateCloudFormationChangeSetRequest {
2222	s.ClientToken = &v
2223	return s
2224}
2225
2226// SetDescription sets the Description field's value.
2227func (s *CreateCloudFormationChangeSetRequest) SetDescription(v string) *CreateCloudFormationChangeSetRequest {
2228	s.Description = &v
2229	return s
2230}
2231
2232// SetNotificationArns sets the NotificationArns field's value.
2233func (s *CreateCloudFormationChangeSetRequest) SetNotificationArns(v []*string) *CreateCloudFormationChangeSetRequest {
2234	s.NotificationArns = v
2235	return s
2236}
2237
2238// SetParameterOverrides sets the ParameterOverrides field's value.
2239func (s *CreateCloudFormationChangeSetRequest) SetParameterOverrides(v []*ParameterValue) *CreateCloudFormationChangeSetRequest {
2240	s.ParameterOverrides = v
2241	return s
2242}
2243
2244// SetResourceTypes sets the ResourceTypes field's value.
2245func (s *CreateCloudFormationChangeSetRequest) SetResourceTypes(v []*string) *CreateCloudFormationChangeSetRequest {
2246	s.ResourceTypes = v
2247	return s
2248}
2249
2250// SetRollbackConfiguration sets the RollbackConfiguration field's value.
2251func (s *CreateCloudFormationChangeSetRequest) SetRollbackConfiguration(v *RollbackConfiguration) *CreateCloudFormationChangeSetRequest {
2252	s.RollbackConfiguration = v
2253	return s
2254}
2255
2256// SetSemanticVersion sets the SemanticVersion field's value.
2257func (s *CreateCloudFormationChangeSetRequest) SetSemanticVersion(v string) *CreateCloudFormationChangeSetRequest {
2258	s.SemanticVersion = &v
2259	return s
2260}
2261
2262// SetStackName sets the StackName field's value.
2263func (s *CreateCloudFormationChangeSetRequest) SetStackName(v string) *CreateCloudFormationChangeSetRequest {
2264	s.StackName = &v
2265	return s
2266}
2267
2268// SetTags sets the Tags field's value.
2269func (s *CreateCloudFormationChangeSetRequest) SetTags(v []*Tag) *CreateCloudFormationChangeSetRequest {
2270	s.Tags = v
2271	return s
2272}
2273
2274// SetTemplateId sets the TemplateId field's value.
2275func (s *CreateCloudFormationChangeSetRequest) SetTemplateId(v string) *CreateCloudFormationChangeSetRequest {
2276	s.TemplateId = &v
2277	return s
2278}
2279
2280type CreateCloudFormationTemplateInput struct {
2281	_ struct{} `type:"structure"`
2282
2283	// ApplicationId is a required field
2284	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2285
2286	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
2287}
2288
2289// String returns the string representation
2290func (s CreateCloudFormationTemplateInput) String() string {
2291	return awsutil.Prettify(s)
2292}
2293
2294// GoString returns the string representation
2295func (s CreateCloudFormationTemplateInput) GoString() string {
2296	return s.String()
2297}
2298
2299// Validate inspects the fields of the type to determine if they are valid.
2300func (s *CreateCloudFormationTemplateInput) Validate() error {
2301	invalidParams := request.ErrInvalidParams{Context: "CreateCloudFormationTemplateInput"}
2302	if s.ApplicationId == nil {
2303		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2304	}
2305	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2306		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2307	}
2308
2309	if invalidParams.Len() > 0 {
2310		return invalidParams
2311	}
2312	return nil
2313}
2314
2315// SetApplicationId sets the ApplicationId field's value.
2316func (s *CreateCloudFormationTemplateInput) SetApplicationId(v string) *CreateCloudFormationTemplateInput {
2317	s.ApplicationId = &v
2318	return s
2319}
2320
2321// SetSemanticVersion sets the SemanticVersion field's value.
2322func (s *CreateCloudFormationTemplateInput) SetSemanticVersion(v string) *CreateCloudFormationTemplateInput {
2323	s.SemanticVersion = &v
2324	return s
2325}
2326
2327type CreateCloudFormationTemplateOutput struct {
2328	_ struct{} `type:"structure"`
2329
2330	ApplicationId *string `locationName:"applicationId" type:"string"`
2331
2332	CreationTime *string `locationName:"creationTime" type:"string"`
2333
2334	ExpirationTime *string `locationName:"expirationTime" type:"string"`
2335
2336	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
2337
2338	Status *string `locationName:"status" type:"string" enum:"Status"`
2339
2340	TemplateId *string `locationName:"templateId" type:"string"`
2341
2342	TemplateUrl *string `locationName:"templateUrl" type:"string"`
2343}
2344
2345// String returns the string representation
2346func (s CreateCloudFormationTemplateOutput) String() string {
2347	return awsutil.Prettify(s)
2348}
2349
2350// GoString returns the string representation
2351func (s CreateCloudFormationTemplateOutput) GoString() string {
2352	return s.String()
2353}
2354
2355// SetApplicationId sets the ApplicationId field's value.
2356func (s *CreateCloudFormationTemplateOutput) SetApplicationId(v string) *CreateCloudFormationTemplateOutput {
2357	s.ApplicationId = &v
2358	return s
2359}
2360
2361// SetCreationTime sets the CreationTime field's value.
2362func (s *CreateCloudFormationTemplateOutput) SetCreationTime(v string) *CreateCloudFormationTemplateOutput {
2363	s.CreationTime = &v
2364	return s
2365}
2366
2367// SetExpirationTime sets the ExpirationTime field's value.
2368func (s *CreateCloudFormationTemplateOutput) SetExpirationTime(v string) *CreateCloudFormationTemplateOutput {
2369	s.ExpirationTime = &v
2370	return s
2371}
2372
2373// SetSemanticVersion sets the SemanticVersion field's value.
2374func (s *CreateCloudFormationTemplateOutput) SetSemanticVersion(v string) *CreateCloudFormationTemplateOutput {
2375	s.SemanticVersion = &v
2376	return s
2377}
2378
2379// SetStatus sets the Status field's value.
2380func (s *CreateCloudFormationTemplateOutput) SetStatus(v string) *CreateCloudFormationTemplateOutput {
2381	s.Status = &v
2382	return s
2383}
2384
2385// SetTemplateId sets the TemplateId field's value.
2386func (s *CreateCloudFormationTemplateOutput) SetTemplateId(v string) *CreateCloudFormationTemplateOutput {
2387	s.TemplateId = &v
2388	return s
2389}
2390
2391// SetTemplateUrl sets the TemplateUrl field's value.
2392func (s *CreateCloudFormationTemplateOutput) SetTemplateUrl(v string) *CreateCloudFormationTemplateOutput {
2393	s.TemplateUrl = &v
2394	return s
2395}
2396
2397type DeleteApplicationInput struct {
2398	_ struct{} `type:"structure"`
2399
2400	// ApplicationId is a required field
2401	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2402}
2403
2404// String returns the string representation
2405func (s DeleteApplicationInput) String() string {
2406	return awsutil.Prettify(s)
2407}
2408
2409// GoString returns the string representation
2410func (s DeleteApplicationInput) GoString() string {
2411	return s.String()
2412}
2413
2414// Validate inspects the fields of the type to determine if they are valid.
2415func (s *DeleteApplicationInput) Validate() error {
2416	invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationInput"}
2417	if s.ApplicationId == nil {
2418		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2419	}
2420	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2421		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2422	}
2423
2424	if invalidParams.Len() > 0 {
2425		return invalidParams
2426	}
2427	return nil
2428}
2429
2430// SetApplicationId sets the ApplicationId field's value.
2431func (s *DeleteApplicationInput) SetApplicationId(v string) *DeleteApplicationInput {
2432	s.ApplicationId = &v
2433	return s
2434}
2435
2436type DeleteApplicationOutput struct {
2437	_ struct{} `type:"structure"`
2438}
2439
2440// String returns the string representation
2441func (s DeleteApplicationOutput) String() string {
2442	return awsutil.Prettify(s)
2443}
2444
2445// GoString returns the string representation
2446func (s DeleteApplicationOutput) GoString() string {
2447	return s.String()
2448}
2449
2450type GetApplicationInput struct {
2451	_ struct{} `type:"structure"`
2452
2453	// ApplicationId is a required field
2454	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2455
2456	SemanticVersion *string `location:"querystring" locationName:"semanticVersion" type:"string"`
2457}
2458
2459// String returns the string representation
2460func (s GetApplicationInput) String() string {
2461	return awsutil.Prettify(s)
2462}
2463
2464// GoString returns the string representation
2465func (s GetApplicationInput) GoString() string {
2466	return s.String()
2467}
2468
2469// Validate inspects the fields of the type to determine if they are valid.
2470func (s *GetApplicationInput) Validate() error {
2471	invalidParams := request.ErrInvalidParams{Context: "GetApplicationInput"}
2472	if s.ApplicationId == nil {
2473		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2474	}
2475	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2476		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2477	}
2478
2479	if invalidParams.Len() > 0 {
2480		return invalidParams
2481	}
2482	return nil
2483}
2484
2485// SetApplicationId sets the ApplicationId field's value.
2486func (s *GetApplicationInput) SetApplicationId(v string) *GetApplicationInput {
2487	s.ApplicationId = &v
2488	return s
2489}
2490
2491// SetSemanticVersion sets the SemanticVersion field's value.
2492func (s *GetApplicationInput) SetSemanticVersion(v string) *GetApplicationInput {
2493	s.SemanticVersion = &v
2494	return s
2495}
2496
2497type GetApplicationOutput struct {
2498	_ struct{} `type:"structure"`
2499
2500	ApplicationId *string `locationName:"applicationId" type:"string"`
2501
2502	Author *string `locationName:"author" type:"string"`
2503
2504	CreationTime *string `locationName:"creationTime" type:"string"`
2505
2506	Description *string `locationName:"description" type:"string"`
2507
2508	HomePageUrl *string `locationName:"homePageUrl" type:"string"`
2509
2510	IsVerifiedAuthor *bool `locationName:"isVerifiedAuthor" type:"boolean"`
2511
2512	Labels []*string `locationName:"labels" type:"list"`
2513
2514	LicenseUrl *string `locationName:"licenseUrl" type:"string"`
2515
2516	Name *string `locationName:"name" type:"string"`
2517
2518	ReadmeUrl *string `locationName:"readmeUrl" type:"string"`
2519
2520	SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"`
2521
2522	VerifiedAuthorUrl *string `locationName:"verifiedAuthorUrl" type:"string"`
2523
2524	// Application version details.
2525	Version *Version `locationName:"version" type:"structure"`
2526}
2527
2528// String returns the string representation
2529func (s GetApplicationOutput) String() string {
2530	return awsutil.Prettify(s)
2531}
2532
2533// GoString returns the string representation
2534func (s GetApplicationOutput) GoString() string {
2535	return s.String()
2536}
2537
2538// SetApplicationId sets the ApplicationId field's value.
2539func (s *GetApplicationOutput) SetApplicationId(v string) *GetApplicationOutput {
2540	s.ApplicationId = &v
2541	return s
2542}
2543
2544// SetAuthor sets the Author field's value.
2545func (s *GetApplicationOutput) SetAuthor(v string) *GetApplicationOutput {
2546	s.Author = &v
2547	return s
2548}
2549
2550// SetCreationTime sets the CreationTime field's value.
2551func (s *GetApplicationOutput) SetCreationTime(v string) *GetApplicationOutput {
2552	s.CreationTime = &v
2553	return s
2554}
2555
2556// SetDescription sets the Description field's value.
2557func (s *GetApplicationOutput) SetDescription(v string) *GetApplicationOutput {
2558	s.Description = &v
2559	return s
2560}
2561
2562// SetHomePageUrl sets the HomePageUrl field's value.
2563func (s *GetApplicationOutput) SetHomePageUrl(v string) *GetApplicationOutput {
2564	s.HomePageUrl = &v
2565	return s
2566}
2567
2568// SetIsVerifiedAuthor sets the IsVerifiedAuthor field's value.
2569func (s *GetApplicationOutput) SetIsVerifiedAuthor(v bool) *GetApplicationOutput {
2570	s.IsVerifiedAuthor = &v
2571	return s
2572}
2573
2574// SetLabels sets the Labels field's value.
2575func (s *GetApplicationOutput) SetLabels(v []*string) *GetApplicationOutput {
2576	s.Labels = v
2577	return s
2578}
2579
2580// SetLicenseUrl sets the LicenseUrl field's value.
2581func (s *GetApplicationOutput) SetLicenseUrl(v string) *GetApplicationOutput {
2582	s.LicenseUrl = &v
2583	return s
2584}
2585
2586// SetName sets the Name field's value.
2587func (s *GetApplicationOutput) SetName(v string) *GetApplicationOutput {
2588	s.Name = &v
2589	return s
2590}
2591
2592// SetReadmeUrl sets the ReadmeUrl field's value.
2593func (s *GetApplicationOutput) SetReadmeUrl(v string) *GetApplicationOutput {
2594	s.ReadmeUrl = &v
2595	return s
2596}
2597
2598// SetSpdxLicenseId sets the SpdxLicenseId field's value.
2599func (s *GetApplicationOutput) SetSpdxLicenseId(v string) *GetApplicationOutput {
2600	s.SpdxLicenseId = &v
2601	return s
2602}
2603
2604// SetVerifiedAuthorUrl sets the VerifiedAuthorUrl field's value.
2605func (s *GetApplicationOutput) SetVerifiedAuthorUrl(v string) *GetApplicationOutput {
2606	s.VerifiedAuthorUrl = &v
2607	return s
2608}
2609
2610// SetVersion sets the Version field's value.
2611func (s *GetApplicationOutput) SetVersion(v *Version) *GetApplicationOutput {
2612	s.Version = v
2613	return s
2614}
2615
2616type GetApplicationPolicyInput struct {
2617	_ struct{} `type:"structure"`
2618
2619	// ApplicationId is a required field
2620	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2621}
2622
2623// String returns the string representation
2624func (s GetApplicationPolicyInput) String() string {
2625	return awsutil.Prettify(s)
2626}
2627
2628// GoString returns the string representation
2629func (s GetApplicationPolicyInput) GoString() string {
2630	return s.String()
2631}
2632
2633// Validate inspects the fields of the type to determine if they are valid.
2634func (s *GetApplicationPolicyInput) Validate() error {
2635	invalidParams := request.ErrInvalidParams{Context: "GetApplicationPolicyInput"}
2636	if s.ApplicationId == nil {
2637		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2638	}
2639	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2640		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2641	}
2642
2643	if invalidParams.Len() > 0 {
2644		return invalidParams
2645	}
2646	return nil
2647}
2648
2649// SetApplicationId sets the ApplicationId field's value.
2650func (s *GetApplicationPolicyInput) SetApplicationId(v string) *GetApplicationPolicyInput {
2651	s.ApplicationId = &v
2652	return s
2653}
2654
2655type GetApplicationPolicyOutput struct {
2656	_ struct{} `type:"structure"`
2657
2658	Statements []*ApplicationPolicyStatement `locationName:"statements" type:"list"`
2659}
2660
2661// String returns the string representation
2662func (s GetApplicationPolicyOutput) String() string {
2663	return awsutil.Prettify(s)
2664}
2665
2666// GoString returns the string representation
2667func (s GetApplicationPolicyOutput) GoString() string {
2668	return s.String()
2669}
2670
2671// SetStatements sets the Statements field's value.
2672func (s *GetApplicationPolicyOutput) SetStatements(v []*ApplicationPolicyStatement) *GetApplicationPolicyOutput {
2673	s.Statements = v
2674	return s
2675}
2676
2677type GetCloudFormationTemplateInput struct {
2678	_ struct{} `type:"structure"`
2679
2680	// ApplicationId is a required field
2681	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2682
2683	// TemplateId is a required field
2684	TemplateId *string `location:"uri" locationName:"templateId" type:"string" required:"true"`
2685}
2686
2687// String returns the string representation
2688func (s GetCloudFormationTemplateInput) String() string {
2689	return awsutil.Prettify(s)
2690}
2691
2692// GoString returns the string representation
2693func (s GetCloudFormationTemplateInput) GoString() string {
2694	return s.String()
2695}
2696
2697// Validate inspects the fields of the type to determine if they are valid.
2698func (s *GetCloudFormationTemplateInput) Validate() error {
2699	invalidParams := request.ErrInvalidParams{Context: "GetCloudFormationTemplateInput"}
2700	if s.ApplicationId == nil {
2701		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2702	}
2703	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2704		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2705	}
2706	if s.TemplateId == nil {
2707		invalidParams.Add(request.NewErrParamRequired("TemplateId"))
2708	}
2709	if s.TemplateId != nil && len(*s.TemplateId) < 1 {
2710		invalidParams.Add(request.NewErrParamMinLen("TemplateId", 1))
2711	}
2712
2713	if invalidParams.Len() > 0 {
2714		return invalidParams
2715	}
2716	return nil
2717}
2718
2719// SetApplicationId sets the ApplicationId field's value.
2720func (s *GetCloudFormationTemplateInput) SetApplicationId(v string) *GetCloudFormationTemplateInput {
2721	s.ApplicationId = &v
2722	return s
2723}
2724
2725// SetTemplateId sets the TemplateId field's value.
2726func (s *GetCloudFormationTemplateInput) SetTemplateId(v string) *GetCloudFormationTemplateInput {
2727	s.TemplateId = &v
2728	return s
2729}
2730
2731type GetCloudFormationTemplateOutput struct {
2732	_ struct{} `type:"structure"`
2733
2734	ApplicationId *string `locationName:"applicationId" type:"string"`
2735
2736	CreationTime *string `locationName:"creationTime" type:"string"`
2737
2738	ExpirationTime *string `locationName:"expirationTime" type:"string"`
2739
2740	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
2741
2742	Status *string `locationName:"status" type:"string" enum:"Status"`
2743
2744	TemplateId *string `locationName:"templateId" type:"string"`
2745
2746	TemplateUrl *string `locationName:"templateUrl" type:"string"`
2747}
2748
2749// String returns the string representation
2750func (s GetCloudFormationTemplateOutput) String() string {
2751	return awsutil.Prettify(s)
2752}
2753
2754// GoString returns the string representation
2755func (s GetCloudFormationTemplateOutput) GoString() string {
2756	return s.String()
2757}
2758
2759// SetApplicationId sets the ApplicationId field's value.
2760func (s *GetCloudFormationTemplateOutput) SetApplicationId(v string) *GetCloudFormationTemplateOutput {
2761	s.ApplicationId = &v
2762	return s
2763}
2764
2765// SetCreationTime sets the CreationTime field's value.
2766func (s *GetCloudFormationTemplateOutput) SetCreationTime(v string) *GetCloudFormationTemplateOutput {
2767	s.CreationTime = &v
2768	return s
2769}
2770
2771// SetExpirationTime sets the ExpirationTime field's value.
2772func (s *GetCloudFormationTemplateOutput) SetExpirationTime(v string) *GetCloudFormationTemplateOutput {
2773	s.ExpirationTime = &v
2774	return s
2775}
2776
2777// SetSemanticVersion sets the SemanticVersion field's value.
2778func (s *GetCloudFormationTemplateOutput) SetSemanticVersion(v string) *GetCloudFormationTemplateOutput {
2779	s.SemanticVersion = &v
2780	return s
2781}
2782
2783// SetStatus sets the Status field's value.
2784func (s *GetCloudFormationTemplateOutput) SetStatus(v string) *GetCloudFormationTemplateOutput {
2785	s.Status = &v
2786	return s
2787}
2788
2789// SetTemplateId sets the TemplateId field's value.
2790func (s *GetCloudFormationTemplateOutput) SetTemplateId(v string) *GetCloudFormationTemplateOutput {
2791	s.TemplateId = &v
2792	return s
2793}
2794
2795// SetTemplateUrl sets the TemplateUrl field's value.
2796func (s *GetCloudFormationTemplateOutput) SetTemplateUrl(v string) *GetCloudFormationTemplateOutput {
2797	s.TemplateUrl = &v
2798	return s
2799}
2800
2801type ListApplicationDependenciesInput struct {
2802	_ struct{} `type:"structure"`
2803
2804	// ApplicationId is a required field
2805	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2806
2807	MaxItems *int64 `location:"querystring" locationName:"maxItems" min:"1" type:"integer"`
2808
2809	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
2810
2811	SemanticVersion *string `location:"querystring" locationName:"semanticVersion" type:"string"`
2812}
2813
2814// String returns the string representation
2815func (s ListApplicationDependenciesInput) String() string {
2816	return awsutil.Prettify(s)
2817}
2818
2819// GoString returns the string representation
2820func (s ListApplicationDependenciesInput) GoString() string {
2821	return s.String()
2822}
2823
2824// Validate inspects the fields of the type to determine if they are valid.
2825func (s *ListApplicationDependenciesInput) Validate() error {
2826	invalidParams := request.ErrInvalidParams{Context: "ListApplicationDependenciesInput"}
2827	if s.ApplicationId == nil {
2828		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2829	}
2830	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2831		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2832	}
2833	if s.MaxItems != nil && *s.MaxItems < 1 {
2834		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
2835	}
2836
2837	if invalidParams.Len() > 0 {
2838		return invalidParams
2839	}
2840	return nil
2841}
2842
2843// SetApplicationId sets the ApplicationId field's value.
2844func (s *ListApplicationDependenciesInput) SetApplicationId(v string) *ListApplicationDependenciesInput {
2845	s.ApplicationId = &v
2846	return s
2847}
2848
2849// SetMaxItems sets the MaxItems field's value.
2850func (s *ListApplicationDependenciesInput) SetMaxItems(v int64) *ListApplicationDependenciesInput {
2851	s.MaxItems = &v
2852	return s
2853}
2854
2855// SetNextToken sets the NextToken field's value.
2856func (s *ListApplicationDependenciesInput) SetNextToken(v string) *ListApplicationDependenciesInput {
2857	s.NextToken = &v
2858	return s
2859}
2860
2861// SetSemanticVersion sets the SemanticVersion field's value.
2862func (s *ListApplicationDependenciesInput) SetSemanticVersion(v string) *ListApplicationDependenciesInput {
2863	s.SemanticVersion = &v
2864	return s
2865}
2866
2867type ListApplicationDependenciesOutput struct {
2868	_ struct{} `type:"structure"`
2869
2870	Dependencies []*ApplicationDependencySummary `locationName:"dependencies" type:"list"`
2871
2872	NextToken *string `locationName:"nextToken" type:"string"`
2873}
2874
2875// String returns the string representation
2876func (s ListApplicationDependenciesOutput) String() string {
2877	return awsutil.Prettify(s)
2878}
2879
2880// GoString returns the string representation
2881func (s ListApplicationDependenciesOutput) GoString() string {
2882	return s.String()
2883}
2884
2885// SetDependencies sets the Dependencies field's value.
2886func (s *ListApplicationDependenciesOutput) SetDependencies(v []*ApplicationDependencySummary) *ListApplicationDependenciesOutput {
2887	s.Dependencies = v
2888	return s
2889}
2890
2891// SetNextToken sets the NextToken field's value.
2892func (s *ListApplicationDependenciesOutput) SetNextToken(v string) *ListApplicationDependenciesOutput {
2893	s.NextToken = &v
2894	return s
2895}
2896
2897type ListApplicationVersionsInput struct {
2898	_ struct{} `type:"structure"`
2899
2900	// ApplicationId is a required field
2901	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2902
2903	MaxItems *int64 `location:"querystring" locationName:"maxItems" min:"1" type:"integer"`
2904
2905	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
2906}
2907
2908// String returns the string representation
2909func (s ListApplicationVersionsInput) String() string {
2910	return awsutil.Prettify(s)
2911}
2912
2913// GoString returns the string representation
2914func (s ListApplicationVersionsInput) GoString() string {
2915	return s.String()
2916}
2917
2918// Validate inspects the fields of the type to determine if they are valid.
2919func (s *ListApplicationVersionsInput) Validate() error {
2920	invalidParams := request.ErrInvalidParams{Context: "ListApplicationVersionsInput"}
2921	if s.ApplicationId == nil {
2922		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2923	}
2924	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2925		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2926	}
2927	if s.MaxItems != nil && *s.MaxItems < 1 {
2928		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
2929	}
2930
2931	if invalidParams.Len() > 0 {
2932		return invalidParams
2933	}
2934	return nil
2935}
2936
2937// SetApplicationId sets the ApplicationId field's value.
2938func (s *ListApplicationVersionsInput) SetApplicationId(v string) *ListApplicationVersionsInput {
2939	s.ApplicationId = &v
2940	return s
2941}
2942
2943// SetMaxItems sets the MaxItems field's value.
2944func (s *ListApplicationVersionsInput) SetMaxItems(v int64) *ListApplicationVersionsInput {
2945	s.MaxItems = &v
2946	return s
2947}
2948
2949// SetNextToken sets the NextToken field's value.
2950func (s *ListApplicationVersionsInput) SetNextToken(v string) *ListApplicationVersionsInput {
2951	s.NextToken = &v
2952	return s
2953}
2954
2955type ListApplicationVersionsOutput struct {
2956	_ struct{} `type:"structure"`
2957
2958	NextToken *string `locationName:"nextToken" type:"string"`
2959
2960	Versions []*VersionSummary `locationName:"versions" type:"list"`
2961}
2962
2963// String returns the string representation
2964func (s ListApplicationVersionsOutput) String() string {
2965	return awsutil.Prettify(s)
2966}
2967
2968// GoString returns the string representation
2969func (s ListApplicationVersionsOutput) GoString() string {
2970	return s.String()
2971}
2972
2973// SetNextToken sets the NextToken field's value.
2974func (s *ListApplicationVersionsOutput) SetNextToken(v string) *ListApplicationVersionsOutput {
2975	s.NextToken = &v
2976	return s
2977}
2978
2979// SetVersions sets the Versions field's value.
2980func (s *ListApplicationVersionsOutput) SetVersions(v []*VersionSummary) *ListApplicationVersionsOutput {
2981	s.Versions = v
2982	return s
2983}
2984
2985type ListApplicationsInput struct {
2986	_ struct{} `type:"structure"`
2987
2988	MaxItems *int64 `location:"querystring" locationName:"maxItems" min:"1" type:"integer"`
2989
2990	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
2991}
2992
2993// String returns the string representation
2994func (s ListApplicationsInput) String() string {
2995	return awsutil.Prettify(s)
2996}
2997
2998// GoString returns the string representation
2999func (s ListApplicationsInput) GoString() string {
3000	return s.String()
3001}
3002
3003// Validate inspects the fields of the type to determine if they are valid.
3004func (s *ListApplicationsInput) Validate() error {
3005	invalidParams := request.ErrInvalidParams{Context: "ListApplicationsInput"}
3006	if s.MaxItems != nil && *s.MaxItems < 1 {
3007		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
3008	}
3009
3010	if invalidParams.Len() > 0 {
3011		return invalidParams
3012	}
3013	return nil
3014}
3015
3016// SetMaxItems sets the MaxItems field's value.
3017func (s *ListApplicationsInput) SetMaxItems(v int64) *ListApplicationsInput {
3018	s.MaxItems = &v
3019	return s
3020}
3021
3022// SetNextToken sets the NextToken field's value.
3023func (s *ListApplicationsInput) SetNextToken(v string) *ListApplicationsInput {
3024	s.NextToken = &v
3025	return s
3026}
3027
3028type ListApplicationsOutput struct {
3029	_ struct{} `type:"structure"`
3030
3031	Applications []*ApplicationSummary `locationName:"applications" type:"list"`
3032
3033	NextToken *string `locationName:"nextToken" type:"string"`
3034}
3035
3036// String returns the string representation
3037func (s ListApplicationsOutput) String() string {
3038	return awsutil.Prettify(s)
3039}
3040
3041// GoString returns the string representation
3042func (s ListApplicationsOutput) GoString() string {
3043	return s.String()
3044}
3045
3046// SetApplications sets the Applications field's value.
3047func (s *ListApplicationsOutput) SetApplications(v []*ApplicationSummary) *ListApplicationsOutput {
3048	s.Applications = v
3049	return s
3050}
3051
3052// SetNextToken sets the NextToken field's value.
3053func (s *ListApplicationsOutput) SetNextToken(v string) *ListApplicationsOutput {
3054	s.NextToken = &v
3055	return s
3056}
3057
3058// Parameters supported by the application.
3059type ParameterDefinition struct {
3060	_ struct{} `type:"structure"`
3061
3062	// A regular expression that represents the patterns to allow for String types.
3063	AllowedPattern *string `locationName:"allowedPattern" type:"string"`
3064
3065	// An array containing the list of values allowed for the parameter.
3066	AllowedValues []*string `locationName:"allowedValues" type:"list"`
3067
3068	// A string that explains a constraint when the constraint is violated. For
3069	// example, without a constraint description, a parameter that has an allowed
3070	// pattern of [A-Za-z0-9]+ displays the following error message when the user
3071	// specifies an invalid value:
3072	//
3073	// Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+
3074	//
3075	// By adding a constraint description, such as "must contain only uppercase
3076	// and lowercase letters and numbers," you can display the following customized
3077	// error message:
3078	//
3079	// Malformed input-Parameter MyParameter must contain only uppercase and lowercase
3080	// letters and numbers.
3081	ConstraintDescription *string `locationName:"constraintDescription" type:"string"`
3082
3083	// A value of the appropriate type for the template to use if no value is specified
3084	// when a stack is created. If you define constraints for the parameter, you
3085	// must specify a value that adheres to those constraints.
3086	DefaultValue *string `locationName:"defaultValue" type:"string"`
3087
3088	// A string of up to 4,000 characters that describes the parameter.
3089	Description *string `locationName:"description" type:"string"`
3090
3091	// An integer value that determines the largest number of characters that you
3092	// want to allow for String types.
3093	MaxLength *int64 `locationName:"maxLength" type:"integer"`
3094
3095	// A numeric value that determines the largest numeric value that you want to
3096	// allow for Number types.
3097	MaxValue *int64 `locationName:"maxValue" type:"integer"`
3098
3099	// An integer value that determines the smallest number of characters that you
3100	// want to allow for String types.
3101	MinLength *int64 `locationName:"minLength" type:"integer"`
3102
3103	// A numeric value that determines the smallest numeric value that you want
3104	// to allow for Number types.
3105	MinValue *int64 `locationName:"minValue" type:"integer"`
3106
3107	// The name of the parameter.
3108	//
3109	// Name is a required field
3110	Name *string `locationName:"name" type:"string" required:"true"`
3111
3112	// Whether to mask the parameter value whenever anyone makes a call that describes
3113	// the stack. If you set the value to true, the parameter value is masked with
3114	// asterisks (*****).
3115	NoEcho *bool `locationName:"noEcho" type:"boolean"`
3116
3117	// A list of AWS SAM resources that use this parameter.
3118	//
3119	// ReferencedByResources is a required field
3120	ReferencedByResources []*string `locationName:"referencedByResources" type:"list" required:"true"`
3121
3122	// The type of the parameter.
3123	//
3124	// Valid values: String | Number | List<Number> | CommaDelimitedList
3125	//
3126	// String: A literal string.
3127	//
3128	// For example, users can specify "MyUserName".
3129	//
3130	// Number: An integer or float. AWS CloudFormation validates the parameter value
3131	// as a number. However, when you use the parameter elsewhere in your template
3132	// (for example, by using the Ref intrinsic function), the parameter value becomes
3133	// a string.
3134	//
3135	// For example, users might specify "8888".
3136	//
3137	// List<Number>: An array of integers or floats that are separated by commas.
3138	// AWS CloudFormation validates the parameter value as numbers. However, when
3139	// you use the parameter elsewhere in your template (for example, by using the
3140	// Ref intrinsic function), the parameter value becomes a list of strings.
3141	//
3142	// For example, users might specify "80,20", and then Ref results in ["80","20"].
3143	//
3144	// CommaDelimitedList: An array of literal strings that are separated by commas.
3145	// The total number of strings should be one more than the total number of commas.
3146	// Also, each member string is space-trimmed.
3147	//
3148	// For example, users might specify "test,dev,prod", and then Ref results in
3149	// ["test","dev","prod"].
3150	Type *string `locationName:"type" type:"string"`
3151}
3152
3153// String returns the string representation
3154func (s ParameterDefinition) String() string {
3155	return awsutil.Prettify(s)
3156}
3157
3158// GoString returns the string representation
3159func (s ParameterDefinition) GoString() string {
3160	return s.String()
3161}
3162
3163// SetAllowedPattern sets the AllowedPattern field's value.
3164func (s *ParameterDefinition) SetAllowedPattern(v string) *ParameterDefinition {
3165	s.AllowedPattern = &v
3166	return s
3167}
3168
3169// SetAllowedValues sets the AllowedValues field's value.
3170func (s *ParameterDefinition) SetAllowedValues(v []*string) *ParameterDefinition {
3171	s.AllowedValues = v
3172	return s
3173}
3174
3175// SetConstraintDescription sets the ConstraintDescription field's value.
3176func (s *ParameterDefinition) SetConstraintDescription(v string) *ParameterDefinition {
3177	s.ConstraintDescription = &v
3178	return s
3179}
3180
3181// SetDefaultValue sets the DefaultValue field's value.
3182func (s *ParameterDefinition) SetDefaultValue(v string) *ParameterDefinition {
3183	s.DefaultValue = &v
3184	return s
3185}
3186
3187// SetDescription sets the Description field's value.
3188func (s *ParameterDefinition) SetDescription(v string) *ParameterDefinition {
3189	s.Description = &v
3190	return s
3191}
3192
3193// SetMaxLength sets the MaxLength field's value.
3194func (s *ParameterDefinition) SetMaxLength(v int64) *ParameterDefinition {
3195	s.MaxLength = &v
3196	return s
3197}
3198
3199// SetMaxValue sets the MaxValue field's value.
3200func (s *ParameterDefinition) SetMaxValue(v int64) *ParameterDefinition {
3201	s.MaxValue = &v
3202	return s
3203}
3204
3205// SetMinLength sets the MinLength field's value.
3206func (s *ParameterDefinition) SetMinLength(v int64) *ParameterDefinition {
3207	s.MinLength = &v
3208	return s
3209}
3210
3211// SetMinValue sets the MinValue field's value.
3212func (s *ParameterDefinition) SetMinValue(v int64) *ParameterDefinition {
3213	s.MinValue = &v
3214	return s
3215}
3216
3217// SetName sets the Name field's value.
3218func (s *ParameterDefinition) SetName(v string) *ParameterDefinition {
3219	s.Name = &v
3220	return s
3221}
3222
3223// SetNoEcho sets the NoEcho field's value.
3224func (s *ParameterDefinition) SetNoEcho(v bool) *ParameterDefinition {
3225	s.NoEcho = &v
3226	return s
3227}
3228
3229// SetReferencedByResources sets the ReferencedByResources field's value.
3230func (s *ParameterDefinition) SetReferencedByResources(v []*string) *ParameterDefinition {
3231	s.ReferencedByResources = v
3232	return s
3233}
3234
3235// SetType sets the Type field's value.
3236func (s *ParameterDefinition) SetType(v string) *ParameterDefinition {
3237	s.Type = &v
3238	return s
3239}
3240
3241// Parameter value of the application.
3242type ParameterValue str