1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package appconfig
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opCreateApplication = "CreateApplication"
17
18// CreateApplicationRequest generates a "aws/request.Request" representing the
19// client's request for the CreateApplication operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateApplication for more information on using the CreateApplication
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CreateApplicationRequest method.
34//    req, resp := client.CreateApplicationRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateApplication
42func (c *AppConfig) CreateApplicationRequest(input *CreateApplicationInput) (req *request.Request, output *CreateApplicationOutput) {
43	op := &request.Operation{
44		Name:       opCreateApplication,
45		HTTPMethod: "POST",
46		HTTPPath:   "/applications",
47	}
48
49	if input == nil {
50		input = &CreateApplicationInput{}
51	}
52
53	output = &CreateApplicationOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateApplication API operation for Amazon AppConfig.
59//
60// An application in AppConfig is a logical unit of code that provides capabilities
61// for your customers. For example, an application can be a microservice that
62// runs on Amazon EC2 instances, a mobile application installed by your users,
63// a serverless application using Amazon API Gateway and AWS Lambda, or any
64// system you run on behalf of others.
65//
66// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
67// with awserr.Error's Code and Message methods to get detailed information about
68// the error.
69//
70// See the AWS API reference guide for Amazon AppConfig's
71// API operation CreateApplication for usage and error information.
72//
73// Returned Error Types:
74//   * BadRequestException
75//   The input fails to satisfy the constraints specified by an AWS service.
76//
77//   * InternalServerException
78//   There was an internal failure in the AppConfig service.
79//
80// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateApplication
81func (c *AppConfig) CreateApplication(input *CreateApplicationInput) (*CreateApplicationOutput, error) {
82	req, out := c.CreateApplicationRequest(input)
83	return out, req.Send()
84}
85
86// CreateApplicationWithContext is the same as CreateApplication with the addition of
87// the ability to pass a context and additional request options.
88//
89// See CreateApplication for details on how to use this API operation.
90//
91// The context must be non-nil and will be used for request cancellation. If
92// the context is nil a panic will occur. In the future the SDK may create
93// sub-contexts for http.Requests. See https://golang.org/pkg/context/
94// for more information on using Contexts.
95func (c *AppConfig) CreateApplicationWithContext(ctx aws.Context, input *CreateApplicationInput, opts ...request.Option) (*CreateApplicationOutput, error) {
96	req, out := c.CreateApplicationRequest(input)
97	req.SetContext(ctx)
98	req.ApplyOptions(opts...)
99	return out, req.Send()
100}
101
102const opCreateConfigurationProfile = "CreateConfigurationProfile"
103
104// CreateConfigurationProfileRequest generates a "aws/request.Request" representing the
105// client's request for the CreateConfigurationProfile operation. The "output" return
106// value will be populated with the request's response once the request completes
107// successfully.
108//
109// Use "Send" method on the returned Request to send the API call to the service.
110// the "output" return value is not valid until after Send returns without error.
111//
112// See CreateConfigurationProfile for more information on using the CreateConfigurationProfile
113// API call, and error handling.
114//
115// This method is useful when you want to inject custom logic or configuration
116// into the SDK's request lifecycle. Such as custom headers, or retry logic.
117//
118//
119//    // Example sending a request using the CreateConfigurationProfileRequest method.
120//    req, resp := client.CreateConfigurationProfileRequest(params)
121//
122//    err := req.Send()
123//    if err == nil { // resp is now filled
124//        fmt.Println(resp)
125//    }
126//
127// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateConfigurationProfile
128func (c *AppConfig) CreateConfigurationProfileRequest(input *CreateConfigurationProfileInput) (req *request.Request, output *CreateConfigurationProfileOutput) {
129	op := &request.Operation{
130		Name:       opCreateConfigurationProfile,
131		HTTPMethod: "POST",
132		HTTPPath:   "/applications/{ApplicationId}/configurationprofiles",
133	}
134
135	if input == nil {
136		input = &CreateConfigurationProfileInput{}
137	}
138
139	output = &CreateConfigurationProfileOutput{}
140	req = c.newRequest(op, input, output)
141	return
142}
143
144// CreateConfigurationProfile API operation for Amazon AppConfig.
145//
146// Information that enables AppConfig to access the configuration source. Valid
147// configuration sources include Systems Manager (SSM) documents, SSM Parameter
148// Store parameters, and Amazon S3 objects. A configuration profile includes
149// the following information.
150//
151//    * The Uri location of the configuration data.
152//
153//    * The AWS Identity and Access Management (IAM) role that provides access
154//    to the configuration data.
155//
156//    * A validator for the configuration data. Available validators include
157//    either a JSON Schema or an AWS Lambda function.
158//
159// For more information, see Create a Configuration and a Configuration Profile
160// (http://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig-creating-configuration-and-profile.html)
161// in the AWS AppConfig User Guide.
162//
163// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
164// with awserr.Error's Code and Message methods to get detailed information about
165// the error.
166//
167// See the AWS API reference guide for Amazon AppConfig's
168// API operation CreateConfigurationProfile for usage and error information.
169//
170// Returned Error Types:
171//   * BadRequestException
172//   The input fails to satisfy the constraints specified by an AWS service.
173//
174//   * ResourceNotFoundException
175//   The requested resource could not be found.
176//
177//   * InternalServerException
178//   There was an internal failure in the AppConfig service.
179//
180// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateConfigurationProfile
181func (c *AppConfig) CreateConfigurationProfile(input *CreateConfigurationProfileInput) (*CreateConfigurationProfileOutput, error) {
182	req, out := c.CreateConfigurationProfileRequest(input)
183	return out, req.Send()
184}
185
186// CreateConfigurationProfileWithContext is the same as CreateConfigurationProfile with the addition of
187// the ability to pass a context and additional request options.
188//
189// See CreateConfigurationProfile 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 *AppConfig) CreateConfigurationProfileWithContext(ctx aws.Context, input *CreateConfigurationProfileInput, opts ...request.Option) (*CreateConfigurationProfileOutput, error) {
196	req, out := c.CreateConfigurationProfileRequest(input)
197	req.SetContext(ctx)
198	req.ApplyOptions(opts...)
199	return out, req.Send()
200}
201
202const opCreateDeploymentStrategy = "CreateDeploymentStrategy"
203
204// CreateDeploymentStrategyRequest generates a "aws/request.Request" representing the
205// client's request for the CreateDeploymentStrategy 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 CreateDeploymentStrategy for more information on using the CreateDeploymentStrategy
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 CreateDeploymentStrategyRequest method.
220//    req, resp := client.CreateDeploymentStrategyRequest(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/appconfig-2019-10-09/CreateDeploymentStrategy
228func (c *AppConfig) CreateDeploymentStrategyRequest(input *CreateDeploymentStrategyInput) (req *request.Request, output *CreateDeploymentStrategyOutput) {
229	op := &request.Operation{
230		Name:       opCreateDeploymentStrategy,
231		HTTPMethod: "POST",
232		HTTPPath:   "/deploymentstrategies",
233	}
234
235	if input == nil {
236		input = &CreateDeploymentStrategyInput{}
237	}
238
239	output = &CreateDeploymentStrategyOutput{}
240	req = c.newRequest(op, input, output)
241	return
242}
243
244// CreateDeploymentStrategy API operation for Amazon AppConfig.
245//
246// A deployment strategy defines important criteria for rolling out your configuration
247// to the designated targets. A deployment strategy includes: the overall duration
248// required, a percentage of targets to receive the deployment during each interval,
249// an algorithm that defines how percentage grows, and bake time.
250//
251// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
252// with awserr.Error's Code and Message methods to get detailed information about
253// the error.
254//
255// See the AWS API reference guide for Amazon AppConfig's
256// API operation CreateDeploymentStrategy for usage and error information.
257//
258// Returned Error Types:
259//   * InternalServerException
260//   There was an internal failure in the AppConfig service.
261//
262//   * BadRequestException
263//   The input fails to satisfy the constraints specified by an AWS service.
264//
265// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateDeploymentStrategy
266func (c *AppConfig) CreateDeploymentStrategy(input *CreateDeploymentStrategyInput) (*CreateDeploymentStrategyOutput, error) {
267	req, out := c.CreateDeploymentStrategyRequest(input)
268	return out, req.Send()
269}
270
271// CreateDeploymentStrategyWithContext is the same as CreateDeploymentStrategy with the addition of
272// the ability to pass a context and additional request options.
273//
274// See CreateDeploymentStrategy for details on how to use this API operation.
275//
276// The context must be non-nil and will be used for request cancellation. If
277// the context is nil a panic will occur. In the future the SDK may create
278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
279// for more information on using Contexts.
280func (c *AppConfig) CreateDeploymentStrategyWithContext(ctx aws.Context, input *CreateDeploymentStrategyInput, opts ...request.Option) (*CreateDeploymentStrategyOutput, error) {
281	req, out := c.CreateDeploymentStrategyRequest(input)
282	req.SetContext(ctx)
283	req.ApplyOptions(opts...)
284	return out, req.Send()
285}
286
287const opCreateEnvironment = "CreateEnvironment"
288
289// CreateEnvironmentRequest generates a "aws/request.Request" representing the
290// client's request for the CreateEnvironment operation. The "output" return
291// value will be populated with the request's response once the request completes
292// successfully.
293//
294// Use "Send" method on the returned Request to send the API call to the service.
295// the "output" return value is not valid until after Send returns without error.
296//
297// See CreateEnvironment for more information on using the CreateEnvironment
298// API call, and error handling.
299//
300// This method is useful when you want to inject custom logic or configuration
301// into the SDK's request lifecycle. Such as custom headers, or retry logic.
302//
303//
304//    // Example sending a request using the CreateEnvironmentRequest method.
305//    req, resp := client.CreateEnvironmentRequest(params)
306//
307//    err := req.Send()
308//    if err == nil { // resp is now filled
309//        fmt.Println(resp)
310//    }
311//
312// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateEnvironment
313func (c *AppConfig) CreateEnvironmentRequest(input *CreateEnvironmentInput) (req *request.Request, output *CreateEnvironmentOutput) {
314	op := &request.Operation{
315		Name:       opCreateEnvironment,
316		HTTPMethod: "POST",
317		HTTPPath:   "/applications/{ApplicationId}/environments",
318	}
319
320	if input == nil {
321		input = &CreateEnvironmentInput{}
322	}
323
324	output = &CreateEnvironmentOutput{}
325	req = c.newRequest(op, input, output)
326	return
327}
328
329// CreateEnvironment API operation for Amazon AppConfig.
330//
331// For each application, you define one or more environments. An environment
332// is a logical deployment group of AppConfig targets, such as applications
333// in a Beta or Production environment. You can also define environments for
334// application subcomponents such as the Web, Mobile and Back-end components
335// for your application. You can configure Amazon CloudWatch alarms for each
336// environment. The system monitors alarms during a configuration deployment.
337// If an alarm is triggered, the system rolls back the configuration.
338//
339// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
340// with awserr.Error's Code and Message methods to get detailed information about
341// the error.
342//
343// See the AWS API reference guide for Amazon AppConfig's
344// API operation CreateEnvironment for usage and error information.
345//
346// Returned Error Types:
347//   * InternalServerException
348//   There was an internal failure in the AppConfig service.
349//
350//   * ResourceNotFoundException
351//   The requested resource could not be found.
352//
353//   * BadRequestException
354//   The input fails to satisfy the constraints specified by an AWS service.
355//
356// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateEnvironment
357func (c *AppConfig) CreateEnvironment(input *CreateEnvironmentInput) (*CreateEnvironmentOutput, error) {
358	req, out := c.CreateEnvironmentRequest(input)
359	return out, req.Send()
360}
361
362// CreateEnvironmentWithContext is the same as CreateEnvironment with the addition of
363// the ability to pass a context and additional request options.
364//
365// See CreateEnvironment for details on how to use this API operation.
366//
367// The context must be non-nil and will be used for request cancellation. If
368// the context is nil a panic will occur. In the future the SDK may create
369// sub-contexts for http.Requests. See https://golang.org/pkg/context/
370// for more information on using Contexts.
371func (c *AppConfig) CreateEnvironmentWithContext(ctx aws.Context, input *CreateEnvironmentInput, opts ...request.Option) (*CreateEnvironmentOutput, error) {
372	req, out := c.CreateEnvironmentRequest(input)
373	req.SetContext(ctx)
374	req.ApplyOptions(opts...)
375	return out, req.Send()
376}
377
378const opCreateHostedConfigurationVersion = "CreateHostedConfigurationVersion"
379
380// CreateHostedConfigurationVersionRequest generates a "aws/request.Request" representing the
381// client's request for the CreateHostedConfigurationVersion operation. The "output" return
382// value will be populated with the request's response once the request completes
383// successfully.
384//
385// Use "Send" method on the returned Request to send the API call to the service.
386// the "output" return value is not valid until after Send returns without error.
387//
388// See CreateHostedConfigurationVersion for more information on using the CreateHostedConfigurationVersion
389// API call, and error handling.
390//
391// This method is useful when you want to inject custom logic or configuration
392// into the SDK's request lifecycle. Such as custom headers, or retry logic.
393//
394//
395//    // Example sending a request using the CreateHostedConfigurationVersionRequest method.
396//    req, resp := client.CreateHostedConfigurationVersionRequest(params)
397//
398//    err := req.Send()
399//    if err == nil { // resp is now filled
400//        fmt.Println(resp)
401//    }
402//
403// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateHostedConfigurationVersion
404func (c *AppConfig) CreateHostedConfigurationVersionRequest(input *CreateHostedConfigurationVersionInput) (req *request.Request, output *CreateHostedConfigurationVersionOutput) {
405	op := &request.Operation{
406		Name:       opCreateHostedConfigurationVersion,
407		HTTPMethod: "POST",
408		HTTPPath:   "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions",
409	}
410
411	if input == nil {
412		input = &CreateHostedConfigurationVersionInput{}
413	}
414
415	output = &CreateHostedConfigurationVersionOutput{}
416	req = c.newRequest(op, input, output)
417	return
418}
419
420// CreateHostedConfigurationVersion API operation for Amazon AppConfig.
421//
422// Create a new configuration in the AppConfig configuration store.
423//
424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
425// with awserr.Error's Code and Message methods to get detailed information about
426// the error.
427//
428// See the AWS API reference guide for Amazon AppConfig's
429// API operation CreateHostedConfigurationVersion for usage and error information.
430//
431// Returned Error Types:
432//   * BadRequestException
433//   The input fails to satisfy the constraints specified by an AWS service.
434//
435//   * ServiceQuotaExceededException
436//   The number of hosted configuration versions exceeds the limit for the AppConfig
437//   configuration store. Delete one or more versions and try again.
438//
439//   * ResourceNotFoundException
440//   The requested resource could not be found.
441//
442//   * ConflictException
443//   The request could not be processed because of conflict in the current state
444//   of the resource.
445//
446//   * PayloadTooLargeException
447//   The configuration size is too large.
448//
449//   * InternalServerException
450//   There was an internal failure in the AppConfig service.
451//
452// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateHostedConfigurationVersion
453func (c *AppConfig) CreateHostedConfigurationVersion(input *CreateHostedConfigurationVersionInput) (*CreateHostedConfigurationVersionOutput, error) {
454	req, out := c.CreateHostedConfigurationVersionRequest(input)
455	return out, req.Send()
456}
457
458// CreateHostedConfigurationVersionWithContext is the same as CreateHostedConfigurationVersion with the addition of
459// the ability to pass a context and additional request options.
460//
461// See CreateHostedConfigurationVersion for details on how to use this API operation.
462//
463// The context must be non-nil and will be used for request cancellation. If
464// the context is nil a panic will occur. In the future the SDK may create
465// sub-contexts for http.Requests. See https://golang.org/pkg/context/
466// for more information on using Contexts.
467func (c *AppConfig) CreateHostedConfigurationVersionWithContext(ctx aws.Context, input *CreateHostedConfigurationVersionInput, opts ...request.Option) (*CreateHostedConfigurationVersionOutput, error) {
468	req, out := c.CreateHostedConfigurationVersionRequest(input)
469	req.SetContext(ctx)
470	req.ApplyOptions(opts...)
471	return out, req.Send()
472}
473
474const opDeleteApplication = "DeleteApplication"
475
476// DeleteApplicationRequest generates a "aws/request.Request" representing the
477// client's request for the DeleteApplication operation. The "output" return
478// value will be populated with the request's response once the request completes
479// successfully.
480//
481// Use "Send" method on the returned Request to send the API call to the service.
482// the "output" return value is not valid until after Send returns without error.
483//
484// See DeleteApplication for more information on using the DeleteApplication
485// API call, and error handling.
486//
487// This method is useful when you want to inject custom logic or configuration
488// into the SDK's request lifecycle. Such as custom headers, or retry logic.
489//
490//
491//    // Example sending a request using the DeleteApplicationRequest method.
492//    req, resp := client.DeleteApplicationRequest(params)
493//
494//    err := req.Send()
495//    if err == nil { // resp is now filled
496//        fmt.Println(resp)
497//    }
498//
499// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteApplication
500func (c *AppConfig) DeleteApplicationRequest(input *DeleteApplicationInput) (req *request.Request, output *DeleteApplicationOutput) {
501	op := &request.Operation{
502		Name:       opDeleteApplication,
503		HTTPMethod: "DELETE",
504		HTTPPath:   "/applications/{ApplicationId}",
505	}
506
507	if input == nil {
508		input = &DeleteApplicationInput{}
509	}
510
511	output = &DeleteApplicationOutput{}
512	req = c.newRequest(op, input, output)
513	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
514	return
515}
516
517// DeleteApplication API operation for Amazon AppConfig.
518//
519// Delete an application. Deleting an application does not delete a configuration
520// from a host.
521//
522// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
523// with awserr.Error's Code and Message methods to get detailed information about
524// the error.
525//
526// See the AWS API reference guide for Amazon AppConfig's
527// API operation DeleteApplication for usage and error information.
528//
529// Returned Error Types:
530//   * ResourceNotFoundException
531//   The requested resource could not be found.
532//
533//   * InternalServerException
534//   There was an internal failure in the AppConfig service.
535//
536//   * BadRequestException
537//   The input fails to satisfy the constraints specified by an AWS service.
538//
539// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteApplication
540func (c *AppConfig) DeleteApplication(input *DeleteApplicationInput) (*DeleteApplicationOutput, error) {
541	req, out := c.DeleteApplicationRequest(input)
542	return out, req.Send()
543}
544
545// DeleteApplicationWithContext is the same as DeleteApplication with the addition of
546// the ability to pass a context and additional request options.
547//
548// See DeleteApplication for details on how to use this API operation.
549//
550// The context must be non-nil and will be used for request cancellation. If
551// the context is nil a panic will occur. In the future the SDK may create
552// sub-contexts for http.Requests. See https://golang.org/pkg/context/
553// for more information on using Contexts.
554func (c *AppConfig) DeleteApplicationWithContext(ctx aws.Context, input *DeleteApplicationInput, opts ...request.Option) (*DeleteApplicationOutput, error) {
555	req, out := c.DeleteApplicationRequest(input)
556	req.SetContext(ctx)
557	req.ApplyOptions(opts...)
558	return out, req.Send()
559}
560
561const opDeleteConfigurationProfile = "DeleteConfigurationProfile"
562
563// DeleteConfigurationProfileRequest generates a "aws/request.Request" representing the
564// client's request for the DeleteConfigurationProfile operation. The "output" return
565// value will be populated with the request's response once the request completes
566// successfully.
567//
568// Use "Send" method on the returned Request to send the API call to the service.
569// the "output" return value is not valid until after Send returns without error.
570//
571// See DeleteConfigurationProfile for more information on using the DeleteConfigurationProfile
572// API call, and error handling.
573//
574// This method is useful when you want to inject custom logic or configuration
575// into the SDK's request lifecycle. Such as custom headers, or retry logic.
576//
577//
578//    // Example sending a request using the DeleteConfigurationProfileRequest method.
579//    req, resp := client.DeleteConfigurationProfileRequest(params)
580//
581//    err := req.Send()
582//    if err == nil { // resp is now filled
583//        fmt.Println(resp)
584//    }
585//
586// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteConfigurationProfile
587func (c *AppConfig) DeleteConfigurationProfileRequest(input *DeleteConfigurationProfileInput) (req *request.Request, output *DeleteConfigurationProfileOutput) {
588	op := &request.Operation{
589		Name:       opDeleteConfigurationProfile,
590		HTTPMethod: "DELETE",
591		HTTPPath:   "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}",
592	}
593
594	if input == nil {
595		input = &DeleteConfigurationProfileInput{}
596	}
597
598	output = &DeleteConfigurationProfileOutput{}
599	req = c.newRequest(op, input, output)
600	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
601	return
602}
603
604// DeleteConfigurationProfile API operation for Amazon AppConfig.
605//
606// Delete a configuration profile. Deleting a configuration profile does not
607// delete a configuration from a host.
608//
609// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
610// with awserr.Error's Code and Message methods to get detailed information about
611// the error.
612//
613// See the AWS API reference guide for Amazon AppConfig's
614// API operation DeleteConfigurationProfile for usage and error information.
615//
616// Returned Error Types:
617//   * ResourceNotFoundException
618//   The requested resource could not be found.
619//
620//   * ConflictException
621//   The request could not be processed because of conflict in the current state
622//   of the resource.
623//
624//   * InternalServerException
625//   There was an internal failure in the AppConfig service.
626//
627//   * BadRequestException
628//   The input fails to satisfy the constraints specified by an AWS service.
629//
630// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteConfigurationProfile
631func (c *AppConfig) DeleteConfigurationProfile(input *DeleteConfigurationProfileInput) (*DeleteConfigurationProfileOutput, error) {
632	req, out := c.DeleteConfigurationProfileRequest(input)
633	return out, req.Send()
634}
635
636// DeleteConfigurationProfileWithContext is the same as DeleteConfigurationProfile with the addition of
637// the ability to pass a context and additional request options.
638//
639// See DeleteConfigurationProfile for details on how to use this API operation.
640//
641// The context must be non-nil and will be used for request cancellation. If
642// the context is nil a panic will occur. In the future the SDK may create
643// sub-contexts for http.Requests. See https://golang.org/pkg/context/
644// for more information on using Contexts.
645func (c *AppConfig) DeleteConfigurationProfileWithContext(ctx aws.Context, input *DeleteConfigurationProfileInput, opts ...request.Option) (*DeleteConfigurationProfileOutput, error) {
646	req, out := c.DeleteConfigurationProfileRequest(input)
647	req.SetContext(ctx)
648	req.ApplyOptions(opts...)
649	return out, req.Send()
650}
651
652const opDeleteDeploymentStrategy = "DeleteDeploymentStrategy"
653
654// DeleteDeploymentStrategyRequest generates a "aws/request.Request" representing the
655// client's request for the DeleteDeploymentStrategy operation. The "output" return
656// value will be populated with the request's response once the request completes
657// successfully.
658//
659// Use "Send" method on the returned Request to send the API call to the service.
660// the "output" return value is not valid until after Send returns without error.
661//
662// See DeleteDeploymentStrategy for more information on using the DeleteDeploymentStrategy
663// API call, and error handling.
664//
665// This method is useful when you want to inject custom logic or configuration
666// into the SDK's request lifecycle. Such as custom headers, or retry logic.
667//
668//
669//    // Example sending a request using the DeleteDeploymentStrategyRequest method.
670//    req, resp := client.DeleteDeploymentStrategyRequest(params)
671//
672//    err := req.Send()
673//    if err == nil { // resp is now filled
674//        fmt.Println(resp)
675//    }
676//
677// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteDeploymentStrategy
678func (c *AppConfig) DeleteDeploymentStrategyRequest(input *DeleteDeploymentStrategyInput) (req *request.Request, output *DeleteDeploymentStrategyOutput) {
679	op := &request.Operation{
680		Name:       opDeleteDeploymentStrategy,
681		HTTPMethod: "DELETE",
682		HTTPPath:   "/deployementstrategies/{DeploymentStrategyId}",
683	}
684
685	if input == nil {
686		input = &DeleteDeploymentStrategyInput{}
687	}
688
689	output = &DeleteDeploymentStrategyOutput{}
690	req = c.newRequest(op, input, output)
691	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
692	return
693}
694
695// DeleteDeploymentStrategy API operation for Amazon AppConfig.
696//
697// Delete a deployment strategy. Deleting a deployment strategy does not delete
698// a configuration from a host.
699//
700// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
701// with awserr.Error's Code and Message methods to get detailed information about
702// the error.
703//
704// See the AWS API reference guide for Amazon AppConfig's
705// API operation DeleteDeploymentStrategy for usage and error information.
706//
707// Returned Error Types:
708//   * ResourceNotFoundException
709//   The requested resource could not be found.
710//
711//   * InternalServerException
712//   There was an internal failure in the AppConfig service.
713//
714//   * BadRequestException
715//   The input fails to satisfy the constraints specified by an AWS service.
716//
717// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteDeploymentStrategy
718func (c *AppConfig) DeleteDeploymentStrategy(input *DeleteDeploymentStrategyInput) (*DeleteDeploymentStrategyOutput, error) {
719	req, out := c.DeleteDeploymentStrategyRequest(input)
720	return out, req.Send()
721}
722
723// DeleteDeploymentStrategyWithContext is the same as DeleteDeploymentStrategy with the addition of
724// the ability to pass a context and additional request options.
725//
726// See DeleteDeploymentStrategy for details on how to use this API operation.
727//
728// The context must be non-nil and will be used for request cancellation. If
729// the context is nil a panic will occur. In the future the SDK may create
730// sub-contexts for http.Requests. See https://golang.org/pkg/context/
731// for more information on using Contexts.
732func (c *AppConfig) DeleteDeploymentStrategyWithContext(ctx aws.Context, input *DeleteDeploymentStrategyInput, opts ...request.Option) (*DeleteDeploymentStrategyOutput, error) {
733	req, out := c.DeleteDeploymentStrategyRequest(input)
734	req.SetContext(ctx)
735	req.ApplyOptions(opts...)
736	return out, req.Send()
737}
738
739const opDeleteEnvironment = "DeleteEnvironment"
740
741// DeleteEnvironmentRequest generates a "aws/request.Request" representing the
742// client's request for the DeleteEnvironment operation. The "output" return
743// value will be populated with the request's response once the request completes
744// successfully.
745//
746// Use "Send" method on the returned Request to send the API call to the service.
747// the "output" return value is not valid until after Send returns without error.
748//
749// See DeleteEnvironment for more information on using the DeleteEnvironment
750// API call, and error handling.
751//
752// This method is useful when you want to inject custom logic or configuration
753// into the SDK's request lifecycle. Such as custom headers, or retry logic.
754//
755//
756//    // Example sending a request using the DeleteEnvironmentRequest method.
757//    req, resp := client.DeleteEnvironmentRequest(params)
758//
759//    err := req.Send()
760//    if err == nil { // resp is now filled
761//        fmt.Println(resp)
762//    }
763//
764// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteEnvironment
765func (c *AppConfig) DeleteEnvironmentRequest(input *DeleteEnvironmentInput) (req *request.Request, output *DeleteEnvironmentOutput) {
766	op := &request.Operation{
767		Name:       opDeleteEnvironment,
768		HTTPMethod: "DELETE",
769		HTTPPath:   "/applications/{ApplicationId}/environments/{EnvironmentId}",
770	}
771
772	if input == nil {
773		input = &DeleteEnvironmentInput{}
774	}
775
776	output = &DeleteEnvironmentOutput{}
777	req = c.newRequest(op, input, output)
778	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
779	return
780}
781
782// DeleteEnvironment API operation for Amazon AppConfig.
783//
784// Delete an environment. Deleting an environment does not delete a configuration
785// from a host.
786//
787// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
788// with awserr.Error's Code and Message methods to get detailed information about
789// the error.
790//
791// See the AWS API reference guide for Amazon AppConfig's
792// API operation DeleteEnvironment for usage and error information.
793//
794// Returned Error Types:
795//   * ResourceNotFoundException
796//   The requested resource could not be found.
797//
798//   * ConflictException
799//   The request could not be processed because of conflict in the current state
800//   of the resource.
801//
802//   * InternalServerException
803//   There was an internal failure in the AppConfig service.
804//
805//   * BadRequestException
806//   The input fails to satisfy the constraints specified by an AWS service.
807//
808// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteEnvironment
809func (c *AppConfig) DeleteEnvironment(input *DeleteEnvironmentInput) (*DeleteEnvironmentOutput, error) {
810	req, out := c.DeleteEnvironmentRequest(input)
811	return out, req.Send()
812}
813
814// DeleteEnvironmentWithContext is the same as DeleteEnvironment with the addition of
815// the ability to pass a context and additional request options.
816//
817// See DeleteEnvironment for details on how to use this API operation.
818//
819// The context must be non-nil and will be used for request cancellation. If
820// the context is nil a panic will occur. In the future the SDK may create
821// sub-contexts for http.Requests. See https://golang.org/pkg/context/
822// for more information on using Contexts.
823func (c *AppConfig) DeleteEnvironmentWithContext(ctx aws.Context, input *DeleteEnvironmentInput, opts ...request.Option) (*DeleteEnvironmentOutput, error) {
824	req, out := c.DeleteEnvironmentRequest(input)
825	req.SetContext(ctx)
826	req.ApplyOptions(opts...)
827	return out, req.Send()
828}
829
830const opDeleteHostedConfigurationVersion = "DeleteHostedConfigurationVersion"
831
832// DeleteHostedConfigurationVersionRequest generates a "aws/request.Request" representing the
833// client's request for the DeleteHostedConfigurationVersion operation. The "output" return
834// value will be populated with the request's response once the request completes
835// successfully.
836//
837// Use "Send" method on the returned Request to send the API call to the service.
838// the "output" return value is not valid until after Send returns without error.
839//
840// See DeleteHostedConfigurationVersion for more information on using the DeleteHostedConfigurationVersion
841// API call, and error handling.
842//
843// This method is useful when you want to inject custom logic or configuration
844// into the SDK's request lifecycle. Such as custom headers, or retry logic.
845//
846//
847//    // Example sending a request using the DeleteHostedConfigurationVersionRequest method.
848//    req, resp := client.DeleteHostedConfigurationVersionRequest(params)
849//
850//    err := req.Send()
851//    if err == nil { // resp is now filled
852//        fmt.Println(resp)
853//    }
854//
855// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteHostedConfigurationVersion
856func (c *AppConfig) DeleteHostedConfigurationVersionRequest(input *DeleteHostedConfigurationVersionInput) (req *request.Request, output *DeleteHostedConfigurationVersionOutput) {
857	op := &request.Operation{
858		Name:       opDeleteHostedConfigurationVersion,
859		HTTPMethod: "DELETE",
860		HTTPPath:   "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions/{VersionNumber}",
861	}
862
863	if input == nil {
864		input = &DeleteHostedConfigurationVersionInput{}
865	}
866
867	output = &DeleteHostedConfigurationVersionOutput{}
868	req = c.newRequest(op, input, output)
869	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
870	return
871}
872
873// DeleteHostedConfigurationVersion API operation for Amazon AppConfig.
874//
875// Delete a version of a configuration from the AppConfig configuration store.
876//
877// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
878// with awserr.Error's Code and Message methods to get detailed information about
879// the error.
880//
881// See the AWS API reference guide for Amazon AppConfig's
882// API operation DeleteHostedConfigurationVersion for usage and error information.
883//
884// Returned Error Types:
885//   * BadRequestException
886//   The input fails to satisfy the constraints specified by an AWS service.
887//
888//   * ResourceNotFoundException
889//   The requested resource could not be found.
890//
891//   * InternalServerException
892//   There was an internal failure in the AppConfig service.
893//
894// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteHostedConfigurationVersion
895func (c *AppConfig) DeleteHostedConfigurationVersion(input *DeleteHostedConfigurationVersionInput) (*DeleteHostedConfigurationVersionOutput, error) {
896	req, out := c.DeleteHostedConfigurationVersionRequest(input)
897	return out, req.Send()
898}
899
900// DeleteHostedConfigurationVersionWithContext is the same as DeleteHostedConfigurationVersion with the addition of
901// the ability to pass a context and additional request options.
902//
903// See DeleteHostedConfigurationVersion for details on how to use this API operation.
904//
905// The context must be non-nil and will be used for request cancellation. If
906// the context is nil a panic will occur. In the future the SDK may create
907// sub-contexts for http.Requests. See https://golang.org/pkg/context/
908// for more information on using Contexts.
909func (c *AppConfig) DeleteHostedConfigurationVersionWithContext(ctx aws.Context, input *DeleteHostedConfigurationVersionInput, opts ...request.Option) (*DeleteHostedConfigurationVersionOutput, error) {
910	req, out := c.DeleteHostedConfigurationVersionRequest(input)
911	req.SetContext(ctx)
912	req.ApplyOptions(opts...)
913	return out, req.Send()
914}
915
916const opGetApplication = "GetApplication"
917
918// GetApplicationRequest generates a "aws/request.Request" representing the
919// client's request for the GetApplication 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 GetApplication for more information on using the GetApplication
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 GetApplicationRequest method.
934//    req, resp := client.GetApplicationRequest(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/appconfig-2019-10-09/GetApplication
942func (c *AppConfig) GetApplicationRequest(input *GetApplicationInput) (req *request.Request, output *GetApplicationOutput) {
943	op := &request.Operation{
944		Name:       opGetApplication,
945		HTTPMethod: "GET",
946		HTTPPath:   "/applications/{ApplicationId}",
947	}
948
949	if input == nil {
950		input = &GetApplicationInput{}
951	}
952
953	output = &GetApplicationOutput{}
954	req = c.newRequest(op, input, output)
955	return
956}
957
958// GetApplication API operation for Amazon AppConfig.
959//
960// Retrieve information about an application.
961//
962// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
963// with awserr.Error's Code and Message methods to get detailed information about
964// the error.
965//
966// See the AWS API reference guide for Amazon AppConfig's
967// API operation GetApplication for usage and error information.
968//
969// Returned Error Types:
970//   * ResourceNotFoundException
971//   The requested resource could not be found.
972//
973//   * InternalServerException
974//   There was an internal failure in the AppConfig service.
975//
976//   * BadRequestException
977//   The input fails to satisfy the constraints specified by an AWS service.
978//
979// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetApplication
980func (c *AppConfig) GetApplication(input *GetApplicationInput) (*GetApplicationOutput, error) {
981	req, out := c.GetApplicationRequest(input)
982	return out, req.Send()
983}
984
985// GetApplicationWithContext is the same as GetApplication with the addition of
986// the ability to pass a context and additional request options.
987//
988// See GetApplication for details on how to use this API operation.
989//
990// The context must be non-nil and will be used for request cancellation. If
991// the context is nil a panic will occur. In the future the SDK may create
992// sub-contexts for http.Requests. See https://golang.org/pkg/context/
993// for more information on using Contexts.
994func (c *AppConfig) GetApplicationWithContext(ctx aws.Context, input *GetApplicationInput, opts ...request.Option) (*GetApplicationOutput, error) {
995	req, out := c.GetApplicationRequest(input)
996	req.SetContext(ctx)
997	req.ApplyOptions(opts...)
998	return out, req.Send()
999}
1000
1001const opGetConfiguration = "GetConfiguration"
1002
1003// GetConfigurationRequest generates a "aws/request.Request" representing the
1004// client's request for the GetConfiguration operation. The "output" return
1005// value will be populated with the request's response once the request completes
1006// successfully.
1007//
1008// Use "Send" method on the returned Request to send the API call to the service.
1009// the "output" return value is not valid until after Send returns without error.
1010//
1011// See GetConfiguration for more information on using the GetConfiguration
1012// API call, and error handling.
1013//
1014// This method is useful when you want to inject custom logic or configuration
1015// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1016//
1017//
1018//    // Example sending a request using the GetConfigurationRequest method.
1019//    req, resp := client.GetConfigurationRequest(params)
1020//
1021//    err := req.Send()
1022//    if err == nil { // resp is now filled
1023//        fmt.Println(resp)
1024//    }
1025//
1026// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetConfiguration
1027func (c *AppConfig) GetConfigurationRequest(input *GetConfigurationInput) (req *request.Request, output *GetConfigurationOutput) {
1028	op := &request.Operation{
1029		Name:       opGetConfiguration,
1030		HTTPMethod: "GET",
1031		HTTPPath:   "/applications/{Application}/environments/{Environment}/configurations/{Configuration}",
1032	}
1033
1034	if input == nil {
1035		input = &GetConfigurationInput{}
1036	}
1037
1038	output = &GetConfigurationOutput{}
1039	req = c.newRequest(op, input, output)
1040	return
1041}
1042
1043// GetConfiguration API operation for Amazon AppConfig.
1044//
1045// Receive information about a configuration.
1046//
1047// AWS AppConfig uses the value of the ClientConfigurationVersion parameter
1048// to identify the configuration version on your clients. If you don’t send
1049// ClientConfigurationVersion with each call to GetConfiguration, your clients
1050// receive the current configuration. You are charged each time your clients
1051// receive a configuration.
1052//
1053// To avoid excess charges, we recommend that you include the ClientConfigurationVersion
1054// value with every call to GetConfiguration. This value must be saved on your
1055// client. Subsequent calls to GetConfiguration must pass this value by using
1056// the ClientConfigurationVersion parameter.
1057//
1058// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1059// with awserr.Error's Code and Message methods to get detailed information about
1060// the error.
1061//
1062// See the AWS API reference guide for Amazon AppConfig's
1063// API operation GetConfiguration for usage and error information.
1064//
1065// Returned Error Types:
1066//   * ResourceNotFoundException
1067//   The requested resource could not be found.
1068//
1069//   * InternalServerException
1070//   There was an internal failure in the AppConfig service.
1071//
1072//   * BadRequestException
1073//   The input fails to satisfy the constraints specified by an AWS service.
1074//
1075// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetConfiguration
1076func (c *AppConfig) GetConfiguration(input *GetConfigurationInput) (*GetConfigurationOutput, error) {
1077	req, out := c.GetConfigurationRequest(input)
1078	return out, req.Send()
1079}
1080
1081// GetConfigurationWithContext is the same as GetConfiguration with the addition of
1082// the ability to pass a context and additional request options.
1083//
1084// See GetConfiguration for details on how to use this API operation.
1085//
1086// The context must be non-nil and will be used for request cancellation. If
1087// the context is nil a panic will occur. In the future the SDK may create
1088// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1089// for more information on using Contexts.
1090func (c *AppConfig) GetConfigurationWithContext(ctx aws.Context, input *GetConfigurationInput, opts ...request.Option) (*GetConfigurationOutput, error) {
1091	req, out := c.GetConfigurationRequest(input)
1092	req.SetContext(ctx)
1093	req.ApplyOptions(opts...)
1094	return out, req.Send()
1095}
1096
1097const opGetConfigurationProfile = "GetConfigurationProfile"
1098
1099// GetConfigurationProfileRequest generates a "aws/request.Request" representing the
1100// client's request for the GetConfigurationProfile operation. The "output" return
1101// value will be populated with the request's response once the request completes
1102// successfully.
1103//
1104// Use "Send" method on the returned Request to send the API call to the service.
1105// the "output" return value is not valid until after Send returns without error.
1106//
1107// See GetConfigurationProfile for more information on using the GetConfigurationProfile
1108// API call, and error handling.
1109//
1110// This method is useful when you want to inject custom logic or configuration
1111// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1112//
1113//
1114//    // Example sending a request using the GetConfigurationProfileRequest method.
1115//    req, resp := client.GetConfigurationProfileRequest(params)
1116//
1117//    err := req.Send()
1118//    if err == nil { // resp is now filled
1119//        fmt.Println(resp)
1120//    }
1121//
1122// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetConfigurationProfile
1123func (c *AppConfig) GetConfigurationProfileRequest(input *GetConfigurationProfileInput) (req *request.Request, output *GetConfigurationProfileOutput) {
1124	op := &request.Operation{
1125		Name:       opGetConfigurationProfile,
1126		HTTPMethod: "GET",
1127		HTTPPath:   "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}",
1128	}
1129
1130	if input == nil {
1131		input = &GetConfigurationProfileInput{}
1132	}
1133
1134	output = &GetConfigurationProfileOutput{}
1135	req = c.newRequest(op, input, output)
1136	return
1137}
1138
1139// GetConfigurationProfile API operation for Amazon AppConfig.
1140//
1141// Retrieve information about a configuration profile.
1142//
1143// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1144// with awserr.Error's Code and Message methods to get detailed information about
1145// the error.
1146//
1147// See the AWS API reference guide for Amazon AppConfig's
1148// API operation GetConfigurationProfile for usage and error information.
1149//
1150// Returned Error Types:
1151//   * ResourceNotFoundException
1152//   The requested resource could not be found.
1153//
1154//   * InternalServerException
1155//   There was an internal failure in the AppConfig service.
1156//
1157//   * BadRequestException
1158//   The input fails to satisfy the constraints specified by an AWS service.
1159//
1160// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetConfigurationProfile
1161func (c *AppConfig) GetConfigurationProfile(input *GetConfigurationProfileInput) (*GetConfigurationProfileOutput, error) {
1162	req, out := c.GetConfigurationProfileRequest(input)
1163	return out, req.Send()
1164}
1165
1166// GetConfigurationProfileWithContext is the same as GetConfigurationProfile with the addition of
1167// the ability to pass a context and additional request options.
1168//
1169// See GetConfigurationProfile for details on how to use this API operation.
1170//
1171// The context must be non-nil and will be used for request cancellation. If
1172// the context is nil a panic will occur. In the future the SDK may create
1173// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1174// for more information on using Contexts.
1175func (c *AppConfig) GetConfigurationProfileWithContext(ctx aws.Context, input *GetConfigurationProfileInput, opts ...request.Option) (*GetConfigurationProfileOutput, error) {
1176	req, out := c.GetConfigurationProfileRequest(input)
1177	req.SetContext(ctx)
1178	req.ApplyOptions(opts...)
1179	return out, req.Send()
1180}
1181
1182const opGetDeployment = "GetDeployment"
1183
1184// GetDeploymentRequest generates a "aws/request.Request" representing the
1185// client's request for the GetDeployment operation. The "output" return
1186// value will be populated with the request's response once the request completes
1187// successfully.
1188//
1189// Use "Send" method on the returned Request to send the API call to the service.
1190// the "output" return value is not valid until after Send returns without error.
1191//
1192// See GetDeployment for more information on using the GetDeployment
1193// API call, and error handling.
1194//
1195// This method is useful when you want to inject custom logic or configuration
1196// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1197//
1198//
1199//    // Example sending a request using the GetDeploymentRequest method.
1200//    req, resp := client.GetDeploymentRequest(params)
1201//
1202//    err := req.Send()
1203//    if err == nil { // resp is now filled
1204//        fmt.Println(resp)
1205//    }
1206//
1207// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetDeployment
1208func (c *AppConfig) GetDeploymentRequest(input *GetDeploymentInput) (req *request.Request, output *GetDeploymentOutput) {
1209	op := &request.Operation{
1210		Name:       opGetDeployment,
1211		HTTPMethod: "GET",
1212		HTTPPath:   "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}",
1213	}
1214
1215	if input == nil {
1216		input = &GetDeploymentInput{}
1217	}
1218
1219	output = &GetDeploymentOutput{}
1220	req = c.newRequest(op, input, output)
1221	return
1222}
1223
1224// GetDeployment API operation for Amazon AppConfig.
1225//
1226// Retrieve information about a configuration deployment.
1227//
1228// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1229// with awserr.Error's Code and Message methods to get detailed information about
1230// the error.
1231//
1232// See the AWS API reference guide for Amazon AppConfig's
1233// API operation GetDeployment for usage and error information.
1234//
1235// Returned Error Types:
1236//   * ResourceNotFoundException
1237//   The requested resource could not be found.
1238//
1239//   * InternalServerException
1240//   There was an internal failure in the AppConfig service.
1241//
1242//   * BadRequestException
1243//   The input fails to satisfy the constraints specified by an AWS service.
1244//
1245// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetDeployment
1246func (c *AppConfig) GetDeployment(input *GetDeploymentInput) (*GetDeploymentOutput, error) {
1247	req, out := c.GetDeploymentRequest(input)
1248	return out, req.Send()
1249}
1250
1251// GetDeploymentWithContext is the same as GetDeployment with the addition of
1252// the ability to pass a context and additional request options.
1253//
1254// See GetDeployment for details on how to use this API operation.
1255//
1256// The context must be non-nil and will be used for request cancellation. If
1257// the context is nil a panic will occur. In the future the SDK may create
1258// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1259// for more information on using Contexts.
1260func (c *AppConfig) GetDeploymentWithContext(ctx aws.Context, input *GetDeploymentInput, opts ...request.Option) (*GetDeploymentOutput, error) {
1261	req, out := c.GetDeploymentRequest(input)
1262	req.SetContext(ctx)
1263	req.ApplyOptions(opts...)
1264	return out, req.Send()
1265}
1266
1267const opGetDeploymentStrategy = "GetDeploymentStrategy"
1268
1269// GetDeploymentStrategyRequest generates a "aws/request.Request" representing the
1270// client's request for the GetDeploymentStrategy operation. The "output" return
1271// value will be populated with the request's response once the request completes
1272// successfully.
1273//
1274// Use "Send" method on the returned Request to send the API call to the service.
1275// the "output" return value is not valid until after Send returns without error.
1276//
1277// See GetDeploymentStrategy for more information on using the GetDeploymentStrategy
1278// API call, and error handling.
1279//
1280// This method is useful when you want to inject custom logic or configuration
1281// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1282//
1283//
1284//    // Example sending a request using the GetDeploymentStrategyRequest method.
1285//    req, resp := client.GetDeploymentStrategyRequest(params)
1286//
1287//    err := req.Send()
1288//    if err == nil { // resp is now filled
1289//        fmt.Println(resp)
1290//    }
1291//
1292// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetDeploymentStrategy
1293func (c *AppConfig) GetDeploymentStrategyRequest(input *GetDeploymentStrategyInput) (req *request.Request, output *GetDeploymentStrategyOutput) {
1294	op := &request.Operation{
1295		Name:       opGetDeploymentStrategy,
1296		HTTPMethod: "GET",
1297		HTTPPath:   "/deploymentstrategies/{DeploymentStrategyId}",
1298	}
1299
1300	if input == nil {
1301		input = &GetDeploymentStrategyInput{}
1302	}
1303
1304	output = &GetDeploymentStrategyOutput{}
1305	req = c.newRequest(op, input, output)
1306	return
1307}
1308
1309// GetDeploymentStrategy API operation for Amazon AppConfig.
1310//
1311// Retrieve information about a deployment strategy. A deployment strategy defines
1312// important criteria for rolling out your configuration to the designated targets.
1313// A deployment strategy includes: the overall duration required, a percentage
1314// of targets to receive the deployment during each interval, an algorithm that
1315// defines how percentage grows, and bake time.
1316//
1317// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1318// with awserr.Error's Code and Message methods to get detailed information about
1319// the error.
1320//
1321// See the AWS API reference guide for Amazon AppConfig's
1322// API operation GetDeploymentStrategy for usage and error information.
1323//
1324// Returned Error Types:
1325//   * ResourceNotFoundException
1326//   The requested resource could not be found.
1327//
1328//   * InternalServerException
1329//   There was an internal failure in the AppConfig service.
1330//
1331//   * BadRequestException
1332//   The input fails to satisfy the constraints specified by an AWS service.
1333//
1334// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetDeploymentStrategy
1335func (c *AppConfig) GetDeploymentStrategy(input *GetDeploymentStrategyInput) (*GetDeploymentStrategyOutput, error) {
1336	req, out := c.GetDeploymentStrategyRequest(input)
1337	return out, req.Send()
1338}
1339
1340// GetDeploymentStrategyWithContext is the same as GetDeploymentStrategy with the addition of
1341// the ability to pass a context and additional request options.
1342//
1343// See GetDeploymentStrategy for details on how to use this API operation.
1344//
1345// The context must be non-nil and will be used for request cancellation. If
1346// the context is nil a panic will occur. In the future the SDK may create
1347// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1348// for more information on using Contexts.
1349func (c *AppConfig) GetDeploymentStrategyWithContext(ctx aws.Context, input *GetDeploymentStrategyInput, opts ...request.Option) (*GetDeploymentStrategyOutput, error) {
1350	req, out := c.GetDeploymentStrategyRequest(input)
1351	req.SetContext(ctx)
1352	req.ApplyOptions(opts...)
1353	return out, req.Send()
1354}
1355
1356const opGetEnvironment = "GetEnvironment"
1357
1358// GetEnvironmentRequest generates a "aws/request.Request" representing the
1359// client's request for the GetEnvironment operation. The "output" return
1360// value will be populated with the request's response once the request completes
1361// successfully.
1362//
1363// Use "Send" method on the returned Request to send the API call to the service.
1364// the "output" return value is not valid until after Send returns without error.
1365//
1366// See GetEnvironment for more information on using the GetEnvironment
1367// API call, and error handling.
1368//
1369// This method is useful when you want to inject custom logic or configuration
1370// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1371//
1372//
1373//    // Example sending a request using the GetEnvironmentRequest method.
1374//    req, resp := client.GetEnvironmentRequest(params)
1375//
1376//    err := req.Send()
1377//    if err == nil { // resp is now filled
1378//        fmt.Println(resp)
1379//    }
1380//
1381// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetEnvironment
1382func (c *AppConfig) GetEnvironmentRequest(input *GetEnvironmentInput) (req *request.Request, output *GetEnvironmentOutput) {
1383	op := &request.Operation{
1384		Name:       opGetEnvironment,
1385		HTTPMethod: "GET",
1386		HTTPPath:   "/applications/{ApplicationId}/environments/{EnvironmentId}",
1387	}
1388
1389	if input == nil {
1390		input = &GetEnvironmentInput{}
1391	}
1392
1393	output = &GetEnvironmentOutput{}
1394	req = c.newRequest(op, input, output)
1395	return
1396}
1397
1398// GetEnvironment API operation for Amazon AppConfig.
1399//
1400// Retrieve information about an environment. An environment is a logical deployment
1401// group of AppConfig applications, such as applications in a Production environment
1402// or in an EU_Region environment. Each configuration deployment targets an
1403// environment. You can enable one or more Amazon CloudWatch alarms for an environment.
1404// If an alarm is triggered during a deployment, AppConfig roles back the configuration.
1405//
1406// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1407// with awserr.Error's Code and Message methods to get detailed information about
1408// the error.
1409//
1410// See the AWS API reference guide for Amazon AppConfig's
1411// API operation GetEnvironment for usage and error information.
1412//
1413// Returned Error Types:
1414//   * ResourceNotFoundException
1415//   The requested resource could not be found.
1416//
1417//   * InternalServerException
1418//   There was an internal failure in the AppConfig service.
1419//
1420//   * BadRequestException
1421//   The input fails to satisfy the constraints specified by an AWS service.
1422//
1423// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetEnvironment
1424func (c *AppConfig) GetEnvironment(input *GetEnvironmentInput) (*GetEnvironmentOutput, error) {
1425	req, out := c.GetEnvironmentRequest(input)
1426	return out, req.Send()
1427}
1428
1429// GetEnvironmentWithContext is the same as GetEnvironment with the addition of
1430// the ability to pass a context and additional request options.
1431//
1432// See GetEnvironment for details on how to use this API operation.
1433//
1434// The context must be non-nil and will be used for request cancellation. If
1435// the context is nil a panic will occur. In the future the SDK may create
1436// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1437// for more information on using Contexts.
1438func (c *AppConfig) GetEnvironmentWithContext(ctx aws.Context, input *GetEnvironmentInput, opts ...request.Option) (*GetEnvironmentOutput, error) {
1439	req, out := c.GetEnvironmentRequest(input)
1440	req.SetContext(ctx)
1441	req.ApplyOptions(opts...)
1442	return out, req.Send()
1443}
1444
1445const opGetHostedConfigurationVersion = "GetHostedConfigurationVersion"
1446
1447// GetHostedConfigurationVersionRequest generates a "aws/request.Request" representing the
1448// client's request for the GetHostedConfigurationVersion operation. The "output" return
1449// value will be populated with the request's response once the request completes
1450// successfully.
1451//
1452// Use "Send" method on the returned Request to send the API call to the service.
1453// the "output" return value is not valid until after Send returns without error.
1454//
1455// See GetHostedConfigurationVersion for more information on using the GetHostedConfigurationVersion
1456// API call, and error handling.
1457//
1458// This method is useful when you want to inject custom logic or configuration
1459// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1460//
1461//
1462//    // Example sending a request using the GetHostedConfigurationVersionRequest method.
1463//    req, resp := client.GetHostedConfigurationVersionRequest(params)
1464//
1465//    err := req.Send()
1466//    if err == nil { // resp is now filled
1467//        fmt.Println(resp)
1468//    }
1469//
1470// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetHostedConfigurationVersion
1471func (c *AppConfig) GetHostedConfigurationVersionRequest(input *GetHostedConfigurationVersionInput) (req *request.Request, output *GetHostedConfigurationVersionOutput) {
1472	op := &request.Operation{
1473		Name:       opGetHostedConfigurationVersion,
1474		HTTPMethod: "GET",
1475		HTTPPath:   "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions/{VersionNumber}",
1476	}
1477
1478	if input == nil {
1479		input = &GetHostedConfigurationVersionInput{}
1480	}
1481
1482	output = &GetHostedConfigurationVersionOutput{}
1483	req = c.newRequest(op, input, output)
1484	return
1485}
1486
1487// GetHostedConfigurationVersion API operation for Amazon AppConfig.
1488//
1489// Get information about a specific configuration version.
1490//
1491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1492// with awserr.Error's Code and Message methods to get detailed information about
1493// the error.
1494//
1495// See the AWS API reference guide for Amazon AppConfig's
1496// API operation GetHostedConfigurationVersion for usage and error information.
1497//
1498// Returned Error Types:
1499//   * BadRequestException
1500//   The input fails to satisfy the constraints specified by an AWS service.
1501//
1502//   * ResourceNotFoundException
1503//   The requested resource could not be found.
1504//
1505//   * InternalServerException
1506//   There was an internal failure in the AppConfig service.
1507//
1508// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetHostedConfigurationVersion
1509func (c *AppConfig) GetHostedConfigurationVersion(input *GetHostedConfigurationVersionInput) (*GetHostedConfigurationVersionOutput, error) {
1510	req, out := c.GetHostedConfigurationVersionRequest(input)
1511	return out, req.Send()
1512}
1513
1514// GetHostedConfigurationVersionWithContext is the same as GetHostedConfigurationVersion with the addition of
1515// the ability to pass a context and additional request options.
1516//
1517// See GetHostedConfigurationVersion for details on how to use this API operation.
1518//
1519// The context must be non-nil and will be used for request cancellation. If
1520// the context is nil a panic will occur. In the future the SDK may create
1521// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1522// for more information on using Contexts.
1523func (c *AppConfig) GetHostedConfigurationVersionWithContext(ctx aws.Context, input *GetHostedConfigurationVersionInput, opts ...request.Option) (*GetHostedConfigurationVersionOutput, error) {
1524	req, out := c.GetHostedConfigurationVersionRequest(input)
1525	req.SetContext(ctx)
1526	req.ApplyOptions(opts...)
1527	return out, req.Send()
1528}
1529
1530const opListApplications = "ListApplications"
1531
1532// ListApplicationsRequest generates a "aws/request.Request" representing the
1533// client's request for the ListApplications operation. The "output" return
1534// value will be populated with the request's response once the request completes
1535// successfully.
1536//
1537// Use "Send" method on the returned Request to send the API call to the service.
1538// the "output" return value is not valid until after Send returns without error.
1539//
1540// See ListApplications for more information on using the ListApplications
1541// API call, and error handling.
1542//
1543// This method is useful when you want to inject custom logic or configuration
1544// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1545//
1546//
1547//    // Example sending a request using the ListApplicationsRequest method.
1548//    req, resp := client.ListApplicationsRequest(params)
1549//
1550//    err := req.Send()
1551//    if err == nil { // resp is now filled
1552//        fmt.Println(resp)
1553//    }
1554//
1555// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListApplications
1556func (c *AppConfig) ListApplicationsRequest(input *ListApplicationsInput) (req *request.Request, output *ListApplicationsOutput) {
1557	op := &request.Operation{
1558		Name:       opListApplications,
1559		HTTPMethod: "GET",
1560		HTTPPath:   "/applications",
1561		Paginator: &request.Paginator{
1562			InputTokens:     []string{"NextToken"},
1563			OutputTokens:    []string{"NextToken"},
1564			LimitToken:      "MaxResults",
1565			TruncationToken: "",
1566		},
1567	}
1568
1569	if input == nil {
1570		input = &ListApplicationsInput{}
1571	}
1572
1573	output = &ListApplicationsOutput{}
1574	req = c.newRequest(op, input, output)
1575	return
1576}
1577
1578// ListApplications API operation for Amazon AppConfig.
1579//
1580// List all applications in your AWS account.
1581//
1582// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1583// with awserr.Error's Code and Message methods to get detailed information about
1584// the error.
1585//
1586// See the AWS API reference guide for Amazon AppConfig's
1587// API operation ListApplications for usage and error information.
1588//
1589// Returned Error Types:
1590//   * InternalServerException
1591//   There was an internal failure in the AppConfig service.
1592//
1593//   * BadRequestException
1594//   The input fails to satisfy the constraints specified by an AWS service.
1595//
1596// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListApplications
1597func (c *AppConfig) ListApplications(input *ListApplicationsInput) (*ListApplicationsOutput, error) {
1598	req, out := c.ListApplicationsRequest(input)
1599	return out, req.Send()
1600}
1601
1602// ListApplicationsWithContext is the same as ListApplications with the addition of
1603// the ability to pass a context and additional request options.
1604//
1605// See ListApplications for details on how to use this API operation.
1606//
1607// The context must be non-nil and will be used for request cancellation. If
1608// the context is nil a panic will occur. In the future the SDK may create
1609// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1610// for more information on using Contexts.
1611func (c *AppConfig) ListApplicationsWithContext(ctx aws.Context, input *ListApplicationsInput, opts ...request.Option) (*ListApplicationsOutput, error) {
1612	req, out := c.ListApplicationsRequest(input)
1613	req.SetContext(ctx)
1614	req.ApplyOptions(opts...)
1615	return out, req.Send()
1616}
1617
1618// ListApplicationsPages iterates over the pages of a ListApplications operation,
1619// calling the "fn" function with the response data for each page. To stop
1620// iterating, return false from the fn function.
1621//
1622// See ListApplications method for more information on how to use this operation.
1623//
1624// Note: This operation can generate multiple requests to a service.
1625//
1626//    // Example iterating over at most 3 pages of a ListApplications operation.
1627//    pageNum := 0
1628//    err := client.ListApplicationsPages(params,
1629//        func(page *appconfig.ListApplicationsOutput, lastPage bool) bool {
1630//            pageNum++
1631//            fmt.Println(page)
1632//            return pageNum <= 3
1633//        })
1634//
1635func (c *AppConfig) ListApplicationsPages(input *ListApplicationsInput, fn func(*ListApplicationsOutput, bool) bool) error {
1636	return c.ListApplicationsPagesWithContext(aws.BackgroundContext(), input, fn)
1637}
1638
1639// ListApplicationsPagesWithContext same as ListApplicationsPages except
1640// it takes a Context and allows setting request options on the pages.
1641//
1642// The context must be non-nil and will be used for request cancellation. If
1643// the context is nil a panic will occur. In the future the SDK may create
1644// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1645// for more information on using Contexts.
1646func (c *AppConfig) ListApplicationsPagesWithContext(ctx aws.Context, input *ListApplicationsInput, fn func(*ListApplicationsOutput, bool) bool, opts ...request.Option) error {
1647	p := request.Pagination{
1648		NewRequest: func() (*request.Request, error) {
1649			var inCpy *ListApplicationsInput
1650			if input != nil {
1651				tmp := *input
1652				inCpy = &tmp
1653			}
1654			req, _ := c.ListApplicationsRequest(inCpy)
1655			req.SetContext(ctx)
1656			req.ApplyOptions(opts...)
1657			return req, nil
1658		},
1659	}
1660
1661	for p.Next() {
1662		if !fn(p.Page().(*ListApplicationsOutput), !p.HasNextPage()) {
1663			break
1664		}
1665	}
1666
1667	return p.Err()
1668}
1669
1670const opListConfigurationProfiles = "ListConfigurationProfiles"
1671
1672// ListConfigurationProfilesRequest generates a "aws/request.Request" representing the
1673// client's request for the ListConfigurationProfiles operation. The "output" return
1674// value will be populated with the request's response once the request completes
1675// successfully.
1676//
1677// Use "Send" method on the returned Request to send the API call to the service.
1678// the "output" return value is not valid until after Send returns without error.
1679//
1680// See ListConfigurationProfiles for more information on using the ListConfigurationProfiles
1681// API call, and error handling.
1682//
1683// This method is useful when you want to inject custom logic or configuration
1684// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1685//
1686//
1687//    // Example sending a request using the ListConfigurationProfilesRequest method.
1688//    req, resp := client.ListConfigurationProfilesRequest(params)
1689//
1690//    err := req.Send()
1691//    if err == nil { // resp is now filled
1692//        fmt.Println(resp)
1693//    }
1694//
1695// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListConfigurationProfiles
1696func (c *AppConfig) ListConfigurationProfilesRequest(input *ListConfigurationProfilesInput) (req *request.Request, output *ListConfigurationProfilesOutput) {
1697	op := &request.Operation{
1698		Name:       opListConfigurationProfiles,
1699		HTTPMethod: "GET",
1700		HTTPPath:   "/applications/{ApplicationId}/configurationprofiles",
1701		Paginator: &request.Paginator{
1702			InputTokens:     []string{"NextToken"},
1703			OutputTokens:    []string{"NextToken"},
1704			LimitToken:      "MaxResults",
1705			TruncationToken: "",
1706		},
1707	}
1708
1709	if input == nil {
1710		input = &ListConfigurationProfilesInput{}
1711	}
1712
1713	output = &ListConfigurationProfilesOutput{}
1714	req = c.newRequest(op, input, output)
1715	return
1716}
1717
1718// ListConfigurationProfiles API operation for Amazon AppConfig.
1719//
1720// Lists the configuration profiles for an application.
1721//
1722// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1723// with awserr.Error's Code and Message methods to get detailed information about
1724// the error.
1725//
1726// See the AWS API reference guide for Amazon AppConfig's
1727// API operation ListConfigurationProfiles for usage and error information.
1728//
1729// Returned Error Types:
1730//   * ResourceNotFoundException
1731//   The requested resource could not be found.
1732//
1733//   * InternalServerException
1734//   There was an internal failure in the AppConfig service.
1735//
1736//   * BadRequestException
1737//   The input fails to satisfy the constraints specified by an AWS service.
1738//
1739// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListConfigurationProfiles
1740func (c *AppConfig) ListConfigurationProfiles(input *ListConfigurationProfilesInput) (*ListConfigurationProfilesOutput, error) {
1741	req, out := c.ListConfigurationProfilesRequest(input)
1742	return out, req.Send()
1743}
1744
1745// ListConfigurationProfilesWithContext is the same as ListConfigurationProfiles with the addition of
1746// the ability to pass a context and additional request options.
1747//
1748// See ListConfigurationProfiles for details on how to use this API operation.
1749//
1750// The context must be non-nil and will be used for request cancellation. If
1751// the context is nil a panic will occur. In the future the SDK may create
1752// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1753// for more information on using Contexts.
1754func (c *AppConfig) ListConfigurationProfilesWithContext(ctx aws.Context, input *ListConfigurationProfilesInput, opts ...request.Option) (*ListConfigurationProfilesOutput, error) {
1755	req, out := c.ListConfigurationProfilesRequest(input)
1756	req.SetContext(ctx)
1757	req.ApplyOptions(opts...)
1758	return out, req.Send()
1759}
1760
1761// ListConfigurationProfilesPages iterates over the pages of a ListConfigurationProfiles operation,
1762// calling the "fn" function with the response data for each page. To stop
1763// iterating, return false from the fn function.
1764//
1765// See ListConfigurationProfiles method for more information on how to use this operation.
1766//
1767// Note: This operation can generate multiple requests to a service.
1768//
1769//    // Example iterating over at most 3 pages of a ListConfigurationProfiles operation.
1770//    pageNum := 0
1771//    err := client.ListConfigurationProfilesPages(params,
1772//        func(page *appconfig.ListConfigurationProfilesOutput, lastPage bool) bool {
1773//            pageNum++
1774//            fmt.Println(page)
1775//            return pageNum <= 3
1776//        })
1777//
1778func (c *AppConfig) ListConfigurationProfilesPages(input *ListConfigurationProfilesInput, fn func(*ListConfigurationProfilesOutput, bool) bool) error {
1779	return c.ListConfigurationProfilesPagesWithContext(aws.BackgroundContext(), input, fn)
1780}
1781
1782// ListConfigurationProfilesPagesWithContext same as ListConfigurationProfilesPages except
1783// it takes a Context and allows setting request options on the pages.
1784//
1785// The context must be non-nil and will be used for request cancellation. If
1786// the context is nil a panic will occur. In the future the SDK may create
1787// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1788// for more information on using Contexts.
1789func (c *AppConfig) ListConfigurationProfilesPagesWithContext(ctx aws.Context, input *ListConfigurationProfilesInput, fn func(*ListConfigurationProfilesOutput, bool) bool, opts ...request.Option) error {
1790	p := request.Pagination{
1791		NewRequest: func() (*request.Request, error) {
1792			var inCpy *ListConfigurationProfilesInput
1793			if input != nil {
1794				tmp := *input
1795				inCpy = &tmp
1796			}
1797			req, _ := c.ListConfigurationProfilesRequest(inCpy)
1798			req.SetContext(ctx)
1799			req.ApplyOptions(opts...)
1800			return req, nil
1801		},
1802	}
1803
1804	for p.Next() {
1805		if !fn(p.Page().(*ListConfigurationProfilesOutput), !p.HasNextPage()) {
1806			break
1807		}
1808	}
1809
1810	return p.Err()
1811}
1812
1813const opListDeploymentStrategies = "ListDeploymentStrategies"
1814
1815// ListDeploymentStrategiesRequest generates a "aws/request.Request" representing the
1816// client's request for the ListDeploymentStrategies operation. The "output" return
1817// value will be populated with the request's response once the request completes
1818// successfully.
1819//
1820// Use "Send" method on the returned Request to send the API call to the service.
1821// the "output" return value is not valid until after Send returns without error.
1822//
1823// See ListDeploymentStrategies for more information on using the ListDeploymentStrategies
1824// API call, and error handling.
1825//
1826// This method is useful when you want to inject custom logic or configuration
1827// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1828//
1829//
1830//    // Example sending a request using the ListDeploymentStrategiesRequest method.
1831//    req, resp := client.ListDeploymentStrategiesRequest(params)
1832//
1833//    err := req.Send()
1834//    if err == nil { // resp is now filled
1835//        fmt.Println(resp)
1836//    }
1837//
1838// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListDeploymentStrategies
1839func (c *AppConfig) ListDeploymentStrategiesRequest(input *ListDeploymentStrategiesInput) (req *request.Request, output *ListDeploymentStrategiesOutput) {
1840	op := &request.Operation{
1841		Name:       opListDeploymentStrategies,
1842		HTTPMethod: "GET",
1843		HTTPPath:   "/deploymentstrategies",
1844		Paginator: &request.Paginator{
1845			InputTokens:     []string{"NextToken"},
1846			OutputTokens:    []string{"NextToken"},
1847			LimitToken:      "MaxResults",
1848			TruncationToken: "",
1849		},
1850	}
1851
1852	if input == nil {
1853		input = &ListDeploymentStrategiesInput{}
1854	}
1855
1856	output = &ListDeploymentStrategiesOutput{}
1857	req = c.newRequest(op, input, output)
1858	return
1859}
1860
1861// ListDeploymentStrategies API operation for Amazon AppConfig.
1862//
1863// List deployment strategies.
1864//
1865// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1866// with awserr.Error's Code and Message methods to get detailed information about
1867// the error.
1868//
1869// See the AWS API reference guide for Amazon AppConfig's
1870// API operation ListDeploymentStrategies for usage and error information.
1871//
1872// Returned Error Types:
1873//   * InternalServerException
1874//   There was an internal failure in the AppConfig service.
1875//
1876//   * BadRequestException
1877//   The input fails to satisfy the constraints specified by an AWS service.
1878//
1879// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListDeploymentStrategies
1880func (c *AppConfig) ListDeploymentStrategies(input *ListDeploymentStrategiesInput) (*ListDeploymentStrategiesOutput, error) {
1881	req, out := c.ListDeploymentStrategiesRequest(input)
1882	return out, req.Send()
1883}
1884
1885// ListDeploymentStrategiesWithContext is the same as ListDeploymentStrategies with the addition of
1886// the ability to pass a context and additional request options.
1887//
1888// See ListDeploymentStrategies for details on how to use this API operation.
1889//
1890// The context must be non-nil and will be used for request cancellation. If
1891// the context is nil a panic will occur. In the future the SDK may create
1892// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1893// for more information on using Contexts.
1894func (c *AppConfig) ListDeploymentStrategiesWithContext(ctx aws.Context, input *ListDeploymentStrategiesInput, opts ...request.Option) (*ListDeploymentStrategiesOutput, error) {
1895	req, out := c.ListDeploymentStrategiesRequest(input)
1896	req.SetContext(ctx)
1897	req.ApplyOptions(opts...)
1898	return out, req.Send()
1899}
1900
1901// ListDeploymentStrategiesPages iterates over the pages of a ListDeploymentStrategies operation,
1902// calling the "fn" function with the response data for each page. To stop
1903// iterating, return false from the fn function.
1904//
1905// See ListDeploymentStrategies method for more information on how to use this operation.
1906//
1907// Note: This operation can generate multiple requests to a service.
1908//
1909//    // Example iterating over at most 3 pages of a ListDeploymentStrategies operation.
1910//    pageNum := 0
1911//    err := client.ListDeploymentStrategiesPages(params,
1912//        func(page *appconfig.ListDeploymentStrategiesOutput, lastPage bool) bool {
1913//            pageNum++
1914//            fmt.Println(page)
1915//            return pageNum <= 3
1916//        })
1917//
1918func (c *AppConfig) ListDeploymentStrategiesPages(input *ListDeploymentStrategiesInput, fn func(*ListDeploymentStrategiesOutput, bool) bool) error {
1919	return c.ListDeploymentStrategiesPagesWithContext(aws.BackgroundContext(), input, fn)
1920}
1921
1922// ListDeploymentStrategiesPagesWithContext same as ListDeploymentStrategiesPages except
1923// it takes a Context and allows setting request options on the pages.
1924//
1925// The context must be non-nil and will be used for request cancellation. If
1926// the context is nil a panic will occur. In the future the SDK may create
1927// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1928// for more information on using Contexts.
1929func (c *AppConfig) ListDeploymentStrategiesPagesWithContext(ctx aws.Context, input *ListDeploymentStrategiesInput, fn func(*ListDeploymentStrategiesOutput, bool) bool, opts ...request.Option) error {
1930	p := request.Pagination{
1931		NewRequest: func() (*request.Request, error) {
1932			var inCpy *ListDeploymentStrategiesInput
1933			if input != nil {
1934				tmp := *input
1935				inCpy = &tmp
1936			}
1937			req, _ := c.ListDeploymentStrategiesRequest(inCpy)
1938			req.SetContext(ctx)
1939			req.ApplyOptions(opts...)
1940			return req, nil
1941		},
1942	}
1943
1944	for p.Next() {
1945		if !fn(p.Page().(*ListDeploymentStrategiesOutput), !p.HasNextPage()) {
1946			break
1947		}
1948	}
1949
1950	return p.Err()
1951}
1952
1953const opListDeployments = "ListDeployments"
1954
1955// ListDeploymentsRequest generates a "aws/request.Request" representing the
1956// client's request for the ListDeployments operation. The "output" return
1957// value will be populated with the request's response once the request completes
1958// successfully.
1959//
1960// Use "Send" method on the returned Request to send the API call to the service.
1961// the "output" return value is not valid until after Send returns without error.
1962//
1963// See ListDeployments for more information on using the ListDeployments
1964// API call, and error handling.
1965//
1966// This method is useful when you want to inject custom logic or configuration
1967// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1968//
1969//
1970//    // Example sending a request using the ListDeploymentsRequest method.
1971//    req, resp := client.ListDeploymentsRequest(params)
1972//
1973//    err := req.Send()
1974//    if err == nil { // resp is now filled
1975//        fmt.Println(resp)
1976//    }
1977//
1978// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListDeployments
1979func (c *AppConfig) ListDeploymentsRequest(input *ListDeploymentsInput) (req *request.Request, output *ListDeploymentsOutput) {
1980	op := &request.Operation{
1981		Name:       opListDeployments,
1982		HTTPMethod: "GET",
1983		HTTPPath:   "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments",
1984		Paginator: &request.Paginator{
1985			InputTokens:     []string{"NextToken"},
1986			OutputTokens:    []string{"NextToken"},
1987			LimitToken:      "MaxResults",
1988			TruncationToken: "",
1989		},
1990	}
1991
1992	if input == nil {
1993		input = &ListDeploymentsInput{}
1994	}
1995
1996	output = &ListDeploymentsOutput{}
1997	req = c.newRequest(op, input, output)
1998	return
1999}
2000
2001// ListDeployments API operation for Amazon AppConfig.
2002//
2003// Lists the deployments for an environment.
2004//
2005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2006// with awserr.Error's Code and Message methods to get detailed information about
2007// the error.
2008//
2009// See the AWS API reference guide for Amazon AppConfig's
2010// API operation ListDeployments for usage and error information.
2011//
2012// Returned Error Types:
2013//   * ResourceNotFoundException
2014//   The requested resource could not be found.
2015//
2016//   * InternalServerException
2017//   There was an internal failure in the AppConfig service.
2018//
2019//   * BadRequestException
2020//   The input fails to satisfy the constraints specified by an AWS service.
2021//
2022// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListDeployments
2023func (c *AppConfig) ListDeployments(input *ListDeploymentsInput) (*ListDeploymentsOutput, error) {
2024	req, out := c.ListDeploymentsRequest(input)
2025	return out, req.Send()
2026}
2027
2028// ListDeploymentsWithContext is the same as ListDeployments with the addition of
2029// the ability to pass a context and additional request options.
2030//
2031// See ListDeployments for details on how to use this API operation.
2032//
2033// The context must be non-nil and will be used for request cancellation. If
2034// the context is nil a panic will occur. In the future the SDK may create
2035// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2036// for more information on using Contexts.
2037func (c *AppConfig) ListDeploymentsWithContext(ctx aws.Context, input *ListDeploymentsInput, opts ...request.Option) (*ListDeploymentsOutput, error) {
2038	req, out := c.ListDeploymentsRequest(input)
2039	req.SetContext(ctx)
2040	req.ApplyOptions(opts...)
2041	return out, req.Send()
2042}
2043
2044// ListDeploymentsPages iterates over the pages of a ListDeployments operation,
2045// calling the "fn" function with the response data for each page. To stop
2046// iterating, return false from the fn function.
2047//
2048// See ListDeployments method for more information on how to use this operation.
2049//
2050// Note: This operation can generate multiple requests to a service.
2051//
2052//    // Example iterating over at most 3 pages of a ListDeployments operation.
2053//    pageNum := 0
2054//    err := client.ListDeploymentsPages(params,
2055//        func(page *appconfig.ListDeploymentsOutput, lastPage bool) bool {
2056//            pageNum++
2057//            fmt.Println(page)
2058//            return pageNum <= 3
2059//        })
2060//
2061func (c *AppConfig) ListDeploymentsPages(input *ListDeploymentsInput, fn func(*ListDeploymentsOutput, bool) bool) error {
2062	return c.ListDeploymentsPagesWithContext(aws.BackgroundContext(), input, fn)
2063}
2064
2065// ListDeploymentsPagesWithContext same as ListDeploymentsPages except
2066// it takes a Context and allows setting request options on the pages.
2067//
2068// The context must be non-nil and will be used for request cancellation. If
2069// the context is nil a panic will occur. In the future the SDK may create
2070// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2071// for more information on using Contexts.
2072func (c *AppConfig) ListDeploymentsPagesWithContext(ctx aws.Context, input *ListDeploymentsInput, fn func(*ListDeploymentsOutput, bool) bool, opts ...request.Option) error {
2073	p := request.Pagination{
2074		NewRequest: func() (*request.Request, error) {
2075			var inCpy *ListDeploymentsInput
2076			if input != nil {
2077				tmp := *input
2078				inCpy = &tmp
2079			}
2080			req, _ := c.ListDeploymentsRequest(inCpy)
2081			req.SetContext(ctx)
2082			req.ApplyOptions(opts...)
2083			return req, nil
2084		},
2085	}
2086
2087	for p.Next() {
2088		if !fn(p.Page().(*ListDeploymentsOutput), !p.HasNextPage()) {
2089			break
2090		}
2091	}
2092
2093	return p.Err()
2094}
2095
2096const opListEnvironments = "ListEnvironments"
2097
2098// ListEnvironmentsRequest generates a "aws/request.Request" representing the
2099// client's request for the ListEnvironments operation. The "output" return
2100// value will be populated with the request's response once the request completes
2101// successfully.
2102//
2103// Use "Send" method on the returned Request to send the API call to the service.
2104// the "output" return value is not valid until after Send returns without error.
2105//
2106// See ListEnvironments for more information on using the ListEnvironments
2107// API call, and error handling.
2108//
2109// This method is useful when you want to inject custom logic or configuration
2110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2111//
2112//
2113//    // Example sending a request using the ListEnvironmentsRequest method.
2114//    req, resp := client.ListEnvironmentsRequest(params)
2115//
2116//    err := req.Send()
2117//    if err == nil { // resp is now filled
2118//        fmt.Println(resp)
2119//    }
2120//
2121// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListEnvironments
2122func (c *AppConfig) ListEnvironmentsRequest(input *ListEnvironmentsInput) (req *request.Request, output *ListEnvironmentsOutput) {
2123	op := &request.Operation{
2124		Name:       opListEnvironments,
2125		HTTPMethod: "GET",
2126		HTTPPath:   "/applications/{ApplicationId}/environments",
2127		Paginator: &request.Paginator{
2128			InputTokens:     []string{"NextToken"},
2129			OutputTokens:    []string{"NextToken"},
2130			LimitToken:      "MaxResults",
2131			TruncationToken: "",
2132		},
2133	}
2134
2135	if input == nil {
2136		input = &ListEnvironmentsInput{}
2137	}
2138
2139	output = &ListEnvironmentsOutput{}
2140	req = c.newRequest(op, input, output)
2141	return
2142}
2143
2144// ListEnvironments API operation for Amazon AppConfig.
2145//
2146// List the environments for an application.
2147//
2148// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2149// with awserr.Error's Code and Message methods to get detailed information about
2150// the error.
2151//
2152// See the AWS API reference guide for Amazon AppConfig's
2153// API operation ListEnvironments for usage and error information.
2154//
2155// Returned Error Types:
2156//   * ResourceNotFoundException
2157//   The requested resource could not be found.
2158//
2159//   * InternalServerException
2160//   There was an internal failure in the AppConfig service.
2161//
2162//   * BadRequestException
2163//   The input fails to satisfy the constraints specified by an AWS service.
2164//
2165// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListEnvironments
2166func (c *AppConfig) ListEnvironments(input *ListEnvironmentsInput) (*ListEnvironmentsOutput, error) {
2167	req, out := c.ListEnvironmentsRequest(input)
2168	return out, req.Send()
2169}
2170
2171// ListEnvironmentsWithContext is the same as ListEnvironments with the addition of
2172// the ability to pass a context and additional request options.
2173//
2174// See ListEnvironments for details on how to use this API operation.
2175//
2176// The context must be non-nil and will be used for request cancellation. If
2177// the context is nil a panic will occur. In the future the SDK may create
2178// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2179// for more information on using Contexts.
2180func (c *AppConfig) ListEnvironmentsWithContext(ctx aws.Context, input *ListEnvironmentsInput, opts ...request.Option) (*ListEnvironmentsOutput, error) {
2181	req, out := c.ListEnvironmentsRequest(input)
2182	req.SetContext(ctx)
2183	req.ApplyOptions(opts...)
2184	return out, req.Send()
2185}
2186
2187// ListEnvironmentsPages iterates over the pages of a ListEnvironments operation,
2188// calling the "fn" function with the response data for each page. To stop
2189// iterating, return false from the fn function.
2190//
2191// See ListEnvironments method for more information on how to use this operation.
2192//
2193// Note: This operation can generate multiple requests to a service.
2194//
2195//    // Example iterating over at most 3 pages of a ListEnvironments operation.
2196//    pageNum := 0
2197//    err := client.ListEnvironmentsPages(params,
2198//        func(page *appconfig.ListEnvironmentsOutput, lastPage bool) bool {
2199//            pageNum++
2200//            fmt.Println(page)
2201//            return pageNum <= 3
2202//        })
2203//
2204func (c *AppConfig) ListEnvironmentsPages(input *ListEnvironmentsInput, fn func(*ListEnvironmentsOutput, bool) bool) error {
2205	return c.ListEnvironmentsPagesWithContext(aws.BackgroundContext(), input, fn)
2206}
2207
2208// ListEnvironmentsPagesWithContext same as ListEnvironmentsPages except
2209// it takes a Context and allows setting request options on the pages.
2210//
2211// The context must be non-nil and will be used for request cancellation. If
2212// the context is nil a panic will occur. In the future the SDK may create
2213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2214// for more information on using Contexts.
2215func (c *AppConfig) ListEnvironmentsPagesWithContext(ctx aws.Context, input *ListEnvironmentsInput, fn func(*ListEnvironmentsOutput, bool) bool, opts ...request.Option) error {
2216	p := request.Pagination{
2217		NewRequest: func() (*request.Request, error) {
2218			var inCpy *ListEnvironmentsInput
2219			if input != nil {
2220				tmp := *input
2221				inCpy = &tmp
2222			}
2223			req, _ := c.ListEnvironmentsRequest(inCpy)
2224			req.SetContext(ctx)
2225			req.ApplyOptions(opts...)
2226			return req, nil
2227		},
2228	}
2229
2230	for p.Next() {
2231		if !fn(p.Page().(*ListEnvironmentsOutput), !p.HasNextPage()) {
2232			break
2233		}
2234	}
2235
2236	return p.Err()
2237}
2238
2239const opListHostedConfigurationVersions = "ListHostedConfigurationVersions"
2240
2241// ListHostedConfigurationVersionsRequest generates a "aws/request.Request" representing the
2242// client's request for the ListHostedConfigurationVersions operation. The "output" return
2243// value will be populated with the request's response once the request completes
2244// successfully.
2245//
2246// Use "Send" method on the returned Request to send the API call to the service.
2247// the "output" return value is not valid until after Send returns without error.
2248//
2249// See ListHostedConfigurationVersions for more information on using the ListHostedConfigurationVersions
2250// API call, and error handling.
2251//
2252// This method is useful when you want to inject custom logic or configuration
2253// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2254//
2255//
2256//    // Example sending a request using the ListHostedConfigurationVersionsRequest method.
2257//    req, resp := client.ListHostedConfigurationVersionsRequest(params)
2258//
2259//    err := req.Send()
2260//    if err == nil { // resp is now filled
2261//        fmt.Println(resp)
2262//    }
2263//
2264// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListHostedConfigurationVersions
2265func (c *AppConfig) ListHostedConfigurationVersionsRequest(input *ListHostedConfigurationVersionsInput) (req *request.Request, output *ListHostedConfigurationVersionsOutput) {
2266	op := &request.Operation{
2267		Name:       opListHostedConfigurationVersions,
2268		HTTPMethod: "GET",
2269		HTTPPath:   "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions",
2270		Paginator: &request.Paginator{
2271			InputTokens:     []string{"NextToken"},
2272			OutputTokens:    []string{"NextToken"},
2273			LimitToken:      "MaxResults",
2274			TruncationToken: "",
2275		},
2276	}
2277
2278	if input == nil {
2279		input = &ListHostedConfigurationVersionsInput{}
2280	}
2281
2282	output = &ListHostedConfigurationVersionsOutput{}
2283	req = c.newRequest(op, input, output)
2284	return
2285}
2286
2287// ListHostedConfigurationVersions API operation for Amazon AppConfig.
2288//
2289// View a list of configurations stored in the AppConfig configuration store
2290// by version.
2291//
2292// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2293// with awserr.Error's Code and Message methods to get detailed information about
2294// the error.
2295//
2296// See the AWS API reference guide for Amazon AppConfig's
2297// API operation ListHostedConfigurationVersions for usage and error information.
2298//
2299// Returned Error Types:
2300//   * BadRequestException
2301//   The input fails to satisfy the constraints specified by an AWS service.
2302//
2303//   * ResourceNotFoundException
2304//   The requested resource could not be found.
2305//
2306//   * InternalServerException
2307//   There was an internal failure in the AppConfig service.
2308//
2309// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListHostedConfigurationVersions
2310func (c *AppConfig) ListHostedConfigurationVersions(input *ListHostedConfigurationVersionsInput) (*ListHostedConfigurationVersionsOutput, error) {
2311	req, out := c.ListHostedConfigurationVersionsRequest(input)
2312	return out, req.Send()
2313}
2314
2315// ListHostedConfigurationVersionsWithContext is the same as ListHostedConfigurationVersions with the addition of
2316// the ability to pass a context and additional request options.
2317//
2318// See ListHostedConfigurationVersions for details on how to use this API operation.
2319//
2320// The context must be non-nil and will be used for request cancellation. If
2321// the context is nil a panic will occur. In the future the SDK may create
2322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2323// for more information on using Contexts.
2324func (c *AppConfig) ListHostedConfigurationVersionsWithContext(ctx aws.Context, input *ListHostedConfigurationVersionsInput, opts ...request.Option) (*ListHostedConfigurationVersionsOutput, error) {
2325	req, out := c.ListHostedConfigurationVersionsRequest(input)
2326	req.SetContext(ctx)
2327	req.ApplyOptions(opts...)
2328	return out, req.Send()
2329}
2330
2331// ListHostedConfigurationVersionsPages iterates over the pages of a ListHostedConfigurationVersions operation,
2332// calling the "fn" function with the response data for each page. To stop
2333// iterating, return false from the fn function.
2334//
2335// See ListHostedConfigurationVersions method for more information on how to use this operation.
2336//
2337// Note: This operation can generate multiple requests to a service.
2338//
2339//    // Example iterating over at most 3 pages of a ListHostedConfigurationVersions operation.
2340//    pageNum := 0
2341//    err := client.ListHostedConfigurationVersionsPages(params,
2342//        func(page *appconfig.ListHostedConfigurationVersionsOutput, lastPage bool) bool {
2343//            pageNum++
2344//            fmt.Println(page)
2345//            return pageNum <= 3
2346//        })
2347//
2348func (c *AppConfig) ListHostedConfigurationVersionsPages(input *ListHostedConfigurationVersionsInput, fn func(*ListHostedConfigurationVersionsOutput, bool) bool) error {
2349	return c.ListHostedConfigurationVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
2350}
2351
2352// ListHostedConfigurationVersionsPagesWithContext same as ListHostedConfigurationVersionsPages except
2353// it takes a Context and allows setting request options on the pages.
2354//
2355// The context must be non-nil and will be used for request cancellation. If
2356// the context is nil a panic will occur. In the future the SDK may create
2357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2358// for more information on using Contexts.
2359func (c *AppConfig) ListHostedConfigurationVersionsPagesWithContext(ctx aws.Context, input *ListHostedConfigurationVersionsInput, fn func(*ListHostedConfigurationVersionsOutput, bool) bool, opts ...request.Option) error {
2360	p := request.Pagination{
2361		NewRequest: func() (*request.Request, error) {
2362			var inCpy *ListHostedConfigurationVersionsInput
2363			if input != nil {
2364				tmp := *input
2365				inCpy = &tmp
2366			}
2367			req, _ := c.ListHostedConfigurationVersionsRequest(inCpy)
2368			req.SetContext(ctx)
2369			req.ApplyOptions(opts...)
2370			return req, nil
2371		},
2372	}
2373
2374	for p.Next() {
2375		if !fn(p.Page().(*ListHostedConfigurationVersionsOutput), !p.HasNextPage()) {
2376			break
2377		}
2378	}
2379
2380	return p.Err()
2381}
2382
2383const opListTagsForResource = "ListTagsForResource"
2384
2385// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2386// client's request for the ListTagsForResource operation. The "output" return
2387// value will be populated with the request's response once the request completes
2388// successfully.
2389//
2390// Use "Send" method on the returned Request to send the API call to the service.
2391// the "output" return value is not valid until after Send returns without error.
2392//
2393// See ListTagsForResource for more information on using the ListTagsForResource
2394// API call, and error handling.
2395//
2396// This method is useful when you want to inject custom logic or configuration
2397// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2398//
2399//
2400//    // Example sending a request using the ListTagsForResourceRequest method.
2401//    req, resp := client.ListTagsForResourceRequest(params)
2402//
2403//    err := req.Send()
2404//    if err == nil { // resp is now filled
2405//        fmt.Println(resp)
2406//    }
2407//
2408// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListTagsForResource
2409func (c *AppConfig) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2410	op := &request.Operation{
2411		Name:       opListTagsForResource,
2412		HTTPMethod: "GET",
2413		HTTPPath:   "/tags/{ResourceArn}",
2414	}
2415
2416	if input == nil {
2417		input = &ListTagsForResourceInput{}
2418	}
2419
2420	output = &ListTagsForResourceOutput{}
2421	req = c.newRequest(op, input, output)
2422	return
2423}
2424
2425// ListTagsForResource API operation for Amazon AppConfig.
2426//
2427// Retrieves the list of key-value tags assigned to the resource.
2428//
2429// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2430// with awserr.Error's Code and Message methods to get detailed information about
2431// the error.
2432//
2433// See the AWS API reference guide for Amazon AppConfig's
2434// API operation ListTagsForResource for usage and error information.
2435//
2436// Returned Error Types:
2437//   * ResourceNotFoundException
2438//   The requested resource could not be found.
2439//
2440//   * BadRequestException
2441//   The input fails to satisfy the constraints specified by an AWS service.
2442//
2443//   * InternalServerException
2444//   There was an internal failure in the AppConfig service.
2445//
2446// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListTagsForResource
2447func (c *AppConfig) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2448	req, out := c.ListTagsForResourceRequest(input)
2449	return out, req.Send()
2450}
2451
2452// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2453// the ability to pass a context and additional request options.
2454//
2455// See ListTagsForResource for details on how to use this API operation.
2456//
2457// The context must be non-nil and will be used for request cancellation. If
2458// the context is nil a panic will occur. In the future the SDK may create
2459// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2460// for more information on using Contexts.
2461func (c *AppConfig) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2462	req, out := c.ListTagsForResourceRequest(input)
2463	req.SetContext(ctx)
2464	req.ApplyOptions(opts...)
2465	return out, req.Send()
2466}
2467
2468const opStartDeployment = "StartDeployment"
2469
2470// StartDeploymentRequest generates a "aws/request.Request" representing the
2471// client's request for the StartDeployment operation. The "output" return
2472// value will be populated with the request's response once the request completes
2473// successfully.
2474//
2475// Use "Send" method on the returned Request to send the API call to the service.
2476// the "output" return value is not valid until after Send returns without error.
2477//
2478// See StartDeployment for more information on using the StartDeployment
2479// API call, and error handling.
2480//
2481// This method is useful when you want to inject custom logic or configuration
2482// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2483//
2484//
2485//    // Example sending a request using the StartDeploymentRequest method.
2486//    req, resp := client.StartDeploymentRequest(params)
2487//
2488//    err := req.Send()
2489//    if err == nil { // resp is now filled
2490//        fmt.Println(resp)
2491//    }
2492//
2493// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/StartDeployment
2494func (c *AppConfig) StartDeploymentRequest(input *StartDeploymentInput) (req *request.Request, output *StartDeploymentOutput) {
2495	op := &request.Operation{
2496		Name:       opStartDeployment,
2497		HTTPMethod: "POST",
2498		HTTPPath:   "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments",
2499	}
2500
2501	if input == nil {
2502		input = &StartDeploymentInput{}
2503	}
2504
2505	output = &StartDeploymentOutput{}
2506	req = c.newRequest(op, input, output)
2507	return
2508}
2509
2510// StartDeployment API operation for Amazon AppConfig.
2511//
2512// Starts a deployment.
2513//
2514// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2515// with awserr.Error's Code and Message methods to get detailed information about
2516// the error.
2517//
2518// See the AWS API reference guide for Amazon AppConfig's
2519// API operation StartDeployment for usage and error information.
2520//
2521// Returned Error Types:
2522//   * BadRequestException
2523//   The input fails to satisfy the constraints specified by an AWS service.
2524//
2525//   * ResourceNotFoundException
2526//   The requested resource could not be found.
2527//
2528//   * ConflictException
2529//   The request could not be processed because of conflict in the current state
2530//   of the resource.
2531//
2532//   * InternalServerException
2533//   There was an internal failure in the AppConfig service.
2534//
2535// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/StartDeployment
2536func (c *AppConfig) StartDeployment(input *StartDeploymentInput) (*StartDeploymentOutput, error) {
2537	req, out := c.StartDeploymentRequest(input)
2538	return out, req.Send()
2539}
2540
2541// StartDeploymentWithContext is the same as StartDeployment with the addition of
2542// the ability to pass a context and additional request options.
2543//
2544// See StartDeployment for details on how to use this API operation.
2545//
2546// The context must be non-nil and will be used for request cancellation. If
2547// the context is nil a panic will occur. In the future the SDK may create
2548// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2549// for more information on using Contexts.
2550func (c *AppConfig) StartDeploymentWithContext(ctx aws.Context, input *StartDeploymentInput, opts ...request.Option) (*StartDeploymentOutput, error) {
2551	req, out := c.StartDeploymentRequest(input)
2552	req.SetContext(ctx)
2553	req.ApplyOptions(opts...)
2554	return out, req.Send()
2555}
2556
2557const opStopDeployment = "StopDeployment"
2558
2559// StopDeploymentRequest generates a "aws/request.Request" representing the
2560// client's request for the StopDeployment operation. The "output" return
2561// value will be populated with the request's response once the request completes
2562// successfully.
2563//
2564// Use "Send" method on the returned Request to send the API call to the service.
2565// the "output" return value is not valid until after Send returns without error.
2566//
2567// See StopDeployment for more information on using the StopDeployment
2568// API call, and error handling.
2569//
2570// This method is useful when you want to inject custom logic or configuration
2571// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2572//
2573//
2574//    // Example sending a request using the StopDeploymentRequest method.
2575//    req, resp := client.StopDeploymentRequest(params)
2576//
2577//    err := req.Send()
2578//    if err == nil { // resp is now filled
2579//        fmt.Println(resp)
2580//    }
2581//
2582// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/StopDeployment
2583func (c *AppConfig) StopDeploymentRequest(input *StopDeploymentInput) (req *request.Request, output *StopDeploymentOutput) {
2584	op := &request.Operation{
2585		Name:       opStopDeployment,
2586		HTTPMethod: "DELETE",
2587		HTTPPath:   "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}",
2588	}
2589
2590	if input == nil {
2591		input = &StopDeploymentInput{}
2592	}
2593
2594	output = &StopDeploymentOutput{}
2595	req = c.newRequest(op, input, output)
2596	return
2597}
2598
2599// StopDeployment API operation for Amazon AppConfig.
2600//
2601// Stops a deployment. This API action works only on deployments that have a
2602// status of DEPLOYING. This action moves the deployment to a status of ROLLED_BACK.
2603//
2604// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2605// with awserr.Error's Code and Message methods to get detailed information about
2606// the error.
2607//
2608// See the AWS API reference guide for Amazon AppConfig's
2609// API operation StopDeployment for usage and error information.
2610//
2611// Returned Error Types:
2612//   * ResourceNotFoundException
2613//   The requested resource could not be found.
2614//
2615//   * InternalServerException
2616//   There was an internal failure in the AppConfig service.
2617//
2618//   * BadRequestException
2619//   The input fails to satisfy the constraints specified by an AWS service.
2620//
2621// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/StopDeployment
2622func (c *AppConfig) StopDeployment(input *StopDeploymentInput) (*StopDeploymentOutput, error) {
2623	req, out := c.StopDeploymentRequest(input)
2624	return out, req.Send()
2625}
2626
2627// StopDeploymentWithContext is the same as StopDeployment with the addition of
2628// the ability to pass a context and additional request options.
2629//
2630// See StopDeployment for details on how to use this API operation.
2631//
2632// The context must be non-nil and will be used for request cancellation. If
2633// the context is nil a panic will occur. In the future the SDK may create
2634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2635// for more information on using Contexts.
2636func (c *AppConfig) StopDeploymentWithContext(ctx aws.Context, input *StopDeploymentInput, opts ...request.Option) (*StopDeploymentOutput, error) {
2637	req, out := c.StopDeploymentRequest(input)
2638	req.SetContext(ctx)
2639	req.ApplyOptions(opts...)
2640	return out, req.Send()
2641}
2642
2643const opTagResource = "TagResource"
2644
2645// TagResourceRequest generates a "aws/request.Request" representing the
2646// client's request for the TagResource operation. The "output" return
2647// value will be populated with the request's response once the request completes
2648// successfully.
2649//
2650// Use "Send" method on the returned Request to send the API call to the service.
2651// the "output" return value is not valid until after Send returns without error.
2652//
2653// See TagResource for more information on using the TagResource
2654// API call, and error handling.
2655//
2656// This method is useful when you want to inject custom logic or configuration
2657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2658//
2659//
2660//    // Example sending a request using the TagResourceRequest method.
2661//    req, resp := client.TagResourceRequest(params)
2662//
2663//    err := req.Send()
2664//    if err == nil { // resp is now filled
2665//        fmt.Println(resp)
2666//    }
2667//
2668// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/TagResource
2669func (c *AppConfig) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2670	op := &request.Operation{
2671		Name:       opTagResource,
2672		HTTPMethod: "POST",
2673		HTTPPath:   "/tags/{ResourceArn}",
2674	}
2675
2676	if input == nil {
2677		input = &TagResourceInput{}
2678	}
2679
2680	output = &TagResourceOutput{}
2681	req = c.newRequest(op, input, output)
2682	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2683	return
2684}
2685
2686// TagResource API operation for Amazon AppConfig.
2687//
2688// Metadata to assign to an AppConfig resource. Tags help organize and categorize
2689// your AppConfig resources. Each tag consists of a key and an optional value,
2690// both of which you define. You can specify a maximum of 50 tags for a resource.
2691//
2692// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2693// with awserr.Error's Code and Message methods to get detailed information about
2694// the error.
2695//
2696// See the AWS API reference guide for Amazon AppConfig's
2697// API operation TagResource for usage and error information.
2698//
2699// Returned Error Types:
2700//   * ResourceNotFoundException
2701//   The requested resource could not be found.
2702//
2703//   * BadRequestException
2704//   The input fails to satisfy the constraints specified by an AWS service.
2705//
2706//   * InternalServerException
2707//   There was an internal failure in the AppConfig service.
2708//
2709// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/TagResource
2710func (c *AppConfig) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2711	req, out := c.TagResourceRequest(input)
2712	return out, req.Send()
2713}
2714
2715// TagResourceWithContext is the same as TagResource with the addition of
2716// the ability to pass a context and additional request options.
2717//
2718// See TagResource for details on how to use this API operation.
2719//
2720// The context must be non-nil and will be used for request cancellation. If
2721// the context is nil a panic will occur. In the future the SDK may create
2722// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2723// for more information on using Contexts.
2724func (c *AppConfig) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2725	req, out := c.TagResourceRequest(input)
2726	req.SetContext(ctx)
2727	req.ApplyOptions(opts...)
2728	return out, req.Send()
2729}
2730
2731const opUntagResource = "UntagResource"
2732
2733// UntagResourceRequest generates a "aws/request.Request" representing the
2734// client's request for the UntagResource operation. The "output" return
2735// value will be populated with the request's response once the request completes
2736// successfully.
2737//
2738// Use "Send" method on the returned Request to send the API call to the service.
2739// the "output" return value is not valid until after Send returns without error.
2740//
2741// See UntagResource for more information on using the UntagResource
2742// API call, and error handling.
2743//
2744// This method is useful when you want to inject custom logic or configuration
2745// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2746//
2747//
2748//    // Example sending a request using the UntagResourceRequest method.
2749//    req, resp := client.UntagResourceRequest(params)
2750//
2751//    err := req.Send()
2752//    if err == nil { // resp is now filled
2753//        fmt.Println(resp)
2754//    }
2755//
2756// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UntagResource
2757func (c *AppConfig) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2758	op := &request.Operation{
2759		Name:       opUntagResource,
2760		HTTPMethod: "DELETE",
2761		HTTPPath:   "/tags/{ResourceArn}",
2762	}
2763
2764	if input == nil {
2765		input = &UntagResourceInput{}
2766	}
2767
2768	output = &UntagResourceOutput{}
2769	req = c.newRequest(op, input, output)
2770	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2771	return
2772}
2773
2774// UntagResource API operation for Amazon AppConfig.
2775//
2776// Deletes a tag key and value from an AppConfig resource.
2777//
2778// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2779// with awserr.Error's Code and Message methods to get detailed information about
2780// the error.
2781//
2782// See the AWS API reference guide for Amazon AppConfig's
2783// API operation UntagResource for usage and error information.
2784//
2785// Returned Error Types:
2786//   * ResourceNotFoundException
2787//   The requested resource could not be found.
2788//
2789//   * BadRequestException
2790//   The input fails to satisfy the constraints specified by an AWS service.
2791//
2792//   * InternalServerException
2793//   There was an internal failure in the AppConfig service.
2794//
2795// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UntagResource
2796func (c *AppConfig) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2797	req, out := c.UntagResourceRequest(input)
2798	return out, req.Send()
2799}
2800
2801// UntagResourceWithContext is the same as UntagResource with the addition of
2802// the ability to pass a context and additional request options.
2803//
2804// See UntagResource for details on how to use this API operation.
2805//
2806// The context must be non-nil and will be used for request cancellation. If
2807// the context is nil a panic will occur. In the future the SDK may create
2808// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2809// for more information on using Contexts.
2810func (c *AppConfig) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2811	req, out := c.UntagResourceRequest(input)
2812	req.SetContext(ctx)
2813	req.ApplyOptions(opts...)
2814	return out, req.Send()
2815}
2816
2817const opUpdateApplication = "UpdateApplication"
2818
2819// UpdateApplicationRequest generates a "aws/request.Request" representing the
2820// client's request for the UpdateApplication operation. The "output" return
2821// value will be populated with the request's response once the request completes
2822// successfully.
2823//
2824// Use "Send" method on the returned Request to send the API call to the service.
2825// the "output" return value is not valid until after Send returns without error.
2826//
2827// See UpdateApplication for more information on using the UpdateApplication
2828// API call, and error handling.
2829//
2830// This method is useful when you want to inject custom logic or configuration
2831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2832//
2833//
2834//    // Example sending a request using the UpdateApplicationRequest method.
2835//    req, resp := client.UpdateApplicationRequest(params)
2836//
2837//    err := req.Send()
2838//    if err == nil { // resp is now filled
2839//        fmt.Println(resp)
2840//    }
2841//
2842// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateApplication
2843func (c *AppConfig) UpdateApplicationRequest(input *UpdateApplicationInput) (req *request.Request, output *UpdateApplicationOutput) {
2844	op := &request.Operation{
2845		Name:       opUpdateApplication,
2846		HTTPMethod: "PATCH",
2847		HTTPPath:   "/applications/{ApplicationId}",
2848	}
2849
2850	if input == nil {
2851		input = &UpdateApplicationInput{}
2852	}
2853
2854	output = &UpdateApplicationOutput{}
2855	req = c.newRequest(op, input, output)
2856	return
2857}
2858
2859// UpdateApplication API operation for Amazon AppConfig.
2860//
2861// Updates an application.
2862//
2863// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2864// with awserr.Error's Code and Message methods to get detailed information about
2865// the error.
2866//
2867// See the AWS API reference guide for Amazon AppConfig's
2868// API operation UpdateApplication for usage and error information.
2869//
2870// Returned Error Types:
2871//   * BadRequestException
2872//   The input fails to satisfy the constraints specified by an AWS service.
2873//
2874//   * ResourceNotFoundException
2875//   The requested resource could not be found.
2876//
2877//   * InternalServerException
2878//   There was an internal failure in the AppConfig service.
2879//
2880// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateApplication
2881func (c *AppConfig) UpdateApplication(input *UpdateApplicationInput) (*UpdateApplicationOutput, error) {
2882	req, out := c.UpdateApplicationRequest(input)
2883	return out, req.Send()
2884}
2885
2886// UpdateApplicationWithContext is the same as UpdateApplication with the addition of
2887// the ability to pass a context and additional request options.
2888//
2889// See UpdateApplication for details on how to use this API operation.
2890//
2891// The context must be non-nil and will be used for request cancellation. If
2892// the context is nil a panic will occur. In the future the SDK may create
2893// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2894// for more information on using Contexts.
2895func (c *AppConfig) UpdateApplicationWithContext(ctx aws.Context, input *UpdateApplicationInput, opts ...request.Option) (*UpdateApplicationOutput, error) {
2896	req, out := c.UpdateApplicationRequest(input)
2897	req.SetContext(ctx)
2898	req.ApplyOptions(opts...)
2899	return out, req.Send()
2900}
2901
2902const opUpdateConfigurationProfile = "UpdateConfigurationProfile"
2903
2904// UpdateConfigurationProfileRequest generates a "aws/request.Request" representing the
2905// client's request for the UpdateConfigurationProfile operation. The "output" return
2906// value will be populated with the request's response once the request completes
2907// successfully.
2908//
2909// Use "Send" method on the returned Request to send the API call to the service.
2910// the "output" return value is not valid until after Send returns without error.
2911//
2912// See UpdateConfigurationProfile for more information on using the UpdateConfigurationProfile
2913// API call, and error handling.
2914//
2915// This method is useful when you want to inject custom logic or configuration
2916// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2917//
2918//
2919//    // Example sending a request using the UpdateConfigurationProfileRequest method.
2920//    req, resp := client.UpdateConfigurationProfileRequest(params)
2921//
2922//    err := req.Send()
2923//    if err == nil { // resp is now filled
2924//        fmt.Println(resp)
2925//    }
2926//
2927// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateConfigurationProfile
2928func (c *AppConfig) UpdateConfigurationProfileRequest(input *UpdateConfigurationProfileInput) (req *request.Request, output *UpdateConfigurationProfileOutput) {
2929	op := &request.Operation{
2930		Name:       opUpdateConfigurationProfile,
2931		HTTPMethod: "PATCH",
2932		HTTPPath:   "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}",
2933	}
2934
2935	if input == nil {
2936		input = &UpdateConfigurationProfileInput{}
2937	}
2938
2939	output = &UpdateConfigurationProfileOutput{}
2940	req = c.newRequest(op, input, output)
2941	return
2942}
2943
2944// UpdateConfigurationProfile API operation for Amazon AppConfig.
2945//
2946// Updates a configuration profile.
2947//
2948// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2949// with awserr.Error's Code and Message methods to get detailed information about
2950// the error.
2951//
2952// See the AWS API reference guide for Amazon AppConfig's
2953// API operation UpdateConfigurationProfile for usage and error information.
2954//
2955// Returned Error Types:
2956//   * BadRequestException
2957//   The input fails to satisfy the constraints specified by an AWS service.
2958//
2959//   * ResourceNotFoundException
2960//   The requested resource could not be found.
2961//
2962//   * InternalServerException
2963//   There was an internal failure in the AppConfig service.
2964//
2965// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateConfigurationProfile
2966func (c *AppConfig) UpdateConfigurationProfile(input *UpdateConfigurationProfileInput) (*UpdateConfigurationProfileOutput, error) {
2967	req, out := c.UpdateConfigurationProfileRequest(input)
2968	return out, req.Send()
2969}
2970
2971// UpdateConfigurationProfileWithContext is the same as UpdateConfigurationProfile with the addition of
2972// the ability to pass a context and additional request options.
2973//
2974// See UpdateConfigurationProfile for details on how to use this API operation.
2975//
2976// The context must be non-nil and will be used for request cancellation. If
2977// the context is nil a panic will occur. In the future the SDK may create
2978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2979// for more information on using Contexts.
2980func (c *AppConfig) UpdateConfigurationProfileWithContext(ctx aws.Context, input *UpdateConfigurationProfileInput, opts ...request.Option) (*UpdateConfigurationProfileOutput, error) {
2981	req, out := c.UpdateConfigurationProfileRequest(input)
2982	req.SetContext(ctx)
2983	req.ApplyOptions(opts...)
2984	return out, req.Send()
2985}
2986
2987const opUpdateDeploymentStrategy = "UpdateDeploymentStrategy"
2988
2989// UpdateDeploymentStrategyRequest generates a "aws/request.Request" representing the
2990// client's request for the UpdateDeploymentStrategy operation. The "output" return
2991// value will be populated with the request's response once the request completes
2992// successfully.
2993//
2994// Use "Send" method on the returned Request to send the API call to the service.
2995// the "output" return value is not valid until after Send returns without error.
2996//
2997// See UpdateDeploymentStrategy for more information on using the UpdateDeploymentStrategy
2998// API call, and error handling.
2999//
3000// This method is useful when you want to inject custom logic or configuration
3001// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3002//
3003//
3004//    // Example sending a request using the UpdateDeploymentStrategyRequest method.
3005//    req, resp := client.UpdateDeploymentStrategyRequest(params)
3006//
3007//    err := req.Send()
3008//    if err == nil { // resp is now filled
3009//        fmt.Println(resp)
3010//    }
3011//
3012// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateDeploymentStrategy
3013func (c *AppConfig) UpdateDeploymentStrategyRequest(input *UpdateDeploymentStrategyInput) (req *request.Request, output *UpdateDeploymentStrategyOutput) {
3014	op := &request.Operation{
3015		Name:       opUpdateDeploymentStrategy,
3016		HTTPMethod: "PATCH",
3017		HTTPPath:   "/deploymentstrategies/{DeploymentStrategyId}",
3018	}
3019
3020	if input == nil {
3021		input = &UpdateDeploymentStrategyInput{}
3022	}
3023
3024	output = &UpdateDeploymentStrategyOutput{}
3025	req = c.newRequest(op, input, output)
3026	return
3027}
3028
3029// UpdateDeploymentStrategy API operation for Amazon AppConfig.
3030//
3031// Updates a deployment strategy.
3032//
3033// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3034// with awserr.Error's Code and Message methods to get detailed information about
3035// the error.
3036//
3037// See the AWS API reference guide for Amazon AppConfig's
3038// API operation UpdateDeploymentStrategy for usage and error information.
3039//
3040// Returned Error Types:
3041//   * BadRequestException
3042//   The input fails to satisfy the constraints specified by an AWS service.
3043//
3044//   * ResourceNotFoundException
3045//   The requested resource could not be found.
3046//
3047//   * InternalServerException
3048//   There was an internal failure in the AppConfig service.
3049//
3050// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateDeploymentStrategy
3051func (c *AppConfig) UpdateDeploymentStrategy(input *UpdateDeploymentStrategyInput) (*UpdateDeploymentStrategyOutput, error) {
3052	req, out := c.UpdateDeploymentStrategyRequest(input)
3053	return out, req.Send()
3054}
3055
3056// UpdateDeploymentStrategyWithContext is the same as UpdateDeploymentStrategy with the addition of
3057// the ability to pass a context and additional request options.
3058//
3059// See UpdateDeploymentStrategy for details on how to use this API operation.
3060//
3061// The context must be non-nil and will be used for request cancellation. If
3062// the context is nil a panic will occur. In the future the SDK may create
3063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3064// for more information on using Contexts.
3065func (c *AppConfig) UpdateDeploymentStrategyWithContext(ctx aws.Context, input *UpdateDeploymentStrategyInput, opts ...request.Option) (*UpdateDeploymentStrategyOutput, error) {
3066	req, out := c.UpdateDeploymentStrategyRequest(input)
3067	req.SetContext(ctx)
3068	req.ApplyOptions(opts...)
3069	return out, req.Send()
3070}
3071
3072const opUpdateEnvironment = "UpdateEnvironment"
3073
3074// UpdateEnvironmentRequest generates a "aws/request.Request" representing the
3075// client's request for the UpdateEnvironment operation. The "output" return
3076// value will be populated with the request's response once the request completes
3077// successfully.
3078//
3079// Use "Send" method on the returned Request to send the API call to the service.
3080// the "output" return value is not valid until after Send returns without error.
3081//
3082// See UpdateEnvironment for more information on using the UpdateEnvironment
3083// API call, and error handling.
3084//
3085// This method is useful when you want to inject custom logic or configuration
3086// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3087//
3088//
3089//    // Example sending a request using the UpdateEnvironmentRequest method.
3090//    req, resp := client.UpdateEnvironmentRequest(params)
3091//
3092//    err := req.Send()
3093//    if err == nil { // resp is now filled
3094//        fmt.Println(resp)
3095//    }
3096//
3097// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateEnvironment
3098func (c *AppConfig) UpdateEnvironmentRequest(input *UpdateEnvironmentInput) (req *request.Request, output *UpdateEnvironmentOutput) {
3099	op := &request.Operation{
3100		Name:       opUpdateEnvironment,
3101		HTTPMethod: "PATCH",
3102		HTTPPath:   "/applications/{ApplicationId}/environments/{EnvironmentId}",
3103	}
3104
3105	if input == nil {
3106		input = &UpdateEnvironmentInput{}
3107	}
3108
3109	output = &UpdateEnvironmentOutput{}
3110	req = c.newRequest(op, input, output)
3111	return
3112}
3113
3114// UpdateEnvironment API operation for Amazon AppConfig.
3115//
3116// Updates an environment.
3117//
3118// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3119// with awserr.Error's Code and Message methods to get detailed information about
3120// the error.
3121//
3122// See the AWS API reference guide for Amazon AppConfig's
3123// API operation UpdateEnvironment for usage and error information.
3124//
3125// Returned Error Types:
3126//   * BadRequestException
3127//   The input fails to satisfy the constraints specified by an AWS service.
3128//
3129//   * ResourceNotFoundException
3130//   The requested resource could not be found.
3131//
3132//   * InternalServerException
3133//   There was an internal failure in the AppConfig service.
3134//
3135// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateEnvironment
3136func (c *AppConfig) UpdateEnvironment(input *UpdateEnvironmentInput) (*UpdateEnvironmentOutput, error) {
3137	req, out := c.UpdateEnvironmentRequest(input)
3138	return out, req.Send()
3139}
3140
3141// UpdateEnvironmentWithContext is the same as UpdateEnvironment with the addition of
3142// the ability to pass a context and additional request options.
3143//
3144// See UpdateEnvironment for details on how to use this API operation.
3145//
3146// The context must be non-nil and will be used for request cancellation. If
3147// the context is nil a panic will occur. In the future the SDK may create
3148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3149// for more information on using Contexts.
3150func (c *AppConfig) UpdateEnvironmentWithContext(ctx aws.Context, input *UpdateEnvironmentInput, opts ...request.Option) (*UpdateEnvironmentOutput, error) {
3151	req, out := c.UpdateEnvironmentRequest(input)
3152	req.SetContext(ctx)
3153	req.ApplyOptions(opts...)
3154	return out, req.Send()
3155}
3156
3157const opValidateConfiguration = "ValidateConfiguration"
3158
3159// ValidateConfigurationRequest generates a "aws/request.Request" representing the
3160// client's request for the ValidateConfiguration operation. The "output" return
3161// value will be populated with the request's response once the request completes
3162// successfully.
3163//
3164// Use "Send" method on the returned Request to send the API call to the service.
3165// the "output" return value is not valid until after Send returns without error.
3166//
3167// See ValidateConfiguration for more information on using the ValidateConfiguration
3168// API call, and error handling.
3169//
3170// This method is useful when you want to inject custom logic or configuration
3171// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3172//
3173//
3174//    // Example sending a request using the ValidateConfigurationRequest method.
3175//    req, resp := client.ValidateConfigurationRequest(params)
3176//
3177//    err := req.Send()
3178//    if err == nil { // resp is now filled
3179//        fmt.Println(resp)
3180//    }
3181//
3182// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ValidateConfiguration
3183func (c *AppConfig) ValidateConfigurationRequest(input *ValidateConfigurationInput) (req *request.Request, output *ValidateConfigurationOutput) {
3184	op := &request.Operation{
3185		Name:       opValidateConfiguration,
3186		HTTPMethod: "POST",
3187		HTTPPath:   "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/validators",
3188	}
3189
3190	if input == nil {
3191		input = &ValidateConfigurationInput{}
3192	}
3193
3194	output = &ValidateConfigurationOutput{}
3195	req = c.newRequest(op, input, output)
3196	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3197	return
3198}
3199
3200// ValidateConfiguration API operation for Amazon AppConfig.
3201//
3202// Uses the validators in a configuration profile to validate a configuration.
3203//
3204// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3205// with awserr.Error's Code and Message methods to get detailed information about
3206// the error.
3207//
3208// See the AWS API reference guide for Amazon AppConfig's
3209// API operation ValidateConfiguration for usage and error information.
3210//
3211// Returned Error Types:
3212//   * BadRequestException
3213//   The input fails to satisfy the constraints specified by an AWS service.
3214//
3215//   * ResourceNotFoundException
3216//   The requested resource could not be found.
3217//
3218//   * InternalServerException
3219//   There was an internal failure in the AppConfig service.
3220//
3221// See also, https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ValidateConfiguration
3222func (c *AppConfig) ValidateConfiguration(input *ValidateConfigurationInput) (*ValidateConfigurationOutput, error) {
3223	req, out := c.ValidateConfigurationRequest(input)
3224	return out, req.Send()
3225}
3226
3227// ValidateConfigurationWithContext is the same as ValidateConfiguration with the addition of
3228// the ability to pass a context and additional request options.
3229//
3230// See ValidateConfiguration for details on how to use this API operation.
3231//
3232// The context must be non-nil and will be used for request cancellation. If
3233// the context is nil a panic will occur. In the future the SDK may create
3234// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3235// for more information on using Contexts.
3236func (c *AppConfig) ValidateConfigurationWithContext(ctx aws.Context, input *ValidateConfigurationInput, opts ...request.Option) (*ValidateConfigurationOutput, error) {
3237	req, out := c.ValidateConfigurationRequest(input)
3238	req.SetContext(ctx)
3239	req.ApplyOptions(opts...)
3240	return out, req.Send()
3241}
3242
3243type Application struct {
3244	_ struct{} `type:"structure"`
3245
3246	// The description of the application.
3247	Description *string `type:"string"`
3248
3249	// The application ID.
3250	Id *string `type:"string"`
3251
3252	// The application name.
3253	Name *string `min:"1" type:"string"`
3254}
3255
3256// String returns the string representation
3257func (s Application) String() string {
3258	return awsutil.Prettify(s)
3259}
3260
3261// GoString returns the string representation
3262func (s Application) GoString() string {
3263	return s.String()
3264}
3265
3266// SetDescription sets the Description field's value.
3267func (s *Application) SetDescription(v string) *Application {
3268	s.Description = &v
3269	return s
3270}
3271
3272// SetId sets the Id field's value.
3273func (s *Application) SetId(v string) *Application {
3274	s.Id = &v
3275	return s
3276}
3277
3278// SetName sets the Name field's value.
3279func (s *Application) SetName(v string) *Application {
3280	s.Name = &v
3281	return s
3282}
3283
3284// The input fails to satisfy the constraints specified by an AWS service.
3285type BadRequestException struct {
3286	_            struct{}                  `type:"structure"`
3287	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3288
3289	Message_ *string `locationName:"Message" type:"string"`
3290}
3291
3292// String returns the string representation
3293func (s BadRequestException) String() string {
3294	return awsutil.Prettify(s)
3295}
3296
3297// GoString returns the string representation
3298func (s BadRequestException) GoString() string {
3299	return s.String()
3300}
3301
3302func newErrorBadRequestException(v protocol.ResponseMetadata) error {
3303	return &BadRequestException{
3304		RespMetadata: v,
3305	}
3306}
3307
3308// Code returns the exception type name.
3309func (s *BadRequestException) Code() string {
3310	return "BadRequestException"
3311}
3312
3313// Message returns the exception's message.
3314func (s *BadRequestException) Message() string {
3315	if s.Message_ != nil {
3316		return *s.Message_
3317	}
3318	return ""
3319}
3320
3321// OrigErr always returns nil, satisfies awserr.Error interface.
3322func (s *BadRequestException) OrigErr() error {
3323	return nil
3324}
3325
3326func (s *BadRequestException) Error() string {
3327	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3328}
3329
3330// Status code returns the HTTP status code for the request's response error.
3331func (s *BadRequestException) StatusCode() int {
3332	return s.RespMetadata.StatusCode
3333}
3334
3335// RequestID returns the service's response RequestID for request.
3336func (s *BadRequestException) RequestID() string {
3337	return s.RespMetadata.RequestID
3338}
3339
3340// A summary of a configuration profile.
3341type ConfigurationProfileSummary struct {
3342	_ struct{} `type:"structure"`
3343
3344	// The application ID.
3345	ApplicationId *string `type:"string"`
3346
3347	// The ID of the configuration profile.
3348	Id *string `type:"string"`
3349
3350	// The URI location of the configuration.
3351	LocationUri *string `min:"1" type:"string"`
3352
3353	// The name of the configuration profile.
3354	Name *string `min:"1" type:"string"`
3355
3356	// The types of validators in the configuration profile.
3357	ValidatorTypes []*string `type:"list"`
3358}
3359
3360// String returns the string representation
3361func (s ConfigurationProfileSummary) String() string {
3362	return awsutil.Prettify(s)
3363}
3364
3365// GoString returns the string representation
3366func (s ConfigurationProfileSummary) GoString() string {
3367	return s.String()
3368}
3369
3370// SetApplicationId sets the ApplicationId field's value.
3371func (s *ConfigurationProfileSummary) SetApplicationId(v string) *ConfigurationProfileSummary {
3372	s.ApplicationId = &v
3373	return s
3374}
3375
3376// SetId sets the Id field's value.
3377func (s *ConfigurationProfileSummary) SetId(v string) *ConfigurationProfileSummary {
3378	s.Id = &v
3379	return s
3380}
3381
3382// SetLocationUri sets the LocationUri field's value.
3383func (s *ConfigurationProfileSummary) SetLocationUri(v string) *ConfigurationProfileSummary {
3384	s.LocationUri = &v
3385	return s
3386}
3387
3388// SetName sets the Name field's value.
3389func (s *ConfigurationProfileSummary) SetName(v string) *ConfigurationProfileSummary {
3390	s.Name = &v
3391	return s
3392}
3393
3394// SetValidatorTypes sets the ValidatorTypes field's value.
3395func (s *ConfigurationProfileSummary) SetValidatorTypes(v []*string) *ConfigurationProfileSummary {
3396	s.ValidatorTypes = v
3397	return s
3398}
3399
3400// The request could not be processed because of conflict in the current state
3401// of the resource.
3402type ConflictException struct {
3403	_            struct{}                  `type:"structure"`
3404	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3405
3406	Message_ *string `locationName:"Message" type:"string"`
3407}
3408
3409// String returns the string representation
3410func (s ConflictException) String() string {
3411	return awsutil.Prettify(s)
3412}
3413
3414// GoString returns the string representation
3415func (s ConflictException) GoString() string {
3416	return s.String()
3417}
3418
3419func newErrorConflictException(v protocol.ResponseMetadata) error {
3420	return &ConflictException{
3421		RespMetadata: v,
3422	}
3423}
3424
3425// Code returns the exception type name.
3426func (s *ConflictException) Code() string {
3427	return "ConflictException"
3428}
3429
3430// Message returns the exception's message.
3431func (s *ConflictException) Message() string {
3432	if s.Message_ != nil {
3433		return *s.Message_
3434	}
3435	return ""
3436}
3437
3438// OrigErr always returns nil, satisfies awserr.Error interface.
3439func (s *ConflictException) OrigErr() error {
3440	return nil
3441}
3442
3443func (s *ConflictException) Error() string {
3444	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3445}
3446
3447// Status code returns the HTTP status code for the request's response error.
3448func (s *ConflictException) StatusCode() int {
3449	return s.RespMetadata.StatusCode
3450}
3451
3452// RequestID returns the service's response RequestID for request.
3453func (s *ConflictException) RequestID() string {
3454	return s.RespMetadata.RequestID
3455}
3456
3457type CreateApplicationInput struct {
3458	_ struct{} `type:"structure"`
3459
3460	// A description of the application.
3461	Description *string `type:"string"`
3462
3463	// A name for the application.
3464	//
3465	// Name is a required field
3466	Name *string `min:"1" type:"string" required:"true"`
3467
3468	// Metadata to assign to the application. Tags help organize and categorize
3469	// your AppConfig resources. Each tag consists of a key and an optional value,
3470	// both of which you define.
3471	Tags map[string]*string `type:"map"`
3472}
3473
3474// String returns the string representation
3475func (s CreateApplicationInput) String() string {
3476	return awsutil.Prettify(s)
3477}
3478
3479// GoString returns the string representation
3480func (s CreateApplicationInput) GoString() string {
3481	return s.String()
3482}
3483
3484// Validate inspects the fields of the type to determine if they are valid.
3485func (s *CreateApplicationInput) Validate() error {
3486	invalidParams := request.ErrInvalidParams{Context: "CreateApplicationInput"}
3487	if s.Name == nil {
3488		invalidParams.Add(request.NewErrParamRequired("Name"))
3489	}
3490	if s.Name != nil && len(*s.Name) < 1 {
3491		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3492	}
3493
3494	if invalidParams.Len() > 0 {
3495		return invalidParams
3496	}
3497	return nil
3498}
3499
3500// SetDescription sets the Description field's value.
3501func (s *CreateApplicationInput) SetDescription(v string) *CreateApplicationInput {
3502	s.Description = &v
3503	return s
3504}
3505
3506// SetName sets the Name field's value.
3507func (s *CreateApplicationInput) SetName(v string) *CreateApplicationInput {
3508	s.Name = &v
3509	return s
3510}
3511
3512// SetTags sets the Tags field's value.
3513func (s *CreateApplicationInput) SetTags(v map[string]*string) *CreateApplicationInput {
3514	s.Tags = v
3515	return s
3516}
3517
3518type CreateApplicationOutput struct {
3519	_ struct{} `type:"structure"`
3520
3521	// The description of the application.
3522	Description *string `type:"string"`
3523
3524	// The application ID.
3525	Id *string `type:"string"`
3526
3527	// The application name.
3528	Name *string `min:"1" type:"string"`
3529}
3530
3531// String returns the string representation
3532func (s CreateApplicationOutput) String() string {
3533	return awsutil.Prettify(s)
3534}
3535
3536// GoString returns the string representation
3537func (s CreateApplicationOutput) GoString() string {
3538	return s.String()
3539}
3540
3541// SetDescription sets the Description field's value.
3542func (s *CreateApplicationOutput) SetDescription(v string) *CreateApplicationOutput {
3543	s.Description = &v
3544	return s
3545}
3546
3547// SetId sets the Id field's value.
3548func (s *CreateApplicationOutput) SetId(v string) *CreateApplicationOutput {
3549	s.Id = &v
3550	return s
3551}
3552
3553// SetName sets the Name field's value.
3554func (s *CreateApplicationOutput) SetName(v string) *CreateApplicationOutput {
3555	s.Name = &v
3556	return s
3557}
3558
3559type CreateConfigurationProfileInput struct {
3560	_ struct{} `type:"structure"`
3561
3562	// The application ID.
3563	//
3564	// ApplicationId is a required field
3565	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
3566
3567	// A description of the configuration profile.
3568	Description *string `type:"string"`
3569
3570	// A URI to locate the configuration. You can specify a Systems Manager (SSM)
3571	// document, an SSM Parameter Store parameter, or an Amazon S3 object. For an
3572	// SSM document, specify either the document name in the format ssm-document://<Document_name>
3573	// or the Amazon Resource Name (ARN). For a parameter, specify either the parameter
3574	// name in the format ssm-parameter://<Parameter_name> or the ARN. For an Amazon
3575	// S3 object, specify the URI in the following format: s3://<bucket>/<objectKey>
3576	// . Here is an example: s3://my-bucket/my-app/us-east-1/my-config.json
3577	//
3578	// LocationUri is a required field
3579	LocationUri *string `min:"1" type:"string" required:"true"`
3580
3581	// A name for the configuration profile.
3582	//
3583	// Name is a required field
3584	Name *string `min:"1" type:"string" required:"true"`
3585
3586	// The ARN of an IAM role with permission to access the configuration at the
3587	// specified LocationUri.
3588	RetrievalRoleArn *string `min:"20" type:"string"`
3589
3590	// Metadata to assign to the configuration profile. Tags help organize and categorize
3591	// your AppConfig resources. Each tag consists of a key and an optional value,
3592	// both of which you define.
3593	Tags map[string]*string `type:"map"`
3594
3595	// A list of methods for validating the configuration.
3596	Validators []*Validator `type:"list"`
3597}
3598
3599// String returns the string representation
3600func (s CreateConfigurationProfileInput) String() string {
3601	return awsutil.Prettify(s)
3602}
3603
3604// GoString returns the string representation
3605func (s CreateConfigurationProfileInput) GoString() string {
3606	return s.String()
3607}
3608
3609// Validate inspects the fields of the type to determine if they are valid.
3610func (s *CreateConfigurationProfileInput) Validate() error {
3611	invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationProfileInput"}
3612	if s.ApplicationId == nil {
3613		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
3614	}
3615	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
3616		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
3617	}
3618	if s.LocationUri == nil {
3619		invalidParams.Add(request.NewErrParamRequired("LocationUri"))
3620	}
3621	if s.LocationUri != nil && len(*s.LocationUri) < 1 {
3622		invalidParams.Add(request.NewErrParamMinLen("LocationUri", 1))
3623	}
3624	if s.Name == nil {
3625		invalidParams.Add(request.NewErrParamRequired("Name"))
3626	}
3627	if s.Name != nil && len(*s.Name) < 1 {
3628		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3629	}
3630	if s.RetrievalRoleArn != nil && len(*s.RetrievalRoleArn) < 20 {
3631		invalidParams.Add(request.NewErrParamMinLen("RetrievalRoleArn", 20))
3632	}
3633	if s.Validators != nil {
3634		for i, v := range s.Validators {
3635			if v == nil {
3636				continue
3637			}
3638			if err := v.Validate(); err != nil {
3639				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Validators", i), err.(request.ErrInvalidParams))
3640			}
3641		}
3642	}
3643
3644	if invalidParams.Len() > 0 {
3645		return invalidParams
3646	}
3647	return nil
3648}
3649
3650// SetApplicationId sets the ApplicationId field's value.
3651func (s *CreateConfigurationProfileInput) SetApplicationId(v string) *CreateConfigurationProfileInput {
3652	s.ApplicationId = &v
3653	return s
3654}
3655
3656// SetDescription sets the Description field's value.
3657func (s *CreateConfigurationProfileInput) SetDescription(v string) *CreateConfigurationProfileInput {
3658	s.Description = &v
3659	return s
3660}
3661
3662// SetLocationUri sets the LocationUri field's value.
3663func (s *CreateConfigurationProfileInput) SetLocationUri(v string) *CreateConfigurationProfileInput {
3664	s.LocationUri = &v
3665	return s
3666}
3667
3668// SetName sets the Name field's value.
3669func (s *CreateConfigurationProfileInput) SetName(v string) *CreateConfigurationProfileInput {
3670	s.Name = &v
3671	return s
3672}
3673
3674// SetRetrievalRoleArn sets the RetrievalRoleArn field's value.
3675func (s *CreateConfigurationProfileInput) SetRetrievalRoleArn(v string) *CreateConfigurationProfileInput {
3676	s.RetrievalRoleArn = &v
3677	return s
3678}
3679
3680// SetTags sets the Tags field's value.
3681func (s *CreateConfigurationProfileInput) SetTags(v map[string]*string) *CreateConfigurationProfileInput {
3682	s.Tags = v
3683	return s
3684}
3685
3686// SetValidators sets the Validators field's value.
3687func (s *CreateConfigurationProfileInput) SetValidators(v []*Validator) *CreateConfigurationProfileInput {
3688	s.Validators = v
3689	return s
3690}
3691
3692type CreateConfigurationProfileOutput struct {
3693	_ struct{} `type:"structure"`
3694
3695	// The application ID.
3696	ApplicationId *string `type:"string"`
3697
3698	// The configuration profile description.
3699	Description *string `type:"string"`
3700
3701	// The configuration profile ID.
3702	Id *string `type:"string"`
3703
3704	// The URI location of the configuration.
3705	LocationUri *string `min:"1" type:"string"`
3706
3707	// The name of the configuration profile.
3708	Name *string `min:"1" type:"string"`
3709
3710	// The ARN of an IAM role with permission to access the configuration at the
3711	// specified LocationUri.
3712	RetrievalRoleArn *string `min:"20" type:"string"`
3713
3714	// A list of methods for validating the configuration.
3715	Validators []*Validator `type:"list"`
3716}
3717
3718// String returns the string representation
3719func (s CreateConfigurationProfileOutput) String() string {
3720	return awsutil.Prettify(s)
3721}
3722
3723// GoString returns the string representation
3724func (s CreateConfigurationProfileOutput) GoString() string {
3725	return s.String()
3726}
3727
3728// SetApplicationId sets the ApplicationId field's value.
3729func (s *CreateConfigurationProfileOutput) SetApplicationId(v string) *CreateConfigurationProfileOutput {
3730	s.ApplicationId = &v
3731	return s
3732}
3733
3734// SetDescription sets the Description field's value.
3735func (s *CreateConfigurationProfileOutput) SetDescription(v string) *CreateConfigurationProfileOutput {
3736	s.Description = &v
3737	return s
3738}
3739
3740// SetId sets the Id field's value.
3741func (s *CreateConfigurationProfileOutput) SetId(v string) *CreateConfigurationProfileOutput {
3742	s.Id = &v
3743	return s
3744}
3745
3746// SetLocationUri sets the LocationUri field's value.
3747func (s *CreateConfigurationProfileOutput) SetLocationUri(v string) *CreateConfigurationProfileOutput {
3748	s.LocationUri = &v
3749	return s
3750}
3751
3752// SetName sets the Name field's value.
3753func (s *CreateConfigurationProfileOutput) SetName(v string) *CreateConfigurationProfileOutput {
3754	s.Name = &v
3755	return s
3756}
3757
3758// SetRetrievalRoleArn sets the RetrievalRoleArn field's value.
3759func (s *CreateConfigurationProfileOutput) SetRetrievalRoleArn(v string) *CreateConfigurationProfileOutput {
3760	s.RetrievalRoleArn = &v
3761	return s
3762}
3763
3764// SetValidators sets the Validators field's value.
3765func (s *CreateConfigurationProfileOutput) SetValidators(v []*Validator) *CreateConfigurationProfileOutput {
3766	s.Validators = v
3767	return s
3768}
3769
3770type CreateDeploymentStrategyInput struct {
3771	_ struct{} `type:"structure"`
3772
3773	// Total amount of time for a deployment to last.
3774	//
3775	// DeploymentDurationInMinutes is a required field
3776	DeploymentDurationInMinutes *int64 `type:"integer" required:"true"`
3777
3778	// A description of the deployment strategy.
3779	Description *string `type:"string"`
3780
3781	// The amount of time AppConfig monitors for alarms before considering the deployment
3782	// to be complete and no longer eligible for automatic roll back.
3783	FinalBakeTimeInMinutes *int64 `type:"integer"`
3784
3785	// The percentage of targets to receive a deployed configuration during each
3786	// interval.
3787	//
3788	// GrowthFactor is a required field
3789	GrowthFactor *float64 `min:"1" type:"float" required:"true"`
3790
3791	// The algorithm used to define how percentage grows over time. AWS AppConfig
3792	// supports the following growth types:
3793	//
3794	// Linear: For this type, AppConfig processes the deployment by dividing the
3795	// total number of targets by the value specified for Step percentage. For example,
3796	// a linear deployment that uses a Step percentage of 10 deploys the configuration
3797	// to 10 percent of the hosts. After those deployments are complete, the system
3798	// deploys the configuration to the next 10 percent. This continues until 100%
3799	// of the targets have successfully received the configuration.
3800	//
3801	// Exponential: For this type, AppConfig processes the deployment exponentially
3802	// using the following formula: G*(2^N). In this formula, G is the growth factor
3803	// specified by the user and N is the number of steps until the configuration
3804	// is deployed to all targets. For example, if you specify a growth factor of
3805	// 2, then the system rolls out the configuration as follows:
3806	//
3807	// 2*(2^0)
3808	//
3809	// 2*(2^1)
3810	//
3811	// 2*(2^2)
3812	//
3813	// Expressed numerically, the deployment rolls out as follows: 2% of the targets,
3814	// 4% of the targets, 8% of the targets, and continues until the configuration
3815	// has been deployed to all targets.
3816	GrowthType *string `type:"string" enum:"GrowthType"`
3817
3818	// A name for the deployment strategy.
3819	//
3820	// Name is a required field
3821	Name *string `min:"1" type:"string" required:"true"`
3822
3823	// Save the deployment strategy to a Systems Manager (SSM) document.
3824	//
3825	// ReplicateTo is a required field
3826	ReplicateTo *string `type:"string" required:"true" enum:"ReplicateTo"`
3827
3828	// Metadata to assign to the deployment strategy. Tags help organize and categorize
3829	// your AppConfig resources. Each tag consists of a key and an optional value,
3830	// both of which you define.
3831	Tags map[string]*string `type:"map"`
3832}
3833
3834// String returns the string representation
3835func (s CreateDeploymentStrategyInput) String() string {
3836	return awsutil.Prettify(s)
3837}
3838
3839// GoString returns the string representation
3840func (s CreateDeploymentStrategyInput) GoString() string {
3841	return s.String()
3842}
3843
3844// Validate inspects the fields of the type to determine if they are valid.
3845func (s *CreateDeploymentStrategyInput) Validate() error {
3846	invalidParams := request.ErrInvalidParams{Context: "CreateDeploymentStrategyInput"}
3847	if s.DeploymentDurationInMinutes == nil {
3848		invalidParams.Add(request.NewErrParamRequired("DeploymentDurationInMinutes"))
3849	}
3850	if s.GrowthFactor == nil {
3851		invalidParams.Add(request.NewErrParamRequired("GrowthFactor"))
3852	}
3853	if s.GrowthFactor != nil && *s.GrowthFactor < 1 {
3854		invalidParams.Add(request.NewErrParamMinValue("GrowthFactor", 1))
3855	}
3856	if s.Name == nil {
3857		invalidParams.Add(request.NewErrParamRequired("Name"))
3858	}
3859	if s.Name != nil && len(*s.Name) < 1 {
3860		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3861	}
3862	if s.ReplicateTo == nil {
3863		invalidParams.Add(request.NewErrParamRequired("ReplicateTo"))
3864	}
3865
3866	if invalidParams.Len() > 0 {
3867		return invalidParams
3868	}
3869	return nil
3870}
3871
3872// SetDeploymentDurationInMinutes sets the DeploymentDurationInMinutes field's value.
3873func (s *CreateDeploymentStrategyInput) SetDeploymentDurationInMinutes(v int64) *CreateDeploymentStrategyInput {
3874	s.DeploymentDurationInMinutes = &v
3875	return s
3876}
3877
3878// SetDescription sets the Description field's value.
3879func (s *CreateDeploymentStrategyInput) SetDescription(v string) *CreateDeploymentStrategyInput {
3880	s.Description = &v
3881	return s
3882}
3883
3884// SetFinalBakeTimeInMinutes sets the FinalBakeTimeInMinutes field's value.
3885func (s *CreateDeploymentStrategyInput) SetFinalBakeTimeInMinutes(v int64) *CreateDeploymentStrategyInput {
3886	s.FinalBakeTimeInMinutes = &v
3887	return s
3888}
3889
3890// SetGrowthFactor sets the GrowthFactor field's value.
3891func (s *CreateDeploymentStrategyInput) SetGrowthFactor(v float64) *CreateDeploymentStrategyInput {
3892	s.GrowthFactor = &v
3893	return s
3894}
3895
3896// SetGrowthType sets the GrowthType field's value.
3897func (s *CreateDeploymentStrategyInput) SetGrowthType(v string) *CreateDeploymentStrategyInput {
3898	s.GrowthType = &v
3899	return s
3900}
3901
3902// SetName sets the Name field's value.
3903func (s *CreateDeploymentStrategyInput) SetName(v string) *CreateDeploymentStrategyInput {
3904	s.Name = &v
3905	return s
3906}
3907
3908// SetReplicateTo sets the ReplicateTo field's value.
3909func (s *CreateDeploymentStrategyInput) SetReplicateTo(v string) *CreateDeploymentStrategyInput {
3910	s.ReplicateTo = &v
3911	return s
3912}
3913
3914// SetTags sets the Tags field's value.
3915func (s *CreateDeploymentStrategyInput) SetTags(v map[string]*string) *CreateDeploymentStrategyInput {
3916	s.Tags = v
3917	return s
3918}
3919
3920type CreateDeploymentStrategyOutput struct {
3921	_ struct{} `type:"structure"`
3922
3923	// Total amount of time the deployment lasted.
3924	DeploymentDurationInMinutes *int64 `type:"integer"`
3925
3926	// The description of the deployment strategy.
3927	Description *string `type:"string"`
3928
3929	// The amount of time AppConfig monitored for alarms before considering the
3930	// deployment to be complete and no longer eligible for automatic roll back.
3931	FinalBakeTimeInMinutes *int64 `type:"integer"`
3932
3933	// The percentage of targets that received a deployed configuration during each
3934	// interval.
3935	GrowthFactor *float64 `min:"1" type:"float"`
3936
3937	// The algorithm used to define how percentage grew over time.
3938	GrowthType *string `type:"string" enum:"GrowthType"`
3939
3940	// The deployment strategy ID.
3941	Id *string `type:"string"`
3942
3943	// The name of the deployment strategy.
3944	Name *string `min:"1" type:"string"`
3945
3946	// Save the deployment strategy to a Systems Manager (SSM) document.
3947	ReplicateTo *string `type:"string" enum:"ReplicateTo"`
3948}
3949
3950// String returns the string representation
3951func (s CreateDeploymentStrategyOutput) String() string {
3952	return awsutil.Prettify(s)
3953}
3954
3955// GoString returns the string representation
3956func (s CreateDeploymentStrategyOutput) GoString() string {
3957	return s.String()
3958}
3959
3960// SetDeploymentDurationInMinutes sets the DeploymentDurationInMinutes field's value.
3961func (s *CreateDeploymentStrategyOutput) SetDeploymentDurationInMinutes(v int64) *CreateDeploymentStrategyOutput {
3962	s.DeploymentDurationInMinutes = &v
3963	return s
3964}
3965
3966// SetDescription sets the Description field's value.
3967func (s *CreateDeploymentStrategyOutput) SetDescription(v string) *CreateDeploymentStrategyOutput {
3968	s.Description = &v
3969	return s
3970}
3971
3972// SetFinalBakeTimeInMinutes sets the FinalBakeTimeInMinutes field's value.
3973func (s *CreateDeploymentStrategyOutput) SetFinalBakeTimeInMinutes(v int64) *CreateDeploymentStrategyOutput {
3974	s.FinalBakeTimeInMinutes = &v
3975	return s
3976}
3977
3978// SetGrowthFactor sets the GrowthFactor field's value.
3979func (s *CreateDeploymentStrategyOutput) SetGrowthFactor(v float64) *CreateDeploymentStrategyOutput {
3980	s.GrowthFactor = &v
3981	return s
3982}
3983
3984// SetGrowthType sets the GrowthType field's value.
3985func (s *CreateDeploymentStrategyOutput) SetGrowthType(v string) *CreateDeploymentStrategyOutput {
3986	s.GrowthType = &v
3987	return s
3988}
3989
3990// SetId sets the Id field's value.
3991func (s *CreateDeploymentStrategyOutput) SetId(v string) *CreateDeploymentStrategyOutput {
3992	s.Id = &v
3993	return s
3994}
3995
3996// SetName sets the Name field's value.
3997func (s *CreateDeploymentStrategyOutput) SetName(v string) *CreateDeploymentStrategyOutput {
3998	s.Name = &v
3999	return s
4000}
4001
4002// SetReplicateTo sets the ReplicateTo field's value.
4003func (s *CreateDeploymentStrategyOutput) SetReplicateTo(v string) *CreateDeploymentStrategyOutput {
4004	s.ReplicateTo = &v
4005	return s
4006}
4007
4008type CreateEnvironmentInput struct {
4009	_ struct{} `type:"structure"`
4010
4011	// The application ID.
4012	//
4013	// ApplicationId is a required field
4014	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
4015
4016	// A description of the environment.
4017	Description *string `type:"string"`
4018
4019	// Amazon CloudWatch alarms to monitor during the deployment process.
4020	Monitors []*Monitor `type:"list"`
4021
4022	// A name for the environment.
4023	//
4024	// Name is a required field
4025	Name *string `min:"1" type:"string" required:"true"`
4026
4027	// Metadata to assign to the environment. Tags help organize and categorize
4028	// your AppConfig resources. Each tag consists of a key and an optional value,
4029	// both of which you define.
4030	Tags map[string]*string `type:"map"`
4031}
4032
4033// String returns the string representation
4034func (s CreateEnvironmentInput) String() string {
4035	return awsutil.Prettify(s)
4036}
4037
4038// GoString returns the string representation
4039func (s CreateEnvironmentInput) GoString() string {
4040	return s.String()
4041}
4042
4043// Validate inspects the fields of the type to determine if they are valid.
4044func (s *CreateEnvironmentInput) Validate() error {
4045	invalidParams := request.ErrInvalidParams{Context: "CreateEnvironmentInput"}
4046	if s.ApplicationId == nil {
4047		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
4048	}
4049	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
4050		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
4051	}
4052	if s.Name == nil {
4053		invalidParams.Add(request.NewErrParamRequired("Name"))
4054	}
4055	if s.Name != nil && len(*s.Name) < 1 {
4056		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
4057	}
4058	if s.Monitors != nil {
4059		for i, v := range s.Monitors {
4060			if v == nil {
4061				continue
4062			}
4063			if err := v.Validate(); err != nil {
4064				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Monitors", i), err.(request.ErrInvalidParams))
4065			}
4066		}
4067	}
4068
4069	if invalidParams.Len() > 0 {
4070		return invalidParams
4071	}
4072	return nil
4073}
4074
4075// SetApplicationId sets the ApplicationId field's value.
4076func (s *CreateEnvironmentInput) SetApplicationId(v string) *CreateEnvironmentInput {
4077	s.ApplicationId = &v
4078	return s
4079}
4080
4081// SetDescription sets the Description field's value.
4082func (s *CreateEnvironmentInput) SetDescription(v string) *CreateEnvironmentInput {
4083	s.Description = &v
4084	return s
4085}
4086
4087// SetMonitors sets the Monitors field's value.
4088func (s *CreateEnvironmentInput) SetMonitors(v []*Monitor) *CreateEnvironmentInput {
4089	s.Monitors = v
4090	return s
4091}
4092
4093// SetName sets the Name field's value.
4094func (s *CreateEnvironmentInput) SetName(v string) *CreateEnvironmentInput {
4095	s.Name = &v
4096	return s
4097}
4098
4099// SetTags sets the Tags field's value.
4100func (s *CreateEnvironmentInput) SetTags(v map[string]*string) *CreateEnvironmentInput {
4101	s.Tags = v
4102	return s
4103}
4104
4105type CreateEnvironmentOutput struct {
4106	_ struct{} `type:"structure"`
4107
4108	// The application ID.
4109	ApplicationId *string `type:"string"`
4110
4111	// The description of the environment.
4112	Description *string `type:"string"`
4113
4114	// The environment ID.
4115	Id *string `type:"string"`
4116
4117	// Amazon CloudWatch alarms monitored during the deployment.
4118	Monitors []*Monitor `type:"list"`
4119
4120	// The name of the environment.
4121	Name *string `min:"1" type:"string"`
4122
4123	// The state of the environment. An environment can be in one of the following
4124	// states: READY_FOR_DEPLOYMENT, DEPLOYING, ROLLING_BACK, or ROLLED_BACK
4125	State *string `type:"string" enum:"EnvironmentState"`
4126}
4127
4128// String returns the string representation
4129func (s CreateEnvironmentOutput) String() string {
4130	return awsutil.Prettify(s)
4131}
4132
4133// GoString returns the string representation
4134func (s CreateEnvironmentOutput) GoString() string {
4135	return s.String()
4136}
4137
4138// SetApplicationId sets the ApplicationId field's value.
4139func (s *CreateEnvironmentOutput) SetApplicationId(v string) *CreateEnvironmentOutput {
4140	s.ApplicationId = &v
4141	return s
4142}
4143
4144// SetDescription sets the Description field's value.
4145func (s *CreateEnvironmentOutput) SetDescription(v string) *CreateEnvironmentOutput {
4146	s.Description = &v
4147	return s
4148}
4149
4150// SetId sets the Id field's value.
4151func (s *CreateEnvironmentOutput) SetId(v string) *CreateEnvironmentOutput {
4152	s.Id = &v
4153	return s
4154}
4155
4156// SetMonitors sets the Monitors field's value.
4157func (s *CreateEnvironmentOutput) SetMonitors(v []*Monitor) *CreateEnvironmentOutput {
4158	s.Monitors = v
4159	return s
4160}
4161
4162// SetName sets the Name field's value.
4163func (s *CreateEnvironmentOutput) SetName(v string) *CreateEnvironmentOutput {
4164	s.Name = &v
4165	return s
4166}
4167
4168// SetState sets the State field's value.
4169func (s *CreateEnvironmentOutput) SetState(v string) *CreateEnvironmentOutput {
4170	s.State = &v
4171	return s
4172}
4173
4174type CreateHostedConfigurationVersionInput struct {
4175	_ struct{} `type:"structure" payload:"Content"`
4176
4177	// The application ID.
4178	//
4179	// ApplicationId is a required field
4180	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
4181
4182	// The configuration profile ID.
4183	//
4184	// ConfigurationProfileId is a required field
4185	ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"`
4186
4187	// The content of the configuration or the configuration data.
4188	//
4189	// Content is a required field
4190	Content []byte `type:"blob" required:"true" sensitive:"true"`
4191
4192	// A standard MIME type describing the format of the configuration content.
4193	// For more information, see Content-Type (https://docs.aws.amazon.com/https:/www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17).
4194	//
4195	// ContentType is a required field
4196	ContentType *string `location:"header" locationName:"Content-Type" min:"1" type:"string" required:"true"`
4197
4198	// A description of the configuration.
4199	Description *string `location:"header" locationName:"Description" type:"string"`
4200
4201	// An optional locking token used to prevent race conditions from overwriting
4202	// configuration updates when creating a new version. To ensure your data is
4203	// not overwritten when creating multiple hosted configuration versions in rapid
4204	// succession, specify the version of the latest hosted configuration version.
4205	LatestVersionNumber *int64 `location:"header" locationName:"Latest-Version-Number" type:"integer"`
4206}
4207
4208// String returns the string representation
4209func (s CreateHostedConfigurationVersionInput) String() string {
4210	return awsutil.Prettify(s)
4211}
4212
4213// GoString returns the string representation
4214func (s CreateHostedConfigurationVersionInput) GoString() string {
4215	return s.String()
4216}
4217
4218// Validate inspects the fields of the type to determine if they are valid.
4219func (s *CreateHostedConfigurationVersionInput) Validate() error {
4220	invalidParams := request.ErrInvalidParams{Context: "CreateHostedConfigurationVersionInput"}
4221	if s.ApplicationId == nil {
4222		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
4223	}
4224	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
4225		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
4226	}
4227	if s.ConfigurationProfileId == nil {
4228		invalidParams.Add(request.NewErrParamRequired("ConfigurationProfileId"))
4229	}
4230	if s.ConfigurationProfileId != nil && len(*s.ConfigurationProfileId) < 1 {
4231		invalidParams.Add(request.NewErrParamMinLen("ConfigurationProfileId", 1))
4232	}
4233	if s.Content == nil {
4234		invalidParams.Add(request.NewErrParamRequired("Content"))
4235	}
4236	if s.ContentType == nil {
4237		invalidParams.Add(request.NewErrParamRequired("ContentType"))
4238	}
4239	if s.ContentType != nil && len(*s.ContentType) < 1 {
4240		invalidParams.Add(request.NewErrParamMinLen("ContentType", 1))
4241	}
4242
4243	if invalidParams.Len() > 0 {
4244		return invalidParams
4245	}
4246	return nil
4247}
4248
4249// SetApplicationId sets the ApplicationId field's value.
4250func (s *CreateHostedConfigurationVersionInput) SetApplicationId(v string) *CreateHostedConfigurationVersionInput {
4251	s.ApplicationId = &v
4252	return s
4253}
4254
4255// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
4256func (s *CreateHostedConfigurationVersionInput) SetConfigurationProfileId(v string) *CreateHostedConfigurationVersionInput {
4257	s.ConfigurationProfileId = &v
4258	return s
4259}
4260
4261// SetContent sets the Content field's value.
4262func (s *CreateHostedConfigurationVersionInput) SetContent(v []byte) *CreateHostedConfigurationVersionInput {
4263	s.Content = v
4264	return s
4265}
4266
4267// SetContentType sets the ContentType field's value.
4268func (s *CreateHostedConfigurationVersionInput) SetContentType(v string) *CreateHostedConfigurationVersionInput {
4269	s.ContentType = &v
4270	return s
4271}
4272
4273// SetDescription sets the Description field's value.
4274func (s *CreateHostedConfigurationVersionInput) SetDescription(v string) *CreateHostedConfigurationVersionInput {
4275	s.Description = &v
4276	return s
4277}
4278
4279// SetLatestVersionNumber sets the LatestVersionNumber field's value.
4280func (s *CreateHostedConfigurationVersionInput) SetLatestVersionNumber(v int64) *CreateHostedConfigurationVersionInput {
4281	s.LatestVersionNumber = &v
4282	return s
4283}
4284
4285type CreateHostedConfigurationVersionOutput struct {
4286	_ struct{} `type:"structure" payload:"Content"`
4287
4288	// The application ID.
4289	ApplicationId *string `location:"header" locationName:"Application-Id" type:"string"`
4290
4291	// The configuration profile ID.
4292	ConfigurationProfileId *string `location:"header" locationName:"Configuration-Profile-Id" type:"string"`
4293
4294	// The content of the configuration or the configuration data.
4295	Content []byte `type:"blob" sensitive:"true"`
4296
4297	// A standard MIME type describing the format of the configuration content.
4298	// For more information, see Content-Type (https://docs.aws.amazon.com/https:/www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17).
4299	ContentType *string `location:"header" locationName:"Content-Type" min:"1" type:"string"`
4300
4301	// A description of the configuration.
4302	Description *string `location:"header" locationName:"Description" type:"string"`
4303
4304	// The configuration version.
4305	VersionNumber *int64 `location:"header" locationName:"Version-Number" type:"integer"`
4306}
4307
4308// String returns the string representation
4309func (s CreateHostedConfigurationVersionOutput) String() string {
4310	return awsutil.Prettify(s)
4311}
4312
4313// GoString returns the string representation
4314func (s CreateHostedConfigurationVersionOutput) GoString() string {
4315	return s.String()
4316}
4317
4318// SetApplicationId sets the ApplicationId field's value.
4319func (s *CreateHostedConfigurationVersionOutput) SetApplicationId(v string) *CreateHostedConfigurationVersionOutput {
4320	s.ApplicationId = &v
4321	return s
4322}
4323
4324// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
4325func (s *CreateHostedConfigurationVersionOutput) SetConfigurationProfileId(v string) *CreateHostedConfigurationVersionOutput {
4326	s.ConfigurationProfileId = &v
4327	return s
4328}
4329
4330// SetContent sets the Content field's value.
4331func (s *CreateHostedConfigurationVersionOutput) SetContent(v []byte) *CreateHostedConfigurationVersionOutput {
4332	s.Content = v
4333	return s
4334}
4335
4336// SetContentType sets the ContentType field's value.
4337func (s *CreateHostedConfigurationVersionOutput) SetContentType(v string) *CreateHostedConfigurationVersionOutput {
4338	s.ContentType = &v
4339	return s
4340}
4341
4342// SetDescription sets the Description field's value.
4343func (s *CreateHostedConfigurationVersionOutput) SetDescription(v string) *CreateHostedConfigurationVersionOutput {
4344	s.Description = &v
4345	return s
4346}
4347
4348// SetVersionNumber sets the VersionNumber field's value.
4349func (s *CreateHostedConfigurationVersionOutput) SetVersionNumber(v int64) *CreateHostedConfigurationVersionOutput {
4350	s.VersionNumber = &v
4351	return s
4352}
4353
4354type DeleteApplicationInput struct {
4355	_ struct{} `type:"structure"`
4356
4357	// The ID of the application to delete.
4358	//
4359	// ApplicationId is a required field
4360	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
4361}
4362
4363// String returns the string representation
4364func (s DeleteApplicationInput) String() string {
4365	return awsutil.Prettify(s)
4366}
4367
4368// GoString returns the string representation
4369func (s DeleteApplicationInput) GoString() string {
4370	return s.String()
4371}
4372
4373// Validate inspects the fields of the type to determine if they are valid.
4374func (s *DeleteApplicationInput) Validate() error {
4375	invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationInput"}
4376	if s.ApplicationId == nil {
4377		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
4378	}
4379	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
4380		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
4381	}
4382
4383	if invalidParams.Len() > 0 {
4384		return invalidParams
4385	}
4386	return nil
4387}
4388
4389// SetApplicationId sets the ApplicationId field's value.
4390func (s *DeleteApplicationInput) SetApplicationId(v string) *DeleteApplicationInput {
4391	s.ApplicationId = &v
4392	return s
4393}
4394
4395type DeleteApplicationOutput struct {
4396	_ struct{} `type:"structure"`
4397}
4398
4399// String returns the string representation
4400func (s DeleteApplicationOutput) String() string {
4401	return awsutil.Prettify(s)
4402}
4403
4404// GoString returns the string representation
4405func (s DeleteApplicationOutput) GoString() string {
4406	return s.String()
4407}
4408
4409type DeleteConfigurationProfileInput struct {
4410	_ struct{} `type:"structure"`
4411
4412	// The application ID that includes the configuration profile you want to delete.
4413	//
4414	// ApplicationId is a required field
4415	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
4416
4417	// The ID of the configuration profile you want to delete.
4418	//
4419	// ConfigurationProfileId is a required field
4420	ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"`
4421}
4422
4423// String returns the string representation
4424func (s DeleteConfigurationProfileInput) String() string {
4425	return awsutil.Prettify(s)
4426}
4427
4428// GoString returns the string representation
4429func (s DeleteConfigurationProfileInput) GoString() string {
4430	return s.String()
4431}
4432
4433// Validate inspects the fields of the type to determine if they are valid.
4434func (s *DeleteConfigurationProfileInput) Validate() error {
4435	invalidParams := request.ErrInvalidParams{Context: "DeleteConfigurationProfileInput"}
4436	if s.ApplicationId == nil {
4437		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
4438	}
4439	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
4440		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
4441	}
4442	if s.ConfigurationProfileId == nil {
4443		invalidParams.Add(request.NewErrParamRequired("ConfigurationProfileId"))
4444	}
4445	if s.ConfigurationProfileId != nil && len(*s.ConfigurationProfileId) < 1 {
4446		invalidParams.Add(request.NewErrParamMinLen("ConfigurationProfileId", 1))
4447	}
4448
4449	if invalidParams.Len() > 0 {
4450		return invalidParams
4451	}
4452	return nil
4453}
4454
4455// SetApplicationId sets the ApplicationId field's value.
4456func (s *DeleteConfigurationProfileInput) SetApplicationId(v string) *DeleteConfigurationProfileInput {
4457	s.ApplicationId = &v
4458	return s
4459}
4460
4461// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
4462func (s *DeleteConfigurationProfileInput) SetConfigurationProfileId(v string) *DeleteConfigurationProfileInput {
4463	s.ConfigurationProfileId = &v
4464	return s
4465}
4466
4467type DeleteConfigurationProfileOutput struct {
4468	_ struct{} `type:"structure"`
4469}
4470
4471// String returns the string representation
4472func (s DeleteConfigurationProfileOutput) String() string {
4473	return awsutil.Prettify(s)
4474}
4475
4476// GoString returns the string representation
4477func (s DeleteConfigurationProfileOutput) GoString() string {
4478	return s.String()
4479}
4480
4481type DeleteDeploymentStrategyInput struct {
4482	_ struct{} `type:"structure"`
4483
4484	// The ID of the deployment strategy you want to delete.
4485	//
4486	// DeploymentStrategyId is a required field
4487	DeploymentStrategyId *string `location:"uri" locationName:"DeploymentStrategyId" type:"string" required:"true"`
4488}
4489
4490// String returns the string representation
4491func (s DeleteDeploymentStrategyInput) String() string {
4492	return awsutil.Prettify(s)
4493}
4494
4495// GoString returns the string representation
4496func (s DeleteDeploymentStrategyInput) GoString() string {
4497	return s.String()
4498}
4499
4500// Validate inspects the fields of the type to determine if they are valid.
4501func (s *DeleteDeploymentStrategyInput) Validate() error {
4502	invalidParams := request.ErrInvalidParams{Context: "DeleteDeploymentStrategyInput"}
4503	if s.DeploymentStrategyId == nil {
4504		invalidParams.Add(request.NewErrParamRequired("DeploymentStrategyId"))
4505	}
4506	if s.DeploymentStrategyId != nil && len(*s.DeploymentStrategyId) < 1 {
4507		invalidParams.Add(request.NewErrParamMinLen("DeploymentStrategyId", 1))
4508	}
4509
4510	if invalidParams.Len() > 0 {
4511		return invalidParams
4512	}
4513	return nil
4514}
4515
4516// SetDeploymentStrategyId sets the DeploymentStrategyId field's value.
4517func (s *DeleteDeploymentStrategyInput) SetDeploymentStrategyId(v string) *DeleteDeploymentStrategyInput {
4518	s.DeploymentStrategyId = &v
4519	return s
4520}
4521
4522type DeleteDeploymentStrategyOutput struct {
4523	_ struct{} `type:"structure"`
4524}
4525
4526// String returns the string representation
4527func (s DeleteDeploymentStrategyOutput) String() string {
4528	return awsutil.Prettify(s)
4529}
4530
4531// GoString returns the string representation
4532func (s DeleteDeploymentStrategyOutput) GoString() string {
4533	return s.String()
4534}
4535
4536type DeleteEnvironmentInput struct {
4537	_ struct{} `type:"structure"`
4538
4539	// The application ID that includes the environment you want to delete.
4540	//
4541	// ApplicationId is a required field
4542	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
4543
4544	// The ID of the environment you want to delete.
4545	//
4546	// EnvironmentId is a required field
4547	EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"`
4548}
4549
4550// String returns the string representation
4551func (s DeleteEnvironmentInput) String() string {
4552	return awsutil.Prettify(s)
4553}
4554
4555// GoString returns the string representation
4556func (s DeleteEnvironmentInput) GoString() string {
4557	return s.String()
4558}
4559
4560// Validate inspects the fields of the type to determine if they are valid.
4561func (s *DeleteEnvironmentInput) Validate() error {
4562	invalidParams := request.ErrInvalidParams{Context: "DeleteEnvironmentInput"}
4563	if s.ApplicationId == nil {
4564		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
4565	}
4566	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
4567		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
4568	}
4569	if s.EnvironmentId == nil {
4570		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
4571	}
4572	if s.EnvironmentId != nil && len(*s.EnvironmentId) < 1 {
4573		invalidParams.Add(request.NewErrParamMinLen("EnvironmentId", 1))
4574	}
4575
4576	if invalidParams.Len() > 0 {
4577		return invalidParams
4578	}
4579	return nil
4580}
4581
4582// SetApplicationId sets the ApplicationId field's value.
4583func (s *DeleteEnvironmentInput) SetApplicationId(v string) *DeleteEnvironmentInput {
4584	s.ApplicationId = &v
4585	return s
4586}
4587
4588// SetEnvironmentId sets the EnvironmentId field's value.
4589func (s *DeleteEnvironmentInput) SetEnvironmentId(v string) *DeleteEnvironmentInput {
4590	s.EnvironmentId = &v
4591	return s
4592}
4593
4594type DeleteEnvironmentOutput struct {
4595	_ struct{} `type:"structure"`
4596}
4597
4598// String returns the string representation
4599func (s DeleteEnvironmentOutput) String() string {
4600	return awsutil.Prettify(s)
4601}
4602
4603// GoString returns the string representation
4604func (s DeleteEnvironmentOutput) GoString() string {
4605	return s.String()
4606}
4607
4608type DeleteHostedConfigurationVersionInput struct {
4609	_ struct{} `type:"structure"`
4610
4611	// The application ID.
4612	//
4613	// ApplicationId is a required field
4614	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
4615
4616	// The configuration profile ID.
4617	//
4618	// ConfigurationProfileId is a required field
4619	ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"`
4620
4621	// The versions number to delete.
4622	//
4623	// VersionNumber is a required field
4624	VersionNumber *int64 `location:"uri" locationName:"VersionNumber" type:"integer" required:"true"`
4625}
4626
4627// String returns the string representation
4628func (s DeleteHostedConfigurationVersionInput) String() string {
4629	return awsutil.Prettify(s)
4630}
4631
4632// GoString returns the string representation
4633func (s DeleteHostedConfigurationVersionInput) GoString() string {
4634	return s.String()
4635}
4636
4637// Validate inspects the fields of the type to determine if they are valid.
4638func (s *DeleteHostedConfigurationVersionInput) Validate() error {
4639	invalidParams := request.ErrInvalidParams{Context: "DeleteHostedConfigurationVersionInput"}
4640	if s.ApplicationId == nil {
4641		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
4642	}
4643	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
4644		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
4645	}
4646	if s.ConfigurationProfileId == nil {
4647		invalidParams.Add(request.NewErrParamRequired("ConfigurationProfileId"))
4648	}
4649	if s.ConfigurationProfileId != nil && len(*s.ConfigurationProfileId) < 1 {
4650		invalidParams.Add(request.NewErrParamMinLen("ConfigurationProfileId", 1))
4651	}
4652	if s.VersionNumber == nil {
4653		invalidParams.Add(request.NewErrParamRequired("VersionNumber"))
4654	}
4655
4656	if invalidParams.Len() > 0 {
4657		return invalidParams
4658	}
4659	return nil
4660}
4661
4662// SetApplicationId sets the ApplicationId field's value.
4663func (s *DeleteHostedConfigurationVersionInput) SetApplicationId(v string) *DeleteHostedConfigurationVersionInput {
4664	s.ApplicationId = &v
4665	return s
4666}
4667
4668// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
4669func (s *DeleteHostedConfigurationVersionInput) SetConfigurationProfileId(v string) *DeleteHostedConfigurationVersionInput {
4670	s.ConfigurationProfileId = &v
4671	return s
4672}
4673
4674// SetVersionNumber sets the VersionNumber field's value.
4675func (s *DeleteHostedConfigurationVersionInput) SetVersionNumber(v int64) *DeleteHostedConfigurationVersionInput {
4676	s.VersionNumber = &v
4677	return s
4678}
4679
4680type DeleteHostedConfigurationVersionOutput struct {
4681	_ struct{} `type:"structure"`
4682}
4683
4684// String returns the string representation
4685func (s DeleteHostedConfigurationVersionOutput) String() string {
4686	return awsutil.Prettify(s)
4687}
4688
4689// GoString returns the string representation
4690func (s DeleteHostedConfigurationVersionOutput) GoString() string {
4691	return s.String()
4692}
4693
4694// An object that describes a deployment event.
4695type DeploymentEvent struct {
4696	_ struct{} `type:"structure"`
4697
4698	// A description of the deployment event. Descriptions include, but are not
4699	// limited to, the user account or the CloudWatch alarm ARN that initiated a
4700	// rollback, the percentage of hosts that received the deployment, or in the
4701	// case of an internal error, a recommendation to attempt a new deployment.
4702	Description *string `type:"string"`
4703
4704	// The type of deployment event. Deployment event types include the start, stop,
4705	// or completion of a deployment; a percentage update; the start or stop of
4706	// a bake period; the start or completion of a rollback.
4707	EventType *string `type:"string" enum:"DeploymentEventType"`
4708
4709	// The date and time the event occurred.
4710	OccurredAt *time.Time `type:"timestamp" timestampFormat:"iso8601"`
4711
4712	// The entity that triggered the deployment event. Events can be triggered by
4713	// a user, AWS AppConfig, an Amazon CloudWatch alarm, or an internal error.
4714	TriggeredBy *string `type:"string" enum:"TriggeredBy"`
4715}
4716
4717// String returns the string representation
4718func (s DeploymentEvent) String() string {
4719	return awsutil.Prettify(s)
4720}
4721
4722// GoString returns the string representation
4723func (s DeploymentEvent) GoString() string {
4724	return s.String()
4725}
4726
4727// SetDescription sets the Description field's value.
4728func (s *DeploymentEvent) SetDescription(v string) *DeploymentEvent {
4729	s.Description = &v
4730	return s
4731}
4732
4733// SetEventType sets the EventType field's value.
4734func (s *DeploymentEvent) SetEventType(v string) *DeploymentEvent {
4735	s.EventType = &v
4736	return s
4737}
4738
4739// SetOccurredAt sets the OccurredAt field's value.
4740func (s *DeploymentEvent) SetOccurredAt(v time.Time) *DeploymentEvent {
4741	s.OccurredAt = &v
4742	return s
4743}
4744
4745// SetTriggeredBy sets the TriggeredBy field's value.
4746func (s *DeploymentEvent) SetTriggeredBy(v string) *DeploymentEvent {
4747	s.TriggeredBy = &v
4748	return s
4749}
4750
4751type DeploymentStrategy struct {
4752	_ struct{} `type:"structure"`
4753
4754	// Total amount of time the deployment lasted.
4755	DeploymentDurationInMinutes *int64 `type:"integer"`
4756
4757	// The description of the deployment strategy.
4758	Description *string `type:"string"`
4759
4760	// The amount of time AppConfig monitored for alarms before considering the
4761	// deployment to be complete and no longer eligible for automatic roll back.
4762	FinalBakeTimeInMinutes *int64 `type:"integer"`
4763
4764	// The percentage of targets that received a deployed configuration during each
4765	// interval.
4766	GrowthFactor *float64 `min:"1" type:"float"`
4767
4768	// The algorithm used to define how percentage grew over time.
4769	GrowthType *string `type:"string" enum:"GrowthType"`
4770
4771	// The deployment strategy ID.
4772	Id *string `type:"string"`
4773
4774	// The name of the deployment strategy.
4775	Name *string `min:"1" type:"string"`
4776
4777	// Save the deployment strategy to a Systems Manager (SSM) document.
4778	ReplicateTo *string `type:"string" enum:"ReplicateTo"`
4779}
4780
4781// String returns the string representation
4782func (s DeploymentStrategy) String() string {
4783	return awsutil.Prettify(s)
4784}
4785
4786// GoString returns the string representation
4787func (s DeploymentStrategy) GoString() string {
4788	return s.String()
4789}
4790
4791// SetDeploymentDurationInMinutes sets the DeploymentDurationInMinutes field's value.
4792func (s *DeploymentStrategy) SetDeploymentDurationInMinutes(v int64) *DeploymentStrategy {
4793	s.DeploymentDurationInMinutes = &v
4794	return s
4795}
4796
4797// SetDescription sets the Description field's value.
4798func (s *DeploymentStrategy) SetDescription(v string) *DeploymentStrategy {
4799	s.Description = &v
4800	return s
4801}
4802
4803// SetFinalBakeTimeInMinutes sets the FinalBakeTimeInMinutes field's value.
4804func (s *DeploymentStrategy) SetFinalBakeTimeInMinutes(v int64) *DeploymentStrategy {
4805	s.FinalBakeTimeInMinutes = &v
4806	return s
4807}
4808
4809// SetGrowthFactor sets the GrowthFactor field's value.
4810func (s *DeploymentStrategy) SetGrowthFactor(v float64) *DeploymentStrategy {
4811	s.GrowthFactor = &v
4812	return s
4813}
4814
4815// SetGrowthType sets the GrowthType field's value.
4816func (s *DeploymentStrategy) SetGrowthType(v string) *DeploymentStrategy {
4817	s.GrowthType = &v
4818	return s
4819}
4820
4821// SetId sets the Id field's value.
4822func (s *DeploymentStrategy) SetId(v string) *DeploymentStrategy {
4823	s.Id = &v
4824	return s
4825}
4826
4827// SetName sets the Name field's value.
4828func (s *DeploymentStrategy) SetName(v string) *DeploymentStrategy {
4829	s.Name = &v
4830	return s
4831}
4832
4833// SetReplicateTo sets the ReplicateTo field's value.
4834func (s *DeploymentStrategy) SetReplicateTo(v string) *DeploymentStrategy {
4835	s.ReplicateTo = &v
4836	return s
4837}
4838
4839// Information about the deployment.
4840type DeploymentSummary struct {
4841	_ struct{} `type:"structure"`
4842
4843	// Time the deployment completed.
4844	CompletedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"`
4845
4846	// The name of the configuration.
4847	ConfigurationName *string `min:"1" type:"string"`
4848
4849	// The version of the configuration.
4850	ConfigurationVersion *string `min:"1" type:"string"`
4851
4852	// Total amount of time the deployment lasted.
4853	DeploymentDurationInMinutes *int64 `type:"integer"`
4854
4855	// The sequence number of the deployment.
4856	DeploymentNumber *int64 `type:"integer"`
4857
4858	// The amount of time AppConfig monitors for alarms before considering the deployment
4859	// to be complete and no longer eligible for automatic roll back.
4860	FinalBakeTimeInMinutes *int64 `type:"integer"`
4861
4862	// The percentage of targets to receive a deployed configuration during each
4863	// interval.
4864	GrowthFactor *float64 `min:"1" type:"float"`
4865
4866	// The algorithm used to define how percentage grows over time.
4867	GrowthType *string `type:"string" enum:"GrowthType"`
4868
4869	// The percentage of targets for which the deployment is available.
4870	PercentageComplete *float64 `min:"1" type:"float"`
4871
4872	// Time the deployment started.
4873	StartedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"`
4874
4875	// The state of the deployment.
4876	State *string `type:"string" enum:"DeploymentState"`
4877}
4878
4879// String returns the string representation
4880func (s DeploymentSummary) String() string {
4881	return awsutil.Prettify(s)
4882}
4883
4884// GoString returns the string representation
4885func (s DeploymentSummary) GoString() string {
4886	return s.String()
4887}
4888
4889// SetCompletedAt sets the CompletedAt field's value.
4890func (s *DeploymentSummary) SetCompletedAt(v time.Time) *DeploymentSummary {
4891	s.CompletedAt = &v
4892	return s
4893}
4894
4895// SetConfigurationName sets the ConfigurationName field's value.
4896func (s *DeploymentSummary) SetConfigurationName(v string) *DeploymentSummary {
4897	s.ConfigurationName = &v
4898	return s
4899}
4900
4901// SetConfigurationVersion sets the ConfigurationVersion field's value.
4902func (s *DeploymentSummary) SetConfigurationVersion(v string) *DeploymentSummary {
4903	s.ConfigurationVersion = &v
4904	return s
4905}
4906
4907// SetDeploymentDurationInMinutes sets the DeploymentDurationInMinutes field's value.
4908func (s *DeploymentSummary) SetDeploymentDurationInMinutes(v int64) *DeploymentSummary {
4909	s.DeploymentDurationInMinutes = &v
4910	return s
4911}
4912
4913// SetDeploymentNumber sets the DeploymentNumber field's value.
4914func (s *DeploymentSummary) SetDeploymentNumber(v int64) *DeploymentSummary {
4915	s.DeploymentNumber = &v
4916	return s
4917}
4918
4919// SetFinalBakeTimeInMinutes sets the FinalBakeTimeInMinutes field's value.
4920func (s *DeploymentSummary) SetFinalBakeTimeInMinutes(v int64) *DeploymentSummary {
4921	s.FinalBakeTimeInMinutes = &v
4922	return s
4923}
4924
4925// SetGrowthFactor sets the GrowthFactor field's value.
4926func (s *DeploymentSummary) SetGrowthFactor(v float64) *DeploymentSummary {
4927	s.GrowthFactor = &v
4928	return s
4929}
4930
4931// SetGrowthType sets the GrowthType field's value.
4932func (s *DeploymentSummary) SetGrowthType(v string) *DeploymentSummary {
4933	s.GrowthType = &v
4934	return s
4935}
4936
4937// SetPercentageComplete sets the PercentageComplete field's value.
4938func (s *DeploymentSummary) SetPercentageComplete(v float64) *DeploymentSummary {
4939	s.PercentageComplete = &v
4940	return s
4941}
4942
4943// SetStartedAt sets the StartedAt field's value.
4944func (s *DeploymentSummary) SetStartedAt(v time.Time) *DeploymentSummary {
4945	s.StartedAt = &v
4946	return s
4947}
4948
4949// SetState sets the State field's value.
4950func (s *DeploymentSummary) SetState(v string) *DeploymentSummary {
4951	s.State = &v
4952	return s
4953}
4954
4955type Environment struct {
4956	_ struct{} `type:"structure"`
4957
4958	// The application ID.
4959	ApplicationId *string `type:"string"`
4960
4961	// The description of the environment.
4962	Description *string `type:"string"`
4963
4964	// The environment ID.
4965	Id *string `type:"string"`
4966
4967	// Amazon CloudWatch alarms monitored during the deployment.
4968	Monitors []*Monitor `type:"list"`
4969
4970	// The name of the environment.
4971	Name *string `min:"1" type:"string"`
4972
4973	// The state of the environment. An environment can be in one of the following
4974	// states: READY_FOR_DEPLOYMENT, DEPLOYING, ROLLING_BACK, or ROLLED_BACK
4975	State *string `type:"string" enum:"EnvironmentState"`
4976}
4977
4978// String returns the string representation
4979func (s Environment) String() string {
4980	return awsutil.Prettify(s)
4981}
4982
4983// GoString returns the string representation
4984func (s Environment) GoString() string {
4985	return s.String()
4986}
4987
4988// SetApplicationId sets the ApplicationId field's value.
4989func (s *Environment) SetApplicationId(v string) *Environment {
4990	s.ApplicationId = &v
4991	return s
4992}
4993
4994// SetDescription sets the Description field's value.
4995func (s *Environment) SetDescription(v string) *Environment {
4996	s.Description = &v
4997	return s
4998}
4999
5000// SetId sets the Id field's value.
5001func (s *Environment) SetId(v string) *Environment {
5002	s.Id = &v
5003	return s
5004}
5005
5006// SetMonitors sets the Monitors field's value.
5007func (s *Environment) SetMonitors(v []*Monitor) *Environment {
5008	s.Monitors = v
5009	return s
5010}
5011
5012// SetName sets the Name field's value.
5013func (s *Environment) SetName(v string) *Environment {
5014	s.Name = &v
5015	return s
5016}
5017
5018// SetState sets the State field's value.
5019func (s *Environment) SetState(v string) *Environment {
5020	s.State = &v
5021	return s
5022}
5023
5024type GetApplicationInput struct {
5025	_ struct{} `type:"structure"`
5026
5027	// The ID of the application you want to get.
5028	//
5029	// ApplicationId is a required field
5030	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
5031}
5032
5033// String returns the string representation
5034func (s GetApplicationInput) String() string {
5035	return awsutil.Prettify(s)
5036}
5037
5038// GoString returns the string representation
5039func (s GetApplicationInput) GoString() string {
5040	return s.String()
5041}
5042
5043// Validate inspects the fields of the type to determine if they are valid.
5044func (s *GetApplicationInput) Validate() error {
5045	invalidParams := request.ErrInvalidParams{Context: "GetApplicationInput"}
5046	if s.ApplicationId == nil {
5047		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
5048	}
5049	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
5050		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
5051	}
5052
5053	if invalidParams.Len() > 0 {
5054		return invalidParams
5055	}
5056	return nil
5057}
5058
5059// SetApplicationId sets the ApplicationId field's value.
5060func (s *GetApplicationInput) SetApplicationId(v string) *GetApplicationInput {
5061	s.ApplicationId = &v
5062	return s
5063}
5064
5065type GetApplicationOutput struct {
5066	_ struct{} `type:"structure"`
5067
5068	// The description of the application.
5069	Description *string `type:"string"`
5070
5071	// The application ID.
5072	Id *string `type:"string"`
5073
5074	// The application name.
5075	Name *string `min:"1" type:"string"`
5076}
5077
5078// String returns the string representation
5079func (s GetApplicationOutput) String() string {
5080	return awsutil.Prettify(s)
5081}
5082
5083// GoString returns the string representation
5084func (s GetApplicationOutput) GoString() string {
5085	return s.String()
5086}
5087
5088// SetDescription sets the Description field's value.
5089func (s *GetApplicationOutput) SetDescription(v string) *GetApplicationOutput {
5090	s.Description = &v
5091	return s
5092}
5093
5094// SetId sets the Id field's value.
5095func (s *GetApplicationOutput) SetId(v string) *GetApplicationOutput {
5096	s.Id = &v
5097	return s
5098}
5099
5100// SetName sets the Name field's value.
5101func (s *GetApplicationOutput) SetName(v string) *GetApplicationOutput {
5102	s.Name = &v
5103	return s
5104}
5105
5106type GetConfigurationInput struct {
5107	_ struct{} `type:"structure"`
5108
5109	// The application to get. Specify either the application name or the application
5110	// ID.
5111	//
5112	// Application is a required field
5113	Application *string `location:"uri" locationName:"Application" min:"1" type:"string" required:"true"`
5114
5115	// The configuration version returned in the most recent GetConfiguration response.
5116	//
5117	// AWS AppConfig uses the value of the ClientConfigurationVersion parameter
5118	// to identify the configuration version on your clients. If you don’t send
5119	// ClientConfigurationVersion with each call to GetConfiguration, your clients
5120	// receive the current configuration. You are charged each time your clients
5121	// receive a configuration.
5122	//
5123	// To avoid excess charges, we recommend that you include the ClientConfigurationVersion
5124	// value with every call to GetConfiguration. This value must be saved on your
5125	// client. Subsequent calls to GetConfiguration must pass this value by using
5126	// the ClientConfigurationVersion parameter.
5127	//
5128	// For more information about working with configurations, see Retrieving the
5129	// Configuration (https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig-retrieving-the-configuration.html)
5130	// in the AWS AppConfig User Guide.
5131	ClientConfigurationVersion *string `location:"querystring" locationName:"client_configuration_version" min:"1" type:"string"`
5132
5133	// A unique ID to identify the client for the configuration. This ID enables
5134	// AppConfig to deploy the configuration in intervals, as defined in the deployment
5135	// strategy.
5136	//
5137	// ClientId is a required field
5138	ClientId *string `location:"querystring" locationName:"client_id" min:"1" type:"string" required:"true"`
5139
5140	// The configuration to get. Specify either the configuration name or the configuration
5141	// ID.
5142	//
5143	// Configuration is a required field
5144	Configuration *string `location:"uri" locationName:"Configuration" min:"1" type:"string" required:"true"`
5145
5146	// The environment to get. Specify either the environment name or the environment
5147	// ID.
5148	//
5149	// Environment is a required field
5150	Environment *string `location:"uri" locationName:"Environment" min:"1" type:"string" required:"true"`
5151}
5152
5153// String returns the string representation
5154func (s GetConfigurationInput) String() string {
5155	return awsutil.Prettify(s)
5156}
5157
5158// GoString returns the string representation
5159func (s GetConfigurationInput) GoString() string {
5160	return s.String()
5161}
5162
5163// Validate inspects the fields of the type to determine if they are valid.
5164func (s *GetConfigurationInput) Validate() error {
5165	invalidParams := request.ErrInvalidParams{Context: "GetConfigurationInput"}
5166	if s.Application == nil {
5167		invalidParams.Add(request.NewErrParamRequired("Application"))
5168	}
5169	if s.Application != nil && len(*s.Application) < 1 {
5170		invalidParams.Add(request.NewErrParamMinLen("Application", 1))
5171	}
5172	if s.ClientConfigurationVersion != nil && len(*s.ClientConfigurationVersion) < 1 {
5173		invalidParams.Add(request.NewErrParamMinLen("ClientConfigurationVersion", 1))
5174	}
5175	if s.ClientId == nil {
5176		invalidParams.Add(request.NewErrParamRequired("ClientId"))
5177	}
5178	if s.ClientId != nil && len(*s.ClientId) < 1 {
5179		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
5180	}
5181	if s.Configuration == nil {
5182		invalidParams.Add(request.NewErrParamRequired("Configuration"))
5183	}
5184	if s.Configuration != nil && len(*s.Configuration) < 1 {
5185		invalidParams.Add(request.NewErrParamMinLen("Configuration", 1))
5186	}
5187	if s.Environment == nil {
5188		invalidParams.Add(request.NewErrParamRequired("Environment"))
5189	}
5190	if s.Environment != nil && len(*s.Environment) < 1 {
5191		invalidParams.Add(request.NewErrParamMinLen("Environment", 1))
5192	}
5193
5194	if invalidParams.Len() > 0 {
5195		return invalidParams
5196	}
5197	return nil
5198}
5199
5200// SetApplication sets the Application field's value.
5201func (s *GetConfigurationInput) SetApplication(v string) *GetConfigurationInput {
5202	s.Application = &v
5203	return s
5204}
5205
5206// SetClientConfigurationVersion sets the ClientConfigurationVersion field's value.
5207func (s *GetConfigurationInput) SetClientConfigurationVersion(v string) *GetConfigurationInput {
5208	s.ClientConfigurationVersion = &v
5209	return s
5210}
5211
5212// SetClientId sets the ClientId field's value.
5213func (s *GetConfigurationInput) SetClientId(v string) *GetConfigurationInput {
5214	s.ClientId = &v
5215	return s
5216}
5217
5218// SetConfiguration sets the Configuration field's value.
5219func (s *GetConfigurationInput) SetConfiguration(v string) *GetConfigurationInput {
5220	s.Configuration = &v
5221	return s
5222}
5223
5224// SetEnvironment sets the Environment field's value.
5225func (s *GetConfigurationInput) SetEnvironment(v string) *GetConfigurationInput {
5226	s.Environment = &v
5227	return s
5228}
5229
5230type GetConfigurationOutput struct {
5231	_ struct{} `type:"structure" payload:"Content"`
5232
5233	// The configuration version.
5234	ConfigurationVersion *string `location:"header" locationName:"Configuration-Version" min:"1" type:"string"`
5235
5236	// The content of the configuration or the configuration data.
5237	Content []byte `type:"blob" sensitive:"true"`
5238
5239	// A standard MIME type describing the format of the configuration content.
5240	// For more information, see Content-Type (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17).
5241	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
5242}
5243
5244// String returns the string representation
5245func (s GetConfigurationOutput) String() string {
5246	return awsutil.Prettify(s)
5247}
5248
5249// GoString returns the string representation
5250func (s GetConfigurationOutput) GoString() string {
5251	return s.String()
5252}
5253
5254// SetConfigurationVersion sets the ConfigurationVersion field's value.
5255func (s *GetConfigurationOutput) SetConfigurationVersion(v string) *GetConfigurationOutput {
5256	s.ConfigurationVersion = &v
5257	return s
5258}
5259
5260// SetContent sets the Content field's value.
5261func (s *GetConfigurationOutput) SetContent(v []byte) *GetConfigurationOutput {
5262	s.Content = v
5263	return s
5264}
5265
5266// SetContentType sets the ContentType field's value.
5267func (s *GetConfigurationOutput) SetContentType(v string) *GetConfigurationOutput {
5268	s.ContentType = &v
5269	return s
5270}
5271
5272type GetConfigurationProfileInput struct {
5273	_ struct{} `type:"structure"`
5274
5275	// The ID of the application that includes the configuration profile you want
5276	// to get.
5277	//
5278	// ApplicationId is a required field
5279	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
5280
5281	// The ID of the configuration profile you want to get.
5282	//
5283	// ConfigurationProfileId is a required field
5284	ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"`
5285}
5286
5287// String returns the string representation
5288func (s GetConfigurationProfileInput) String() string {
5289	return awsutil.Prettify(s)
5290}
5291
5292// GoString returns the string representation
5293func (s GetConfigurationProfileInput) GoString() string {
5294	return s.String()
5295}
5296
5297// Validate inspects the fields of the type to determine if they are valid.
5298func (s *GetConfigurationProfileInput) Validate() error {
5299	invalidParams := request.ErrInvalidParams{Context: "GetConfigurationProfileInput"}
5300	if s.ApplicationId == nil {
5301		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
5302	}
5303	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
5304		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
5305	}
5306	if s.ConfigurationProfileId == nil {
5307		invalidParams.Add(request.NewErrParamRequired("ConfigurationProfileId"))
5308	}
5309	if s.ConfigurationProfileId != nil && len(*s.ConfigurationProfileId) < 1 {
5310		invalidParams.Add(request.NewErrParamMinLen("ConfigurationProfileId", 1))
5311	}
5312
5313	if invalidParams.Len() > 0 {
5314		return invalidParams
5315	}
5316	return nil
5317}
5318
5319// SetApplicationId sets the ApplicationId field's value.
5320func (s *GetConfigurationProfileInput) SetApplicationId(v string) *GetConfigurationProfileInput {
5321	s.ApplicationId = &v
5322	return s
5323}
5324
5325// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
5326func (s *GetConfigurationProfileInput) SetConfigurationProfileId(v string) *GetConfigurationProfileInput {
5327	s.ConfigurationProfileId = &v
5328	return s
5329}
5330
5331type GetConfigurationProfileOutput struct {
5332	_ struct{} `type:"structure"`
5333
5334	// The application ID.
5335	ApplicationId *string `type:"string"`
5336
5337	// The configuration profile description.
5338	Description *string `type:"string"`
5339
5340	// The configuration profile ID.
5341	Id *string `type:"string"`
5342
5343	// The URI location of the configuration.
5344	LocationUri *string `min:"1" type:"string"`
5345
5346	// The name of the configuration profile.
5347	Name *string `min:"1" type:"string"`
5348
5349	// The ARN of an IAM role with permission to access the configuration at the
5350	// specified LocationUri.
5351	RetrievalRoleArn *string `min:"20" type:"string"`
5352
5353	// A list of methods for validating the configuration.
5354	Validators []*Validator `type:"list"`
5355}
5356
5357// String returns the string representation
5358func (s GetConfigurationProfileOutput) String() string {
5359	return awsutil.Prettify(s)
5360}
5361
5362// GoString returns the string representation
5363func (s GetConfigurationProfileOutput) GoString() string {
5364	return s.String()
5365}
5366
5367// SetApplicationId sets the ApplicationId field's value.
5368func (s *GetConfigurationProfileOutput) SetApplicationId(v string) *GetConfigurationProfileOutput {
5369	s.ApplicationId = &v
5370	return s
5371}
5372
5373// SetDescription sets the Description field's value.
5374func (s *GetConfigurationProfileOutput) SetDescription(v string) *GetConfigurationProfileOutput {
5375	s.Description = &v
5376	return s
5377}
5378
5379// SetId sets the Id field's value.
5380func (s *GetConfigurationProfileOutput) SetId(v string) *GetConfigurationProfileOutput {
5381	s.Id = &v
5382	return s
5383}
5384
5385// SetLocationUri sets the LocationUri field's value.
5386func (s *GetConfigurationProfileOutput) SetLocationUri(v string) *GetConfigurationProfileOutput {
5387	s.LocationUri = &v
5388	return s
5389}
5390
5391// SetName sets the Name field's value.
5392func (s *GetConfigurationProfileOutput) SetName(v string) *GetConfigurationProfileOutput {
5393	s.Name = &v
5394	return s
5395}
5396
5397// SetRetrievalRoleArn sets the RetrievalRoleArn field's value.
5398func (s *GetConfigurationProfileOutput) SetRetrievalRoleArn(v string) *GetConfigurationProfileOutput {
5399	s.RetrievalRoleArn = &v
5400	return s
5401}
5402
5403// SetValidators sets the Validators field's value.
5404func (s *GetConfigurationProfileOutput) SetValidators(v []*Validator) *GetConfigurationProfileOutput {
5405	s.Validators = v
5406	return s
5407}
5408
5409type GetDeploymentInput struct {
5410	_ struct{} `type:"structure"`
5411
5412	// The ID of the application that includes the deployment you want to get.
5413	//
5414	// ApplicationId is a required field
5415	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
5416
5417	// The sequence number of the deployment.
5418	//
5419	// DeploymentNumber is a required field
5420	DeploymentNumber *int64 `location:"uri" locationName:"DeploymentNumber" type:"integer" required:"true"`
5421
5422	// The ID of the environment that includes the deployment you want to get.
5423	//
5424	// EnvironmentId is a required field
5425	EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"`
5426}
5427
5428// String returns the string representation
5429func (s GetDeploymentInput) String() string {
5430	return awsutil.Prettify(s)
5431}
5432
5433// GoString returns the string representation
5434func (s GetDeploymentInput) GoString() string {
5435	return s.String()
5436}
5437
5438// Validate inspects the fields of the type to determine if they are valid.
5439func (s *GetDeploymentInput) Validate() error {
5440	invalidParams := request.ErrInvalidParams{Context: "GetDeploymentInput"}
5441	if s.ApplicationId == nil {
5442		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
5443	}
5444	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
5445		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
5446	}
5447	if s.DeploymentNumber == nil {
5448		invalidParams.Add(request.NewErrParamRequired("DeploymentNumber"))
5449	}
5450	if s.EnvironmentId == nil {
5451		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
5452	}
5453	if s.EnvironmentId != nil && len(*s.EnvironmentId) < 1 {
5454		invalidParams.Add(request.NewErrParamMinLen("EnvironmentId", 1))
5455	}
5456
5457	if invalidParams.Len() > 0 {
5458		return invalidParams
5459	}
5460	return nil
5461}
5462
5463// SetApplicationId sets the ApplicationId field's value.
5464func (s *GetDeploymentInput) SetApplicationId(v string) *GetDeploymentInput {
5465	s.ApplicationId = &v
5466	return s
5467}
5468
5469// SetDeploymentNumber sets the DeploymentNumber field's value.
5470func (s *GetDeploymentInput) SetDeploymentNumber(v int64) *GetDeploymentInput {
5471	s.DeploymentNumber = &v
5472	return s
5473}
5474
5475// SetEnvironmentId sets the EnvironmentId field's value.
5476func (s *GetDeploymentInput) SetEnvironmentId(v string) *GetDeploymentInput {
5477	s.EnvironmentId = &v
5478	return s
5479}
5480
5481type GetDeploymentOutput struct {
5482	_ struct{} `type:"structure"`
5483
5484	// The ID of the application that was deployed.
5485	ApplicationId *string `type:"string"`
5486
5487	// The time the deployment completed.
5488	CompletedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"`
5489
5490	// Information about the source location of the configuration.
5491	ConfigurationLocationUri *string `min:"1" type:"string"`
5492
5493	// The name of the configuration.
5494	ConfigurationName *string `min:"1" type:"string"`
5495
5496	// The ID of the configuration profile that was deployed.
5497	ConfigurationProfileId *string `type:"string"`
5498
5499	// The configuration version that was deployed.
5500	ConfigurationVersion *string `min:"1" type:"string"`
5501
5502	// Total amount of time the deployment lasted.
5503	DeploymentDurationInMinutes *int64 `type:"integer"`
5504
5505	// The sequence number of the deployment.
5506	DeploymentNumber *int64 `type:"integer"`
5507
5508	// The ID of the deployment strategy that was deployed.
5509	DeploymentStrategyId *string `type:"string"`
5510
5511	// The description of the deployment.
5512	Description *string `type:"string"`
5513
5514	// The ID of the environment that was deployed.
5515	EnvironmentId *string `type:"string"`
5516
5517	// A list containing all events related to a deployment. The most recent events
5518	// are displayed first.
5519	EventLog []*DeploymentEvent `type:"list"`
5520
5521	// The amount of time AppConfig monitored for alarms before considering the
5522	// deployment to be complete and no longer eligible for automatic roll back.
5523	FinalBakeTimeInMinutes *int64 `type:"integer"`
5524
5525	// The percentage of targets to receive a deployed configuration during each
5526	// interval.
5527	GrowthFactor *float64 `min:"1" type:"float"`
5528
5529	// The algorithm used to define how percentage grew over time.
5530	GrowthType *string `type:"string" enum:"GrowthType"`
5531
5532	// The percentage of targets for which the deployment is available.
5533	PercentageComplete *float64 `min:"1" type:"float"`
5534
5535	// The time the deployment started.
5536	StartedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"`
5537
5538	// The state of the deployment.
5539	State *string `type:"string" enum:"DeploymentState"`
5540}
5541
5542// String returns the string representation
5543func (s GetDeploymentOutput) String() string {
5544	return awsutil.Prettify(s)
5545}
5546
5547// GoString returns the string representation
5548func (s GetDeploymentOutput) GoString() string {
5549	return s.String()
5550}
5551
5552// SetApplicationId sets the ApplicationId field's value.
5553func (s *GetDeploymentOutput) SetApplicationId(v string) *GetDeploymentOutput {
5554	s.ApplicationId = &v
5555	return s
5556}
5557
5558// SetCompletedAt sets the CompletedAt field's value.
5559func (s *GetDeploymentOutput) SetCompletedAt(v time.Time) *GetDeploymentOutput {
5560	s.CompletedAt = &v
5561	return s
5562}
5563
5564// SetConfigurationLocationUri sets the ConfigurationLocationUri field's value.
5565func (s *GetDeploymentOutput) SetConfigurationLocationUri(v string) *GetDeploymentOutput {
5566	s.ConfigurationLocationUri = &v
5567	return s
5568}
5569
5570// SetConfigurationName sets the ConfigurationName field's value.
5571func (s *GetDeploymentOutput) SetConfigurationName(v string) *GetDeploymentOutput {
5572	s.ConfigurationName = &v
5573	return s
5574}
5575
5576// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
5577func (s *GetDeploymentOutput) SetConfigurationProfileId(v string) *GetDeploymentOutput {
5578	s.ConfigurationProfileId = &v
5579	return s
5580}
5581
5582// SetConfigurationVersion sets the ConfigurationVersion field's value.
5583func (s *GetDeploymentOutput) SetConfigurationVersion(v string) *GetDeploymentOutput {
5584	s.ConfigurationVersion = &v
5585	return s
5586}
5587
5588// SetDeploymentDurationInMinutes sets the DeploymentDurationInMinutes field's value.
5589func (s *GetDeploymentOutput) SetDeploymentDurationInMinutes(v int64) *GetDeploymentOutput {
5590	s.DeploymentDurationInMinutes = &v
5591	return s
5592}
5593
5594// SetDeploymentNumber sets the DeploymentNumber field's value.
5595func (s *GetDeploymentOutput) SetDeploymentNumber(v int64) *GetDeploymentOutput {
5596	s.DeploymentNumber = &v
5597	return s
5598}
5599
5600// SetDeploymentStrategyId sets the DeploymentStrategyId field's value.
5601func (s *GetDeploymentOutput) SetDeploymentStrategyId(v string) *GetDeploymentOutput {
5602	s.DeploymentStrategyId = &v
5603	return s
5604}
5605
5606// SetDescription sets the Description field's value.
5607func (s *GetDeploymentOutput) SetDescription(v string) *GetDeploymentOutput {
5608	s.Description = &v
5609	return s
5610}
5611
5612// SetEnvironmentId sets the EnvironmentId field's value.
5613func (s *GetDeploymentOutput) SetEnvironmentId(v string) *GetDeploymentOutput {
5614	s.EnvironmentId = &v
5615	return s
5616}
5617
5618// SetEventLog sets the EventLog field's value.
5619func (s *GetDeploymentOutput) SetEventLog(v []*DeploymentEvent) *GetDeploymentOutput {
5620	s.EventLog = v
5621	return s
5622}
5623
5624// SetFinalBakeTimeInMinutes sets the FinalBakeTimeInMinutes field's value.
5625func (s *GetDeploymentOutput) SetFinalBakeTimeInMinutes(v int64) *GetDeploymentOutput {
5626	s.FinalBakeTimeInMinutes = &v
5627	return s
5628}
5629
5630// SetGrowthFactor sets the GrowthFactor field's value.
5631func (s *GetDeploymentOutput) SetGrowthFactor(v float64) *GetDeploymentOutput {
5632	s.GrowthFactor = &v
5633	return s
5634}
5635
5636// SetGrowthType sets the GrowthType field's value.
5637func (s *GetDeploymentOutput) SetGrowthType(v string) *GetDeploymentOutput {
5638	s.GrowthType = &v
5639	return s
5640}
5641
5642// SetPercentageComplete sets the PercentageComplete field's value.
5643func (s *GetDeploymentOutput) SetPercentageComplete(v float64) *GetDeploymentOutput {
5644	s.PercentageComplete = &v
5645	return s
5646}
5647
5648// SetStartedAt sets the StartedAt field's value.
5649func (s *GetDeploymentOutput) SetStartedAt(v time.Time) *GetDeploymentOutput {
5650	s.StartedAt = &v
5651	return s
5652}
5653
5654// SetState sets the State field's value.
5655func (s *GetDeploymentOutput) SetState(v string) *GetDeploymentOutput {
5656	s.State = &v
5657	return s
5658}
5659
5660type GetDeploymentStrategyInput struct {
5661	_ struct{} `type:"structure"`
5662
5663	// The ID of the deployment strategy to get.
5664	//
5665	// DeploymentStrategyId is a required field
5666	DeploymentStrategyId *string `location:"uri" locationName:"DeploymentStrategyId" type:"string" required:"true"`
5667}
5668
5669// String returns the string representation
5670func (s GetDeploymentStrategyInput) String() string {
5671	return awsutil.Prettify(s)
5672}
5673
5674// GoString returns the string representation
5675func (s GetDeploymentStrategyInput) GoString() string {
5676	return s.String()
5677}
5678
5679// Validate inspects the fields of the type to determine if they are valid.
5680func (s *GetDeploymentStrategyInput) Validate() error {
5681	invalidParams := request.ErrInvalidParams{Context: "GetDeploymentStrategyInput"}
5682	if s.DeploymentStrategyId == nil {
5683		invalidParams.Add(request.NewErrParamRequired("DeploymentStrategyId"))
5684	}
5685	if s.DeploymentStrategyId != nil && len(*s.DeploymentStrategyId) < 1 {
5686		invalidParams.Add(request.NewErrParamMinLen("DeploymentStrategyId", 1))
5687	}
5688
5689	if invalidParams.Len() > 0 {
5690		return invalidParams
5691	}
5692	return nil
5693}
5694
5695// SetDeploymentStrategyId sets the DeploymentStrategyId field's value.
5696func (s *GetDeploymentStrategyInput) SetDeploymentStrategyId(v string) *GetDeploymentStrategyInput {
5697	s.DeploymentStrategyId = &v
5698	return s
5699}
5700
5701type GetDeploymentStrategyOutput struct {
5702	_ struct{} `type:"structure"`
5703
5704	// Total amount of time the deployment lasted.
5705	DeploymentDurationInMinutes *int64 `type:"integer"`
5706
5707	// The description of the deployment strategy.
5708	Description *string `type:"string"`
5709
5710	// The amount of time AppConfig monitored for alarms before considering the
5711	// deployment to be complete and no longer eligible for automatic roll back.
5712	FinalBakeTimeInMinutes *int64 `type:"integer"`
5713
5714	// The percentage of targets that received a deployed configuration during each
5715	// interval.
5716	GrowthFactor *float64 `min:"1" type:"float"`
5717
5718	// The algorithm used to define how percentage grew over time.
5719	GrowthType *string `type:"string" enum:"GrowthType"`
5720
5721	// The deployment strategy ID.
5722	Id *string `type:"string"`
5723
5724	// The name of the deployment strategy.
5725	Name *string `min:"1" type:"string"`
5726
5727	// Save the deployment strategy to a Systems Manager (SSM) document.
5728	ReplicateTo *string `type:"string" enum:"ReplicateTo"`
5729}
5730
5731// String returns the string representation
5732func (s GetDeploymentStrategyOutput) String() string {
5733	return awsutil.Prettify(s)
5734}
5735
5736// GoString returns the string representation
5737func (s GetDeploymentStrategyOutput) GoString() string {
5738	return s.String()
5739}
5740
5741// SetDeploymentDurationInMinutes sets the DeploymentDurationInMinutes field's value.
5742func (s *GetDeploymentStrategyOutput) SetDeploymentDurationInMinutes(v int64) *GetDeploymentStrategyOutput {
5743	s.DeploymentDurationInMinutes = &v
5744	return s
5745}
5746
5747// SetDescription sets the Description field's value.
5748func (s *GetDeploymentStrategyOutput) SetDescription(v string) *GetDeploymentStrategyOutput {
5749	s.Description = &v
5750	return s
5751}
5752
5753// SetFinalBakeTimeInMinutes sets the FinalBakeTimeInMinutes field's value.
5754func (s *GetDeploymentStrategyOutput) SetFinalBakeTimeInMinutes(v int64) *GetDeploymentStrategyOutput {
5755	s.FinalBakeTimeInMinutes = &v
5756	return s
5757}
5758
5759// SetGrowthFactor sets the GrowthFactor field's value.
5760func (s *GetDeploymentStrategyOutput) SetGrowthFactor(v float64) *GetDeploymentStrategyOutput {
5761	s.GrowthFactor = &v
5762	return s
5763}
5764
5765// SetGrowthType sets the GrowthType field's value.
5766func (s *GetDeploymentStrategyOutput) SetGrowthType(v string) *GetDeploymentStrategyOutput {
5767	s.GrowthType = &v
5768	return s
5769}
5770
5771// SetId sets the Id field's value.
5772func (s *GetDeploymentStrategyOutput) SetId(v string) *GetDeploymentStrategyOutput {
5773	s.Id = &v
5774	return s
5775}
5776
5777// SetName sets the Name field's value.
5778func (s *GetDeploymentStrategyOutput) SetName(v string) *GetDeploymentStrategyOutput {
5779	s.Name = &v
5780	return s
5781}
5782
5783// SetReplicateTo sets the ReplicateTo field's value.
5784func (s *GetDeploymentStrategyOutput) SetReplicateTo(v string) *GetDeploymentStrategyOutput {
5785	s.ReplicateTo = &v
5786	return s
5787}
5788
5789type GetEnvironmentInput struct {
5790	_ struct{} `type:"structure"`
5791
5792	// The ID of the application that includes the environment you want to get.
5793	//
5794	// ApplicationId is a required field
5795	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
5796
5797	// The ID of the environment you wnat to get.
5798	//
5799	// EnvironmentId is a required field
5800	EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"`
5801}
5802
5803// String returns the string representation
5804func (s GetEnvironmentInput) String() string {
5805	return awsutil.Prettify(s)
5806}
5807
5808// GoString returns the string representation
5809func (s GetEnvironmentInput) GoString() string {
5810	return s.String()
5811}
5812
5813// Validate inspects the fields of the type to determine if they are valid.
5814func (s *GetEnvironmentInput) Validate() error {
5815	invalidParams := request.ErrInvalidParams{Context: "GetEnvironmentInput"}
5816	if s.ApplicationId == nil {
5817		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
5818	}
5819	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
5820		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
5821	}
5822	if s.EnvironmentId == nil {
5823		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
5824	}
5825	if s.EnvironmentId != nil && len(*s.EnvironmentId) < 1 {
5826		invalidParams.Add(request.NewErrParamMinLen("EnvironmentId", 1))
5827	}
5828
5829	if invalidParams.Len() > 0 {
5830		return invalidParams
5831	}
5832	return nil
5833}
5834
5835// SetApplicationId sets the ApplicationId field's value.
5836func (s *GetEnvironmentInput) SetApplicationId(v string) *GetEnvironmentInput {
5837	s.ApplicationId = &v
5838	return s
5839}
5840
5841// SetEnvironmentId sets the EnvironmentId field's value.
5842func (s *GetEnvironmentInput) SetEnvironmentId(v string) *GetEnvironmentInput {
5843	s.EnvironmentId = &v
5844	return s
5845}
5846
5847type GetEnvironmentOutput struct {
5848	_ struct{} `type:"structure"`
5849
5850	// The application ID.
5851	ApplicationId *string `type:"string"`
5852
5853	// The description of the environment.
5854	Description *string `type:"string"`
5855
5856	// The environment ID.
5857	Id *string `type:"string"`
5858
5859	// Amazon CloudWatch alarms monitored during the deployment.
5860	Monitors []*Monitor `type:"list"`
5861
5862	// The name of the environment.
5863	Name *string `min:"1" type:"string"`
5864
5865	// The state of the environment. An environment can be in one of the following
5866	// states: READY_FOR_DEPLOYMENT, DEPLOYING, ROLLING_BACK, or ROLLED_BACK
5867	State *string `type:"string" enum:"EnvironmentState"`
5868}
5869
5870// String returns the string representation
5871func (s GetEnvironmentOutput) String() string {
5872	return awsutil.Prettify(s)
5873}
5874
5875// GoString returns the string representation
5876func (s GetEnvironmentOutput) GoString() string {
5877	return s.String()
5878}
5879
5880// SetApplicationId sets the ApplicationId field's value.
5881func (s *GetEnvironmentOutput) SetApplicationId(v string) *GetEnvironmentOutput {
5882	s.ApplicationId = &v
5883	return s
5884}
5885
5886// SetDescription sets the Description field's value.
5887func (s *GetEnvironmentOutput) SetDescription(v string) *GetEnvironmentOutput {
5888	s.Description = &v
5889	return s
5890}
5891
5892// SetId sets the Id field's value.
5893func (s *GetEnvironmentOutput) SetId(v string) *GetEnvironmentOutput {
5894	s.Id = &v
5895	return s
5896}
5897
5898// SetMonitors sets the Monitors field's value.
5899func (s *GetEnvironmentOutput) SetMonitors(v []*Monitor) *GetEnvironmentOutput {
5900	s.Monitors = v
5901	return s
5902}
5903
5904// SetName sets the Name field's value.
5905func (s *GetEnvironmentOutput) SetName(v string) *GetEnvironmentOutput {
5906	s.Name = &v
5907	return s
5908}
5909
5910// SetState sets the State field's value.
5911func (s *GetEnvironmentOutput) SetState(v string) *GetEnvironmentOutput {
5912	s.State = &v
5913	return s
5914}
5915
5916type GetHostedConfigurationVersionInput struct {
5917	_ struct{} `type:"structure"`
5918
5919	// The application ID.
5920	//
5921	// ApplicationId is a required field
5922	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
5923
5924	// The configuration profile ID.
5925	//
5926	// ConfigurationProfileId is a required field
5927	ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"`
5928
5929	// The version.
5930	//
5931	// VersionNumber is a required field
5932	VersionNumber *int64 `location:"uri" locationName:"VersionNumber" type:"integer" required:"true"`
5933}
5934
5935// String returns the string representation
5936func (s GetHostedConfigurationVersionInput) String() string {
5937	return awsutil.Prettify(s)
5938}
5939
5940// GoString returns the string representation
5941func (s GetHostedConfigurationVersionInput) GoString() string {
5942	return s.String()
5943}
5944
5945// Validate inspects the fields of the type to determine if they are valid.
5946func (s *GetHostedConfigurationVersionInput) Validate() error {
5947	invalidParams := request.ErrInvalidParams{Context: "GetHostedConfigurationVersionInput"}
5948	if s.ApplicationId == nil {
5949		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
5950	}
5951	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
5952		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
5953	}
5954	if s.ConfigurationProfileId == nil {
5955		invalidParams.Add(request.NewErrParamRequired("ConfigurationProfileId"))
5956	}
5957	if s.ConfigurationProfileId != nil && len(*s.ConfigurationProfileId) < 1 {
5958		invalidParams.Add(request.NewErrParamMinLen("ConfigurationProfileId", 1))
5959	}
5960	if s.VersionNumber == nil {
5961		invalidParams.Add(request.NewErrParamRequired("VersionNumber"))
5962	}
5963
5964	if invalidParams.Len() > 0 {
5965		return invalidParams
5966	}
5967	return nil
5968}
5969
5970// SetApplicationId sets the ApplicationId field's value.
5971func (s *GetHostedConfigurationVersionInput) SetApplicationId(v string) *GetHostedConfigurationVersionInput {
5972	s.ApplicationId = &v
5973	return s
5974}
5975
5976// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
5977func (s *GetHostedConfigurationVersionInput) SetConfigurationProfileId(v string) *GetHostedConfigurationVersionInput {
5978	s.ConfigurationProfileId = &v
5979	return s
5980}
5981
5982// SetVersionNumber sets the VersionNumber field's value.
5983func (s *GetHostedConfigurationVersionInput) SetVersionNumber(v int64) *GetHostedConfigurationVersionInput {
5984	s.VersionNumber = &v
5985	return s
5986}
5987
5988type GetHostedConfigurationVersionOutput struct {
5989	_ struct{} `type:"structure" payload:"Content"`
5990
5991	// The application ID.
5992	ApplicationId *string `location:"header" locationName:"Application-Id" type:"string"`
5993
5994	// The configuration profile ID.
5995	ConfigurationProfileId *string `location:"header" locationName:"Configuration-Profile-Id" type:"string"`
5996
5997	// The content of the configuration or the configuration data.
5998	Content []byte `type:"blob" sensitive:"true"`
5999
6000	// A standard MIME type describing the format of the configuration content.
6001	// For more information, see Content-Type (https://docs.aws.amazon.com/https:/www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17).
6002	ContentType *string `location:"header" locationName:"Content-Type" min:"1" type:"string"`
6003
6004	// A description of the configuration.
6005	Description *string `location:"header" locationName:"Description" type:"string"`
6006
6007	// The configuration version.
6008	VersionNumber *int64 `location:"header" locationName:"Version-Number" type:"integer"`
6009}
6010
6011// String returns the string representation
6012func (s GetHostedConfigurationVersionOutput) String() string {
6013	return awsutil.Prettify(s)
6014}
6015
6016// GoString returns the string representation
6017func (s GetHostedConfigurationVersionOutput) GoString() string {
6018	return s.String()
6019}
6020
6021// SetApplicationId sets the ApplicationId field's value.
6022func (s *GetHostedConfigurationVersionOutput) SetApplicationId(v string) *GetHostedConfigurationVersionOutput {
6023	s.ApplicationId = &v
6024	return s
6025}
6026
6027// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
6028func (s *GetHostedConfigurationVersionOutput) SetConfigurationProfileId(v string) *GetHostedConfigurationVersionOutput {
6029	s.ConfigurationProfileId = &v
6030	return s
6031}
6032
6033// SetContent sets the Content field's value.
6034func (s *GetHostedConfigurationVersionOutput) SetContent(v []byte) *GetHostedConfigurationVersionOutput {
6035	s.Content = v
6036	return s
6037}
6038
6039// SetContentType sets the ContentType field's value.
6040func (s *GetHostedConfigurationVersionOutput) SetContentType(v string) *GetHostedConfigurationVersionOutput {
6041	s.ContentType = &v
6042	return s
6043}
6044
6045// SetDescription sets the Description field's value.
6046func (s *GetHostedConfigurationVersionOutput) SetDescription(v string) *GetHostedConfigurationVersionOutput {
6047	s.Description = &v
6048	return s
6049}
6050
6051// SetVersionNumber sets the VersionNumber field's value.
6052func (s *GetHostedConfigurationVersionOutput) SetVersionNumber(v int64) *GetHostedConfigurationVersionOutput {
6053	s.VersionNumber = &v
6054	return s
6055}
6056
6057// Information about the configuration.
6058type HostedConfigurationVersionSummary struct {
6059	_ struct{} `type:"structure"`
6060
6061	// The application ID.
6062	ApplicationId *string `type:"string"`
6063
6064	// The configuration profile ID.
6065	ConfigurationProfileId *string `type:"string"`
6066
6067	// A standard MIME type describing the format of the configuration content.
6068	// For more information, see Content-Type (https://docs.aws.amazon.com/https:/www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17).
6069	ContentType *string `min:"1" type:"string"`
6070
6071	// A description of the configuration.
6072	Description *string `type:"string"`
6073
6074	// The configuration version.
6075	VersionNumber *int64 `type:"integer"`
6076}
6077
6078// String returns the string representation
6079func (s HostedConfigurationVersionSummary) String() string {
6080	return awsutil.Prettify(s)
6081}
6082
6083// GoString returns the string representation
6084func (s HostedConfigurationVersionSummary) GoString() string {
6085	return s.String()
6086}
6087
6088// SetApplicationId sets the ApplicationId field's value.
6089func (s *HostedConfigurationVersionSummary) SetApplicationId(v string) *HostedConfigurationVersionSummary {
6090	s.ApplicationId = &v
6091	return s
6092}
6093
6094// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
6095func (s *HostedConfigurationVersionSummary) SetConfigurationProfileId(v string) *HostedConfigurationVersionSummary {
6096	s.ConfigurationProfileId = &v
6097	return s
6098}
6099
6100// SetContentType sets the ContentType field's value.
6101func (s *HostedConfigurationVersionSummary) SetContentType(v string) *HostedConfigurationVersionSummary {
6102	s.ContentType = &v
6103	return s
6104}
6105
6106// SetDescription sets the Description field's value.
6107func (s *HostedConfigurationVersionSummary) SetDescription(v string) *HostedConfigurationVersionSummary {
6108	s.Description = &v
6109	return s
6110}
6111
6112// SetVersionNumber sets the VersionNumber field's value.
6113func (s *HostedConfigurationVersionSummary) SetVersionNumber(v int64) *HostedConfigurationVersionSummary {
6114	s.VersionNumber = &v
6115	return s
6116}
6117
6118// There was an internal failure in the AppConfig service.
6119type InternalServerException struct {
6120	_            struct{}                  `type:"structure"`
6121	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6122
6123	Message_ *string `locationName:"Message" type:"string"`
6124}
6125
6126// String returns the string representation
6127func (s InternalServerException) String() string {
6128	return awsutil.Prettify(s)
6129}
6130
6131// GoString returns the string representation
6132func (s InternalServerException) GoString() string {
6133	return s.String()
6134}
6135
6136func newErrorInternalServerException(v protocol.ResponseMetadata) error {
6137	return &InternalServerException{
6138		RespMetadata: v,
6139	}
6140}
6141
6142// Code returns the exception type name.
6143func (s *InternalServerException) Code() string {
6144	return "InternalServerException"
6145}
6146
6147// Message returns the exception's message.
6148func (s *InternalServerException) Message() string {
6149	if s.Message_ != nil {
6150		return *s.Message_
6151	}
6152	return ""
6153}
6154
6155// OrigErr always returns nil, satisfies awserr.Error interface.
6156func (s *InternalServerException) OrigErr() error {
6157	return nil
6158}
6159
6160func (s *InternalServerException) Error() string {
6161	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6162}
6163
6164// Status code returns the HTTP status code for the request's response error.
6165func (s *InternalServerException) StatusCode() int {
6166	return s.RespMetadata.StatusCode
6167}
6168
6169// RequestID returns the service's response RequestID for request.
6170func (s *InternalServerException) RequestID() string {
6171	return s.RespMetadata.RequestID
6172}
6173
6174type ListApplicationsInput struct {
6175	_ struct{} `type:"structure"`
6176
6177	// The maximum number of items to return for this call. The call also returns
6178	// a token that you can specify in a subsequent call to get the next set of
6179	// results.
6180	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
6181
6182	// A token to start the list. Use this token to get the next set of results.
6183	NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"`
6184}
6185
6186// String returns the string representation
6187func (s ListApplicationsInput) String() string {
6188	return awsutil.Prettify(s)
6189}
6190
6191// GoString returns the string representation
6192func (s ListApplicationsInput) GoString() string {
6193	return s.String()
6194}
6195
6196// Validate inspects the fields of the type to determine if they are valid.
6197func (s *ListApplicationsInput) Validate() error {
6198	invalidParams := request.ErrInvalidParams{Context: "ListApplicationsInput"}
6199	if s.MaxResults != nil && *s.MaxResults < 1 {
6200		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6201	}
6202	if s.NextToken != nil && len(*s.NextToken) < 1 {
6203		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6204	}
6205
6206	if invalidParams.Len() > 0 {
6207		return invalidParams
6208	}
6209	return nil
6210}
6211
6212// SetMaxResults sets the MaxResults field's value.
6213func (s *ListApplicationsInput) SetMaxResults(v int64) *ListApplicationsInput {
6214	s.MaxResults = &v
6215	return s
6216}
6217
6218// SetNextToken sets the NextToken field's value.
6219func (s *ListApplicationsInput) SetNextToken(v string) *ListApplicationsInput {
6220	s.NextToken = &v
6221	return s
6222}
6223
6224type ListApplicationsOutput struct {
6225	_ struct{} `type:"structure"`
6226
6227	// The elements from this collection.
6228	Items []*Application `type:"list"`
6229
6230	// The token for the next set of items to return. Use this token to get the
6231	// next set of results.
6232	NextToken *string `min:"1" type:"string"`
6233}
6234
6235// String returns the string representation
6236func (s ListApplicationsOutput) String() string {
6237	return awsutil.Prettify(s)
6238}
6239
6240// GoString returns the string representation
6241func (s ListApplicationsOutput) GoString() string {
6242	return s.String()
6243}
6244
6245// SetItems sets the Items field's value.
6246func (s *ListApplicationsOutput) SetItems(v []*Application) *ListApplicationsOutput {
6247	s.Items = v
6248	return s
6249}
6250
6251// SetNextToken sets the NextToken field's value.
6252func (s *ListApplicationsOutput) SetNextToken(v string) *ListApplicationsOutput {
6253	s.NextToken = &v
6254	return s
6255}
6256
6257type ListConfigurationProfilesInput struct {
6258	_ struct{} `type:"structure"`
6259
6260	// The application ID.
6261	//
6262	// ApplicationId is a required field
6263	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
6264
6265	// The maximum number of items to return for this call. The call also returns
6266	// a token that you can specify in a subsequent call to get the next set of
6267	// results.
6268	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
6269
6270	// A token to start the list. Use this token to get the next set of results.
6271	NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"`
6272}
6273
6274// String returns the string representation
6275func (s ListConfigurationProfilesInput) String() string {
6276	return awsutil.Prettify(s)
6277}
6278
6279// GoString returns the string representation
6280func (s ListConfigurationProfilesInput) GoString() string {
6281	return s.String()
6282}
6283
6284// Validate inspects the fields of the type to determine if they are valid.
6285func (s *ListConfigurationProfilesInput) Validate() error {
6286	invalidParams := request.ErrInvalidParams{Context: "ListConfigurationProfilesInput"}
6287	if s.ApplicationId == nil {
6288		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
6289	}
6290	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
6291		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
6292	}
6293	if s.MaxResults != nil && *s.MaxResults < 1 {
6294		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6295	}
6296	if s.NextToken != nil && len(*s.NextToken) < 1 {
6297		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6298	}
6299
6300	if invalidParams.Len() > 0 {
6301		return invalidParams
6302	}
6303	return nil
6304}
6305
6306// SetApplicationId sets the ApplicationId field's value.
6307func (s *ListConfigurationProfilesInput) SetApplicationId(v string) *ListConfigurationProfilesInput {
6308	s.ApplicationId = &v
6309	return s
6310}
6311
6312// SetMaxResults sets the MaxResults field's value.
6313func (s *ListConfigurationProfilesInput) SetMaxResults(v int64) *ListConfigurationProfilesInput {
6314	s.MaxResults = &v
6315	return s
6316}
6317
6318// SetNextToken sets the NextToken field's value.
6319func (s *ListConfigurationProfilesInput) SetNextToken(v string) *ListConfigurationProfilesInput {
6320	s.NextToken = &v
6321	return s
6322}
6323
6324type ListConfigurationProfilesOutput struct {
6325	_ struct{} `type:"structure"`
6326
6327	// The elements from this collection.
6328	Items []*ConfigurationProfileSummary `type:"list"`
6329
6330	// The token for the next set of items to return. Use this token to get the
6331	// next set of results.
6332	NextToken *string `min:"1" type:"string"`
6333}
6334
6335// String returns the string representation
6336func (s ListConfigurationProfilesOutput) String() string {
6337	return awsutil.Prettify(s)
6338}
6339
6340// GoString returns the string representation
6341func (s ListConfigurationProfilesOutput) GoString() string {
6342	return s.String()
6343}
6344
6345// SetItems sets the Items field's value.
6346func (s *ListConfigurationProfilesOutput) SetItems(v []*ConfigurationProfileSummary) *ListConfigurationProfilesOutput {
6347	s.Items = v
6348	return s
6349}
6350
6351// SetNextToken sets the NextToken field's value.
6352func (s *ListConfigurationProfilesOutput) SetNextToken(v string) *ListConfigurationProfilesOutput {
6353	s.NextToken = &v
6354	return s
6355}
6356
6357type ListDeploymentStrategiesInput struct {
6358	_ struct{} `type:"structure"`
6359
6360	// The maximum number of items to return for this call. The call also returns
6361	// a token that you can specify in a subsequent call to get the next set of
6362	// results.
6363	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
6364
6365	// A token to start the list. Use this token to get the next set of results.
6366	NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"`
6367}
6368
6369// String returns the string representation
6370func (s ListDeploymentStrategiesInput) String() string {
6371	return awsutil.Prettify(s)
6372}
6373
6374// GoString returns the string representation
6375func (s ListDeploymentStrategiesInput) GoString() string {
6376	return s.String()
6377}
6378
6379// Validate inspects the fields of the type to determine if they are valid.
6380func (s *ListDeploymentStrategiesInput) Validate() error {
6381	invalidParams := request.ErrInvalidParams{Context: "ListDeploymentStrategiesInput"}
6382	if s.MaxResults != nil && *s.MaxResults < 1 {
6383		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6384	}
6385	if s.NextToken != nil && len(*s.NextToken) < 1 {
6386		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6387	}
6388
6389	if invalidParams.Len() > 0 {
6390		return invalidParams
6391	}
6392	return nil
6393}
6394
6395// SetMaxResults sets the MaxResults field's value.
6396func (s *ListDeploymentStrategiesInput) SetMaxResults(v int64) *ListDeploymentStrategiesInput {
6397	s.MaxResults = &v
6398	return s
6399}
6400
6401// SetNextToken sets the NextToken field's value.
6402func (s *ListDeploymentStrategiesInput) SetNextToken(v string) *ListDeploymentStrategiesInput {
6403	s.NextToken = &v
6404	return s
6405}
6406
6407type ListDeploymentStrategiesOutput struct {
6408	_ struct{} `type:"structure"`
6409
6410	// The elements from this collection.
6411	Items []*DeploymentStrategy `type:"list"`
6412
6413	// The token for the next set of items to return. Use this token to get the
6414	// next set of results.
6415	NextToken *string `min:"1" type:"string"`
6416}
6417
6418// String returns the string representation
6419func (s ListDeploymentStrategiesOutput) String() string {
6420	return awsutil.Prettify(s)
6421}
6422
6423// GoString returns the string representation
6424func (s ListDeploymentStrategiesOutput) GoString() string {
6425	return s.String()
6426}
6427
6428// SetItems sets the Items field's value.
6429func (s *ListDeploymentStrategiesOutput) SetItems(v []*DeploymentStrategy) *ListDeploymentStrategiesOutput {
6430	s.Items = v
6431	return s
6432}
6433
6434// SetNextToken sets the NextToken field's value.
6435func (s *ListDeploymentStrategiesOutput) SetNextToken(v string) *ListDeploymentStrategiesOutput {
6436	s.NextToken = &v
6437	return s
6438}
6439
6440type ListDeploymentsInput struct {
6441	_ struct{} `type:"structure"`
6442
6443	// The application ID.
6444	//
6445	// ApplicationId is a required field
6446	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
6447
6448	// The environment ID.
6449	//
6450	// EnvironmentId is a required field
6451	EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"`
6452
6453	// The maximum number of items to return for this call. The call also returns
6454	// a token that you can specify in a subsequent call to get the next set of
6455	// results.
6456	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
6457
6458	// A token to start the list. Use this token to get the next set of results.
6459	NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"`
6460}
6461
6462// String returns the string representation
6463func (s ListDeploymentsInput) String() string {
6464	return awsutil.Prettify(s)
6465}
6466
6467// GoString returns the string representation
6468func (s ListDeploymentsInput) GoString() string {
6469	return s.String()
6470}
6471
6472// Validate inspects the fields of the type to determine if they are valid.
6473func (s *ListDeploymentsInput) Validate() error {
6474	invalidParams := request.ErrInvalidParams{Context: "ListDeploymentsInput"}
6475	if s.ApplicationId == nil {
6476		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
6477	}
6478	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
6479		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
6480	}
6481	if s.EnvironmentId == nil {
6482		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
6483	}
6484	if s.EnvironmentId != nil && len(*s.EnvironmentId) < 1 {
6485		invalidParams.Add(request.NewErrParamMinLen("EnvironmentId", 1))
6486	}
6487	if s.MaxResults != nil && *s.MaxResults < 1 {
6488		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6489	}
6490	if s.NextToken != nil && len(*s.NextToken) < 1 {
6491		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6492	}
6493
6494	if invalidParams.Len() > 0 {
6495		return invalidParams
6496	}
6497	return nil
6498}
6499
6500// SetApplicationId sets the ApplicationId field's value.
6501func (s *ListDeploymentsInput) SetApplicationId(v string) *ListDeploymentsInput {
6502	s.ApplicationId = &v
6503	return s
6504}
6505
6506// SetEnvironmentId sets the EnvironmentId field's value.
6507func (s *ListDeploymentsInput) SetEnvironmentId(v string) *ListDeploymentsInput {
6508	s.EnvironmentId = &v
6509	return s
6510}
6511
6512// SetMaxResults sets the MaxResults field's value.
6513func (s *ListDeploymentsInput) SetMaxResults(v int64) *ListDeploymentsInput {
6514	s.MaxResults = &v
6515	return s
6516}
6517
6518// SetNextToken sets the NextToken field's value.
6519func (s *ListDeploymentsInput) SetNextToken(v string) *ListDeploymentsInput {
6520	s.NextToken = &v
6521	return s
6522}
6523
6524type ListDeploymentsOutput struct {
6525	_ struct{} `type:"structure"`
6526
6527	// The elements from this collection.
6528	Items []*DeploymentSummary `type:"list"`
6529
6530	// The token for the next set of items to return. Use this token to get the
6531	// next set of results.
6532	NextToken *string `min:"1" type:"string"`
6533}
6534
6535// String returns the string representation
6536func (s ListDeploymentsOutput) String() string {
6537	return awsutil.Prettify(s)
6538}
6539
6540// GoString returns the string representation
6541func (s ListDeploymentsOutput) GoString() string {
6542	return s.String()
6543}
6544
6545// SetItems sets the Items field's value.
6546func (s *ListDeploymentsOutput) SetItems(v []*DeploymentSummary) *ListDeploymentsOutput {
6547	s.Items = v
6548	return s
6549}
6550
6551// SetNextToken sets the NextToken field's value.
6552func (s *ListDeploymentsOutput) SetNextToken(v string) *ListDeploymentsOutput {
6553	s.NextToken = &v
6554	return s
6555}
6556
6557type ListEnvironmentsInput struct {
6558	_ struct{} `type:"structure"`
6559
6560	// The application ID.
6561	//
6562	// ApplicationId is a required field
6563	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
6564
6565	// The maximum number of items to return for this call. The call also returns
6566	// a token that you can specify in a subsequent call to get the next set of
6567	// results.
6568	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
6569
6570	// A token to start the list. Use this token to get the next set of results.
6571	NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"`
6572}
6573
6574// String returns the string representation
6575func (s ListEnvironmentsInput) String() string {
6576	return awsutil.Prettify(s)
6577}
6578
6579// GoString returns the string representation
6580func (s ListEnvironmentsInput) GoString() string {
6581	return s.String()
6582}
6583
6584// Validate inspects the fields of the type to determine if they are valid.
6585func (s *ListEnvironmentsInput) Validate() error {
6586	invalidParams := request.ErrInvalidParams{Context: "ListEnvironmentsInput"}
6587	if s.ApplicationId == nil {
6588		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
6589	}
6590	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
6591		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
6592	}
6593	if s.MaxResults != nil && *s.MaxResults < 1 {
6594		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6595	}
6596	if s.NextToken != nil && len(*s.NextToken) < 1 {
6597		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6598	}
6599
6600	if invalidParams.Len() > 0 {
6601		return invalidParams
6602	}
6603	return nil
6604}
6605
6606// SetApplicationId sets the ApplicationId field's value.
6607func (s *ListEnvironmentsInput) SetApplicationId(v string) *ListEnvironmentsInput {
6608	s.ApplicationId = &v
6609	return s
6610}
6611
6612// SetMaxResults sets the MaxResults field's value.
6613func (s *ListEnvironmentsInput) SetMaxResults(v int64) *ListEnvironmentsInput {
6614	s.MaxResults = &v
6615	return s
6616}
6617
6618// SetNextToken sets the NextToken field's value.
6619func (s *ListEnvironmentsInput) SetNextToken(v string) *ListEnvironmentsInput {
6620	s.NextToken = &v
6621	return s
6622}
6623
6624type ListEnvironmentsOutput struct {
6625	_ struct{} `type:"structure"`
6626
6627	// The elements from this collection.
6628	Items []*Environment `type:"list"`
6629
6630	// The token for the next set of items to return. Use this token to get the
6631	// next set of results.
6632	NextToken *string `min:"1" type:"string"`
6633}
6634
6635// String returns the string representation
6636func (s ListEnvironmentsOutput) String() string {
6637	return awsutil.Prettify(s)
6638}
6639
6640// GoString returns the string representation
6641func (s ListEnvironmentsOutput) GoString() string {
6642	return s.String()
6643}
6644
6645// SetItems sets the Items field's value.
6646func (s *ListEnvironmentsOutput) SetItems(v []*Environment) *ListEnvironmentsOutput {
6647	s.Items = v
6648	return s
6649}
6650
6651// SetNextToken sets the NextToken field's value.
6652func (s *ListEnvironmentsOutput) SetNextToken(v string) *ListEnvironmentsOutput {
6653	s.NextToken = &v
6654	return s
6655}
6656
6657type ListHostedConfigurationVersionsInput struct {
6658	_ struct{} `type:"structure"`
6659
6660	// The application ID.
6661	//
6662	// ApplicationId is a required field
6663	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
6664
6665	// The configuration profile ID.
6666	//
6667	// ConfigurationProfileId is a required field
6668	ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"`
6669
6670	// The maximum number of items to return for this call. The call also returns
6671	// a token that you can specify in a subsequent call to get the next set of
6672	// results.
6673	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
6674
6675	// A token to start the list. Use this token to get the next set of results.
6676	NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"`
6677}
6678
6679// String returns the string representation
6680func (s ListHostedConfigurationVersionsInput) String() string {
6681	return awsutil.Prettify(s)
6682}
6683
6684// GoString returns the string representation
6685func (s ListHostedConfigurationVersionsInput) GoString() string {
6686	return s.String()
6687}
6688
6689// Validate inspects the fields of the type to determine if they are valid.
6690func (s *ListHostedConfigurationVersionsInput) Validate() error {
6691	invalidParams := request.ErrInvalidParams{Context: "ListHostedConfigurationVersionsInput"}
6692	if s.ApplicationId == nil {
6693		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
6694	}
6695	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
6696		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
6697	}
6698	if s.ConfigurationProfileId == nil {
6699		invalidParams.Add(request.NewErrParamRequired("ConfigurationProfileId"))
6700	}
6701	if s.ConfigurationProfileId != nil && len(*s.ConfigurationProfileId) < 1 {
6702		invalidParams.Add(request.NewErrParamMinLen("ConfigurationProfileId", 1))
6703	}
6704	if s.MaxResults != nil && *s.MaxResults < 1 {
6705		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6706	}
6707	if s.NextToken != nil && len(*s.NextToken) < 1 {
6708		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6709	}
6710
6711	if invalidParams.Len() > 0 {
6712		return invalidParams
6713	}
6714	return nil
6715}
6716
6717// SetApplicationId sets the ApplicationId field's value.
6718func (s *ListHostedConfigurationVersionsInput) SetApplicationId(v string) *ListHostedConfigurationVersionsInput {
6719	s.ApplicationId = &v
6720	return s
6721}
6722
6723// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
6724func (s *ListHostedConfigurationVersionsInput) SetConfigurationProfileId(v string) *ListHostedConfigurationVersionsInput {
6725	s.ConfigurationProfileId = &v
6726	return s
6727}
6728
6729// SetMaxResults sets the MaxResults field's value.
6730func (s *ListHostedConfigurationVersionsInput) SetMaxResults(v int64) *ListHostedConfigurationVersionsInput {
6731	s.MaxResults = &v
6732	return s
6733}
6734
6735// SetNextToken sets the NextToken field's value.
6736func (s *ListHostedConfigurationVersionsInput) SetNextToken(v string) *ListHostedConfigurationVersionsInput {
6737	s.NextToken = &v
6738	return s
6739}
6740
6741type ListHostedConfigurationVersionsOutput struct {
6742	_ struct{} `type:"structure"`
6743
6744	// The elements from this collection.
6745	Items []*HostedConfigurationVersionSummary `type:"list"`
6746
6747	// The token for the next set of items to return. Use this token to get the
6748	// next set of results.
6749	NextToken *string `min:"1" type:"string"`
6750}
6751
6752// String returns the string representation
6753func (s ListHostedConfigurationVersionsOutput) String() string {
6754	return awsutil.Prettify(s)
6755}
6756
6757// GoString returns the string representation
6758func (s ListHostedConfigurationVersionsOutput) GoString() string {
6759	return s.String()
6760}
6761
6762// SetItems sets the Items field's value.
6763func (s *ListHostedConfigurationVersionsOutput) SetItems(v []*HostedConfigurationVersionSummary) *ListHostedConfigurationVersionsOutput {
6764	s.Items = v
6765	return s
6766}
6767
6768// SetNextToken sets the NextToken field's value.
6769func (s *ListHostedConfigurationVersionsOutput) SetNextToken(v string) *ListHostedConfigurationVersionsOutput {
6770	s.NextToken = &v
6771	return s
6772}
6773
6774type ListTagsForResourceInput struct {
6775	_ struct{} `type:"structure"`
6776
6777	// The resource ARN.
6778	//
6779	// ResourceArn is a required field
6780	ResourceArn *string `location:"uri" locationName:"ResourceArn" min:"20" type:"string" required:"true"`
6781}
6782
6783// String returns the string representation
6784func (s ListTagsForResourceInput) String() string {
6785	return awsutil.Prettify(s)
6786}
6787
6788// GoString returns the string representation
6789func (s ListTagsForResourceInput) GoString() string {
6790	return s.String()
6791}
6792
6793// Validate inspects the fields of the type to determine if they are valid.
6794func (s *ListTagsForResourceInput) Validate() error {
6795	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
6796	if s.ResourceArn == nil {
6797		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6798	}
6799	if s.ResourceArn != nil && len(*s.ResourceArn) < 20 {
6800		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
6801	}
6802
6803	if invalidParams.Len() > 0 {
6804		return invalidParams
6805	}
6806	return nil
6807}
6808
6809// SetResourceArn sets the ResourceArn field's value.
6810func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
6811	s.ResourceArn = &v
6812	return s
6813}
6814
6815type ListTagsForResourceOutput struct {
6816	_ struct{} `type:"structure"`
6817
6818	// Metadata to assign to AppConfig resources. Tags help organize and categorize
6819	// your AppConfig resources. Each tag consists of a key and an optional value,
6820	// both of which you define.
6821	Tags map[string]*string `type:"map"`
6822}
6823
6824// String returns the string representation
6825func (s ListTagsForResourceOutput) String() string {
6826	return awsutil.Prettify(s)
6827}
6828
6829// GoString returns the string representation
6830func (s ListTagsForResourceOutput) GoString() string {
6831	return s.String()
6832}
6833
6834// SetTags sets the Tags field's value.
6835func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
6836	s.Tags = v
6837	return s
6838}
6839
6840// Amazon CloudWatch alarms to monitor during the deployment process.
6841type Monitor struct {
6842	_ struct{} `type:"structure"`
6843
6844	// ARN of the Amazon CloudWatch alarm.
6845	AlarmArn *string `min:"20" type:"string"`
6846
6847	// ARN of an IAM role for AppConfig to monitor AlarmArn.
6848	AlarmRoleArn *string `min:"20" type:"string"`
6849}
6850
6851// String returns the string representation
6852func (s Monitor) String() string {
6853	return awsutil.Prettify(s)
6854}
6855
6856// GoString returns the string representation
6857func (s Monitor) GoString() string {
6858	return s.String()
6859}
6860
6861// Validate inspects the fields of the type to determine if they are valid.
6862func (s *Monitor) Validate() error {
6863	invalidParams := request.ErrInvalidParams{Context: "Monitor"}
6864	if s.AlarmArn != nil && len(*s.AlarmArn) < 20 {
6865		invalidParams.Add(request.NewErrParamMinLen("AlarmArn", 20))
6866	}
6867	if s.AlarmRoleArn != nil && len(*s.AlarmRoleArn) < 20 {
6868		invalidParams.Add(request.NewErrParamMinLen("AlarmRoleArn", 20))
6869	}
6870
6871	if invalidParams.Len() > 0 {
6872		return invalidParams
6873	}
6874	return nil
6875}
6876
6877// SetAlarmArn sets the AlarmArn field's value.
6878func (s *Monitor) SetAlarmArn(v string) *Monitor {
6879	s.AlarmArn = &v
6880	return s
6881}
6882
6883// SetAlarmRoleArn sets the AlarmRoleArn field's value.
6884func (s *Monitor) SetAlarmRoleArn(v string) *Monitor {
6885	s.AlarmRoleArn = &v
6886	return s
6887}
6888
6889// The configuration size is too large.
6890type PayloadTooLargeException struct {
6891	_            struct{}                  `type:"structure"`
6892	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6893
6894	Limit *float64 `type:"float"`
6895
6896	Measure *string `type:"string" enum:"BytesMeasure"`
6897
6898	Message_ *string `locationName:"Message" type:"string"`
6899
6900	Size *float64 `type:"float"`
6901}
6902
6903// String returns the string representation
6904func (s PayloadTooLargeException) String() string {
6905	return awsutil.Prettify(s)
6906}
6907
6908// GoString returns the string representation
6909func (s PayloadTooLargeException) GoString() string {
6910	return s.String()
6911}
6912
6913func newErrorPayloadTooLargeException(v protocol.ResponseMetadata) error {
6914	return &PayloadTooLargeException{
6915		RespMetadata: v,
6916	}
6917}
6918
6919// Code returns the exception type name.
6920func (s *PayloadTooLargeException) Code() string {
6921	return "PayloadTooLargeException"
6922}
6923
6924// Message returns the exception's message.
6925func (s *PayloadTooLargeException) Message() string {
6926	if s.Message_ != nil {
6927		return *s.Message_
6928	}
6929	return ""
6930}
6931
6932// OrigErr always returns nil, satisfies awserr.Error interface.
6933func (s *PayloadTooLargeException) OrigErr() error {
6934	return nil
6935}
6936
6937func (s *PayloadTooLargeException) Error() string {
6938	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6939}
6940
6941// Status code returns the HTTP status code for the request's response error.
6942func (s *PayloadTooLargeException) StatusCode() int {
6943	return s.RespMetadata.StatusCode
6944}
6945
6946// RequestID returns the service's response RequestID for request.
6947func (s *PayloadTooLargeException) RequestID() string {
6948	return s.RespMetadata.RequestID
6949}
6950
6951// The requested resource could not be found.
6952type ResourceNotFoundException struct {
6953	_            struct{}                  `type:"structure"`
6954	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6955
6956	Message_ *string `locationName:"Message" type:"string"`
6957
6958	ResourceName *string `type:"string"`
6959}
6960
6961// String returns the string representation
6962func (s ResourceNotFoundException) String() string {
6963	return awsutil.Prettify(s)
6964}
6965
6966// GoString returns the string representation
6967func (s ResourceNotFoundException) GoString() string {
6968	return s.String()
6969}
6970
6971func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
6972	return &ResourceNotFoundException{
6973		RespMetadata: v,
6974	}
6975}
6976
6977// Code returns the exception type name.
6978func (s *ResourceNotFoundException) Code() string {
6979	return "ResourceNotFoundException"
6980}
6981
6982// Message returns the exception's message.
6983func (s *ResourceNotFoundException) Message() string {
6984	if s.Message_ != nil {
6985		return *s.Message_
6986	}
6987	return ""
6988}
6989
6990// OrigErr always returns nil, satisfies awserr.Error interface.
6991func (s *ResourceNotFoundException) OrigErr() error {
6992	return nil
6993}
6994
6995func (s *ResourceNotFoundException) Error() string {
6996	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6997}
6998
6999// Status code returns the HTTP status code for the request's response error.
7000func (s *ResourceNotFoundException) StatusCode() int {
7001	return s.RespMetadata.StatusCode
7002}
7003
7004// RequestID returns the service's response RequestID for request.
7005func (s *ResourceNotFoundException) RequestID() string {
7006	return s.RespMetadata.RequestID
7007}
7008
7009// The number of hosted configuration versions exceeds the limit for the AppConfig
7010// configuration store. Delete one or more versions and try again.
7011type ServiceQuotaExceededException struct {
7012	_            struct{}                  `type:"structure"`
7013	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7014
7015	Message_ *string `locationName:"Message" type:"string"`
7016}
7017
7018// String returns the string representation
7019func (s ServiceQuotaExceededException) String() string {
7020	return awsutil.Prettify(s)
7021}
7022
7023// GoString returns the string representation
7024func (s ServiceQuotaExceededException) GoString() string {
7025	return s.String()
7026}
7027
7028func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
7029	return &ServiceQuotaExceededException{
7030		RespMetadata: v,
7031	}
7032}
7033
7034// Code returns the exception type name.
7035func (s *ServiceQuotaExceededException) Code() string {
7036	return "ServiceQuotaExceededException"
7037}
7038
7039// Message returns the exception's message.
7040func (s *ServiceQuotaExceededException) Message() string {
7041	if s.Message_ != nil {
7042		return *s.Message_
7043	}
7044	return ""
7045}
7046
7047// OrigErr always returns nil, satisfies awserr.Error interface.
7048func (s *ServiceQuotaExceededException) OrigErr() error {
7049	return nil
7050}
7051
7052func (s *ServiceQuotaExceededException) Error() string {
7053	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7054}
7055
7056// Status code returns the HTTP status code for the request's response error.
7057func (s *ServiceQuotaExceededException) StatusCode() int {
7058	return s.RespMetadata.StatusCode
7059}
7060
7061// RequestID returns the service's response RequestID for request.
7062func (s *ServiceQuotaExceededException) RequestID() string {
7063	return s.RespMetadata.RequestID
7064}
7065
7066type StartDeploymentInput struct {
7067	_ struct{} `type:"structure"`
7068
7069	// The application ID.
7070	//
7071	// ApplicationId is a required field
7072	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
7073
7074	// The configuration profile ID.
7075	//
7076	// ConfigurationProfileId is a required field
7077	ConfigurationProfileId *string `type:"string" required:"true"`
7078
7079	// The configuration version to deploy.
7080	//
7081	// ConfigurationVersion is a required field
7082	ConfigurationVersion *string `min:"1" type:"string" required:"true"`
7083
7084	// The deployment strategy ID.
7085	//
7086	// DeploymentStrategyId is a required field
7087	DeploymentStrategyId *string `type:"string" required:"true"`
7088
7089	// A description of the deployment.
7090	Description *string `type:"string"`
7091
7092	// The environment ID.
7093	//
7094	// EnvironmentId is a required field
7095	EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"`
7096
7097	// Metadata to assign to the deployment. Tags help organize and categorize your
7098	// AppConfig resources. Each tag consists of a key and an optional value, both
7099	// of which you define.
7100	Tags map[string]*string `type:"map"`
7101}
7102
7103// String returns the string representation
7104func (s StartDeploymentInput) String() string {
7105	return awsutil.Prettify(s)
7106}
7107
7108// GoString returns the string representation
7109func (s StartDeploymentInput) GoString() string {
7110	return s.String()
7111}
7112
7113// Validate inspects the fields of the type to determine if they are valid.
7114func (s *StartDeploymentInput) Validate() error {
7115	invalidParams := request.ErrInvalidParams{Context: "StartDeploymentInput"}
7116	if s.ApplicationId == nil {
7117		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
7118	}
7119	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
7120		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
7121	}
7122	if s.ConfigurationProfileId == nil {
7123		invalidParams.Add(request.NewErrParamRequired("ConfigurationProfileId"))
7124	}
7125	if s.ConfigurationVersion == nil {
7126		invalidParams.Add(request.NewErrParamRequired("ConfigurationVersion"))
7127	}
7128	if s.ConfigurationVersion != nil && len(*s.ConfigurationVersion) < 1 {
7129		invalidParams.Add(request.NewErrParamMinLen("ConfigurationVersion", 1))
7130	}
7131	if s.DeploymentStrategyId == nil {
7132		invalidParams.Add(request.NewErrParamRequired("DeploymentStrategyId"))
7133	}
7134	if s.EnvironmentId == nil {
7135		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
7136	}
7137	if s.EnvironmentId != nil && len(*s.EnvironmentId) < 1 {
7138		invalidParams.Add(request.NewErrParamMinLen("EnvironmentId", 1))
7139	}
7140
7141	if invalidParams.Len() > 0 {
7142		return invalidParams
7143	}
7144	return nil
7145}
7146
7147// SetApplicationId sets the ApplicationId field's value.
7148func (s *StartDeploymentInput) SetApplicationId(v string) *StartDeploymentInput {
7149	s.ApplicationId = &v
7150	return s
7151}
7152
7153// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
7154func (s *StartDeploymentInput) SetConfigurationProfileId(v string) *StartDeploymentInput {
7155	s.ConfigurationProfileId = &v
7156	return s
7157}
7158
7159// SetConfigurationVersion sets the ConfigurationVersion field's value.
7160func (s *StartDeploymentInput) SetConfigurationVersion(v string) *StartDeploymentInput {
7161	s.ConfigurationVersion = &v
7162	return s
7163}
7164
7165// SetDeploymentStrategyId sets the DeploymentStrategyId field's value.
7166func (s *StartDeploymentInput) SetDeploymentStrategyId(v string) *StartDeploymentInput {
7167	s.DeploymentStrategyId = &v
7168	return s
7169}
7170
7171// SetDescription sets the Description field's value.
7172func (s *StartDeploymentInput) SetDescription(v string) *StartDeploymentInput {
7173	s.Description = &v
7174	return s
7175}
7176
7177// SetEnvironmentId sets the EnvironmentId field's value.
7178func (s *StartDeploymentInput) SetEnvironmentId(v string) *StartDeploymentInput {
7179	s.EnvironmentId = &v
7180	return s
7181}
7182
7183// SetTags sets the Tags field's value.
7184func (s *StartDeploymentInput) SetTags(v map[string]*string) *StartDeploymentInput {
7185	s.Tags = v
7186	return s
7187}
7188
7189type StartDeploymentOutput struct {
7190	_ struct{} `type:"structure"`
7191
7192	// The ID of the application that was deployed.
7193	ApplicationId *string `type:"string"`
7194
7195	// The time the deployment completed.
7196	CompletedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"`
7197
7198	// Information about the source location of the configuration.
7199	ConfigurationLocationUri *string `min:"1" type:"string"`
7200
7201	// The name of the configuration.
7202	ConfigurationName *string `min:"1" type:"string"`
7203
7204	// The ID of the configuration profile that was deployed.
7205	ConfigurationProfileId *string `type:"string"`
7206
7207	// The configuration version that was deployed.
7208	ConfigurationVersion *string `min:"1" type:"string"`
7209
7210	// Total amount of time the deployment lasted.
7211	DeploymentDurationInMinutes *int64 `type:"integer"`
7212
7213	// The sequence number of the deployment.
7214	DeploymentNumber *int64 `type:"integer"`
7215
7216	// The ID of the deployment strategy that was deployed.
7217	DeploymentStrategyId *string `type:"string"`
7218
7219	// The description of the deployment.
7220	Description *string `type:"string"`
7221
7222	// The ID of the environment that was deployed.
7223	EnvironmentId *string `type:"string"`
7224
7225	// A list containing all events related to a deployment. The most recent events
7226	// are displayed first.
7227	EventLog []*DeploymentEvent `type:"list"`
7228
7229	// The amount of time AppConfig monitored for alarms before considering the
7230	// deployment to be complete and no longer eligible for automatic roll back.
7231	FinalBakeTimeInMinutes *int64 `type:"integer"`
7232
7233	// The percentage of targets to receive a deployed configuration during each
7234	// interval.
7235	GrowthFactor *float64 `min:"1" type:"float"`
7236
7237	// The algorithm used to define how percentage grew over time.
7238	GrowthType *string `type:"string" enum:"GrowthType"`
7239
7240	// The percentage of targets for which the deployment is available.
7241	PercentageComplete *float64 `min:"1" type:"float"`
7242
7243	// The time the deployment started.
7244	StartedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"`
7245
7246	// The state of the deployment.
7247	State *string `type:"string" enum:"DeploymentState"`
7248}
7249
7250// String returns the string representation
7251func (s StartDeploymentOutput) String() string {
7252	return awsutil.Prettify(s)
7253}
7254
7255// GoString returns the string representation
7256func (s StartDeploymentOutput) GoString() string {
7257	return s.String()
7258}
7259
7260// SetApplicationId sets the ApplicationId field's value.
7261func (s *StartDeploymentOutput) SetApplicationId(v string) *StartDeploymentOutput {
7262	s.ApplicationId = &v
7263	return s
7264}
7265
7266// SetCompletedAt sets the CompletedAt field's value.
7267func (s *StartDeploymentOutput) SetCompletedAt(v time.Time) *StartDeploymentOutput {
7268	s.CompletedAt = &v
7269	return s
7270}
7271
7272// SetConfigurationLocationUri sets the ConfigurationLocationUri field's value.
7273func (s *StartDeploymentOutput) SetConfigurationLocationUri(v string) *StartDeploymentOutput {
7274	s.ConfigurationLocationUri = &v
7275	return s
7276}
7277
7278// SetConfigurationName sets the ConfigurationName field's value.
7279func (s *StartDeploymentOutput) SetConfigurationName(v string) *StartDeploymentOutput {
7280	s.ConfigurationName = &v
7281	return s
7282}
7283
7284// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
7285func (s *StartDeploymentOutput) SetConfigurationProfileId(v string) *StartDeploymentOutput {
7286	s.ConfigurationProfileId = &v
7287	return s
7288}
7289
7290// SetConfigurationVersion sets the ConfigurationVersion field's value.
7291func (s *StartDeploymentOutput) SetConfigurationVersion(v string) *StartDeploymentOutput {
7292	s.ConfigurationVersion = &v
7293	return s
7294}
7295
7296// SetDeploymentDurationInMinutes sets the DeploymentDurationInMinutes field's value.
7297func (s *StartDeploymentOutput) SetDeploymentDurationInMinutes(v int64) *StartDeploymentOutput {
7298	s.DeploymentDurationInMinutes = &v
7299	return s
7300}
7301
7302// SetDeploymentNumber sets the DeploymentNumber field's value.
7303func (s *StartDeploymentOutput) SetDeploymentNumber(v int64) *StartDeploymentOutput {
7304	s.DeploymentNumber = &v
7305	return s
7306}
7307
7308// SetDeploymentStrategyId sets the DeploymentStrategyId field's value.
7309func (s *StartDeploymentOutput) SetDeploymentStrategyId(v string) *StartDeploymentOutput {
7310	s.DeploymentStrategyId = &v
7311	return s
7312}
7313
7314// SetDescription sets the Description field's value.
7315func (s *StartDeploymentOutput) SetDescription(v string) *StartDeploymentOutput {
7316	s.Description = &v
7317	return s
7318}
7319
7320// SetEnvironmentId sets the EnvironmentId field's value.
7321func (s *StartDeploymentOutput) SetEnvironmentId(v string) *StartDeploymentOutput {
7322	s.EnvironmentId = &v
7323	return s
7324}
7325
7326// SetEventLog sets the EventLog field's value.
7327func (s *StartDeploymentOutput) SetEventLog(v []*DeploymentEvent) *StartDeploymentOutput {
7328	s.EventLog = v
7329	return s
7330}
7331
7332// SetFinalBakeTimeInMinutes sets the FinalBakeTimeInMinutes field's value.
7333func (s *StartDeploymentOutput) SetFinalBakeTimeInMinutes(v int64) *StartDeploymentOutput {
7334	s.FinalBakeTimeInMinutes = &v
7335	return s
7336}
7337
7338// SetGrowthFactor sets the GrowthFactor field's value.
7339func (s *StartDeploymentOutput) SetGrowthFactor(v float64) *StartDeploymentOutput {
7340	s.GrowthFactor = &v
7341	return s
7342}
7343
7344// SetGrowthType sets the GrowthType field's value.
7345func (s *StartDeploymentOutput) SetGrowthType(v string) *StartDeploymentOutput {
7346	s.GrowthType = &v
7347	return s
7348}
7349
7350// SetPercentageComplete sets the PercentageComplete field's value.
7351func (s *StartDeploymentOutput) SetPercentageComplete(v float64) *StartDeploymentOutput {
7352	s.PercentageComplete = &v
7353	return s
7354}
7355
7356// SetStartedAt sets the StartedAt field's value.
7357func (s *StartDeploymentOutput) SetStartedAt(v time.Time) *StartDeploymentOutput {
7358	s.StartedAt = &v
7359	return s
7360}
7361
7362// SetState sets the State field's value.
7363func (s *StartDeploymentOutput) SetState(v string) *StartDeploymentOutput {
7364	s.State = &v
7365	return s
7366}
7367
7368type StopDeploymentInput struct {
7369	_ struct{} `type:"structure"`
7370
7371	// The application ID.
7372	//
7373	// ApplicationId is a required field
7374	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
7375
7376	// The sequence number of the deployment.
7377	//
7378	// DeploymentNumber is a required field
7379	DeploymentNumber *int64 `location:"uri" locationName:"DeploymentNumber" type:"integer" required:"true"`
7380
7381	// The environment ID.
7382	//
7383	// EnvironmentId is a required field
7384	EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"`
7385}
7386
7387// String returns the string representation
7388func (s StopDeploymentInput) String() string {
7389	return awsutil.Prettify(s)
7390}
7391
7392// GoString returns the string representation
7393func (s StopDeploymentInput) GoString() string {
7394	return s.String()
7395}
7396
7397// Validate inspects the fields of the type to determine if they are valid.
7398func (s *StopDeploymentInput) Validate() error {
7399	invalidParams := request.ErrInvalidParams{Context: "StopDeploymentInput"}
7400	if s.ApplicationId == nil {
7401		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
7402	}
7403	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
7404		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
7405	}
7406	if s.DeploymentNumber == nil {
7407		invalidParams.Add(request.NewErrParamRequired("DeploymentNumber"))
7408	}
7409	if s.EnvironmentId == nil {
7410		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
7411	}
7412	if s.EnvironmentId != nil && len(*s.EnvironmentId) < 1 {
7413		invalidParams.Add(request.NewErrParamMinLen("EnvironmentId", 1))
7414	}
7415
7416	if invalidParams.Len() > 0 {
7417		return invalidParams
7418	}
7419	return nil
7420}
7421
7422// SetApplicationId sets the ApplicationId field's value.
7423func (s *StopDeploymentInput) SetApplicationId(v string) *StopDeploymentInput {
7424	s.ApplicationId = &v
7425	return s
7426}
7427
7428// SetDeploymentNumber sets the DeploymentNumber field's value.
7429func (s *StopDeploymentInput) SetDeploymentNumber(v int64) *StopDeploymentInput {
7430	s.DeploymentNumber = &v
7431	return s
7432}
7433
7434// SetEnvironmentId sets the EnvironmentId field's value.
7435func (s *StopDeploymentInput) SetEnvironmentId(v string) *StopDeploymentInput {
7436	s.EnvironmentId = &v
7437	return s
7438}
7439
7440type StopDeploymentOutput struct {
7441	_ struct{} `type:"structure"`
7442
7443	// The ID of the application that was deployed.
7444	ApplicationId *string `type:"string"`
7445
7446	// The time the deployment completed.
7447	CompletedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"`
7448
7449	// Information about the source location of the configuration.
7450	ConfigurationLocationUri *string `min:"1" type:"string"`
7451
7452	// The name of the configuration.
7453	ConfigurationName *string `min:"1" type:"string"`
7454
7455	// The ID of the configuration profile that was deployed.
7456	ConfigurationProfileId *string `type:"string"`
7457
7458	// The configuration version that was deployed.
7459	ConfigurationVersion *string `min:"1" type:"string"`
7460
7461	// Total amount of time the deployment lasted.
7462	DeploymentDurationInMinutes *int64 `type:"integer"`
7463
7464	// The sequence number of the deployment.
7465	DeploymentNumber *int64 `type:"integer"`
7466
7467	// The ID of the deployment strategy that was deployed.
7468	DeploymentStrategyId *string `type:"string"`
7469
7470	// The description of the deployment.
7471	Description *string `type:"string"`
7472
7473	// The ID of the environment that was deployed.
7474	EnvironmentId *string `type:"string"`
7475
7476	// A list containing all events related to a deployment. The most recent events
7477	// are displayed first.
7478	EventLog []*DeploymentEvent `type:"list"`
7479
7480	// The amount of time AppConfig monitored for alarms before considering the
7481	// deployment to be complete and no longer eligible for automatic roll back.
7482	FinalBakeTimeInMinutes *int64 `type:"integer"`
7483
7484	// The percentage of targets to receive a deployed configuration during each
7485	// interval.
7486	GrowthFactor *float64 `min:"1" type:"float"`
7487
7488	// The algorithm used to define how percentage grew over time.
7489	GrowthType *string `type:"string" enum:"GrowthType"`
7490
7491	// The percentage of targets for which the deployment is available.
7492	PercentageComplete *float64 `min:"1" type:"float"`
7493
7494	// The time the deployment started.
7495	StartedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"`
7496
7497	// The state of the deployment.
7498	State *string `type:"string" enum:"DeploymentState"`
7499}
7500
7501// String returns the string representation
7502func (s StopDeploymentOutput) String() string {
7503	return awsutil.Prettify(s)
7504}
7505
7506// GoString returns the string representation
7507func (s StopDeploymentOutput) GoString() string {
7508	return s.String()
7509}
7510
7511// SetApplicationId sets the ApplicationId field's value.
7512func (s *StopDeploymentOutput) SetApplicationId(v string) *StopDeploymentOutput {
7513	s.ApplicationId = &v
7514	return s
7515}
7516
7517// SetCompletedAt sets the CompletedAt field's value.
7518func (s *StopDeploymentOutput) SetCompletedAt(v time.Time) *StopDeploymentOutput {
7519	s.CompletedAt = &v
7520	return s
7521}
7522
7523// SetConfigurationLocationUri sets the ConfigurationLocationUri field's value.
7524func (s *StopDeploymentOutput) SetConfigurationLocationUri(v string) *StopDeploymentOutput {
7525	s.ConfigurationLocationUri = &v
7526	return s
7527}
7528
7529// SetConfigurationName sets the ConfigurationName field's value.
7530func (s *StopDeploymentOutput) SetConfigurationName(v string) *StopDeploymentOutput {
7531	s.ConfigurationName = &v
7532	return s
7533}
7534
7535// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
7536func (s *StopDeploymentOutput) SetConfigurationProfileId(v string) *StopDeploymentOutput {
7537	s.ConfigurationProfileId = &v
7538	return s
7539}
7540
7541// SetConfigurationVersion sets the ConfigurationVersion field's value.
7542func (s *StopDeploymentOutput) SetConfigurationVersion(v string) *StopDeploymentOutput {
7543	s.ConfigurationVersion = &v
7544	return s
7545}
7546
7547// SetDeploymentDurationInMinutes sets the DeploymentDurationInMinutes field's value.
7548func (s *StopDeploymentOutput) SetDeploymentDurationInMinutes(v int64) *StopDeploymentOutput {
7549	s.DeploymentDurationInMinutes = &v
7550	return s
7551}
7552
7553// SetDeploymentNumber sets the DeploymentNumber field's value.
7554func (s *StopDeploymentOutput) SetDeploymentNumber(v int64) *StopDeploymentOutput {
7555	s.DeploymentNumber = &v
7556	return s
7557}
7558
7559// SetDeploymentStrategyId sets the DeploymentStrategyId field's value.
7560func (s *StopDeploymentOutput) SetDeploymentStrategyId(v string) *StopDeploymentOutput {
7561	s.DeploymentStrategyId = &v
7562	return s
7563}
7564
7565// SetDescription sets the Description field's value.
7566func (s *StopDeploymentOutput) SetDescription(v string) *StopDeploymentOutput {
7567	s.Description = &v
7568	return s
7569}
7570
7571// SetEnvironmentId sets the EnvironmentId field's value.
7572func (s *StopDeploymentOutput) SetEnvironmentId(v string) *StopDeploymentOutput {
7573	s.EnvironmentId = &v
7574	return s
7575}
7576
7577// SetEventLog sets the EventLog field's value.
7578func (s *StopDeploymentOutput) SetEventLog(v []*DeploymentEvent) *StopDeploymentOutput {
7579	s.EventLog = v
7580	return s
7581}
7582
7583// SetFinalBakeTimeInMinutes sets the FinalBakeTimeInMinutes field's value.
7584func (s *StopDeploymentOutput) SetFinalBakeTimeInMinutes(v int64) *StopDeploymentOutput {
7585	s.FinalBakeTimeInMinutes = &v
7586	return s
7587}
7588
7589// SetGrowthFactor sets the GrowthFactor field's value.
7590func (s *StopDeploymentOutput) SetGrowthFactor(v float64) *StopDeploymentOutput {
7591	s.GrowthFactor = &v
7592	return s
7593}
7594
7595// SetGrowthType sets the GrowthType field's value.
7596func (s *StopDeploymentOutput) SetGrowthType(v string) *StopDeploymentOutput {
7597	s.GrowthType = &v
7598	return s
7599}
7600
7601// SetPercentageComplete sets the PercentageComplete field's value.
7602func (s *StopDeploymentOutput) SetPercentageComplete(v float64) *StopDeploymentOutput {
7603	s.PercentageComplete = &v
7604	return s
7605}
7606
7607// SetStartedAt sets the StartedAt field's value.
7608func (s *StopDeploymentOutput) SetStartedAt(v time.Time) *StopDeploymentOutput {
7609	s.StartedAt = &v
7610	return s
7611}
7612
7613// SetState sets the State field's value.
7614func (s *StopDeploymentOutput) SetState(v string) *StopDeploymentOutput {
7615	s.State = &v
7616	return s
7617}
7618
7619type TagResourceInput struct {
7620	_ struct{} `type:"structure"`
7621
7622	// The ARN of the resource for which to retrieve tags.
7623	//
7624	// ResourceArn is a required field
7625	ResourceArn *string `location:"uri" locationName:"ResourceArn" min:"20" type:"string" required:"true"`
7626
7627	// The key-value string map. The valid character set is [a-zA-Z+-=._:/]. The
7628	// tag key can be up to 128 characters and must not start with aws:. The tag
7629	// value can be up to 256 characters.
7630	//
7631	// Tags is a required field
7632	Tags map[string]*string `type:"map" required:"true"`
7633}
7634
7635// String returns the string representation
7636func (s TagResourceInput) String() string {
7637	return awsutil.Prettify(s)
7638}
7639
7640// GoString returns the string representation
7641func (s TagResourceInput) GoString() string {
7642	return s.String()
7643}
7644
7645// Validate inspects the fields of the type to determine if they are valid.
7646func (s *TagResourceInput) Validate() error {
7647	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
7648	if s.ResourceArn == nil {
7649		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7650	}
7651	if s.ResourceArn != nil && len(*s.ResourceArn) < 20 {
7652		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
7653	}
7654	if s.Tags == nil {
7655		invalidParams.Add(request.NewErrParamRequired("Tags"))
7656	}
7657
7658	if invalidParams.Len() > 0 {
7659		return invalidParams
7660	}
7661	return nil
7662}
7663
7664// SetResourceArn sets the ResourceArn field's value.
7665func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
7666	s.ResourceArn = &v
7667	return s
7668}
7669
7670// SetTags sets the Tags field's value.
7671func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
7672	s.Tags = v
7673	return s
7674}
7675
7676type TagResourceOutput struct {
7677	_ struct{} `type:"structure"`
7678}
7679
7680// String returns the string representation
7681func (s TagResourceOutput) String() string {
7682	return awsutil.Prettify(s)
7683}
7684
7685// GoString returns the string representation
7686func (s TagResourceOutput) GoString() string {
7687	return s.String()
7688}
7689
7690type UntagResourceInput struct {
7691	_ struct{} `type:"structure"`
7692
7693	// The ARN of the resource for which to remove tags.
7694	//
7695	// ResourceArn is a required field
7696	ResourceArn *string `location:"uri" locationName:"ResourceArn" min:"20" type:"string" required:"true"`
7697
7698	// The tag keys to delete.
7699	//
7700	// TagKeys is a required field
7701	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
7702}
7703
7704// String returns the string representation
7705func (s UntagResourceInput) String() string {
7706	return awsutil.Prettify(s)
7707}
7708
7709// GoString returns the string representation
7710func (s UntagResourceInput) GoString() string {
7711	return s.String()
7712}
7713
7714// Validate inspects the fields of the type to determine if they are valid.
7715func (s *UntagResourceInput) Validate() error {
7716	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
7717	if s.ResourceArn == nil {
7718		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7719	}
7720	if s.ResourceArn != nil && len(*s.ResourceArn) < 20 {
7721		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
7722	}
7723	if s.TagKeys == nil {
7724		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
7725	}
7726
7727	if invalidParams.Len() > 0 {
7728		return invalidParams
7729	}
7730	return nil
7731}
7732
7733// SetResourceArn sets the ResourceArn field's value.
7734func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
7735	s.ResourceArn = &v
7736	return s
7737}
7738
7739// SetTagKeys sets the TagKeys field's value.
7740func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
7741	s.TagKeys = v
7742	return s
7743}
7744
7745type UntagResourceOutput struct {
7746	_ struct{} `type:"structure"`
7747}
7748
7749// String returns the string representation
7750func (s UntagResourceOutput) String() string {
7751	return awsutil.Prettify(s)
7752}
7753
7754// GoString returns the string representation
7755func (s UntagResourceOutput) GoString() string {
7756	return s.String()
7757}
7758
7759type UpdateApplicationInput struct {
7760	_ struct{} `type:"structure"`
7761
7762	// The application ID.
7763	//
7764	// ApplicationId is a required field
7765	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
7766
7767	// A description of the application.
7768	Description *string `type:"string"`
7769
7770	// The name of the application.
7771	Name *string `min:"1" type:"string"`
7772}
7773
7774// String returns the string representation
7775func (s UpdateApplicationInput) String() string {
7776	return awsutil.Prettify(s)
7777}
7778
7779// GoString returns the string representation
7780func (s UpdateApplicationInput) GoString() string {
7781	return s.String()
7782}
7783
7784// Validate inspects the fields of the type to determine if they are valid.
7785func (s *UpdateApplicationInput) Validate() error {
7786	invalidParams := request.ErrInvalidParams{Context: "UpdateApplicationInput"}
7787	if s.ApplicationId == nil {
7788		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
7789	}
7790	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
7791		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
7792	}
7793	if s.Name != nil && len(*s.Name) < 1 {
7794		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7795	}
7796
7797	if invalidParams.Len() > 0 {
7798		return invalidParams
7799	}
7800	return nil
7801}
7802
7803// SetApplicationId sets the ApplicationId field's value.
7804func (s *UpdateApplicationInput) SetApplicationId(v string) *UpdateApplicationInput {
7805	s.ApplicationId = &v
7806	return s
7807}
7808
7809// SetDescription sets the Description field's value.
7810func (s *UpdateApplicationInput) SetDescription(v string) *UpdateApplicationInput {
7811	s.Description = &v
7812	return s
7813}
7814
7815// SetName sets the Name field's value.
7816func (s *UpdateApplicationInput) SetName(v string) *UpdateApplicationInput {
7817	s.Name = &v
7818	return s
7819}
7820
7821type UpdateApplicationOutput struct {
7822	_ struct{} `type:"structure"`
7823
7824	// The description of the application.
7825	Description *string `type:"string"`
7826
7827	// The application ID.
7828	Id *string `type:"string"`
7829
7830	// The application name.
7831	Name *string `min:"1" type:"string"`
7832}
7833
7834// String returns the string representation
7835func (s UpdateApplicationOutput) String() string {
7836	return awsutil.Prettify(s)
7837}
7838
7839// GoString returns the string representation
7840func (s UpdateApplicationOutput) GoString() string {
7841	return s.String()
7842}
7843
7844// SetDescription sets the Description field's value.
7845func (s *UpdateApplicationOutput) SetDescription(v string) *UpdateApplicationOutput {
7846	s.Description = &v
7847	return s
7848}
7849
7850// SetId sets the Id field's value.
7851func (s *UpdateApplicationOutput) SetId(v string) *UpdateApplicationOutput {
7852	s.Id = &v
7853	return s
7854}
7855
7856// SetName sets the Name field's value.
7857func (s *UpdateApplicationOutput) SetName(v string) *UpdateApplicationOutput {
7858	s.Name = &v
7859	return s
7860}
7861
7862type UpdateConfigurationProfileInput struct {
7863	_ struct{} `type:"structure"`
7864
7865	// The application ID.
7866	//
7867	// ApplicationId is a required field
7868	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
7869
7870	// The ID of the configuration profile.
7871	//
7872	// ConfigurationProfileId is a required field
7873	ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"`
7874
7875	// A description of the configuration profile.
7876	Description *string `type:"string"`
7877
7878	// The name of the configuration profile.
7879	Name *string `min:"1" type:"string"`
7880
7881	// The ARN of an IAM role with permission to access the configuration at the
7882	// specified LocationUri.
7883	RetrievalRoleArn *string `min:"20" type:"string"`
7884
7885	// A list of methods for validating the configuration.
7886	Validators []*Validator `type:"list"`
7887}
7888
7889// String returns the string representation
7890func (s UpdateConfigurationProfileInput) String() string {
7891	return awsutil.Prettify(s)
7892}
7893
7894// GoString returns the string representation
7895func (s UpdateConfigurationProfileInput) GoString() string {
7896	return s.String()
7897}
7898
7899// Validate inspects the fields of the type to determine if they are valid.
7900func (s *UpdateConfigurationProfileInput) Validate() error {
7901	invalidParams := request.ErrInvalidParams{Context: "UpdateConfigurationProfileInput"}
7902	if s.ApplicationId == nil {
7903		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
7904	}
7905	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
7906		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
7907	}
7908	if s.ConfigurationProfileId == nil {
7909		invalidParams.Add(request.NewErrParamRequired("ConfigurationProfileId"))
7910	}
7911	if s.ConfigurationProfileId != nil && len(*s.ConfigurationProfileId) < 1 {
7912		invalidParams.Add(request.NewErrParamMinLen("ConfigurationProfileId", 1))
7913	}
7914	if s.Name != nil && len(*s.Name) < 1 {
7915		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7916	}
7917	if s.RetrievalRoleArn != nil && len(*s.RetrievalRoleArn) < 20 {
7918		invalidParams.Add(request.NewErrParamMinLen("RetrievalRoleArn", 20))
7919	}
7920	if s.Validators != nil {
7921		for i, v := range s.Validators {
7922			if v == nil {
7923				continue
7924			}
7925			if err := v.Validate(); err != nil {
7926				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Validators", i), err.(request.ErrInvalidParams))
7927			}
7928		}
7929	}
7930
7931	if invalidParams.Len() > 0 {
7932		return invalidParams
7933	}
7934	return nil
7935}
7936
7937// SetApplicationId sets the ApplicationId field's value.
7938func (s *UpdateConfigurationProfileInput) SetApplicationId(v string) *UpdateConfigurationProfileInput {
7939	s.ApplicationId = &v
7940	return s
7941}
7942
7943// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
7944func (s *UpdateConfigurationProfileInput) SetConfigurationProfileId(v string) *UpdateConfigurationProfileInput {
7945	s.ConfigurationProfileId = &v
7946	return s
7947}
7948
7949// SetDescription sets the Description field's value.
7950func (s *UpdateConfigurationProfileInput) SetDescription(v string) *UpdateConfigurationProfileInput {
7951	s.Description = &v
7952	return s
7953}
7954
7955// SetName sets the Name field's value.
7956func (s *UpdateConfigurationProfileInput) SetName(v string) *UpdateConfigurationProfileInput {
7957	s.Name = &v
7958	return s
7959}
7960
7961// SetRetrievalRoleArn sets the RetrievalRoleArn field's value.
7962func (s *UpdateConfigurationProfileInput) SetRetrievalRoleArn(v string) *UpdateConfigurationProfileInput {
7963	s.RetrievalRoleArn = &v
7964	return s
7965}
7966
7967// SetValidators sets the Validators field's value.
7968func (s *UpdateConfigurationProfileInput) SetValidators(v []*Validator) *UpdateConfigurationProfileInput {
7969	s.Validators = v
7970	return s
7971}
7972
7973type UpdateConfigurationProfileOutput struct {
7974	_ struct{} `type:"structure"`
7975
7976	// The application ID.
7977	ApplicationId *string `type:"string"`
7978
7979	// The configuration profile description.
7980	Description *string `type:"string"`
7981
7982	// The configuration profile ID.
7983	Id *string `type:"string"`
7984
7985	// The URI location of the configuration.
7986	LocationUri *string `min:"1" type:"string"`
7987
7988	// The name of the configuration profile.
7989	Name *string `min:"1" type:"string"`
7990
7991	// The ARN of an IAM role with permission to access the configuration at the
7992	// specified LocationUri.
7993	RetrievalRoleArn *string `min:"20" type:"string"`
7994
7995	// A list of methods for validating the configuration.
7996	Validators []*Validator `type:"list"`
7997}
7998
7999// String returns the string representation
8000func (s UpdateConfigurationProfileOutput) String() string {
8001	return awsutil.Prettify(s)
8002}
8003
8004// GoString returns the string representation
8005func (s UpdateConfigurationProfileOutput) GoString() string {
8006	return s.String()
8007}
8008
8009// SetApplicationId sets the ApplicationId field's value.
8010func (s *UpdateConfigurationProfileOutput) SetApplicationId(v string) *UpdateConfigurationProfileOutput {
8011	s.ApplicationId = &v
8012	return s
8013}
8014
8015// SetDescription sets the Description field's value.
8016func (s *UpdateConfigurationProfileOutput) SetDescription(v string) *UpdateConfigurationProfileOutput {
8017	s.Description = &v
8018	return s
8019}
8020
8021// SetId sets the Id field's value.
8022func (s *UpdateConfigurationProfileOutput) SetId(v string) *UpdateConfigurationProfileOutput {
8023	s.Id = &v
8024	return s
8025}
8026
8027// SetLocationUri sets the LocationUri field's value.
8028func (s *UpdateConfigurationProfileOutput) SetLocationUri(v string) *UpdateConfigurationProfileOutput {
8029	s.LocationUri = &v
8030	return s
8031}
8032
8033// SetName sets the Name field's value.
8034func (s *UpdateConfigurationProfileOutput) SetName(v string) *UpdateConfigurationProfileOutput {
8035	s.Name = &v
8036	return s
8037}
8038
8039// SetRetrievalRoleArn sets the RetrievalRoleArn field's value.
8040func (s *UpdateConfigurationProfileOutput) SetRetrievalRoleArn(v string) *UpdateConfigurationProfileOutput {
8041	s.RetrievalRoleArn = &v
8042	return s
8043}
8044
8045// SetValidators sets the Validators field's value.
8046func (s *UpdateConfigurationProfileOutput) SetValidators(v []*Validator) *UpdateConfigurationProfileOutput {
8047	s.Validators = v
8048	return s
8049}
8050
8051type UpdateDeploymentStrategyInput struct {
8052	_ struct{} `type:"structure"`
8053
8054	// Total amount of time for a deployment to last.
8055	DeploymentDurationInMinutes *int64 `type:"integer"`
8056
8057	// The deployment strategy ID.
8058	//
8059	// DeploymentStrategyId is a required field
8060	DeploymentStrategyId *string `location:"uri" locationName:"DeploymentStrategyId" type:"string" required:"true"`
8061
8062	// A description of the deployment strategy.
8063	Description *string `type:"string"`
8064
8065	// The amount of time AppConfig monitors for alarms before considering the deployment
8066	// to be complete and no longer eligible for automatic roll back.
8067	FinalBakeTimeInMinutes *int64 `type:"integer"`
8068
8069	// The percentage of targets to receive a deployed configuration during each
8070	// interval.
8071	GrowthFactor *float64 `min:"1" type:"float"`
8072
8073	// The algorithm used to define how percentage grows over time. AWS AppConfig
8074	// supports the following growth types:
8075	//
8076	// Linear: For this type, AppConfig processes the deployment by increments of
8077	// the growth factor evenly distributed over the deployment time. For example,
8078	// a linear deployment that uses a growth factor of 20 initially makes the configuration
8079	// available to 20 percent of the targets. After 1/5th of the deployment time
8080	// has passed, the system updates the percentage to 40 percent. This continues
8081	// until 100% of the targets are set to receive the deployed configuration.
8082	//
8083	// Exponential: For this type, AppConfig processes the deployment exponentially
8084	// using the following formula: G*(2^N). In this formula, G is the growth factor
8085	// specified by the user and N is the number of steps until the configuration
8086	// is deployed to all targets. For example, if you specify a growth factor of
8087	// 2, then the system rolls out the configuration as follows:
8088	//
8089	// 2*(2^0)
8090	//
8091	// 2*(2^1)
8092	//
8093	// 2*(2^2)
8094	//
8095	// Expressed numerically, the deployment rolls out as follows: 2% of the targets,
8096	// 4% of the targets, 8% of the targets, and continues until the configuration
8097	// has been deployed to all targets.
8098	GrowthType *string `type:"string" enum:"GrowthType"`
8099}
8100
8101// String returns the string representation
8102func (s UpdateDeploymentStrategyInput) String() string {
8103	return awsutil.Prettify(s)
8104}
8105
8106// GoString returns the string representation
8107func (s UpdateDeploymentStrategyInput) GoString() string {
8108	return s.String()
8109}
8110
8111// Validate inspects the fields of the type to determine if they are valid.
8112func (s *UpdateDeploymentStrategyInput) Validate() error {
8113	invalidParams := request.ErrInvalidParams{Context: "UpdateDeploymentStrategyInput"}
8114	if s.DeploymentStrategyId == nil {
8115		invalidParams.Add(request.NewErrParamRequired("DeploymentStrategyId"))
8116	}
8117	if s.DeploymentStrategyId != nil && len(*s.DeploymentStrategyId) < 1 {
8118		invalidParams.Add(request.NewErrParamMinLen("DeploymentStrategyId", 1))
8119	}
8120	if s.GrowthFactor != nil && *s.GrowthFactor < 1 {
8121		invalidParams.Add(request.NewErrParamMinValue("GrowthFactor", 1))
8122	}
8123
8124	if invalidParams.Len() > 0 {
8125		return invalidParams
8126	}
8127	return nil
8128}
8129
8130// SetDeploymentDurationInMinutes sets the DeploymentDurationInMinutes field's value.
8131func (s *UpdateDeploymentStrategyInput) SetDeploymentDurationInMinutes(v int64) *UpdateDeploymentStrategyInput {
8132	s.DeploymentDurationInMinutes = &v
8133	return s
8134}
8135
8136// SetDeploymentStrategyId sets the DeploymentStrategyId field's value.
8137func (s *UpdateDeploymentStrategyInput) SetDeploymentStrategyId(v string) *UpdateDeploymentStrategyInput {
8138	s.DeploymentStrategyId = &v
8139	return s
8140}
8141
8142// SetDescription sets the Description field's value.
8143func (s *UpdateDeploymentStrategyInput) SetDescription(v string) *UpdateDeploymentStrategyInput {
8144	s.Description = &v
8145	return s
8146}
8147
8148// SetFinalBakeTimeInMinutes sets the FinalBakeTimeInMinutes field's value.
8149func (s *UpdateDeploymentStrategyInput) SetFinalBakeTimeInMinutes(v int64) *UpdateDeploymentStrategyInput {
8150	s.FinalBakeTimeInMinutes = &v
8151	return s
8152}
8153
8154// SetGrowthFactor sets the GrowthFactor field's value.
8155func (s *UpdateDeploymentStrategyInput) SetGrowthFactor(v float64) *UpdateDeploymentStrategyInput {
8156	s.GrowthFactor = &v
8157	return s
8158}
8159
8160// SetGrowthType sets the GrowthType field's value.
8161func (s *UpdateDeploymentStrategyInput) SetGrowthType(v string) *UpdateDeploymentStrategyInput {
8162	s.GrowthType = &v
8163	return s
8164}
8165
8166type UpdateDeploymentStrategyOutput struct {
8167	_ struct{} `type:"structure"`
8168
8169	// Total amount of time the deployment lasted.
8170	DeploymentDurationInMinutes *int64 `type:"integer"`
8171
8172	// The description of the deployment strategy.
8173	Description *string `type:"string"`
8174
8175	// The amount of time AppConfig monitored for alarms before considering the
8176	// deployment to be complete and no longer eligible for automatic roll back.
8177	FinalBakeTimeInMinutes *int64 `type:"integer"`
8178
8179	// The percentage of targets that received a deployed configuration during each
8180	// interval.
8181	GrowthFactor *float64 `min:"1" type:"float"`
8182
8183	// The algorithm used to define how percentage grew over time.
8184	GrowthType *string `type:"string" enum:"GrowthType"`
8185
8186	// The deployment strategy ID.
8187	Id *string `type:"string"`
8188
8189	// The name of the deployment strategy.
8190	Name *string `min:"1" type:"string"`
8191
8192	// Save the deployment strategy to a Systems Manager (SSM) document.
8193	ReplicateTo *string `type:"string" enum:"ReplicateTo"`
8194}
8195
8196// String returns the string representation
8197func (s UpdateDeploymentStrategyOutput) String() string {
8198	return awsutil.Prettify(s)
8199}
8200
8201// GoString returns the string representation
8202func (s UpdateDeploymentStrategyOutput) GoString() string {
8203	return s.String()
8204}
8205
8206// SetDeploymentDurationInMinutes sets the DeploymentDurationInMinutes field's value.
8207func (s *UpdateDeploymentStrategyOutput) SetDeploymentDurationInMinutes(v int64) *UpdateDeploymentStrategyOutput {
8208	s.DeploymentDurationInMinutes = &v
8209	return s
8210}
8211
8212// SetDescription sets the Description field's value.
8213func (s *UpdateDeploymentStrategyOutput) SetDescription(v string) *UpdateDeploymentStrategyOutput {
8214	s.Description = &v
8215	return s
8216}
8217
8218// SetFinalBakeTimeInMinutes sets the FinalBakeTimeInMinutes field's value.
8219func (s *UpdateDeploymentStrategyOutput) SetFinalBakeTimeInMinutes(v int64) *UpdateDeploymentStrategyOutput {
8220	s.FinalBakeTimeInMinutes = &v
8221	return s
8222}
8223
8224// SetGrowthFactor sets the GrowthFactor field's value.
8225func (s *UpdateDeploymentStrategyOutput) SetGrowthFactor(v float64) *UpdateDeploymentStrategyOutput {
8226	s.GrowthFactor = &v
8227	return s
8228}
8229
8230// SetGrowthType sets the GrowthType field's value.
8231func (s *UpdateDeploymentStrategyOutput) SetGrowthType(v string) *UpdateDeploymentStrategyOutput {
8232	s.GrowthType = &v
8233	return s
8234}
8235
8236// SetId sets the Id field's value.
8237func (s *UpdateDeploymentStrategyOutput) SetId(v string) *UpdateDeploymentStrategyOutput {
8238	s.Id = &v
8239	return s
8240}
8241
8242// SetName sets the Name field's value.
8243func (s *UpdateDeploymentStrategyOutput) SetName(v string) *UpdateDeploymentStrategyOutput {
8244	s.Name = &v
8245	return s
8246}
8247
8248// SetReplicateTo sets the ReplicateTo field's value.
8249func (s *UpdateDeploymentStrategyOutput) SetReplicateTo(v string) *UpdateDeploymentStrategyOutput {
8250	s.ReplicateTo = &v
8251	return s
8252}
8253
8254type UpdateEnvironmentInput struct {
8255	_ struct{} `type:"structure"`
8256
8257	// The application ID.
8258	//
8259	// ApplicationId is a required field
8260	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
8261
8262	// A description of the environment.
8263	Description *string `type:"string"`
8264
8265	// The environment ID.
8266	//
8267	// EnvironmentId is a required field
8268	EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"`
8269
8270	// Amazon CloudWatch alarms to monitor during the deployment process.
8271	Monitors []*Monitor `type:"list"`
8272
8273	// The name of the environment.
8274	Name *string `min:"1" type:"string"`
8275}
8276
8277// String returns the string representation
8278func (s UpdateEnvironmentInput) String() string {
8279	return awsutil.Prettify(s)
8280}
8281
8282// GoString returns the string representation
8283func (s UpdateEnvironmentInput) GoString() string {
8284	return s.String()
8285}
8286
8287// Validate inspects the fields of the type to determine if they are valid.
8288func (s *UpdateEnvironmentInput) Validate() error {
8289	invalidParams := request.ErrInvalidParams{Context: "UpdateEnvironmentInput"}
8290	if s.ApplicationId == nil {
8291		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
8292	}
8293	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
8294		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
8295	}
8296	if s.EnvironmentId == nil {
8297		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
8298	}
8299	if s.EnvironmentId != nil && len(*s.EnvironmentId) < 1 {
8300		invalidParams.Add(request.NewErrParamMinLen("EnvironmentId", 1))
8301	}
8302	if s.Name != nil && len(*s.Name) < 1 {
8303		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8304	}
8305	if s.Monitors != nil {
8306		for i, v := range s.Monitors {
8307			if v == nil {
8308				continue
8309			}
8310			if err := v.Validate(); err != nil {
8311				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Monitors", i), err.(request.ErrInvalidParams))
8312			}
8313		}
8314	}
8315
8316	if invalidParams.Len() > 0 {
8317		return invalidParams
8318	}
8319	return nil
8320}
8321
8322// SetApplicationId sets the ApplicationId field's value.
8323func (s *UpdateEnvironmentInput) SetApplicationId(v string) *UpdateEnvironmentInput {
8324	s.ApplicationId = &v
8325	return s
8326}
8327
8328// SetDescription sets the Description field's value.
8329func (s *UpdateEnvironmentInput) SetDescription(v string) *UpdateEnvironmentInput {
8330	s.Description = &v
8331	return s
8332}
8333
8334// SetEnvironmentId sets the EnvironmentId field's value.
8335func (s *UpdateEnvironmentInput) SetEnvironmentId(v string) *UpdateEnvironmentInput {
8336	s.EnvironmentId = &v
8337	return s
8338}
8339
8340// SetMonitors sets the Monitors field's value.
8341func (s *UpdateEnvironmentInput) SetMonitors(v []*Monitor) *UpdateEnvironmentInput {
8342	s.Monitors = v
8343	return s
8344}
8345
8346// SetName sets the Name field's value.
8347func (s *UpdateEnvironmentInput) SetName(v string) *UpdateEnvironmentInput {
8348	s.Name = &v
8349	return s
8350}
8351
8352type UpdateEnvironmentOutput struct {
8353	_ struct{} `type:"structure"`
8354
8355	// The application ID.
8356	ApplicationId *string `type:"string"`
8357
8358	// The description of the environment.
8359	Description *string `type:"string"`
8360
8361	// The environment ID.
8362	Id *string `type:"string"`
8363
8364	// Amazon CloudWatch alarms monitored during the deployment.
8365	Monitors []*Monitor `type:"list"`
8366
8367	// The name of the environment.
8368	Name *string `min:"1" type:"string"`
8369
8370	// The state of the environment. An environment can be in one of the following
8371	// states: READY_FOR_DEPLOYMENT, DEPLOYING, ROLLING_BACK, or ROLLED_BACK
8372	State *string `type:"string" enum:"EnvironmentState"`
8373}
8374
8375// String returns the string representation
8376func (s UpdateEnvironmentOutput) String() string {
8377	return awsutil.Prettify(s)
8378}
8379
8380// GoString returns the string representation
8381func (s UpdateEnvironmentOutput) GoString() string {
8382	return s.String()
8383}
8384
8385// SetApplicationId sets the ApplicationId field's value.
8386func (s *UpdateEnvironmentOutput) SetApplicationId(v string) *UpdateEnvironmentOutput {
8387	s.ApplicationId = &v
8388	return s
8389}
8390
8391// SetDescription sets the Description field's value.
8392func (s *UpdateEnvironmentOutput) SetDescription(v string) *UpdateEnvironmentOutput {
8393	s.Description = &v
8394	return s
8395}
8396
8397// SetId sets the Id field's value.
8398func (s *UpdateEnvironmentOutput) SetId(v string) *UpdateEnvironmentOutput {
8399	s.Id = &v
8400	return s
8401}
8402
8403// SetMonitors sets the Monitors field's value.
8404func (s *UpdateEnvironmentOutput) SetMonitors(v []*Monitor) *UpdateEnvironmentOutput {
8405	s.Monitors = v
8406	return s
8407}
8408
8409// SetName sets the Name field's value.
8410func (s *UpdateEnvironmentOutput) SetName(v string) *UpdateEnvironmentOutput {
8411	s.Name = &v
8412	return s
8413}
8414
8415// SetState sets the State field's value.
8416func (s *UpdateEnvironmentOutput) SetState(v string) *UpdateEnvironmentOutput {
8417	s.State = &v
8418	return s
8419}
8420
8421type ValidateConfigurationInput struct {
8422	_ struct{} `type:"structure"`
8423
8424	// The application ID.
8425	//
8426	// ApplicationId is a required field
8427	ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"`
8428
8429	// The configuration profile ID.
8430	//
8431	// ConfigurationProfileId is a required field
8432	ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"`
8433
8434	// The version of the configuration to validate.
8435	//
8436	// ConfigurationVersion is a required field
8437	ConfigurationVersion *string `location:"querystring" locationName:"configuration_version" min:"1" type:"string" required:"true"`
8438}
8439
8440// String returns the string representation
8441func (s ValidateConfigurationInput) String() string {
8442	return awsutil.Prettify(s)
8443}
8444
8445// GoString returns the string representation
8446func (s ValidateConfigurationInput) GoString() string {
8447	return s.String()
8448}
8449
8450// Validate inspects the fields of the type to determine if they are valid.
8451func (s *ValidateConfigurationInput) Validate() error {
8452	invalidParams := request.ErrInvalidParams{Context: "ValidateConfigurationInput"}
8453	if s.ApplicationId == nil {
8454		invalidParams.Add(request.NewErrParamRequired("ApplicationId"))
8455	}
8456	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
8457		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
8458	}
8459	if s.ConfigurationProfileId == nil {
8460		invalidParams.Add(request.NewErrParamRequired("ConfigurationProfileId"))
8461	}
8462	if s.ConfigurationProfileId != nil && len(*s.ConfigurationProfileId) < 1 {
8463		invalidParams.Add(request.NewErrParamMinLen("ConfigurationProfileId", 1))
8464	}
8465	if s.ConfigurationVersion == nil {
8466		invalidParams.Add(request.NewErrParamRequired("ConfigurationVersion"))
8467	}
8468	if s.ConfigurationVersion != nil && len(*s.ConfigurationVersion) < 1 {
8469		invalidParams.Add(request.NewErrParamMinLen("ConfigurationVersion", 1))
8470	}
8471
8472	if invalidParams.Len() > 0 {
8473		return invalidParams
8474	}
8475	return nil
8476}
8477
8478// SetApplicationId sets the ApplicationId field's value.
8479func (s *ValidateConfigurationInput) SetApplicationId(v string) *ValidateConfigurationInput {
8480	s.ApplicationId = &v
8481	return s
8482}
8483
8484// SetConfigurationProfileId sets the ConfigurationProfileId field's value.
8485func (s *ValidateConfigurationInput) SetConfigurationProfileId(v string) *ValidateConfigurationInput {
8486	s.ConfigurationProfileId = &v
8487	return s
8488}
8489
8490// SetConfigurationVersion sets the ConfigurationVersion field's value.
8491func (s *ValidateConfigurationInput) SetConfigurationVersion(v string) *ValidateConfigurationInput {
8492	s.ConfigurationVersion = &v
8493	return s
8494}
8495
8496type ValidateConfigurationOutput struct {
8497	_ struct{} `type:"structure"`
8498}
8499
8500// String returns the string representation
8501func (s ValidateConfigurationOutput) String() string {
8502	return awsutil.Prettify(s)
8503}
8504
8505// GoString returns the string representation
8506func (s ValidateConfigurationOutput) GoString() string {
8507	return s.String()
8508}
8509
8510// A validator provides a syntactic or semantic check to ensure the configuration
8511// you want to deploy functions as intended. To validate your application configuration
8512// data, you provide a schema or a Lambda function that runs against the configuration.
8513// The configuration deployment or update can only proceed when the configuration
8514// data is valid.
8515type Validator struct {
8516	_ struct{} `type:"structure"`
8517
8518	// Either the JSON Schema content or the Amazon Resource Name (ARN) of an AWS
8519	// Lambda function.
8520	//
8521	// Content is a required field
8522	Content *string `type:"string" required:"true" sensitive:"true"`
8523
8524	// AppConfig supports validators of type JSON_SCHEMA and LAMBDA
8525	//
8526	// Type is a required field
8527	Type *string `type:"string" required:"true" enum:"ValidatorType"`
8528}
8529
8530// String returns the string representation
8531func (s Validator) String() string {
8532	return awsutil.Prettify(s)
8533}
8534
8535// GoString returns the string representation
8536func (s Validator) GoString() string {
8537	return s.String()
8538}
8539
8540// Validate inspects the fields of the type to determine if they are valid.
8541func (s *Validator) Validate() error {
8542	invalidParams := request.ErrInvalidParams{Context: "Validator"}
8543	if s.Content == nil {
8544		invalidParams.Add(request.NewErrParamRequired("Content"))
8545	}
8546	if s.Type == nil {
8547		invalidParams.Add(request.NewErrParamRequired("Type"))
8548	}
8549
8550	if invalidParams.Len() > 0 {
8551		return invalidParams
8552	}
8553	return nil
8554}
8555
8556// SetContent sets the Content field's value.
8557func (s *Validator) SetContent(v string) *Validator {
8558	s.Content = &v
8559	return s
8560}
8561
8562// SetType sets the Type field's value.
8563func (s *Validator) SetType(v string) *Validator {
8564	s.Type = &v
8565	return s
8566}
8567
8568const (
8569	// BytesMeasureKilobytes is a BytesMeasure enum value
8570	BytesMeasureKilobytes = "KILOBYTES"
8571)
8572
8573const (
8574	// DeploymentEventTypePercentageUpdated is a DeploymentEventType enum value
8575	DeploymentEventTypePercentageUpdated = "PERCENTAGE_UPDATED"
8576
8577	// DeploymentEventTypeRollbackStarted is a DeploymentEventType enum value
8578	DeploymentEventTypeRollbackStarted = "ROLLBACK_STARTED"
8579
8580	// DeploymentEventTypeRollbackCompleted is a DeploymentEventType enum value
8581	DeploymentEventTypeRollbackCompleted = "ROLLBACK_COMPLETED"
8582
8583	// DeploymentEventTypeBakeTimeStarted is a DeploymentEventType enum value
8584	DeploymentEventTypeBakeTimeStarted = "BAKE_TIME_STARTED"
8585
8586	// DeploymentEventTypeDeploymentStarted is a DeploymentEventType enum value
8587	DeploymentEventTypeDeploymentStarted = "DEPLOYMENT_STARTED"
8588
8589	// DeploymentEventTypeDeploymentCompleted is a DeploymentEventType enum value
8590	DeploymentEventTypeDeploymentCompleted = "DEPLOYMENT_COMPLETED"
8591)
8592
8593const (
8594	// DeploymentStateBaking is a DeploymentState enum value
8595	DeploymentStateBaking = "BAKING"
8596
8597	// DeploymentStateValidating is a DeploymentState enum value
8598	DeploymentStateValidating = "VALIDATING"
8599
8600	// DeploymentStateDeploying is a DeploymentState enum value
8601	DeploymentStateDeploying = "DEPLOYING"
8602
8603	// DeploymentStateComplete is a DeploymentState enum value
8604	DeploymentStateComplete = "COMPLETE"
8605
8606	// DeploymentStateRollingBack is a DeploymentState enum value
8607	DeploymentStateRollingBack = "ROLLING_BACK"
8608
8609	// DeploymentStateRolledBack is a DeploymentState enum value
8610	DeploymentStateRolledBack = "ROLLED_BACK"
8611)
8612
8613const (
8614	// EnvironmentStateReadyForDeployment is a EnvironmentState enum value
8615	EnvironmentStateReadyForDeployment = "READY_FOR_DEPLOYMENT"
8616
8617	// EnvironmentStateDeploying is a EnvironmentState enum value
8618	EnvironmentStateDeploying = "DEPLOYING"
8619
8620	// EnvironmentStateRollingBack is a EnvironmentState enum value
8621	EnvironmentStateRollingBack = "ROLLING_BACK"
8622
8623	// EnvironmentStateRolledBack is a EnvironmentState enum value
8624	EnvironmentStateRolledBack = "ROLLED_BACK"
8625)
8626
8627const (
8628	// GrowthTypeLinear is a GrowthType enum value
8629	GrowthTypeLinear = "LINEAR"
8630
8631	// GrowthTypeExponential is a GrowthType enum value
8632	GrowthTypeExponential = "EXPONENTIAL"
8633)
8634
8635const (
8636	// ReplicateToNone is a ReplicateTo enum value
8637	ReplicateToNone = "NONE"
8638
8639	// ReplicateToSsmDocument is a ReplicateTo enum value
8640	ReplicateToSsmDocument = "SSM_DOCUMENT"
8641)
8642
8643const (
8644	// TriggeredByUser is a TriggeredBy enum value
8645	TriggeredByUser = "USER"
8646
8647	// TriggeredByAppconfig is a TriggeredBy enum value
8648	TriggeredByAppconfig = "APPCONFIG"
8649
8650	// TriggeredByCloudwatchAlarm is a TriggeredBy enum value
8651	TriggeredByCloudwatchAlarm = "CLOUDWATCH_ALARM"
8652
8653	// TriggeredByInternalError is a TriggeredBy enum value
8654	TriggeredByInternalError = "INTERNAL_ERROR"
8655)
8656
8657const (
8658	// ValidatorTypeJsonSchema is a ValidatorType enum value
8659	ValidatorTypeJsonSchema = "JSON_SCHEMA"
8660
8661	// ValidatorTypeLambda is a ValidatorType enum value
8662	ValidatorTypeLambda = "LAMBDA"
8663)
8664