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	cont := true
910	for p.Next() && cont {
911		cont = fn(p.Page().(*ListApplicationDependenciesOutput), !p.HasNextPage())
912	}
913	return p.Err()
914}
915
916const opListApplicationVersions = "ListApplicationVersions"
917
918// ListApplicationVersionsRequest generates a "aws/request.Request" representing the
919// client's request for the ListApplicationVersions operation. The "output" return
920// value will be populated with the request's response once the request completes
921// successfully.
922//
923// Use "Send" method on the returned Request to send the API call to the service.
924// the "output" return value is not valid until after Send returns without error.
925//
926// See ListApplicationVersions for more information on using the ListApplicationVersions
927// API call, and error handling.
928//
929// This method is useful when you want to inject custom logic or configuration
930// into the SDK's request lifecycle. Such as custom headers, or retry logic.
931//
932//
933//    // Example sending a request using the ListApplicationVersionsRequest method.
934//    req, resp := client.ListApplicationVersionsRequest(params)
935//
936//    err := req.Send()
937//    if err == nil { // resp is now filled
938//        fmt.Println(resp)
939//    }
940//
941// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/ListApplicationVersions
942func (c *ServerlessApplicationRepository) ListApplicationVersionsRequest(input *ListApplicationVersionsInput) (req *request.Request, output *ListApplicationVersionsOutput) {
943	op := &request.Operation{
944		Name:       opListApplicationVersions,
945		HTTPMethod: "GET",
946		HTTPPath:   "/applications/{applicationId}/versions",
947		Paginator: &request.Paginator{
948			InputTokens:     []string{"NextToken"},
949			OutputTokens:    []string{"NextToken"},
950			LimitToken:      "MaxItems",
951			TruncationToken: "",
952		},
953	}
954
955	if input == nil {
956		input = &ListApplicationVersionsInput{}
957	}
958
959	output = &ListApplicationVersionsOutput{}
960	req = c.newRequest(op, input, output)
961	return
962}
963
964// ListApplicationVersions API operation for AWSServerlessApplicationRepository.
965//
966// Lists versions for the specified application.
967//
968// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
969// with awserr.Error's Code and Message methods to get detailed information about
970// the error.
971//
972// See the AWS API reference guide for AWSServerlessApplicationRepository's
973// API operation ListApplicationVersions for usage and error information.
974//
975// Returned Error Codes:
976//   * ErrCodeNotFoundException "NotFoundException"
977//   The resource (for example, an access policy statement) specified in the request
978//   doesn't exist.
979//
980//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
981//   The client is sending more than the allowed number of requests per unit of
982//   time.
983//
984//   * ErrCodeBadRequestException "BadRequestException"
985//   One of the parameters in the request is invalid.
986//
987//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
988//   The AWS Serverless Application Repository service encountered an internal
989//   error.
990//
991//   * ErrCodeForbiddenException "ForbiddenException"
992//   The client is not authenticated.
993//
994// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/ListApplicationVersions
995func (c *ServerlessApplicationRepository) ListApplicationVersions(input *ListApplicationVersionsInput) (*ListApplicationVersionsOutput, error) {
996	req, out := c.ListApplicationVersionsRequest(input)
997	return out, req.Send()
998}
999
1000// ListApplicationVersionsWithContext is the same as ListApplicationVersions with the addition of
1001// the ability to pass a context and additional request options.
1002//
1003// See ListApplicationVersions for details on how to use this API operation.
1004//
1005// The context must be non-nil and will be used for request cancellation. If
1006// the context is nil a panic will occur. In the future the SDK may create
1007// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1008// for more information on using Contexts.
1009func (c *ServerlessApplicationRepository) ListApplicationVersionsWithContext(ctx aws.Context, input *ListApplicationVersionsInput, opts ...request.Option) (*ListApplicationVersionsOutput, error) {
1010	req, out := c.ListApplicationVersionsRequest(input)
1011	req.SetContext(ctx)
1012	req.ApplyOptions(opts...)
1013	return out, req.Send()
1014}
1015
1016// ListApplicationVersionsPages iterates over the pages of a ListApplicationVersions operation,
1017// calling the "fn" function with the response data for each page. To stop
1018// iterating, return false from the fn function.
1019//
1020// See ListApplicationVersions method for more information on how to use this operation.
1021//
1022// Note: This operation can generate multiple requests to a service.
1023//
1024//    // Example iterating over at most 3 pages of a ListApplicationVersions operation.
1025//    pageNum := 0
1026//    err := client.ListApplicationVersionsPages(params,
1027//        func(page *serverlessapplicationrepository.ListApplicationVersionsOutput, lastPage bool) bool {
1028//            pageNum++
1029//            fmt.Println(page)
1030//            return pageNum <= 3
1031//        })
1032//
1033func (c *ServerlessApplicationRepository) ListApplicationVersionsPages(input *ListApplicationVersionsInput, fn func(*ListApplicationVersionsOutput, bool) bool) error {
1034	return c.ListApplicationVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
1035}
1036
1037// ListApplicationVersionsPagesWithContext same as ListApplicationVersionsPages except
1038// it takes a Context and allows setting request options on the pages.
1039//
1040// The context must be non-nil and will be used for request cancellation. If
1041// the context is nil a panic will occur. In the future the SDK may create
1042// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1043// for more information on using Contexts.
1044func (c *ServerlessApplicationRepository) ListApplicationVersionsPagesWithContext(ctx aws.Context, input *ListApplicationVersionsInput, fn func(*ListApplicationVersionsOutput, bool) bool, opts ...request.Option) error {
1045	p := request.Pagination{
1046		NewRequest: func() (*request.Request, error) {
1047			var inCpy *ListApplicationVersionsInput
1048			if input != nil {
1049				tmp := *input
1050				inCpy = &tmp
1051			}
1052			req, _ := c.ListApplicationVersionsRequest(inCpy)
1053			req.SetContext(ctx)
1054			req.ApplyOptions(opts...)
1055			return req, nil
1056		},
1057	}
1058
1059	cont := true
1060	for p.Next() && cont {
1061		cont = fn(p.Page().(*ListApplicationVersionsOutput), !p.HasNextPage())
1062	}
1063	return p.Err()
1064}
1065
1066const opListApplications = "ListApplications"
1067
1068// ListApplicationsRequest generates a "aws/request.Request" representing the
1069// client's request for the ListApplications operation. The "output" return
1070// value will be populated with the request's response once the request completes
1071// successfully.
1072//
1073// Use "Send" method on the returned Request to send the API call to the service.
1074// the "output" return value is not valid until after Send returns without error.
1075//
1076// See ListApplications for more information on using the ListApplications
1077// API call, and error handling.
1078//
1079// This method is useful when you want to inject custom logic or configuration
1080// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1081//
1082//
1083//    // Example sending a request using the ListApplicationsRequest method.
1084//    req, resp := client.ListApplicationsRequest(params)
1085//
1086//    err := req.Send()
1087//    if err == nil { // resp is now filled
1088//        fmt.Println(resp)
1089//    }
1090//
1091// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/ListApplications
1092func (c *ServerlessApplicationRepository) ListApplicationsRequest(input *ListApplicationsInput) (req *request.Request, output *ListApplicationsOutput) {
1093	op := &request.Operation{
1094		Name:       opListApplications,
1095		HTTPMethod: "GET",
1096		HTTPPath:   "/applications",
1097		Paginator: &request.Paginator{
1098			InputTokens:     []string{"NextToken"},
1099			OutputTokens:    []string{"NextToken"},
1100			LimitToken:      "MaxItems",
1101			TruncationToken: "",
1102		},
1103	}
1104
1105	if input == nil {
1106		input = &ListApplicationsInput{}
1107	}
1108
1109	output = &ListApplicationsOutput{}
1110	req = c.newRequest(op, input, output)
1111	return
1112}
1113
1114// ListApplications API operation for AWSServerlessApplicationRepository.
1115//
1116// Lists applications owned by the requester.
1117//
1118// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1119// with awserr.Error's Code and Message methods to get detailed information about
1120// the error.
1121//
1122// See the AWS API reference guide for AWSServerlessApplicationRepository's
1123// API operation ListApplications for usage and error information.
1124//
1125// Returned Error Codes:
1126//   * ErrCodeNotFoundException "NotFoundException"
1127//   The resource (for example, an access policy statement) specified in the request
1128//   doesn't exist.
1129//
1130//   * ErrCodeBadRequestException "BadRequestException"
1131//   One of the parameters in the request is invalid.
1132//
1133//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1134//   The AWS Serverless Application Repository service encountered an internal
1135//   error.
1136//
1137//   * ErrCodeForbiddenException "ForbiddenException"
1138//   The client is not authenticated.
1139//
1140// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/ListApplications
1141func (c *ServerlessApplicationRepository) ListApplications(input *ListApplicationsInput) (*ListApplicationsOutput, error) {
1142	req, out := c.ListApplicationsRequest(input)
1143	return out, req.Send()
1144}
1145
1146// ListApplicationsWithContext is the same as ListApplications with the addition of
1147// the ability to pass a context and additional request options.
1148//
1149// See ListApplications for details on how to use this API operation.
1150//
1151// The context must be non-nil and will be used for request cancellation. If
1152// the context is nil a panic will occur. In the future the SDK may create
1153// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1154// for more information on using Contexts.
1155func (c *ServerlessApplicationRepository) ListApplicationsWithContext(ctx aws.Context, input *ListApplicationsInput, opts ...request.Option) (*ListApplicationsOutput, error) {
1156	req, out := c.ListApplicationsRequest(input)
1157	req.SetContext(ctx)
1158	req.ApplyOptions(opts...)
1159	return out, req.Send()
1160}
1161
1162// ListApplicationsPages iterates over the pages of a ListApplications operation,
1163// calling the "fn" function with the response data for each page. To stop
1164// iterating, return false from the fn function.
1165//
1166// See ListApplications method for more information on how to use this operation.
1167//
1168// Note: This operation can generate multiple requests to a service.
1169//
1170//    // Example iterating over at most 3 pages of a ListApplications operation.
1171//    pageNum := 0
1172//    err := client.ListApplicationsPages(params,
1173//        func(page *serverlessapplicationrepository.ListApplicationsOutput, lastPage bool) bool {
1174//            pageNum++
1175//            fmt.Println(page)
1176//            return pageNum <= 3
1177//        })
1178//
1179func (c *ServerlessApplicationRepository) ListApplicationsPages(input *ListApplicationsInput, fn func(*ListApplicationsOutput, bool) bool) error {
1180	return c.ListApplicationsPagesWithContext(aws.BackgroundContext(), input, fn)
1181}
1182
1183// ListApplicationsPagesWithContext same as ListApplicationsPages except
1184// it takes a Context and allows setting request options on the pages.
1185//
1186// The context must be non-nil and will be used for request cancellation. If
1187// the context is nil a panic will occur. In the future the SDK may create
1188// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1189// for more information on using Contexts.
1190func (c *ServerlessApplicationRepository) ListApplicationsPagesWithContext(ctx aws.Context, input *ListApplicationsInput, fn func(*ListApplicationsOutput, bool) bool, opts ...request.Option) error {
1191	p := request.Pagination{
1192		NewRequest: func() (*request.Request, error) {
1193			var inCpy *ListApplicationsInput
1194			if input != nil {
1195				tmp := *input
1196				inCpy = &tmp
1197			}
1198			req, _ := c.ListApplicationsRequest(inCpy)
1199			req.SetContext(ctx)
1200			req.ApplyOptions(opts...)
1201			return req, nil
1202		},
1203	}
1204
1205	cont := true
1206	for p.Next() && cont {
1207		cont = fn(p.Page().(*ListApplicationsOutput), !p.HasNextPage())
1208	}
1209	return p.Err()
1210}
1211
1212const opPutApplicationPolicy = "PutApplicationPolicy"
1213
1214// PutApplicationPolicyRequest generates a "aws/request.Request" representing the
1215// client's request for the PutApplicationPolicy operation. The "output" return
1216// value will be populated with the request's response once the request completes
1217// successfully.
1218//
1219// Use "Send" method on the returned Request to send the API call to the service.
1220// the "output" return value is not valid until after Send returns without error.
1221//
1222// See PutApplicationPolicy for more information on using the PutApplicationPolicy
1223// API call, and error handling.
1224//
1225// This method is useful when you want to inject custom logic or configuration
1226// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1227//
1228//
1229//    // Example sending a request using the PutApplicationPolicyRequest method.
1230//    req, resp := client.PutApplicationPolicyRequest(params)
1231//
1232//    err := req.Send()
1233//    if err == nil { // resp is now filled
1234//        fmt.Println(resp)
1235//    }
1236//
1237// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/PutApplicationPolicy
1238func (c *ServerlessApplicationRepository) PutApplicationPolicyRequest(input *PutApplicationPolicyInput) (req *request.Request, output *PutApplicationPolicyOutput) {
1239	op := &request.Operation{
1240		Name:       opPutApplicationPolicy,
1241		HTTPMethod: "PUT",
1242		HTTPPath:   "/applications/{applicationId}/policy",
1243	}
1244
1245	if input == nil {
1246		input = &PutApplicationPolicyInput{}
1247	}
1248
1249	output = &PutApplicationPolicyOutput{}
1250	req = c.newRequest(op, input, output)
1251	return
1252}
1253
1254// PutApplicationPolicy API operation for AWSServerlessApplicationRepository.
1255//
1256// Sets the permission policy for an application. For the list of actions supported
1257// for this operation, see Application Permissions (https://docs.aws.amazon.com/serverlessrepo/latest/devguide/access-control-resource-based.html#application-permissions) .
1258//
1259// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1260// with awserr.Error's Code and Message methods to get detailed information about
1261// the error.
1262//
1263// See the AWS API reference guide for AWSServerlessApplicationRepository's
1264// API operation PutApplicationPolicy for usage and error information.
1265//
1266// Returned Error Codes:
1267//   * ErrCodeNotFoundException "NotFoundException"
1268//   The resource (for example, an access policy statement) specified in the request
1269//   doesn't exist.
1270//
1271//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1272//   The client is sending more than the allowed number of requests per unit of
1273//   time.
1274//
1275//   * ErrCodeBadRequestException "BadRequestException"
1276//   One of the parameters in the request is invalid.
1277//
1278//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1279//   The AWS Serverless Application Repository service encountered an internal
1280//   error.
1281//
1282//   * ErrCodeForbiddenException "ForbiddenException"
1283//   The client is not authenticated.
1284//
1285// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/PutApplicationPolicy
1286func (c *ServerlessApplicationRepository) PutApplicationPolicy(input *PutApplicationPolicyInput) (*PutApplicationPolicyOutput, error) {
1287	req, out := c.PutApplicationPolicyRequest(input)
1288	return out, req.Send()
1289}
1290
1291// PutApplicationPolicyWithContext is the same as PutApplicationPolicy with the addition of
1292// the ability to pass a context and additional request options.
1293//
1294// See PutApplicationPolicy for details on how to use this API operation.
1295//
1296// The context must be non-nil and will be used for request cancellation. If
1297// the context is nil a panic will occur. In the future the SDK may create
1298// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1299// for more information on using Contexts.
1300func (c *ServerlessApplicationRepository) PutApplicationPolicyWithContext(ctx aws.Context, input *PutApplicationPolicyInput, opts ...request.Option) (*PutApplicationPolicyOutput, error) {
1301	req, out := c.PutApplicationPolicyRequest(input)
1302	req.SetContext(ctx)
1303	req.ApplyOptions(opts...)
1304	return out, req.Send()
1305}
1306
1307const opUpdateApplication = "UpdateApplication"
1308
1309// UpdateApplicationRequest generates a "aws/request.Request" representing the
1310// client's request for the UpdateApplication operation. The "output" return
1311// value will be populated with the request's response once the request completes
1312// successfully.
1313//
1314// Use "Send" method on the returned Request to send the API call to the service.
1315// the "output" return value is not valid until after Send returns without error.
1316//
1317// See UpdateApplication for more information on using the UpdateApplication
1318// API call, and error handling.
1319//
1320// This method is useful when you want to inject custom logic or configuration
1321// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1322//
1323//
1324//    // Example sending a request using the UpdateApplicationRequest method.
1325//    req, resp := client.UpdateApplicationRequest(params)
1326//
1327//    err := req.Send()
1328//    if err == nil { // resp is now filled
1329//        fmt.Println(resp)
1330//    }
1331//
1332// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/UpdateApplication
1333func (c *ServerlessApplicationRepository) UpdateApplicationRequest(input *UpdateApplicationRequest) (req *request.Request, output *UpdateApplicationOutput) {
1334	op := &request.Operation{
1335		Name:       opUpdateApplication,
1336		HTTPMethod: "PATCH",
1337		HTTPPath:   "/applications/{applicationId}",
1338	}
1339
1340	if input == nil {
1341		input = &UpdateApplicationRequest{}
1342	}
1343
1344	output = &UpdateApplicationOutput{}
1345	req = c.newRequest(op, input, output)
1346	return
1347}
1348
1349// UpdateApplication API operation for AWSServerlessApplicationRepository.
1350//
1351// Updates the specified application.
1352//
1353// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1354// with awserr.Error's Code and Message methods to get detailed information about
1355// the error.
1356//
1357// See the AWS API reference guide for AWSServerlessApplicationRepository's
1358// API operation UpdateApplication for usage and error information.
1359//
1360// Returned Error Codes:
1361//   * ErrCodeBadRequestException "BadRequestException"
1362//   One of the parameters in the request is invalid.
1363//
1364//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1365//   The AWS Serverless Application Repository service encountered an internal
1366//   error.
1367//
1368//   * ErrCodeForbiddenException "ForbiddenException"
1369//   The client is not authenticated.
1370//
1371//   * ErrCodeNotFoundException "NotFoundException"
1372//   The resource (for example, an access policy statement) specified in the request
1373//   doesn't exist.
1374//
1375//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1376//   The client is sending more than the allowed number of requests per unit of
1377//   time.
1378//
1379//   * ErrCodeConflictException "ConflictException"
1380//   The resource already exists.
1381//
1382// See also, https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/UpdateApplication
1383func (c *ServerlessApplicationRepository) UpdateApplication(input *UpdateApplicationRequest) (*UpdateApplicationOutput, error) {
1384	req, out := c.UpdateApplicationRequest(input)
1385	return out, req.Send()
1386}
1387
1388// UpdateApplicationWithContext is the same as UpdateApplication with the addition of
1389// the ability to pass a context and additional request options.
1390//
1391// See UpdateApplication for details on how to use this API operation.
1392//
1393// The context must be non-nil and will be used for request cancellation. If
1394// the context is nil a panic will occur. In the future the SDK may create
1395// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1396// for more information on using Contexts.
1397func (c *ServerlessApplicationRepository) UpdateApplicationWithContext(ctx aws.Context, input *UpdateApplicationRequest, opts ...request.Option) (*UpdateApplicationOutput, error) {
1398	req, out := c.UpdateApplicationRequest(input)
1399	req.SetContext(ctx)
1400	req.ApplyOptions(opts...)
1401	return out, req.Send()
1402}
1403
1404// A nested application summary.
1405type ApplicationDependencySummary struct {
1406	_ struct{} `type:"structure"`
1407
1408	// The Amazon Resource Name (ARN) of the nested application.
1409	//
1410	// ApplicationId is a required field
1411	ApplicationId *string `locationName:"applicationId" type:"string" required:"true"`
1412
1413	// The semantic version of the nested application.
1414	//
1415	// SemanticVersion is a required field
1416	SemanticVersion *string `locationName:"semanticVersion" type:"string" required:"true"`
1417}
1418
1419// String returns the string representation
1420func (s ApplicationDependencySummary) String() string {
1421	return awsutil.Prettify(s)
1422}
1423
1424// GoString returns the string representation
1425func (s ApplicationDependencySummary) GoString() string {
1426	return s.String()
1427}
1428
1429// SetApplicationId sets the ApplicationId field's value.
1430func (s *ApplicationDependencySummary) SetApplicationId(v string) *ApplicationDependencySummary {
1431	s.ApplicationId = &v
1432	return s
1433}
1434
1435// SetSemanticVersion sets the SemanticVersion field's value.
1436func (s *ApplicationDependencySummary) SetSemanticVersion(v string) *ApplicationDependencySummary {
1437	s.SemanticVersion = &v
1438	return s
1439}
1440
1441// Policy statement applied to the application.
1442type ApplicationPolicyStatement struct {
1443	_ struct{} `type:"structure"`
1444
1445	// For the list of actions supported for this operation, see Application Permissions
1446	// (https://docs.aws.amazon.com/serverlessrepo/latest/devguide/access-control-resource-based.html#application-permissions).
1447	//
1448	// Actions is a required field
1449	Actions []*string `locationName:"actions" type:"list" required:"true"`
1450
1451	// An array of AWS account IDs, or * to make the application public.
1452	//
1453	// Principals is a required field
1454	Principals []*string `locationName:"principals" type:"list" required:"true"`
1455
1456	// A unique ID for the statement.
1457	StatementId *string `locationName:"statementId" type:"string"`
1458}
1459
1460// String returns the string representation
1461func (s ApplicationPolicyStatement) String() string {
1462	return awsutil.Prettify(s)
1463}
1464
1465// GoString returns the string representation
1466func (s ApplicationPolicyStatement) GoString() string {
1467	return s.String()
1468}
1469
1470// Validate inspects the fields of the type to determine if they are valid.
1471func (s *ApplicationPolicyStatement) Validate() error {
1472	invalidParams := request.ErrInvalidParams{Context: "ApplicationPolicyStatement"}
1473	if s.Actions == nil {
1474		invalidParams.Add(request.NewErrParamRequired("Actions"))
1475	}
1476	if s.Principals == nil {
1477		invalidParams.Add(request.NewErrParamRequired("Principals"))
1478	}
1479
1480	if invalidParams.Len() > 0 {
1481		return invalidParams
1482	}
1483	return nil
1484}
1485
1486// SetActions sets the Actions field's value.
1487func (s *ApplicationPolicyStatement) SetActions(v []*string) *ApplicationPolicyStatement {
1488	s.Actions = v
1489	return s
1490}
1491
1492// SetPrincipals sets the Principals field's value.
1493func (s *ApplicationPolicyStatement) SetPrincipals(v []*string) *ApplicationPolicyStatement {
1494	s.Principals = v
1495	return s
1496}
1497
1498// SetStatementId sets the StatementId field's value.
1499func (s *ApplicationPolicyStatement) SetStatementId(v string) *ApplicationPolicyStatement {
1500	s.StatementId = &v
1501	return s
1502}
1503
1504// Summary of details about the application.
1505type ApplicationSummary struct {
1506	_ struct{} `type:"structure"`
1507
1508	// The application Amazon Resource Name (ARN).
1509	//
1510	// ApplicationId is a required field
1511	ApplicationId *string `locationName:"applicationId" type:"string" required:"true"`
1512
1513	// The name of the author publishing the app.
1514	//
1515	// Minimum length=1. Maximum length=127.
1516	//
1517	// Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
1518	//
1519	// Author is a required field
1520	Author *string `locationName:"author" type:"string" required:"true"`
1521
1522	// The date and time this resource was created.
1523	CreationTime *string `locationName:"creationTime" type:"string"`
1524
1525	// The description of the application.
1526	//
1527	// Minimum length=1. Maximum length=256
1528	//
1529	// Description is a required field
1530	Description *string `locationName:"description" type:"string" required:"true"`
1531
1532	// A URL with more information about the application, for example the location
1533	// of your GitHub repository for the application.
1534	HomePageUrl *string `locationName:"homePageUrl" type:"string"`
1535
1536	// Labels to improve discovery of apps in search results.
1537	//
1538	// Minimum length=1. Maximum length=127. Maximum number of labels: 10
1539	//
1540	// Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
1541	Labels []*string `locationName:"labels" type:"list"`
1542
1543	// The name of the application.
1544	//
1545	// Minimum length=1. Maximum length=140
1546	//
1547	// Pattern: "[a-zA-Z0-9\\-]+";
1548	//
1549	// Name is a required field
1550	Name *string `locationName:"name" type:"string" required:"true"`
1551
1552	// A valid identifier from https://spdx.org/licenses/ (https://spdx.org/licenses/).
1553	SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"`
1554}
1555
1556// String returns the string representation
1557func (s ApplicationSummary) String() string {
1558	return awsutil.Prettify(s)
1559}
1560
1561// GoString returns the string representation
1562func (s ApplicationSummary) GoString() string {
1563	return s.String()
1564}
1565
1566// SetApplicationId sets the ApplicationId field's value.
1567func (s *ApplicationSummary) SetApplicationId(v string) *ApplicationSummary {
1568	s.ApplicationId = &v
1569	return s
1570}
1571
1572// SetAuthor sets the Author field's value.
1573func (s *ApplicationSummary) SetAuthor(v string) *ApplicationSummary {
1574	s.Author = &v
1575	return s
1576}
1577
1578// SetCreationTime sets the CreationTime field's value.
1579func (s *ApplicationSummary) SetCreationTime(v string) *ApplicationSummary {
1580	s.CreationTime = &v
1581	return s
1582}
1583
1584// SetDescription sets the Description field's value.
1585func (s *ApplicationSummary) SetDescription(v string) *ApplicationSummary {
1586	s.Description = &v
1587	return s
1588}
1589
1590// SetHomePageUrl sets the HomePageUrl field's value.
1591func (s *ApplicationSummary) SetHomePageUrl(v string) *ApplicationSummary {
1592	s.HomePageUrl = &v
1593	return s
1594}
1595
1596// SetLabels sets the Labels field's value.
1597func (s *ApplicationSummary) SetLabels(v []*string) *ApplicationSummary {
1598	s.Labels = v
1599	return s
1600}
1601
1602// SetName sets the Name field's value.
1603func (s *ApplicationSummary) SetName(v string) *ApplicationSummary {
1604	s.Name = &v
1605	return s
1606}
1607
1608// SetSpdxLicenseId sets the SpdxLicenseId field's value.
1609func (s *ApplicationSummary) SetSpdxLicenseId(v string) *ApplicationSummary {
1610	s.SpdxLicenseId = &v
1611	return s
1612}
1613
1614type CreateApplicationOutput struct {
1615	_ struct{} `type:"structure"`
1616
1617	ApplicationId *string `locationName:"applicationId" type:"string"`
1618
1619	Author *string `locationName:"author" type:"string"`
1620
1621	CreationTime *string `locationName:"creationTime" type:"string"`
1622
1623	Description *string `locationName:"description" type:"string"`
1624
1625	HomePageUrl *string `locationName:"homePageUrl" type:"string"`
1626
1627	Labels []*string `locationName:"labels" type:"list"`
1628
1629	LicenseUrl *string `locationName:"licenseUrl" type:"string"`
1630
1631	Name *string `locationName:"name" type:"string"`
1632
1633	ReadmeUrl *string `locationName:"readmeUrl" type:"string"`
1634
1635	SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"`
1636
1637	// Application version details.
1638	Version *Version `locationName:"version" type:"structure"`
1639}
1640
1641// String returns the string representation
1642func (s CreateApplicationOutput) String() string {
1643	return awsutil.Prettify(s)
1644}
1645
1646// GoString returns the string representation
1647func (s CreateApplicationOutput) GoString() string {
1648	return s.String()
1649}
1650
1651// SetApplicationId sets the ApplicationId field's value.
1652func (s *CreateApplicationOutput) SetApplicationId(v string) *CreateApplicationOutput {
1653	s.ApplicationId = &v
1654	return s
1655}
1656
1657// SetAuthor sets the Author field's value.
1658func (s *CreateApplicationOutput) SetAuthor(v string) *CreateApplicationOutput {
1659	s.Author = &v
1660	return s
1661}
1662
1663// SetCreationTime sets the CreationTime field's value.
1664func (s *CreateApplicationOutput) SetCreationTime(v string) *CreateApplicationOutput {
1665	s.CreationTime = &v
1666	return s
1667}
1668
1669// SetDescription sets the Description field's value.
1670func (s *CreateApplicationOutput) SetDescription(v string) *CreateApplicationOutput {
1671	s.Description = &v
1672	return s
1673}
1674
1675// SetHomePageUrl sets the HomePageUrl field's value.
1676func (s *CreateApplicationOutput) SetHomePageUrl(v string) *CreateApplicationOutput {
1677	s.HomePageUrl = &v
1678	return s
1679}
1680
1681// SetLabels sets the Labels field's value.
1682func (s *CreateApplicationOutput) SetLabels(v []*string) *CreateApplicationOutput {
1683	s.Labels = v
1684	return s
1685}
1686
1687// SetLicenseUrl sets the LicenseUrl field's value.
1688func (s *CreateApplicationOutput) SetLicenseUrl(v string) *CreateApplicationOutput {
1689	s.LicenseUrl = &v
1690	return s
1691}
1692
1693// SetName sets the Name field's value.
1694func (s *CreateApplicationOutput) SetName(v string) *CreateApplicationOutput {
1695	s.Name = &v
1696	return s
1697}
1698
1699// SetReadmeUrl sets the ReadmeUrl field's value.
1700func (s *CreateApplicationOutput) SetReadmeUrl(v string) *CreateApplicationOutput {
1701	s.ReadmeUrl = &v
1702	return s
1703}
1704
1705// SetSpdxLicenseId sets the SpdxLicenseId field's value.
1706func (s *CreateApplicationOutput) SetSpdxLicenseId(v string) *CreateApplicationOutput {
1707	s.SpdxLicenseId = &v
1708	return s
1709}
1710
1711// SetVersion sets the Version field's value.
1712func (s *CreateApplicationOutput) SetVersion(v *Version) *CreateApplicationOutput {
1713	s.Version = v
1714	return s
1715}
1716
1717type CreateApplicationRequest struct {
1718	_ struct{} `type:"structure"`
1719
1720	// Author is a required field
1721	Author *string `locationName:"author" type:"string" required:"true"`
1722
1723	// Description is a required field
1724	Description *string `locationName:"description" type:"string" required:"true"`
1725
1726	HomePageUrl *string `locationName:"homePageUrl" type:"string"`
1727
1728	Labels []*string `locationName:"labels" type:"list"`
1729
1730	LicenseBody *string `locationName:"licenseBody" type:"string"`
1731
1732	LicenseUrl *string `locationName:"licenseUrl" type:"string"`
1733
1734	// Name is a required field
1735	Name *string `locationName:"name" type:"string" required:"true"`
1736
1737	ReadmeBody *string `locationName:"readmeBody" type:"string"`
1738
1739	ReadmeUrl *string `locationName:"readmeUrl" type:"string"`
1740
1741	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
1742
1743	SourceCodeArchiveUrl *string `locationName:"sourceCodeArchiveUrl" type:"string"`
1744
1745	SourceCodeUrl *string `locationName:"sourceCodeUrl" type:"string"`
1746
1747	SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"`
1748
1749	TemplateBody *string `locationName:"templateBody" type:"string"`
1750
1751	TemplateUrl *string `locationName:"templateUrl" type:"string"`
1752}
1753
1754// String returns the string representation
1755func (s CreateApplicationRequest) String() string {
1756	return awsutil.Prettify(s)
1757}
1758
1759// GoString returns the string representation
1760func (s CreateApplicationRequest) GoString() string {
1761	return s.String()
1762}
1763
1764// Validate inspects the fields of the type to determine if they are valid.
1765func (s *CreateApplicationRequest) Validate() error {
1766	invalidParams := request.ErrInvalidParams{Context: "CreateApplicationRequest"}
1767	if s.Author == nil {
1768		invalidParams.Add(request.NewErrParamRequired("Author"))
1769	}
1770	if s.Description == nil {
1771		invalidParams.Add(request.NewErrParamRequired("Description"))
1772	}
1773	if s.Name == nil {
1774		invalidParams.Add(request.NewErrParamRequired("Name"))
1775	}
1776
1777	if invalidParams.Len() > 0 {
1778		return invalidParams
1779	}
1780	return nil
1781}
1782
1783// SetAuthor sets the Author field's value.
1784func (s *CreateApplicationRequest) SetAuthor(v string) *CreateApplicationRequest {
1785	s.Author = &v
1786	return s
1787}
1788
1789// SetDescription sets the Description field's value.
1790func (s *CreateApplicationRequest) SetDescription(v string) *CreateApplicationRequest {
1791	s.Description = &v
1792	return s
1793}
1794
1795// SetHomePageUrl sets the HomePageUrl field's value.
1796func (s *CreateApplicationRequest) SetHomePageUrl(v string) *CreateApplicationRequest {
1797	s.HomePageUrl = &v
1798	return s
1799}
1800
1801// SetLabels sets the Labels field's value.
1802func (s *CreateApplicationRequest) SetLabels(v []*string) *CreateApplicationRequest {
1803	s.Labels = v
1804	return s
1805}
1806
1807// SetLicenseBody sets the LicenseBody field's value.
1808func (s *CreateApplicationRequest) SetLicenseBody(v string) *CreateApplicationRequest {
1809	s.LicenseBody = &v
1810	return s
1811}
1812
1813// SetLicenseUrl sets the LicenseUrl field's value.
1814func (s *CreateApplicationRequest) SetLicenseUrl(v string) *CreateApplicationRequest {
1815	s.LicenseUrl = &v
1816	return s
1817}
1818
1819// SetName sets the Name field's value.
1820func (s *CreateApplicationRequest) SetName(v string) *CreateApplicationRequest {
1821	s.Name = &v
1822	return s
1823}
1824
1825// SetReadmeBody sets the ReadmeBody field's value.
1826func (s *CreateApplicationRequest) SetReadmeBody(v string) *CreateApplicationRequest {
1827	s.ReadmeBody = &v
1828	return s
1829}
1830
1831// SetReadmeUrl sets the ReadmeUrl field's value.
1832func (s *CreateApplicationRequest) SetReadmeUrl(v string) *CreateApplicationRequest {
1833	s.ReadmeUrl = &v
1834	return s
1835}
1836
1837// SetSemanticVersion sets the SemanticVersion field's value.
1838func (s *CreateApplicationRequest) SetSemanticVersion(v string) *CreateApplicationRequest {
1839	s.SemanticVersion = &v
1840	return s
1841}
1842
1843// SetSourceCodeArchiveUrl sets the SourceCodeArchiveUrl field's value.
1844func (s *CreateApplicationRequest) SetSourceCodeArchiveUrl(v string) *CreateApplicationRequest {
1845	s.SourceCodeArchiveUrl = &v
1846	return s
1847}
1848
1849// SetSourceCodeUrl sets the SourceCodeUrl field's value.
1850func (s *CreateApplicationRequest) SetSourceCodeUrl(v string) *CreateApplicationRequest {
1851	s.SourceCodeUrl = &v
1852	return s
1853}
1854
1855// SetSpdxLicenseId sets the SpdxLicenseId field's value.
1856func (s *CreateApplicationRequest) SetSpdxLicenseId(v string) *CreateApplicationRequest {
1857	s.SpdxLicenseId = &v
1858	return s
1859}
1860
1861// SetTemplateBody sets the TemplateBody field's value.
1862func (s *CreateApplicationRequest) SetTemplateBody(v string) *CreateApplicationRequest {
1863	s.TemplateBody = &v
1864	return s
1865}
1866
1867// SetTemplateUrl sets the TemplateUrl field's value.
1868func (s *CreateApplicationRequest) SetTemplateUrl(v string) *CreateApplicationRequest {
1869	s.TemplateUrl = &v
1870	return s
1871}
1872
1873type CreateApplicationVersionOutput struct {
1874	_ struct{} `type:"structure"`
1875
1876	ApplicationId *string `locationName:"applicationId" type:"string"`
1877
1878	CreationTime *string `locationName:"creationTime" type:"string"`
1879
1880	ParameterDefinitions []*ParameterDefinition `locationName:"parameterDefinitions" type:"list"`
1881
1882	RequiredCapabilities []*string `locationName:"requiredCapabilities" type:"list"`
1883
1884	ResourcesSupported *bool `locationName:"resourcesSupported" type:"boolean"`
1885
1886	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
1887
1888	SourceCodeArchiveUrl *string `locationName:"sourceCodeArchiveUrl" type:"string"`
1889
1890	SourceCodeUrl *string `locationName:"sourceCodeUrl" type:"string"`
1891
1892	TemplateUrl *string `locationName:"templateUrl" type:"string"`
1893}
1894
1895// String returns the string representation
1896func (s CreateApplicationVersionOutput) String() string {
1897	return awsutil.Prettify(s)
1898}
1899
1900// GoString returns the string representation
1901func (s CreateApplicationVersionOutput) GoString() string {
1902	return s.String()
1903}
1904
1905// SetApplicationId sets the ApplicationId field's value.
1906func (s *CreateApplicationVersionOutput) SetApplicationId(v string) *CreateApplicationVersionOutput {
1907	s.ApplicationId = &v
1908	return s
1909}
1910
1911// SetCreationTime sets the CreationTime field's value.
1912func (s *CreateApplicationVersionOutput) SetCreationTime(v string) *CreateApplicationVersionOutput {
1913	s.CreationTime = &v
1914	return s
1915}
1916
1917// SetParameterDefinitions sets the ParameterDefinitions field's value.
1918func (s *CreateApplicationVersionOutput) SetParameterDefinitions(v []*ParameterDefinition) *CreateApplicationVersionOutput {
1919	s.ParameterDefinitions = v
1920	return s
1921}
1922
1923// SetRequiredCapabilities sets the RequiredCapabilities field's value.
1924func (s *CreateApplicationVersionOutput) SetRequiredCapabilities(v []*string) *CreateApplicationVersionOutput {
1925	s.RequiredCapabilities = v
1926	return s
1927}
1928
1929// SetResourcesSupported sets the ResourcesSupported field's value.
1930func (s *CreateApplicationVersionOutput) SetResourcesSupported(v bool) *CreateApplicationVersionOutput {
1931	s.ResourcesSupported = &v
1932	return s
1933}
1934
1935// SetSemanticVersion sets the SemanticVersion field's value.
1936func (s *CreateApplicationVersionOutput) SetSemanticVersion(v string) *CreateApplicationVersionOutput {
1937	s.SemanticVersion = &v
1938	return s
1939}
1940
1941// SetSourceCodeArchiveUrl sets the SourceCodeArchiveUrl field's value.
1942func (s *CreateApplicationVersionOutput) SetSourceCodeArchiveUrl(v string) *CreateApplicationVersionOutput {
1943	s.SourceCodeArchiveUrl = &v
1944	return s
1945}
1946
1947// SetSourceCodeUrl sets the SourceCodeUrl field's value.
1948func (s *CreateApplicationVersionOutput) SetSourceCodeUrl(v string) *CreateApplicationVersionOutput {
1949	s.SourceCodeUrl = &v
1950	return s
1951}
1952
1953// SetTemplateUrl sets the TemplateUrl field's value.
1954func (s *CreateApplicationVersionOutput) SetTemplateUrl(v string) *CreateApplicationVersionOutput {
1955	s.TemplateUrl = &v
1956	return s
1957}
1958
1959type CreateApplicationVersionRequest struct {
1960	_ struct{} `type:"structure"`
1961
1962	// ApplicationId is a required field
1963	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
1964
1965	// SemanticVersion is a required field
1966	SemanticVersion *string `location:"uri" locationName:"semanticVersion" type:"string" required:"true"`
1967
1968	SourceCodeArchiveUrl *string `locationName:"sourceCodeArchiveUrl" type:"string"`
1969
1970	SourceCodeUrl *string `locationName:"sourceCodeUrl" type:"string"`
1971
1972	TemplateBody *string `locationName:"templateBody" type:"string"`
1973
1974	TemplateUrl *string `locationName:"templateUrl" type:"string"`
1975}
1976
1977// String returns the string representation
1978func (s CreateApplicationVersionRequest) String() string {
1979	return awsutil.Prettify(s)
1980}
1981
1982// GoString returns the string representation
1983func (s CreateApplicationVersionRequest) GoString() string {
1984	return s.String()
1985}
1986
1987// Validate inspects the fields of the type to determine if they are valid.
1988func (s *CreateApplicationVersionRequest) Validate() error {
1989	invalidParams := request.ErrInvalidParams{Context: "CreateApplicationVersionRequest"}
1990	if s.ApplicationId == nil {
1991		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
1992	}
1993	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
1994		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
1995	}
1996	if s.SemanticVersion == nil {
1997		invalidParams.Add(request.NewErrParamRequired("SemanticVersion"))
1998	}
1999	if s.SemanticVersion != nil && len(*s.SemanticVersion) < 1 {
2000		invalidParams.Add(request.NewErrParamMinLen("SemanticVersion", 1))
2001	}
2002
2003	if invalidParams.Len() > 0 {
2004		return invalidParams
2005	}
2006	return nil
2007}
2008
2009// SetApplicationId sets the ApplicationId field's value.
2010func (s *CreateApplicationVersionRequest) SetApplicationId(v string) *CreateApplicationVersionRequest {
2011	s.ApplicationId = &v
2012	return s
2013}
2014
2015// SetSemanticVersion sets the SemanticVersion field's value.
2016func (s *CreateApplicationVersionRequest) SetSemanticVersion(v string) *CreateApplicationVersionRequest {
2017	s.SemanticVersion = &v
2018	return s
2019}
2020
2021// SetSourceCodeArchiveUrl sets the SourceCodeArchiveUrl field's value.
2022func (s *CreateApplicationVersionRequest) SetSourceCodeArchiveUrl(v string) *CreateApplicationVersionRequest {
2023	s.SourceCodeArchiveUrl = &v
2024	return s
2025}
2026
2027// SetSourceCodeUrl sets the SourceCodeUrl field's value.
2028func (s *CreateApplicationVersionRequest) SetSourceCodeUrl(v string) *CreateApplicationVersionRequest {
2029	s.SourceCodeUrl = &v
2030	return s
2031}
2032
2033// SetTemplateBody sets the TemplateBody field's value.
2034func (s *CreateApplicationVersionRequest) SetTemplateBody(v string) *CreateApplicationVersionRequest {
2035	s.TemplateBody = &v
2036	return s
2037}
2038
2039// SetTemplateUrl sets the TemplateUrl field's value.
2040func (s *CreateApplicationVersionRequest) SetTemplateUrl(v string) *CreateApplicationVersionRequest {
2041	s.TemplateUrl = &v
2042	return s
2043}
2044
2045type CreateCloudFormationChangeSetOutput struct {
2046	_ struct{} `type:"structure"`
2047
2048	ApplicationId *string `locationName:"applicationId" type:"string"`
2049
2050	ChangeSetId *string `locationName:"changeSetId" type:"string"`
2051
2052	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
2053
2054	StackId *string `locationName:"stackId" type:"string"`
2055}
2056
2057// String returns the string representation
2058func (s CreateCloudFormationChangeSetOutput) String() string {
2059	return awsutil.Prettify(s)
2060}
2061
2062// GoString returns the string representation
2063func (s CreateCloudFormationChangeSetOutput) GoString() string {
2064	return s.String()
2065}
2066
2067// SetApplicationId sets the ApplicationId field's value.
2068func (s *CreateCloudFormationChangeSetOutput) SetApplicationId(v string) *CreateCloudFormationChangeSetOutput {
2069	s.ApplicationId = &v
2070	return s
2071}
2072
2073// SetChangeSetId sets the ChangeSetId field's value.
2074func (s *CreateCloudFormationChangeSetOutput) SetChangeSetId(v string) *CreateCloudFormationChangeSetOutput {
2075	s.ChangeSetId = &v
2076	return s
2077}
2078
2079// SetSemanticVersion sets the SemanticVersion field's value.
2080func (s *CreateCloudFormationChangeSetOutput) SetSemanticVersion(v string) *CreateCloudFormationChangeSetOutput {
2081	s.SemanticVersion = &v
2082	return s
2083}
2084
2085// SetStackId sets the StackId field's value.
2086func (s *CreateCloudFormationChangeSetOutput) SetStackId(v string) *CreateCloudFormationChangeSetOutput {
2087	s.StackId = &v
2088	return s
2089}
2090
2091type CreateCloudFormationChangeSetRequest struct {
2092	_ struct{} `type:"structure"`
2093
2094	// ApplicationId is a required field
2095	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2096
2097	Capabilities []*string `locationName:"capabilities" type:"list"`
2098
2099	ChangeSetName *string `locationName:"changeSetName" type:"string"`
2100
2101	ClientToken *string `locationName:"clientToken" type:"string"`
2102
2103	Description *string `locationName:"description" type:"string"`
2104
2105	NotificationArns []*string `locationName:"notificationArns" type:"list"`
2106
2107	ParameterOverrides []*ParameterValue `locationName:"parameterOverrides" type:"list"`
2108
2109	ResourceTypes []*string `locationName:"resourceTypes" type:"list"`
2110
2111	// This property corresponds to the AWS CloudFormation RollbackConfiguration
2112	// (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration)
2113	// Data Type.
2114	RollbackConfiguration *RollbackConfiguration `locationName:"rollbackConfiguration" type:"structure"`
2115
2116	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
2117
2118	// StackName is a required field
2119	StackName *string `locationName:"stackName" type:"string" required:"true"`
2120
2121	Tags []*Tag `locationName:"tags" type:"list"`
2122
2123	TemplateId *string `locationName:"templateId" type:"string"`
2124}
2125
2126// String returns the string representation
2127func (s CreateCloudFormationChangeSetRequest) String() string {
2128	return awsutil.Prettify(s)
2129}
2130
2131// GoString returns the string representation
2132func (s CreateCloudFormationChangeSetRequest) GoString() string {
2133	return s.String()
2134}
2135
2136// Validate inspects the fields of the type to determine if they are valid.
2137func (s *CreateCloudFormationChangeSetRequest) Validate() error {
2138	invalidParams := request.ErrInvalidParams{Context: "CreateCloudFormationChangeSetRequest"}
2139	if s.ApplicationId == nil {
2140		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2141	}
2142	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2143		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2144	}
2145	if s.StackName == nil {
2146		invalidParams.Add(request.NewErrParamRequired("StackName"))
2147	}
2148	if s.ParameterOverrides != nil {
2149		for i, v := range s.ParameterOverrides {
2150			if v == nil {
2151				continue
2152			}
2153			if err := v.Validate(); err != nil {
2154				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ParameterOverrides", i), err.(request.ErrInvalidParams))
2155			}
2156		}
2157	}
2158	if s.RollbackConfiguration != nil {
2159		if err := s.RollbackConfiguration.Validate(); err != nil {
2160			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
2161		}
2162	}
2163	if s.Tags != nil {
2164		for i, v := range s.Tags {
2165			if v == nil {
2166				continue
2167			}
2168			if err := v.Validate(); err != nil {
2169				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2170			}
2171		}
2172	}
2173
2174	if invalidParams.Len() > 0 {
2175		return invalidParams
2176	}
2177	return nil
2178}
2179
2180// SetApplicationId sets the ApplicationId field's value.
2181func (s *CreateCloudFormationChangeSetRequest) SetApplicationId(v string) *CreateCloudFormationChangeSetRequest {
2182	s.ApplicationId = &v
2183	return s
2184}
2185
2186// SetCapabilities sets the Capabilities field's value.
2187func (s *CreateCloudFormationChangeSetRequest) SetCapabilities(v []*string) *CreateCloudFormationChangeSetRequest {
2188	s.Capabilities = v
2189	return s
2190}
2191
2192// SetChangeSetName sets the ChangeSetName field's value.
2193func (s *CreateCloudFormationChangeSetRequest) SetChangeSetName(v string) *CreateCloudFormationChangeSetRequest {
2194	s.ChangeSetName = &v
2195	return s
2196}
2197
2198// SetClientToken sets the ClientToken field's value.
2199func (s *CreateCloudFormationChangeSetRequest) SetClientToken(v string) *CreateCloudFormationChangeSetRequest {
2200	s.ClientToken = &v
2201	return s
2202}
2203
2204// SetDescription sets the Description field's value.
2205func (s *CreateCloudFormationChangeSetRequest) SetDescription(v string) *CreateCloudFormationChangeSetRequest {
2206	s.Description = &v
2207	return s
2208}
2209
2210// SetNotificationArns sets the NotificationArns field's value.
2211func (s *CreateCloudFormationChangeSetRequest) SetNotificationArns(v []*string) *CreateCloudFormationChangeSetRequest {
2212	s.NotificationArns = v
2213	return s
2214}
2215
2216// SetParameterOverrides sets the ParameterOverrides field's value.
2217func (s *CreateCloudFormationChangeSetRequest) SetParameterOverrides(v []*ParameterValue) *CreateCloudFormationChangeSetRequest {
2218	s.ParameterOverrides = v
2219	return s
2220}
2221
2222// SetResourceTypes sets the ResourceTypes field's value.
2223func (s *CreateCloudFormationChangeSetRequest) SetResourceTypes(v []*string) *CreateCloudFormationChangeSetRequest {
2224	s.ResourceTypes = v
2225	return s
2226}
2227
2228// SetRollbackConfiguration sets the RollbackConfiguration field's value.
2229func (s *CreateCloudFormationChangeSetRequest) SetRollbackConfiguration(v *RollbackConfiguration) *CreateCloudFormationChangeSetRequest {
2230	s.RollbackConfiguration = v
2231	return s
2232}
2233
2234// SetSemanticVersion sets the SemanticVersion field's value.
2235func (s *CreateCloudFormationChangeSetRequest) SetSemanticVersion(v string) *CreateCloudFormationChangeSetRequest {
2236	s.SemanticVersion = &v
2237	return s
2238}
2239
2240// SetStackName sets the StackName field's value.
2241func (s *CreateCloudFormationChangeSetRequest) SetStackName(v string) *CreateCloudFormationChangeSetRequest {
2242	s.StackName = &v
2243	return s
2244}
2245
2246// SetTags sets the Tags field's value.
2247func (s *CreateCloudFormationChangeSetRequest) SetTags(v []*Tag) *CreateCloudFormationChangeSetRequest {
2248	s.Tags = v
2249	return s
2250}
2251
2252// SetTemplateId sets the TemplateId field's value.
2253func (s *CreateCloudFormationChangeSetRequest) SetTemplateId(v string) *CreateCloudFormationChangeSetRequest {
2254	s.TemplateId = &v
2255	return s
2256}
2257
2258type CreateCloudFormationTemplateInput struct {
2259	_ struct{} `type:"structure"`
2260
2261	// ApplicationId is a required field
2262	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2263
2264	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
2265}
2266
2267// String returns the string representation
2268func (s CreateCloudFormationTemplateInput) String() string {
2269	return awsutil.Prettify(s)
2270}
2271
2272// GoString returns the string representation
2273func (s CreateCloudFormationTemplateInput) GoString() string {
2274	return s.String()
2275}
2276
2277// Validate inspects the fields of the type to determine if they are valid.
2278func (s *CreateCloudFormationTemplateInput) Validate() error {
2279	invalidParams := request.ErrInvalidParams{Context: "CreateCloudFormationTemplateInput"}
2280	if s.ApplicationId == nil {
2281		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2282	}
2283	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2284		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2285	}
2286
2287	if invalidParams.Len() > 0 {
2288		return invalidParams
2289	}
2290	return nil
2291}
2292
2293// SetApplicationId sets the ApplicationId field's value.
2294func (s *CreateCloudFormationTemplateInput) SetApplicationId(v string) *CreateCloudFormationTemplateInput {
2295	s.ApplicationId = &v
2296	return s
2297}
2298
2299// SetSemanticVersion sets the SemanticVersion field's value.
2300func (s *CreateCloudFormationTemplateInput) SetSemanticVersion(v string) *CreateCloudFormationTemplateInput {
2301	s.SemanticVersion = &v
2302	return s
2303}
2304
2305type CreateCloudFormationTemplateOutput struct {
2306	_ struct{} `type:"structure"`
2307
2308	ApplicationId *string `locationName:"applicationId" type:"string"`
2309
2310	CreationTime *string `locationName:"creationTime" type:"string"`
2311
2312	ExpirationTime *string `locationName:"expirationTime" type:"string"`
2313
2314	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
2315
2316	Status *string `locationName:"status" type:"string" enum:"Status"`
2317
2318	TemplateId *string `locationName:"templateId" type:"string"`
2319
2320	TemplateUrl *string `locationName:"templateUrl" type:"string"`
2321}
2322
2323// String returns the string representation
2324func (s CreateCloudFormationTemplateOutput) String() string {
2325	return awsutil.Prettify(s)
2326}
2327
2328// GoString returns the string representation
2329func (s CreateCloudFormationTemplateOutput) GoString() string {
2330	return s.String()
2331}
2332
2333// SetApplicationId sets the ApplicationId field's value.
2334func (s *CreateCloudFormationTemplateOutput) SetApplicationId(v string) *CreateCloudFormationTemplateOutput {
2335	s.ApplicationId = &v
2336	return s
2337}
2338
2339// SetCreationTime sets the CreationTime field's value.
2340func (s *CreateCloudFormationTemplateOutput) SetCreationTime(v string) *CreateCloudFormationTemplateOutput {
2341	s.CreationTime = &v
2342	return s
2343}
2344
2345// SetExpirationTime sets the ExpirationTime field's value.
2346func (s *CreateCloudFormationTemplateOutput) SetExpirationTime(v string) *CreateCloudFormationTemplateOutput {
2347	s.ExpirationTime = &v
2348	return s
2349}
2350
2351// SetSemanticVersion sets the SemanticVersion field's value.
2352func (s *CreateCloudFormationTemplateOutput) SetSemanticVersion(v string) *CreateCloudFormationTemplateOutput {
2353	s.SemanticVersion = &v
2354	return s
2355}
2356
2357// SetStatus sets the Status field's value.
2358func (s *CreateCloudFormationTemplateOutput) SetStatus(v string) *CreateCloudFormationTemplateOutput {
2359	s.Status = &v
2360	return s
2361}
2362
2363// SetTemplateId sets the TemplateId field's value.
2364func (s *CreateCloudFormationTemplateOutput) SetTemplateId(v string) *CreateCloudFormationTemplateOutput {
2365	s.TemplateId = &v
2366	return s
2367}
2368
2369// SetTemplateUrl sets the TemplateUrl field's value.
2370func (s *CreateCloudFormationTemplateOutput) SetTemplateUrl(v string) *CreateCloudFormationTemplateOutput {
2371	s.TemplateUrl = &v
2372	return s
2373}
2374
2375type DeleteApplicationInput struct {
2376	_ struct{} `type:"structure"`
2377
2378	// ApplicationId is a required field
2379	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2380}
2381
2382// String returns the string representation
2383func (s DeleteApplicationInput) String() string {
2384	return awsutil.Prettify(s)
2385}
2386
2387// GoString returns the string representation
2388func (s DeleteApplicationInput) GoString() string {
2389	return s.String()
2390}
2391
2392// Validate inspects the fields of the type to determine if they are valid.
2393func (s *DeleteApplicationInput) Validate() error {
2394	invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationInput"}
2395	if s.ApplicationId == nil {
2396		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2397	}
2398	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2399		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2400	}
2401
2402	if invalidParams.Len() > 0 {
2403		return invalidParams
2404	}
2405	return nil
2406}
2407
2408// SetApplicationId sets the ApplicationId field's value.
2409func (s *DeleteApplicationInput) SetApplicationId(v string) *DeleteApplicationInput {
2410	s.ApplicationId = &v
2411	return s
2412}
2413
2414type DeleteApplicationOutput struct {
2415	_ struct{} `type:"structure"`
2416}
2417
2418// String returns the string representation
2419func (s DeleteApplicationOutput) String() string {
2420	return awsutil.Prettify(s)
2421}
2422
2423// GoString returns the string representation
2424func (s DeleteApplicationOutput) GoString() string {
2425	return s.String()
2426}
2427
2428type GetApplicationInput struct {
2429	_ struct{} `type:"structure"`
2430
2431	// ApplicationId is a required field
2432	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2433
2434	SemanticVersion *string `location:"querystring" locationName:"semanticVersion" type:"string"`
2435}
2436
2437// String returns the string representation
2438func (s GetApplicationInput) String() string {
2439	return awsutil.Prettify(s)
2440}
2441
2442// GoString returns the string representation
2443func (s GetApplicationInput) GoString() string {
2444	return s.String()
2445}
2446
2447// Validate inspects the fields of the type to determine if they are valid.
2448func (s *GetApplicationInput) Validate() error {
2449	invalidParams := request.ErrInvalidParams{Context: "GetApplicationInput"}
2450	if s.ApplicationId == nil {
2451		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2452	}
2453	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2454		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2455	}
2456
2457	if invalidParams.Len() > 0 {
2458		return invalidParams
2459	}
2460	return nil
2461}
2462
2463// SetApplicationId sets the ApplicationId field's value.
2464func (s *GetApplicationInput) SetApplicationId(v string) *GetApplicationInput {
2465	s.ApplicationId = &v
2466	return s
2467}
2468
2469// SetSemanticVersion sets the SemanticVersion field's value.
2470func (s *GetApplicationInput) SetSemanticVersion(v string) *GetApplicationInput {
2471	s.SemanticVersion = &v
2472	return s
2473}
2474
2475type GetApplicationOutput struct {
2476	_ struct{} `type:"structure"`
2477
2478	ApplicationId *string `locationName:"applicationId" type:"string"`
2479
2480	Author *string `locationName:"author" type:"string"`
2481
2482	CreationTime *string `locationName:"creationTime" type:"string"`
2483
2484	Description *string `locationName:"description" type:"string"`
2485
2486	HomePageUrl *string `locationName:"homePageUrl" type:"string"`
2487
2488	Labels []*string `locationName:"labels" type:"list"`
2489
2490	LicenseUrl *string `locationName:"licenseUrl" type:"string"`
2491
2492	Name *string `locationName:"name" type:"string"`
2493
2494	ReadmeUrl *string `locationName:"readmeUrl" type:"string"`
2495
2496	SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"`
2497
2498	// Application version details.
2499	Version *Version `locationName:"version" type:"structure"`
2500}
2501
2502// String returns the string representation
2503func (s GetApplicationOutput) String() string {
2504	return awsutil.Prettify(s)
2505}
2506
2507// GoString returns the string representation
2508func (s GetApplicationOutput) GoString() string {
2509	return s.String()
2510}
2511
2512// SetApplicationId sets the ApplicationId field's value.
2513func (s *GetApplicationOutput) SetApplicationId(v string) *GetApplicationOutput {
2514	s.ApplicationId = &v
2515	return s
2516}
2517
2518// SetAuthor sets the Author field's value.
2519func (s *GetApplicationOutput) SetAuthor(v string) *GetApplicationOutput {
2520	s.Author = &v
2521	return s
2522}
2523
2524// SetCreationTime sets the CreationTime field's value.
2525func (s *GetApplicationOutput) SetCreationTime(v string) *GetApplicationOutput {
2526	s.CreationTime = &v
2527	return s
2528}
2529
2530// SetDescription sets the Description field's value.
2531func (s *GetApplicationOutput) SetDescription(v string) *GetApplicationOutput {
2532	s.Description = &v
2533	return s
2534}
2535
2536// SetHomePageUrl sets the HomePageUrl field's value.
2537func (s *GetApplicationOutput) SetHomePageUrl(v string) *GetApplicationOutput {
2538	s.HomePageUrl = &v
2539	return s
2540}
2541
2542// SetLabels sets the Labels field's value.
2543func (s *GetApplicationOutput) SetLabels(v []*string) *GetApplicationOutput {
2544	s.Labels = v
2545	return s
2546}
2547
2548// SetLicenseUrl sets the LicenseUrl field's value.
2549func (s *GetApplicationOutput) SetLicenseUrl(v string) *GetApplicationOutput {
2550	s.LicenseUrl = &v
2551	return s
2552}
2553
2554// SetName sets the Name field's value.
2555func (s *GetApplicationOutput) SetName(v string) *GetApplicationOutput {
2556	s.Name = &v
2557	return s
2558}
2559
2560// SetReadmeUrl sets the ReadmeUrl field's value.
2561func (s *GetApplicationOutput) SetReadmeUrl(v string) *GetApplicationOutput {
2562	s.ReadmeUrl = &v
2563	return s
2564}
2565
2566// SetSpdxLicenseId sets the SpdxLicenseId field's value.
2567func (s *GetApplicationOutput) SetSpdxLicenseId(v string) *GetApplicationOutput {
2568	s.SpdxLicenseId = &v
2569	return s
2570}
2571
2572// SetVersion sets the Version field's value.
2573func (s *GetApplicationOutput) SetVersion(v *Version) *GetApplicationOutput {
2574	s.Version = v
2575	return s
2576}
2577
2578type GetApplicationPolicyInput struct {
2579	_ struct{} `type:"structure"`
2580
2581	// ApplicationId is a required field
2582	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2583}
2584
2585// String returns the string representation
2586func (s GetApplicationPolicyInput) String() string {
2587	return awsutil.Prettify(s)
2588}
2589
2590// GoString returns the string representation
2591func (s GetApplicationPolicyInput) GoString() string {
2592	return s.String()
2593}
2594
2595// Validate inspects the fields of the type to determine if they are valid.
2596func (s *GetApplicationPolicyInput) Validate() error {
2597	invalidParams := request.ErrInvalidParams{Context: "GetApplicationPolicyInput"}
2598	if s.ApplicationId == nil {
2599		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2600	}
2601	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2602		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2603	}
2604
2605	if invalidParams.Len() > 0 {
2606		return invalidParams
2607	}
2608	return nil
2609}
2610
2611// SetApplicationId sets the ApplicationId field's value.
2612func (s *GetApplicationPolicyInput) SetApplicationId(v string) *GetApplicationPolicyInput {
2613	s.ApplicationId = &v
2614	return s
2615}
2616
2617type GetApplicationPolicyOutput struct {
2618	_ struct{} `type:"structure"`
2619
2620	Statements []*ApplicationPolicyStatement `locationName:"statements" type:"list"`
2621}
2622
2623// String returns the string representation
2624func (s GetApplicationPolicyOutput) String() string {
2625	return awsutil.Prettify(s)
2626}
2627
2628// GoString returns the string representation
2629func (s GetApplicationPolicyOutput) GoString() string {
2630	return s.String()
2631}
2632
2633// SetStatements sets the Statements field's value.
2634func (s *GetApplicationPolicyOutput) SetStatements(v []*ApplicationPolicyStatement) *GetApplicationPolicyOutput {
2635	s.Statements = v
2636	return s
2637}
2638
2639type GetCloudFormationTemplateInput struct {
2640	_ struct{} `type:"structure"`
2641
2642	// ApplicationId is a required field
2643	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2644
2645	// TemplateId is a required field
2646	TemplateId *string `location:"uri" locationName:"templateId" type:"string" required:"true"`
2647}
2648
2649// String returns the string representation
2650func (s GetCloudFormationTemplateInput) String() string {
2651	return awsutil.Prettify(s)
2652}
2653
2654// GoString returns the string representation
2655func (s GetCloudFormationTemplateInput) GoString() string {
2656	return s.String()
2657}
2658
2659// Validate inspects the fields of the type to determine if they are valid.
2660func (s *GetCloudFormationTemplateInput) Validate() error {
2661	invalidParams := request.ErrInvalidParams{Context: "GetCloudFormationTemplateInput"}
2662	if s.ApplicationId == nil {
2663		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2664	}
2665	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2666		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2667	}
2668	if s.TemplateId == nil {
2669		invalidParams.Add(request.NewErrParamRequired("TemplateId"))
2670	}
2671	if s.TemplateId != nil && len(*s.TemplateId) < 1 {
2672		invalidParams.Add(request.NewErrParamMinLen("TemplateId", 1))
2673	}
2674
2675	if invalidParams.Len() > 0 {
2676		return invalidParams
2677	}
2678	return nil
2679}
2680
2681// SetApplicationId sets the ApplicationId field's value.
2682func (s *GetCloudFormationTemplateInput) SetApplicationId(v string) *GetCloudFormationTemplateInput {
2683	s.ApplicationId = &v
2684	return s
2685}
2686
2687// SetTemplateId sets the TemplateId field's value.
2688func (s *GetCloudFormationTemplateInput) SetTemplateId(v string) *GetCloudFormationTemplateInput {
2689	s.TemplateId = &v
2690	return s
2691}
2692
2693type GetCloudFormationTemplateOutput struct {
2694	_ struct{} `type:"structure"`
2695
2696	ApplicationId *string `locationName:"applicationId" type:"string"`
2697
2698	CreationTime *string `locationName:"creationTime" type:"string"`
2699
2700	ExpirationTime *string `locationName:"expirationTime" type:"string"`
2701
2702	SemanticVersion *string `locationName:"semanticVersion" type:"string"`
2703
2704	Status *string `locationName:"status" type:"string" enum:"Status"`
2705
2706	TemplateId *string `locationName:"templateId" type:"string"`
2707
2708	TemplateUrl *string `locationName:"templateUrl" type:"string"`
2709}
2710
2711// String returns the string representation
2712func (s GetCloudFormationTemplateOutput) String() string {
2713	return awsutil.Prettify(s)
2714}
2715
2716// GoString returns the string representation
2717func (s GetCloudFormationTemplateOutput) GoString() string {
2718	return s.String()
2719}
2720
2721// SetApplicationId sets the ApplicationId field's value.
2722func (s *GetCloudFormationTemplateOutput) SetApplicationId(v string) *GetCloudFormationTemplateOutput {
2723	s.ApplicationId = &v
2724	return s
2725}
2726
2727// SetCreationTime sets the CreationTime field's value.
2728func (s *GetCloudFormationTemplateOutput) SetCreationTime(v string) *GetCloudFormationTemplateOutput {
2729	s.CreationTime = &v
2730	return s
2731}
2732
2733// SetExpirationTime sets the ExpirationTime field's value.
2734func (s *GetCloudFormationTemplateOutput) SetExpirationTime(v string) *GetCloudFormationTemplateOutput {
2735	s.ExpirationTime = &v
2736	return s
2737}
2738
2739// SetSemanticVersion sets the SemanticVersion field's value.
2740func (s *GetCloudFormationTemplateOutput) SetSemanticVersion(v string) *GetCloudFormationTemplateOutput {
2741	s.SemanticVersion = &v
2742	return s
2743}
2744
2745// SetStatus sets the Status field's value.
2746func (s *GetCloudFormationTemplateOutput) SetStatus(v string) *GetCloudFormationTemplateOutput {
2747	s.Status = &v
2748	return s
2749}
2750
2751// SetTemplateId sets the TemplateId field's value.
2752func (s *GetCloudFormationTemplateOutput) SetTemplateId(v string) *GetCloudFormationTemplateOutput {
2753	s.TemplateId = &v
2754	return s
2755}
2756
2757// SetTemplateUrl sets the TemplateUrl field's value.
2758func (s *GetCloudFormationTemplateOutput) SetTemplateUrl(v string) *GetCloudFormationTemplateOutput {
2759	s.TemplateUrl = &v
2760	return s
2761}
2762
2763type ListApplicationDependenciesInput struct {
2764	_ struct{} `type:"structure"`
2765
2766	// ApplicationId is a required field
2767	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2768
2769	MaxItems *int64 `location:"querystring" locationName:"maxItems" min:"1" type:"integer"`
2770
2771	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
2772
2773	SemanticVersion *string `location:"querystring" locationName:"semanticVersion" type:"string"`
2774}
2775
2776// String returns the string representation
2777func (s ListApplicationDependenciesInput) String() string {
2778	return awsutil.Prettify(s)
2779}
2780
2781// GoString returns the string representation
2782func (s ListApplicationDependenciesInput) GoString() string {
2783	return s.String()
2784}
2785
2786// Validate inspects the fields of the type to determine if they are valid.
2787func (s *ListApplicationDependenciesInput) Validate() error {
2788	invalidParams := request.ErrInvalidParams{Context: "ListApplicationDependenciesInput"}
2789	if s.ApplicationId == nil {
2790		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2791	}
2792	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2793		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2794	}
2795	if s.MaxItems != nil && *s.MaxItems < 1 {
2796		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
2797	}
2798
2799	if invalidParams.Len() > 0 {
2800		return invalidParams
2801	}
2802	return nil
2803}
2804
2805// SetApplicationId sets the ApplicationId field's value.
2806func (s *ListApplicationDependenciesInput) SetApplicationId(v string) *ListApplicationDependenciesInput {
2807	s.ApplicationId = &v
2808	return s
2809}
2810
2811// SetMaxItems sets the MaxItems field's value.
2812func (s *ListApplicationDependenciesInput) SetMaxItems(v int64) *ListApplicationDependenciesInput {
2813	s.MaxItems = &v
2814	return s
2815}
2816
2817// SetNextToken sets the NextToken field's value.
2818func (s *ListApplicationDependenciesInput) SetNextToken(v string) *ListApplicationDependenciesInput {
2819	s.NextToken = &v
2820	return s
2821}
2822
2823// SetSemanticVersion sets the SemanticVersion field's value.
2824func (s *ListApplicationDependenciesInput) SetSemanticVersion(v string) *ListApplicationDependenciesInput {
2825	s.SemanticVersion = &v
2826	return s
2827}
2828
2829type ListApplicationDependenciesOutput struct {
2830	_ struct{} `type:"structure"`
2831
2832	Dependencies []*ApplicationDependencySummary `locationName:"dependencies" type:"list"`
2833
2834	NextToken *string `locationName:"nextToken" type:"string"`
2835}
2836
2837// String returns the string representation
2838func (s ListApplicationDependenciesOutput) String() string {
2839	return awsutil.Prettify(s)
2840}
2841
2842// GoString returns the string representation
2843func (s ListApplicationDependenciesOutput) GoString() string {
2844	return s.String()
2845}
2846
2847// SetDependencies sets the Dependencies field's value.
2848func (s *ListApplicationDependenciesOutput) SetDependencies(v []*ApplicationDependencySummary) *ListApplicationDependenciesOutput {
2849	s.Dependencies = v
2850	return s
2851}
2852
2853// SetNextToken sets the NextToken field's value.
2854func (s *ListApplicationDependenciesOutput) SetNextToken(v string) *ListApplicationDependenciesOutput {
2855	s.NextToken = &v
2856	return s
2857}
2858
2859type ListApplicationVersionsInput struct {
2860	_ struct{} `type:"structure"`
2861
2862	// ApplicationId is a required field
2863	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
2864
2865	MaxItems *int64 `location:"querystring" locationName:"maxItems" min:"1" type:"integer"`
2866
2867	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
2868}
2869
2870// String returns the string representation
2871func (s ListApplicationVersionsInput) String() string {
2872	return awsutil.Prettify(s)
2873}
2874
2875// GoString returns the string representation
2876func (s ListApplicationVersionsInput) GoString() string {
2877	return s.String()
2878}
2879
2880// Validate inspects the fields of the type to determine if they are valid.
2881func (s *ListApplicationVersionsInput) Validate() error {
2882	invalidParams := request.ErrInvalidParams{Context: "ListApplicationVersionsInput"}
2883	if s.ApplicationId == nil {
2884		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
2885	}
2886	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
2887		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
2888	}
2889	if s.MaxItems != nil && *s.MaxItems < 1 {
2890		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
2891	}
2892
2893	if invalidParams.Len() > 0 {
2894		return invalidParams
2895	}
2896	return nil
2897}
2898
2899// SetApplicationId sets the ApplicationId field's value.
2900func (s *ListApplicationVersionsInput) SetApplicationId(v string) *ListApplicationVersionsInput {
2901	s.ApplicationId = &v
2902	return s
2903}
2904
2905// SetMaxItems sets the MaxItems field's value.
2906func (s *ListApplicationVersionsInput) SetMaxItems(v int64) *ListApplicationVersionsInput {
2907	s.MaxItems = &v
2908	return s
2909}
2910
2911// SetNextToken sets the NextToken field's value.
2912func (s *ListApplicationVersionsInput) SetNextToken(v string) *ListApplicationVersionsInput {
2913	s.NextToken = &v
2914	return s
2915}
2916
2917type ListApplicationVersionsOutput struct {
2918	_ struct{} `type:"structure"`
2919
2920	NextToken *string `locationName:"nextToken" type:"string"`
2921
2922	Versions []*VersionSummary `locationName:"versions" type:"list"`
2923}
2924
2925// String returns the string representation
2926func (s ListApplicationVersionsOutput) String() string {
2927	return awsutil.Prettify(s)
2928}
2929
2930// GoString returns the string representation
2931func (s ListApplicationVersionsOutput) GoString() string {
2932	return s.String()
2933}
2934
2935// SetNextToken sets the NextToken field's value.
2936func (s *ListApplicationVersionsOutput) SetNextToken(v string) *ListApplicationVersionsOutput {
2937	s.NextToken = &v
2938	return s
2939}
2940
2941// SetVersions sets the Versions field's value.
2942func (s *ListApplicationVersionsOutput) SetVersions(v []*VersionSummary) *ListApplicationVersionsOutput {
2943	s.Versions = v
2944	return s
2945}
2946
2947type ListApplicationsInput struct {
2948	_ struct{} `type:"structure"`
2949
2950	MaxItems *int64 `location:"querystring" locationName:"maxItems" min:"1" type:"integer"`
2951
2952	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
2953}
2954
2955// String returns the string representation
2956func (s ListApplicationsInput) String() string {
2957	return awsutil.Prettify(s)
2958}
2959
2960// GoString returns the string representation
2961func (s ListApplicationsInput) GoString() string {
2962	return s.String()
2963}
2964
2965// Validate inspects the fields of the type to determine if they are valid.
2966func (s *ListApplicationsInput) Validate() error {
2967	invalidParams := request.ErrInvalidParams{Context: "ListApplicationsInput"}
2968	if s.MaxItems != nil && *s.MaxItems < 1 {
2969		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
2970	}
2971
2972	if invalidParams.Len() > 0 {
2973		return invalidParams
2974	}
2975	return nil
2976}
2977
2978// SetMaxItems sets the MaxItems field's value.
2979func (s *ListApplicationsInput) SetMaxItems(v int64) *ListApplicationsInput {
2980	s.MaxItems = &v
2981	return s
2982}
2983
2984// SetNextToken sets the NextToken field's value.
2985func (s *ListApplicationsInput) SetNextToken(v string) *ListApplicationsInput {
2986	s.NextToken = &v
2987	return s
2988}
2989
2990type ListApplicationsOutput struct {
2991	_ struct{} `type:"structure"`
2992
2993	Applications []*ApplicationSummary `locationName:"applications" type:"list"`
2994
2995	NextToken *string `locationName:"nextToken" type:"string"`
2996}
2997
2998// String returns the string representation
2999func (s ListApplicationsOutput) String() string {
3000	return awsutil.Prettify(s)
3001}
3002
3003// GoString returns the string representation
3004func (s ListApplicationsOutput) GoString() string {
3005	return s.String()
3006}
3007
3008// SetApplications sets the Applications field's value.
3009func (s *ListApplicationsOutput) SetApplications(v []*ApplicationSummary) *ListApplicationsOutput {
3010	s.Applications = v
3011	return s
3012}
3013
3014// SetNextToken sets the NextToken field's value.
3015func (s *ListApplicationsOutput) SetNextToken(v string) *ListApplicationsOutput {
3016	s.NextToken = &v
3017	return s
3018}
3019
3020// Parameters supported by the application.
3021type ParameterDefinition struct {
3022	_ struct{} `type:"structure"`
3023
3024	// A regular expression that represents the patterns to allow for String types.
3025	AllowedPattern *string `locationName:"allowedPattern" type:"string"`
3026
3027	// An array containing the list of values allowed for the parameter.
3028	AllowedValues []*string `locationName:"allowedValues" type:"list"`
3029
3030	// A string that explains a constraint when the constraint is violated. For
3031	// example, without a constraint description, a parameter that has an allowed
3032	// pattern of [A-Za-z0-9]+ displays the following error message when the user
3033	// specifies an invalid value:
3034	//
3035	// Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+
3036	//
3037	// By adding a constraint description, such as "must contain only uppercase
3038	// and lowercase letters and numbers," you can display the following customized
3039	// error message:
3040	//
3041	// Malformed input-Parameter MyParameter must contain only uppercase and lowercase
3042	// letters and numbers.
3043	ConstraintDescription *string `locationName:"constraintDescription" type:"string"`
3044
3045	// A value of the appropriate type for the template to use if no value is specified
3046	// when a stack is created. If you define constraints for the parameter, you
3047	// must specify a value that adheres to those constraints.
3048	DefaultValue *string `locationName:"defaultValue" type:"string"`
3049
3050	// A string of up to 4,000 characters that describes the parameter.
3051	Description *string `locationName:"description" type:"string"`
3052
3053	// An integer value that determines the largest number of characters that you
3054	// want to allow for String types.
3055	MaxLength *int64 `locationName:"maxLength" type:"integer"`
3056
3057	// A numeric value that determines the largest numeric value that you want to
3058	// allow for Number types.
3059	MaxValue *int64 `locationName:"maxValue" type:"integer"`
3060
3061	// An integer value that determines the smallest number of characters that you
3062	// want to allow for String types.
3063	MinLength *int64 `locationName:"minLength" type:"integer"`
3064
3065	// A numeric value that determines the smallest numeric value that you want
3066	// to allow for Number types.
3067	MinValue *int64 `locationName:"minValue" type:"integer"`
3068
3069	// The name of the parameter.
3070	//
3071	// Name is a required field
3072	Name *string `locationName:"name" type:"string" required:"true"`
3073
3074	// Whether to mask the parameter value whenever anyone makes a call that describes
3075	// the stack. If you set the value to true, the parameter value is masked with
3076	// asterisks (*****).
3077	NoEcho *bool `locationName:"noEcho" type:"boolean"`
3078
3079	// A list of AWS SAM resources that use this parameter.
3080	//
3081	// ReferencedByResources is a required field
3082	ReferencedByResources []*string `locationName:"referencedByResources" type:"list" required:"true"`
3083
3084	// The type of the parameter.
3085	//
3086	// Valid values: String | Number | List<Number> | CommaDelimitedList
3087	//
3088	// String: A literal string.
3089	//
3090	// For example, users can specify "MyUserName".
3091	//
3092	// Number: An integer or float. AWS CloudFormation validates the parameter value
3093	// as a number. However, when you use the parameter elsewhere in your template
3094	// (for example, by using the Ref intrinsic function), the parameter value becomes
3095	// a string.
3096	//
3097	// For example, users might specify "8888".
3098	//
3099	// List<Number>: An array of integers or floats that are separated by commas.
3100	// AWS CloudFormation validates the parameter value as numbers. However, when
3101	// you use the parameter elsewhere in your template (for example, by using the
3102	// Ref intrinsic function), the parameter value becomes a list of strings.
3103	//
3104	// For example, users might specify "80,20", and then Ref results in ["80","20"].
3105	//
3106	// CommaDelimitedList: An array of literal strings that are separated by commas.
3107	// The total number of strings should be one more than the total number of commas.
3108	// Also, each member string is space-trimmed.
3109	//
3110	// For example, users might specify "test,dev,prod", and then Ref results in
3111	// ["test","dev","prod"].
3112	Type *string `locationName:"type" type:"string"`
3113}
3114
3115// String returns the string representation
3116func (s ParameterDefinition) String() string {
3117	return awsutil.Prettify(s)
3118}
3119
3120// GoString returns the string representation
3121func (s ParameterDefinition) GoString() string {
3122	return s.String()
3123}
3124
3125// SetAllowedPattern sets the AllowedPattern field's value.
3126func (s *ParameterDefinition) SetAllowedPattern(v string) *ParameterDefinition {
3127	s.AllowedPattern = &v
3128	return s
3129}
3130
3131// SetAllowedValues sets the AllowedValues field's value.
3132func (s *ParameterDefinition) SetAllowedValues(v []*string) *ParameterDefinition {
3133	s.AllowedValues = v
3134	return s
3135}
3136
3137// SetConstraintDescription sets the ConstraintDescription field's value.
3138func (s *ParameterDefinition) SetConstraintDescription(v string) *ParameterDefinition {
3139	s.ConstraintDescription = &v
3140	return s
3141}
3142
3143// SetDefaultValue sets the DefaultValue field's value.
3144func (s *ParameterDefinition) SetDefaultValue(v string) *ParameterDefinition {
3145	s.DefaultValue = &v
3146	return s
3147}
3148
3149// SetDescription sets the Description field's value.
3150func (s *ParameterDefinition) SetDescription(v string) *ParameterDefinition {
3151	s.Description = &v
3152	return s
3153}
3154
3155// SetMaxLength sets the MaxLength field's value.
3156func (s *ParameterDefinition) SetMaxLength(v int64) *ParameterDefinition {
3157	s.MaxLength = &v
3158	return s
3159}
3160
3161// SetMaxValue sets the MaxValue field's value.
3162func (s *ParameterDefinition) SetMaxValue(v int64) *ParameterDefinition {
3163	s.MaxValue = &v
3164	return s
3165}
3166
3167// SetMinLength sets the MinLength field's value.
3168func (s *ParameterDefinition) SetMinLength(v int64) *ParameterDefinition {
3169	s.MinLength = &v
3170	return s
3171}
3172
3173// SetMinValue sets the MinValue field's value.
3174func (s *ParameterDefinition) SetMinValue(v int64) *ParameterDefinition {
3175	s.MinValue = &v
3176	return s
3177}
3178
3179// SetName sets the Name field's value.
3180func (s *ParameterDefinition) SetName(v string) *ParameterDefinition {
3181	s.Name = &v
3182	return s
3183}
3184
3185// SetNoEcho sets the NoEcho field's value.
3186func (s *ParameterDefinition) SetNoEcho(v bool) *ParameterDefinition {
3187	s.NoEcho = &v
3188	return s
3189}
3190
3191// SetReferencedByResources sets the ReferencedByResources field's value.
3192func (s *ParameterDefinition) SetReferencedByResources(v []*string) *ParameterDefinition {
3193	s.ReferencedByResources = v
3194	return s
3195}
3196
3197// SetType sets the Type field's value.
3198func (s *ParameterDefinition) SetType(v string) *ParameterDefinition {
3199	s.Type = &v
3200	return s
3201}
3202
3203// Parameter value of the application.
3204type ParameterValue struct {
3205	_ struct{} `type:"structure"`
3206
3207	// The key associated with the parameter. If you don't specify a key and value
3208	// for a particular parameter, AWS CloudFormation uses the default value that
3209	// is specified in your template.
3210	//
3211	// Name is a required field
3212	Name *string `locationName:"name" type:"string" required:"true"`
3213
3214	// The input value associated with the parameter.
3215	//
3216	// Value is a required field
3217	Value *string `locationName:"value" type:"string" required:"true"`
3218}
3219
3220// String returns the string representation
3221func (s ParameterValue) String() string {
3222	return awsutil.Prettify(s)
3223}
3224
3225// GoString returns the string representation
3226func (s ParameterValue) GoString() string {
3227	return s.String()
3228}
3229
3230// Validate inspects the fields of the type to determine if they are valid.
3231func (s *ParameterValue) Validate() error {
3232	invalidParams := request.ErrInvalidParams{Context: "ParameterValue"}
3233	if s.Name == nil {
3234		invalidParams.Add(request.NewErrParamRequired("Name"))
3235	}
3236	if s.Value == nil {
3237		invalidParams.Add(request.NewErrParamRequired("Value"))
3238	}
3239
3240	if invalidParams.Len() > 0 {
3241		return invalidParams
3242	}
3243	return nil
3244}
3245
3246// SetName sets the Name field's value.
3247func (s *ParameterValue) SetName(v string) *ParameterValue {
3248	s.Name = &v
3249	return s
3250}
3251
3252// SetValue sets the Value field's value.
3253func (s *ParameterValue) SetValue(v string) *ParameterValue {
3254	s.Value = &v
3255	return s
3256}
3257
3258type PutApplicationPolicyInput struct {
3259	_ struct{} `type:"structure"`
3260
3261	// ApplicationId is a required field
3262	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
3263
3264	// Statements is a required field
3265	Statements []*ApplicationPolicyStatement `locationName:"statements" type:"list" required:"true"`
3266}
3267
3268// String returns the string representation
3269func (s PutApplicationPolicyInput) String() string {
3270	return awsutil.Prettify(s)
3271}
3272
3273// GoString returns the string representation
3274func (s PutApplicationPolicyInput) GoString() string {
3275	return s.String()
3276}
3277
3278// Validate inspects the fields of the type to determine if they are valid.
3279func (s *PutApplicationPolicyInput) Validate() error {
3280	invalidParams := request.ErrInvalidParams{Context: "PutApplicationPolicyInput"}
3281	if s.ApplicationId == nil {
3282		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
3283	}
3284	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
3285		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
3286	}
3287	if s.Statements == nil {
3288		invalidParams.Add(request.NewErrParamRequired("Statements"))
3289	}
3290	if s.Statements != nil {
3291		for i, v := range s.Statements {
3292			if v == nil {
3293				continue
3294			}
3295			if err := v.Validate(); err != nil {
3296				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Statements", i), err.(request.ErrInvalidParams))
3297			}
3298		}
3299	}
3300
3301	if invalidParams.Len() > 0 {
3302		return invalidParams
3303	}
3304	return nil
3305}
3306
3307// SetApplicationId sets the ApplicationId field's value.
3308func (s *PutApplicationPolicyInput) SetApplicationId(v string) *PutApplicationPolicyInput {
3309	s.ApplicationId = &v
3310	return s
3311}
3312
3313// SetStatements sets the Statements field's value.
3314func (s *PutApplicationPolicyInput) SetStatements(v []*ApplicationPolicyStatement) *PutApplicationPolicyInput {
3315	s.Statements = v
3316	return s
3317}
3318
3319type PutApplicationPolicyOutput struct {
3320	_ struct{} `type:"structure"`
3321
3322	Statements []*ApplicationPolicyStatement `locationName:"statements" type:"list"`
3323}
3324
3325// String returns the string representation
3326func (s PutApplicationPolicyOutput) String() string {
3327	return awsutil.Prettify(s)
3328}
3329
3330// GoString returns the string representation
3331func (s PutApplicationPolicyOutput) GoString() string {
3332	return s.String()
3333}
3334
3335// SetStatements sets the Statements field's value.
3336func (s *PutApplicationPolicyOutput) SetStatements(v []*ApplicationPolicyStatement) *PutApplicationPolicyOutput {
3337	s.Statements = v
3338	return s
3339}
3340
3341// This property corresponds to the AWS CloudFormation RollbackConfiguration
3342// (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration)
3343// Data Type.
3344type RollbackConfiguration struct {
3345	_ struct{} `type:"structure"`
3346
3347	// This property corresponds to the content of the same name for the AWS CloudFormation
3348	// RollbackConfiguration (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration)
3349	// Data Type.
3350	MonitoringTimeInMinutes *int64 `locationName:"monitoringTimeInMinutes" type:"integer"`
3351
3352	// This property corresponds to the content of the same name for the AWS CloudFormation
3353	// RollbackConfiguration (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration)
3354	// Data Type.
3355	RollbackTriggers []*RollbackTrigger `locationName:"rollbackTriggers" type:"list"`
3356}
3357
3358// String returns the string representation
3359func (s RollbackConfiguration) String() string {
3360	return awsutil.Prettify(s)
3361}
3362
3363// GoString returns the string representation
3364func (s RollbackConfiguration) GoString() string {
3365	return s.String()
3366}
3367
3368// Validate inspects the fields of the type to determine if they are valid.
3369func (s *RollbackConfiguration) Validate() error {
3370	invalidParams := request.ErrInvalidParams{Context: "RollbackConfiguration"}
3371	if s.RollbackTriggers != nil {
3372		for i, v := range s.RollbackTriggers {
3373			if v == nil {
3374				continue
3375			}
3376			if err := v.Validate(); err != nil {
3377				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RollbackTriggers", i), err.(request.ErrInvalidParams))
3378			}
3379		}
3380	}
3381
3382	if invalidParams.Len() > 0 {
3383		return invalidParams
3384	}
3385	return nil
3386}
3387
3388// SetMonitoringTimeInMinutes sets the MonitoringTimeInMinutes field's value.
3389func (s *RollbackConfiguration) SetMonitoringTimeInMinutes(v int64) *RollbackConfiguration {
3390	s.MonitoringTimeInMinutes = &v
3391	return s
3392}
3393
3394// SetRollbackTriggers sets the RollbackTriggers field's value.
3395func (s *RollbackConfiguration) SetRollbackTriggers(v []*RollbackTrigger) *RollbackConfiguration {
3396	s.RollbackTriggers = v
3397	return s
3398}
3399
3400// This property corresponds to the AWS CloudFormation RollbackTrigger (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger)
3401// Data Type.
3402type RollbackTrigger struct {
3403	_ struct{} `type:"structure"`
3404
3405	// This property corresponds to the content of the same name for the AWS CloudFormation
3406	// RollbackTrigger (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger)
3407	// Data Type.
3408	//
3409	// Arn is a required field
3410	Arn *string `locationName:"arn" type:"string" required:"true"`
3411
3412	// This property corresponds to the content of the same name for the AWS CloudFormation
3413	// RollbackTrigger (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger)
3414	// Data Type.
3415	//
3416	// Type is a required field
3417	Type *string `locationName:"type" type:"string" required:"true"`
3418}
3419
3420// String returns the string representation
3421func (s RollbackTrigger) String() string {
3422	return awsutil.Prettify(s)
3423}
3424
3425// GoString returns the string representation
3426func (s RollbackTrigger) GoString() string {
3427	return s.String()
3428}
3429
3430// Validate inspects the fields of the type to determine if they are valid.
3431func (s *RollbackTrigger) Validate() error {
3432	invalidParams := request.ErrInvalidParams{Context: "RollbackTrigger"}
3433	if s.Arn == nil {
3434		invalidParams.Add(request.NewErrParamRequired("Arn"))
3435	}
3436	if s.Type == nil {
3437		invalidParams.Add(request.NewErrParamRequired("Type"))
3438	}
3439
3440	if invalidParams.Len() > 0 {
3441		return invalidParams
3442	}
3443	return nil
3444}
3445
3446// SetArn sets the Arn field's value.
3447func (s *RollbackTrigger) SetArn(v string) *RollbackTrigger {
3448	s.Arn = &v
3449	return s
3450}
3451
3452// SetType sets the Type field's value.
3453func (s *RollbackTrigger) SetType(v string) *RollbackTrigger {
3454	s.Type = &v
3455	return s
3456}
3457
3458// This property corresponds to the AWS CloudFormation Tag (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag)
3459// Data Type.
3460type Tag struct {
3461	_ struct{} `type:"structure"`
3462
3463	// This property corresponds to the content of the same name for the AWS CloudFormation
3464	// Tag (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag)
3465	// Data Type.
3466	//
3467	// Key is a required field
3468	Key *string `locationName:"key" type:"string" required:"true"`
3469
3470	// This property corresponds to the content of the same name for the AWS CloudFormation
3471	// Tag (https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag)
3472	// Data Type.
3473	//
3474	// Value is a required field
3475	Value *string `locationName:"value" type:"string" required:"true"`
3476}
3477
3478// String returns the string representation
3479func (s Tag) String() string {
3480	return awsutil.Prettify(s)
3481}
3482
3483// GoString returns the string representation
3484func (s Tag) GoString() string {
3485	return s.String()
3486}
3487
3488// Validate inspects the fields of the type to determine if they are valid.
3489func (s *Tag) Validate() error {
3490	invalidParams := request.ErrInvalidParams{Context: "Tag"}
3491	if s.Key == nil {
3492		invalidParams.Add(request.NewErrParamRequired("Key"))
3493	}
3494	if s.Value == nil {
3495		invalidParams.Add(request.NewErrParamRequired("Value"))
3496	}
3497
3498	if invalidParams.Len() > 0 {
3499		return invalidParams
3500	}
3501	return nil
3502}
3503
3504// SetKey sets the Key field's value.
3505func (s *Tag) SetKey(v string) *Tag {
3506	s.Key = &v
3507	return s
3508}
3509
3510// SetValue sets the Value field's value.
3511func (s *Tag) SetValue(v string) *Tag {
3512	s.Value = &v
3513	return s
3514}
3515
3516type UpdateApplicationOutput struct {
3517	_ struct{} `type:"structure"`
3518
3519	ApplicationId *string `locationName:"applicationId" type:"string"`
3520
3521	Author *string `locationName:"author" type:"string"`
3522
3523	CreationTime *string `locationName:"creationTime" type:"string"`
3524
3525	Description *string `locationName:"description" type:"string"`
3526
3527	HomePageUrl *string `locationName:"homePageUrl" type:"string"`
3528
3529	Labels []*string `locationName:"labels" type:"list"`
3530
3531	LicenseUrl *string `locationName:"licenseUrl" type:"string"`
3532
3533	Name *string `locationName:"name" type:"string"`
3534
3535	ReadmeUrl *string `locationName:"readmeUrl" type:"string"`
3536
3537	SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"`
3538
3539	// Application version details.
3540	Version *Version `locationName:"version" type:"structure"`
3541}
3542
3543// String returns the string representation
3544func (s UpdateApplicationOutput) String() string {
3545	return awsutil.Prettify(s)
3546}
3547
3548// GoString returns the string representation
3549func (s UpdateApplicationOutput) GoString() string {
3550	return s.String()
3551}
3552
3553// SetApplicationId sets the ApplicationId field's value.
3554func (s *UpdateApplicationOutput) SetApplicationId(v string) *UpdateApplicationOutput {
3555	s.ApplicationId = &v
3556	return s
3557}
3558
3559// SetAuthor sets the Author field's value.
3560func (s *UpdateApplicationOutput) SetAuthor(v string) *UpdateApplicationOutput {
3561	s.Author = &v
3562	return s
3563}
3564
3565// SetCreationTime sets the CreationTime field's value.
3566func (s *UpdateApplicationOutput) SetCreationTime(v string) *UpdateApplicationOutput {
3567	s.CreationTime = &v
3568	return s
3569}
3570
3571// SetDescription sets the Description field's value.
3572func (s *UpdateApplicationOutput) SetDescription(v string) *UpdateApplicationOutput {
3573	s.Description = &v
3574	return s
3575}
3576
3577// SetHomePageUrl sets the HomePageUrl field's value.
3578func (s *UpdateApplicationOutput) SetHomePageUrl(v string) *UpdateApplicationOutput {
3579	s.HomePageUrl = &v
3580	return s
3581}
3582
3583// SetLabels sets the Labels field's value.
3584func (s *UpdateApplicationOutput) SetLabels(v []*string) *UpdateApplicationOutput {
3585	s.Labels = v
3586	return s
3587}
3588
3589// SetLicenseUrl sets the LicenseUrl field's value.
3590func (s *UpdateApplicationOutput) SetLicenseUrl(v string) *UpdateApplicationOutput {
3591	s.LicenseUrl = &v
3592	return s
3593}
3594
3595// SetName sets the Name field's value.
3596func (s *UpdateApplicationOutput) SetName(v string) *UpdateApplicationOutput {
3597	s.Name = &v
3598	return s
3599}
3600
3601// SetReadmeUrl sets the ReadmeUrl field's value.
3602func (s *UpdateApplicationOutput) SetReadmeUrl(v string) *UpdateApplicationOutput {
3603	s.ReadmeUrl = &v
3604	return s
3605}
3606
3607// SetSpdxLicenseId sets the SpdxLicenseId field's value.
3608func (s *UpdateApplicationOutput) SetSpdxLicenseId(v string) *UpdateApplicationOutput {
3609	s.SpdxLicenseId = &v
3610	return s
3611}
3612
3613// SetVersion sets the Version field's value.
3614func (s *UpdateApplicationOutput) SetVersion(v *Version) *UpdateApplicationOutput {
3615	s.Version = v
3616	return s
3617}
3618
3619type UpdateApplicationRequest struct {
3620	_ struct{} `type:"structure"`
3621
3622	// ApplicationId is a required field
3623	ApplicationId *string `location:"uri" locationName:"applicationId" type:"string" required:"true"`
3624
3625	Author *string `locationName:"author" type:"string"`
3626
3627	Description *string `locationName:"description" type:"string"`
3628
3629	HomePageUrl *string `locationName:"homePageUrl" type:"string"`
3630
3631	Labels []*string `locationName:"labels" type:"list"`
3632
3633	ReadmeBody *string `locationName:"readmeBody" type:"string"`
3634
3635	ReadmeUrl *string `locationName:"readmeUrl" type:"string"`
3636}
3637
3638// String returns the string representation
3639func (s UpdateApplicationRequest) String() string {
3640	return awsutil.Prettify(s)
3641}
3642
3643// GoString returns the string representation
3644func (s UpdateApplicationRequest) GoString() string {
3645	return s.String()
3646}
3647
3648// Validate inspects the fields of the type to determine if they are valid.
3649func (s *UpdateApplicationRequest) Validate() error {
3650	invalidParams := request.ErrInvalidParams{Context: "UpdateApplicationRequest"}
3651	if s.ApplicationId == nil {
3652		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
3653	}
3654	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
3655		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
3656	}
3657
3658	if invalidParams.Len() > 0 {
3659		return invalidParams
3660	}
3661	return nil
3662}
3663
3664// SetApplicationId sets the ApplicationId field's value.
3665func (s *UpdateApplicationRequest) SetApplicationId(v string) *UpdateApplicationRequest {
3666	s.ApplicationId = &v
3667	return s
3668}
3669
3670// SetAuthor sets the Author field's value.
3671func (s *UpdateApplicationRequest) SetAuthor(v string) *UpdateApplicationRequest {
3672	s.Author = &v
3673	return s
3674}
3675
3676// SetDescription sets the Description field's value.
3677func (s *UpdateApplicationRequest) SetDescription(v string) *UpdateApplicationRequest {
3678	s.Description = &v
3679	return s
3680}
3681
3682// SetHomePageUrl sets the HomePageUrl field's value.
3683func (s *UpdateApplicationRequest) SetHomePageUrl(v string) *UpdateApplicationRequest {
3684	s.HomePageUrl = &v
3685	return s
3686}
3687
3688// SetLabels sets the Labels field's value.
3689func (s *UpdateApplicationRequest) SetLabels(v []*string) *UpdateApplicationRequest {
3690	s.Labels = v
3691	return s
3692}
3693
3694// SetReadmeBody sets the ReadmeBody field's value.
3695func (s *UpdateApplicationRequest) SetReadmeBody(v string) *UpdateApplicationRequest {
3696	s.ReadmeBody = &v
3697	return s
3698}
3699
3700// SetReadmeUrl sets the ReadmeUrl field's value.
3701func (s *UpdateApplicationRequest) SetReadmeUrl(v string) *UpdateApplicationRequest {
3702	s.ReadmeUrl = &v
3703	return s
3704}
3705
3706// Application version details.
3707type Version struct {
3708	_ struct{} `type:"structure"`
3709
3710	// The application Amazon Resource Name (ARN).
3711	//
3712	// ApplicationId is a required field
3713	ApplicationId *string `locationName:"applicationId" type:"string" required:"true"`
3714
3715	// The date and time this resource was created.
3716	//
3717	// CreationTime is a required field
3718	CreationTime *string `locationName:"creationTime" type:"string" required:"true"`
3719
3720	// An array of parameter types supported by the application.
3721	//
3722	// ParameterDefinitions is a required field
3723	ParameterDefinitions []*ParameterDefinition `locationName:"parameterDefinitions" type:"list" required:"true"`
3724
3725	// A list of values that you must specify before you can deploy certain applications.
3726	// Some applications might include resources that can affect permissions in
3727	// your AWS account, for example, by creating new AWS Identity and Access Management
3728	// (IAM) users. For those applications, you must explicitly acknowledge their
3729	// capabilities by specifying this parameter.
3730	//
3731	// The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_RESOURCE_POLICY,
3732	// and CAPABILITY_AUTO_EXPAND.
3733	//
3734	// The following resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM:
3735	// AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html),
3736	// AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html),
3737	// AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html),
3738	// and AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html).
3739	// If the application contains IAM resources, you can specify either CAPABILITY_IAM
3740	// or CAPABILITY_NAMED_IAM. If the application contains IAM resources with custom
3741	// names, you must specify CAPABILITY_NAMED_IAM.
3742	//
3743	// The following resources require you to specify CAPABILITY_RESOURCE_POLICY:
3744	// AWS::Lambda::Permission (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html),
3745	// AWS::IAM:Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html),
3746	// AWS::ApplicationAutoScaling::ScalingPolicy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html),
3747	// AWS::S3::BucketPolicy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html),
3748	// AWS::SQS::QueuePolicy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html),
3749	// and AWS::SNS::TopicPolicy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html).
3750	//
3751	// Applications that contain one or more nested applications require you to
3752	// specify CAPABILITY_AUTO_EXPAND.
3753	//
3754	// If your application template contains any of the above resources, we recommend
3755	// that you review all permissions associated with the application before deploying.
3756	// If you don't specify this parameter for an application that requires capabilities,
3757	// the call will fail.
3758	//
3759	// RequiredCapabilities is a required field
3760	RequiredCapabilities []*string `locationName:"requiredCapabilities" type:"list" required:"true"`
3761
3762	// Whether all of the AWS resources contained in this application are supported
3763	// in the region in which it is being retrieved.
3764	//
3765	// ResourcesSupported is a required field
3766	ResourcesSupported *bool `locationName:"resourcesSupported" type:"boolean" required:"true"`
3767
3768	// The semantic version of the application:
3769	//
3770	// https://semver.org/ (https://semver.org/)
3771	//
3772	// SemanticVersion is a required field
3773	SemanticVersion *string `locationName:"semanticVersion" type:"string" required:"true"`
3774
3775	// A link to the S3 object that contains the ZIP archive of the source code
3776	// for this version of your application.
3777	//
3778	// Maximum size 50 MB
3779	SourceCodeArchiveUrl *string `locationName:"sourceCodeArchiveUrl" type:"string"`
3780
3781	// A link to a public repository for the source code of your application, for
3782	// example the URL of a specific GitHub commit.
3783	SourceCodeUrl *string `locationName:"sourceCodeUrl" type:"string"`
3784
3785	// A link to the packaged AWS SAM template of your application.
3786	//
3787	// TemplateUrl is a required field
3788	TemplateUrl *string `locationName:"templateUrl" type:"string" required:"true"`
3789}
3790
3791// String returns the string representation
3792func (s Version) String() string {
3793	return awsutil.Prettify(s)
3794}
3795
3796// GoString returns the string representation
3797func (s Version) GoString() string {
3798	return s.String()
3799}
3800
3801// SetApplicationId sets the ApplicationId field's value.
3802func (s *Version) SetApplicationId(v string) *Version {
3803	s.ApplicationId = &v
3804	return s
3805}
3806
3807// SetCreationTime sets the CreationTime field's value.
3808func (s *Version) SetCreationTime(v string) *Version {
3809	s.CreationTime = &v
3810	return s
3811}
3812
3813// SetParameterDefinitions sets the ParameterDefinitions field's value.
3814func (s *Version) SetParameterDefinitions(v []*ParameterDefinition) *Version {
3815	s.ParameterDefinitions = v
3816	return s
3817}
3818
3819// SetRequiredCapabilities sets the RequiredCapabilities field's value.
3820func (s *Version) SetRequiredCapabilities(v []*string) *Version {
3821	s.RequiredCapabilities = v
3822	return s
3823}
3824
3825// SetResourcesSupported sets the ResourcesSupported field's value.
3826func (s *Version) SetResourcesSupported(v bool) *Version {
3827	s.ResourcesSupported = &v
3828	return s
3829}
3830
3831// SetSemanticVersion sets the SemanticVersion field's value.
3832func (s *Version) SetSemanticVersion(v string) *Version {
3833	s.SemanticVersion = &v
3834	return s
3835}
3836
3837// SetSourceCodeArchiveUrl sets the SourceCodeArchiveUrl field's value.
3838func (s *Version) SetSourceCodeArchiveUrl(v string) *Version {
3839	s.SourceCodeArchiveUrl = &v
3840	return s
3841}
3842
3843// SetSourceCodeUrl sets the SourceCodeUrl field's value.
3844func (s *Version) SetSourceCodeUrl(v string) *Version {
3845	s.SourceCodeUrl = &v
3846	return s
3847}
3848
3849// SetTemplateUrl sets the TemplateUrl field's value.
3850func (s *Version) SetTemplateUrl(v string) *Version {
3851	s.TemplateUrl = &v
3852	return s
3853}
3854
3855// An application version summary.
3856type VersionSummary struct {
3857	_ struct{} `type:"structure"`
3858
3859	// The application Amazon Resource Name (ARN).
3860	//
3861	// ApplicationId is a required field
3862	ApplicationId *string `locationName:"applicationId" type:"string" required:"true"`
3863
3864	// The date and time this resource was created.
3865	//
3866	// CreationTime is a required field
3867	CreationTime *string `locationName:"creationTime" type:"string" required:"true"`
3868
3869	// The semantic version of the application:
3870	//
3871	// https://semver.org/ (https://semver.org/)
3872	//
3873	// SemanticVersion is a required field
3874	SemanticVersion *string `locationName:"semanticVersion" type:"string" required:"true"`
3875
3876	// A link to a public repository for the source code of your application, for
3877	// example the URL of a specific GitHub commit.
3878	SourceCodeUrl *string `locationName:"sourceCodeUrl" type:"string"`
3879}
3880
3881// String returns the string representation
3882func (s VersionSummary) String() string {
3883	return awsutil.Prettify(s)
3884}
3885
3886// GoString returns the string representation
3887func (s VersionSummary) GoString() string {
3888	return s.String()
3889}
3890
3891// SetApplicationId sets the ApplicationId field's value.
3892func (s *VersionSummary) SetApplicationId(v string) *VersionSummary {
3893	s.ApplicationId = &v
3894	return s
3895}
3896
3897// SetCreationTime sets the CreationTime field's value.
3898func (s *VersionSummary) SetCreationTime(v string) *VersionSummary {
3899	s.CreationTime = &v
3900	return s
3901}
3902
3903// SetSemanticVersion sets the SemanticVersion field's value.
3904func (s *VersionSummary) SetSemanticVersion(v string) *VersionSummary {
3905	s.SemanticVersion = &v
3906	return s
3907}
3908
3909// SetSourceCodeUrl sets the SourceCodeUrl field's value.
3910func (s *VersionSummary) SetSourceCodeUrl(v string) *VersionSummary {
3911	s.SourceCodeUrl = &v
3912	return s
3913}
3914
3915// Values that must be specified in order to deploy some applications.
3916const (
3917	// CapabilityCapabilityIam is a Capability enum value
3918	CapabilityCapabilityIam = "CAPABILITY_IAM"
3919
3920	// CapabilityCapabilityNamedIam is a Capability enum value
3921	CapabilityCapabilityNamedIam = "CAPABILITY_NAMED_IAM"
3922
3923	// CapabilityCapabilityAutoExpand is a Capability enum value
3924	CapabilityCapabilityAutoExpand = "CAPABILITY_AUTO_EXPAND"
3925
3926	// CapabilityCapabilityResourcePolicy is a Capability enum value
3927	CapabilityCapabilityResourcePolicy = "CAPABILITY_RESOURCE_POLICY"
3928)
3929
3930const (
3931	// StatusPreparing is a Status enum value
3932	StatusPreparing = "PREPARING"
3933
3934	// StatusActive is a Status enum value
3935	StatusActive = "ACTIVE"
3936
3937	// StatusExpired is a Status enum value
3938	StatusExpired = "EXPIRED"
3939)
3940