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