1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Information about an alarm.
10type Alarm struct {
11
12	// The name of the alarm. Maximum length is 255 characters. Each alarm name can be
13	// used only once in a list of alarms.
14	Name *string
15}
16
17// Information about alarms associated with the deployment group.
18type AlarmConfiguration struct {
19
20	// A list of alarms configured for the deployment group. A maximum of 10 alarms can
21	// be added to a deployment group.
22	Alarms []Alarm
23
24	// Indicates whether the alarm configuration is enabled.
25	Enabled bool
26
27	// Indicates whether a deployment should continue if information about the current
28	// state of alarms cannot be retrieved from Amazon CloudWatch. The default value is
29	// false.
30	//
31	// * true: The deployment proceeds even if alarm status information can't
32	// be retrieved from Amazon CloudWatch.
33	//
34	// * false: The deployment stops if alarm
35	// status information can't be retrieved from Amazon CloudWatch.
36	IgnorePollAlarmFailure bool
37}
38
39// Information about an application.
40type ApplicationInfo struct {
41
42	// The application ID.
43	ApplicationId *string
44
45	// The application name.
46	ApplicationName *string
47
48	// The destination platform type for deployment of the application (Lambda or
49	// Server).
50	ComputePlatform ComputePlatform
51
52	// The time at which the application was created.
53	CreateTime *time.Time
54
55	// The name for a connection to a GitHub account.
56	GitHubAccountName *string
57
58	// True if the user has authenticated with GitHub for the specified application.
59	// Otherwise, false.
60	LinkedToGitHub bool
61}
62
63// A revision for an AWS Lambda or Amazon ECS deployment that is a YAML-formatted
64// or JSON-formatted string. For AWS Lambda and Amazon ECS deployments, the
65// revision is the same as the AppSpec file. This method replaces the deprecated
66// RawString data type.
67type AppSpecContent struct {
68
69	// The YAML-formatted or JSON-formatted revision string. For an AWS Lambda
70	// deployment, the content includes a Lambda function name, the alias for its
71	// original version, and the alias for its replacement version. The deployment
72	// shifts traffic from the original version of the Lambda function to the
73	// replacement version. For an Amazon ECS deployment, the content includes the task
74	// name, information about the load balancer that serves traffic to the container,
75	// and more. For both types of deployments, the content can specify Lambda
76	// functions that run at specified hooks, such as BeforeInstall, during a
77	// deployment.
78	Content *string
79
80	// The SHA256 hash value of the revision content.
81	Sha256 *string
82}
83
84// Information about a configuration for automatically rolling back to a previous
85// version of an application revision when a deployment is not completed
86// successfully.
87type AutoRollbackConfiguration struct {
88
89	// Indicates whether a defined automatic rollback configuration is currently
90	// enabled.
91	Enabled bool
92
93	// The event type or types that trigger a rollback.
94	Events []AutoRollbackEvent
95}
96
97// Information about an Auto Scaling group.
98type AutoScalingGroup struct {
99
100	// An Auto Scaling lifecycle event hook name.
101	Hook *string
102
103	// The Auto Scaling group name.
104	Name *string
105}
106
107// Information about blue/green deployment options for a deployment group.
108type BlueGreenDeploymentConfiguration struct {
109
110	// Information about the action to take when newly provisioned instances are ready
111	// to receive traffic in a blue/green deployment.
112	DeploymentReadyOption *DeploymentReadyOption
113
114	// Information about how instances are provisioned for a replacement environment in
115	// a blue/green deployment.
116	GreenFleetProvisioningOption *GreenFleetProvisioningOption
117
118	// Information about whether to terminate instances in the original fleet during a
119	// blue/green deployment.
120	TerminateBlueInstancesOnDeploymentSuccess *BlueInstanceTerminationOption
121}
122
123// Information about whether instances in the original environment are terminated
124// when a blue/green deployment is successful. BlueInstanceTerminationOption does
125// not apply to Lambda deployments.
126type BlueInstanceTerminationOption struct {
127
128	// The action to take on instances in the original environment after a successful
129	// blue/green deployment.
130	//
131	// * TERMINATE: Instances are terminated after a specified
132	// wait time.
133	//
134	// * KEEP_ALIVE: Instances are left running after they are deregistered
135	// from the load balancer and removed from the deployment group.
136	Action InstanceAction
137
138	// For an Amazon EC2 deployment, the number of minutes to wait after a successful
139	// blue/green deployment before terminating instances from the original
140	// environment. For an Amazon ECS deployment, the number of minutes before deleting
141	// the original (blue) task set. During an Amazon ECS deployment, CodeDeploy shifts
142	// traffic from the original (blue) task set to a replacement (green) task set. The
143	// maximum setting is 2880 minutes (2 days).
144	TerminationWaitTimeInMinutes int32
145}
146
147// Information about the target to be updated by an AWS CloudFormation blue/green
148// deployment. This target type is used for all deployments initiated by a
149// CloudFormation stack update.
150type CloudFormationTarget struct {
151
152	// The unique ID of an AWS CloudFormation blue/green deployment.
153	DeploymentId *string
154
155	// The date and time when the target application was updated by an AWS
156	// CloudFormation blue/green deployment.
157	LastUpdatedAt *time.Time
158
159	// The lifecycle events of the AWS CloudFormation blue/green deployment to this
160	// target application.
161	LifecycleEvents []LifecycleEvent
162
163	// The resource type for the AWS CloudFormation blue/green deployment.
164	ResourceType *string
165
166	// The status of an AWS CloudFormation blue/green deployment's target application.
167	Status TargetStatus
168
169	// The unique ID of a deployment target that has a type of CloudFormationTarget.
170	TargetId *string
171
172	// The percentage of production traffic that the target version of an AWS
173	// CloudFormation blue/green deployment receives.
174	TargetVersionWeight float64
175}
176
177// Information about a deployment configuration.
178type DeploymentConfigInfo struct {
179
180	// The destination platform type for the deployment (Lambda, Server, or ECS).
181	ComputePlatform ComputePlatform
182
183	// The time at which the deployment configuration was created.
184	CreateTime *time.Time
185
186	// The deployment configuration ID.
187	DeploymentConfigId *string
188
189	// The deployment configuration name.
190	DeploymentConfigName *string
191
192	// Information about the number or percentage of minimum healthy instance.
193	MinimumHealthyHosts *MinimumHealthyHosts
194
195	// The configuration that specifies how the deployment traffic is routed. Used for
196	// deployments with a Lambda or ECS compute platform only.
197	TrafficRoutingConfig *TrafficRoutingConfig
198}
199
200// Information about a deployment group.
201type DeploymentGroupInfo struct {
202
203	// A list of alarms associated with the deployment group.
204	AlarmConfiguration *AlarmConfiguration
205
206	// The application name.
207	ApplicationName *string
208
209	// Information about the automatic rollback configuration associated with the
210	// deployment group.
211	AutoRollbackConfiguration *AutoRollbackConfiguration
212
213	// A list of associated Auto Scaling groups.
214	AutoScalingGroups []AutoScalingGroup
215
216	// Information about blue/green deployment options for a deployment group.
217	BlueGreenDeploymentConfiguration *BlueGreenDeploymentConfiguration
218
219	// The destination platform type for the deployment (Lambda, Server, or ECS).
220	ComputePlatform ComputePlatform
221
222	// The deployment configuration name.
223	DeploymentConfigName *string
224
225	// The deployment group ID.
226	DeploymentGroupId *string
227
228	// The deployment group name.
229	DeploymentGroupName *string
230
231	// Information about the type of deployment, either in-place or blue/green, you
232	// want to run and whether to route deployment traffic behind a load balancer.
233	DeploymentStyle *DeploymentStyle
234
235	// The Amazon EC2 tags on which to filter. The deployment group includes EC2
236	// instances with any of the specified tags.
237	Ec2TagFilters []EC2TagFilter
238
239	// Information about groups of tags applied to an EC2 instance. The deployment
240	// group includes only EC2 instances identified by all of the tag groups. Cannot be
241	// used in the same call as ec2TagFilters.
242	Ec2TagSet *EC2TagSet
243
244	// The target Amazon ECS services in the deployment group. This applies only to
245	// deployment groups that use the Amazon ECS compute platform. A target Amazon ECS
246	// service is specified as an Amazon ECS cluster and service name pair using the
247	// format :.
248	EcsServices []ECSService
249
250	// Information about the most recent attempted deployment to the deployment group.
251	LastAttemptedDeployment *LastDeploymentInfo
252
253	// Information about the most recent successful deployment to the deployment group.
254	LastSuccessfulDeployment *LastDeploymentInfo
255
256	// Information about the load balancer to use in a deployment.
257	LoadBalancerInfo *LoadBalancerInfo
258
259	// The on-premises instance tags on which to filter. The deployment group includes
260	// on-premises instances with any of the specified tags.
261	OnPremisesInstanceTagFilters []TagFilter
262
263	// Information about groups of tags applied to an on-premises instance. The
264	// deployment group includes only on-premises instances identified by all the tag
265	// groups. Cannot be used in the same call as onPremisesInstanceTagFilters.
266	OnPremisesTagSet *OnPremisesTagSet
267
268	// A service role Amazon Resource Name (ARN) that grants CodeDeploy permission to
269	// make calls to AWS services on your behalf. For more information, see Create a
270	// Service Role for AWS CodeDeploy
271	// (https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html)
272	// in the AWS CodeDeploy User Guide.
273	ServiceRoleArn *string
274
275	// Information about the deployment group's target revision, including type and
276	// location.
277	TargetRevision *RevisionLocation
278
279	// Information about triggers associated with the deployment group.
280	TriggerConfigurations []TriggerConfig
281}
282
283// Information about a deployment.
284type DeploymentInfo struct {
285
286	// Provides information about the results of a deployment, such as whether
287	// instances in the original environment in a blue/green deployment were not
288	// terminated.
289	//
290	// Deprecated: This member has been deprecated.
291	AdditionalDeploymentStatusInfo *string
292
293	// The application name.
294	ApplicationName *string
295
296	// Information about the automatic rollback configuration associated with the
297	// deployment.
298	AutoRollbackConfiguration *AutoRollbackConfiguration
299
300	// Information about blue/green deployment options for this deployment.
301	BlueGreenDeploymentConfiguration *BlueGreenDeploymentConfiguration
302
303	// A timestamp that indicates when the deployment was complete.
304	CompleteTime *time.Time
305
306	// The destination platform type for the deployment (Lambda, Server, or ECS).
307	ComputePlatform ComputePlatform
308
309	// A timestamp that indicates when the deployment was created.
310	CreateTime *time.Time
311
312	// The means by which the deployment was created:
313	//
314	// * user: A user created the
315	// deployment.
316	//
317	// * autoscaling: Amazon EC2 Auto Scaling created the deployment.
318	//
319	// *
320	// codeDeployRollback: A rollback process created the deployment.
321	Creator DeploymentCreator
322
323	// The deployment configuration name.
324	DeploymentConfigName *string
325
326	// The deployment group name.
327	DeploymentGroupName *string
328
329	// The unique ID of a deployment.
330	DeploymentId *string
331
332	// A summary of the deployment status of the instances in the deployment.
333	DeploymentOverview *DeploymentOverview
334
335	// Messages that contain information about the status of a deployment.
336	DeploymentStatusMessages []string
337
338	// Information about the type of deployment, either in-place or blue/green, you
339	// want to run and whether to route deployment traffic behind a load balancer.
340	DeploymentStyle *DeploymentStyle
341
342	// A comment about the deployment.
343	Description *string
344
345	// Information about any error associated with this deployment.
346	ErrorInformation *ErrorInformation
347
348	// The unique ID for an external resource (for example, a CloudFormation stack ID)
349	// that is linked to this deployment.
350	ExternalId *string
351
352	// Information about how AWS CodeDeploy handles files that already exist in a
353	// deployment target location but weren't part of the previous successful
354	// deployment.
355	//
356	// * DISALLOW: The deployment fails. This is also the default behavior
357	// if no option is specified.
358	//
359	// * OVERWRITE: The version of the file from the
360	// application revision currently being deployed replaces the version already on
361	// the instance.
362	//
363	// * RETAIN: The version of the file already on the instance is kept
364	// and used as part of the new deployment.
365	FileExistsBehavior FileExistsBehavior
366
367	// If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic
368	// deployment lifecycle event to an instance fails, then the deployment continues
369	// to the next deployment lifecycle event. For example, if ApplicationStop fails,
370	// the deployment continues with DownloadBundle. If BeforeBlockTraffic fails, the
371	// deployment continues with BlockTraffic. If AfterBlockTraffic fails, the
372	// deployment continues with ApplicationStop. If false or not specified, then if a
373	// lifecycle event fails during a deployment to an instance, that deployment fails.
374	// If deployment to that instance is part of an overall deployment and the number
375	// of healthy hosts is not less than the minimum number of healthy hosts, then a
376	// deployment to the next instance is attempted. During a deployment, the AWS
377	// CodeDeploy agent runs the scripts specified for ApplicationStop,
378	// BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec file from the previous
379	// successful deployment. (All other scripts are run from the AppSpec file in the
380	// current deployment.) If one of these scripts contains an error and does not run
381	// successfully, the deployment can fail. If the cause of the failure is a script
382	// from the last successful deployment that will never run successfully, create a
383	// new deployment and use ignoreApplicationStopFailures to specify that the
384	// ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic failures should be
385	// ignored.
386	IgnoreApplicationStopFailures bool
387
388	// Indicates whether the wait period set for the termination of instances in the
389	// original environment has started. Status is 'false' if the KEEP_ALIVE option is
390	// specified. Otherwise, 'true' as soon as the termination wait period starts.
391	InstanceTerminationWaitTimeStarted bool
392
393	// Information about the load balancer used in the deployment.
394	LoadBalancerInfo *LoadBalancerInfo
395
396	// Information about the application revision that was deployed to the deployment
397	// group before the most recent successful deployment.
398	PreviousRevision *RevisionLocation
399
400	// Information about the location of stored application artifacts and the service
401	// from which to retrieve them.
402	Revision *RevisionLocation
403
404	// Information about a deployment rollback.
405	RollbackInfo *RollbackInfo
406
407	// A timestamp that indicates when the deployment was deployed to the deployment
408	// group. In some cases, the reported value of the start time might be later than
409	// the complete time. This is due to differences in the clock settings of backend
410	// servers that participate in the deployment process.
411	StartTime *time.Time
412
413	// The current state of the deployment as a whole.
414	Status DeploymentStatus
415
416	// Information about the instances that belong to the replacement environment in a
417	// blue/green deployment.
418	TargetInstances *TargetInstances
419
420	// Indicates whether only instances that are not running the latest application
421	// revision are to be deployed to.
422	UpdateOutdatedInstancesOnly bool
423}
424
425// Information about the deployment status of the instances in the deployment.
426type DeploymentOverview struct {
427
428	// The number of instances in the deployment in a failed state.
429	Failed int64
430
431	// The number of instances in which the deployment is in progress.
432	InProgress int64
433
434	// The number of instances in the deployment in a pending state.
435	Pending int64
436
437	// The number of instances in a replacement environment ready to receive traffic in
438	// a blue/green deployment.
439	Ready int64
440
441	// The number of instances in the deployment in a skipped state.
442	Skipped int64
443
444	// The number of instances in the deployment to which revisions have been
445	// successfully deployed.
446	Succeeded int64
447}
448
449// Information about how traffic is rerouted to instances in a replacement
450// environment in a blue/green deployment.
451type DeploymentReadyOption struct {
452
453	// Information about when to reroute traffic from an original environment to a
454	// replacement environment in a blue/green deployment.
455	//
456	// * CONTINUE_DEPLOYMENT:
457	// Register new instances with the load balancer immediately after the new
458	// application revision is installed on the instances in the replacement
459	// environment.
460	//
461	// * STOP_DEPLOYMENT: Do not register new instances with a load
462	// balancer unless traffic rerouting is started using ContinueDeployment. If
463	// traffic rerouting is not started before the end of the specified wait period,
464	// the deployment status is changed to Stopped.
465	ActionOnTimeout DeploymentReadyAction
466
467	// The number of minutes to wait before the status of a blue/green deployment is
468	// changed to Stopped if rerouting is not started manually. Applies only to the
469	// STOP_DEPLOYMENT option for actionOnTimeout.
470	WaitTimeInMinutes int32
471}
472
473// Information about the type of deployment, either in-place or blue/green, you
474// want to run and whether to route deployment traffic behind a load balancer.
475type DeploymentStyle struct {
476
477	// Indicates whether to route deployment traffic behind a load balancer.
478	DeploymentOption DeploymentOption
479
480	// Indicates whether to run an in-place deployment or a blue/green deployment.
481	DeploymentType DeploymentType
482}
483
484// Information about the deployment target.
485type DeploymentTarget struct {
486
487	// Information about the target to be updated by an AWS CloudFormation blue/green
488	// deployment. This target type is used for all deployments initiated by a
489	// CloudFormation stack update.
490	CloudFormationTarget *CloudFormationTarget
491
492	// The deployment type that is specific to the deployment's compute platform or
493	// deployments initiated by a CloudFormation stack update.
494	DeploymentTargetType DeploymentTargetType
495
496	// Information about the target for a deployment that uses the Amazon ECS compute
497	// platform.
498	EcsTarget *ECSTarget
499
500	// Information about the target for a deployment that uses the EC2/On-premises
501	// compute platform.
502	InstanceTarget *InstanceTarget
503
504	// Information about the target for a deployment that uses the AWS Lambda compute
505	// platform.
506	LambdaTarget *LambdaTarget
507}
508
509// Diagnostic information about executable scripts that are part of a deployment.
510type Diagnostics struct {
511
512	// The associated error code:
513	//
514	// * Success: The specified script ran.
515	//
516	// *
517	// ScriptMissing: The specified script was not found in the specified location.
518	//
519	// *
520	// ScriptNotExecutable: The specified script is not a recognized executable file
521	// type.
522	//
523	// * ScriptTimedOut: The specified script did not finish running in the
524	// specified time period.
525	//
526	// * ScriptFailed: The specified script failed to run as
527	// expected.
528	//
529	// * UnknownError: The specified script did not run for an unknown
530	// reason.
531	ErrorCode LifecycleErrorCode
532
533	// The last portion of the diagnostic log. If available, AWS CodeDeploy returns up
534	// to the last 4 KB of the diagnostic log.
535	LogTail *string
536
537	// The message associated with the error.
538	Message *string
539
540	// The name of the script.
541	ScriptName *string
542}
543
544// Information about an EC2 tag filter.
545type EC2TagFilter struct {
546
547	// The tag filter key.
548	Key *string
549
550	// The tag filter type:
551	//
552	// * KEY_ONLY: Key only.
553	//
554	// * VALUE_ONLY: Value only.
555	//
556	// *
557	// KEY_AND_VALUE: Key and value.
558	Type EC2TagFilterType
559
560	// The tag filter value.
561	Value *string
562}
563
564// Information about groups of EC2 instance tags.
565type EC2TagSet struct {
566
567	// A list that contains other lists of EC2 instance tag groups. For an instance to
568	// be included in the deployment group, it must be identified by all of the tag
569	// groups in the list.
570	Ec2TagSetList [][]EC2TagFilter
571}
572
573// Contains the service and cluster names used to identify an Amazon ECS
574// deployment's target.
575type ECSService struct {
576
577	// The name of the cluster that the Amazon ECS service is associated with.
578	ClusterName *string
579
580	// The name of the target Amazon ECS service.
581	ServiceName *string
582}
583
584// Information about the target of an Amazon ECS deployment.
585type ECSTarget struct {
586
587	// The unique ID of a deployment.
588	DeploymentId *string
589
590	// The date and time when the target Amazon ECS application was updated by a
591	// deployment.
592	LastUpdatedAt *time.Time
593
594	// The lifecycle events of the deployment to this target Amazon ECS application.
595	LifecycleEvents []LifecycleEvent
596
597	// The status an Amazon ECS deployment's target ECS application.
598	Status TargetStatus
599
600	// The Amazon Resource Name (ARN) of the target.
601	TargetArn *string
602
603	// The unique ID of a deployment target that has a type of ecsTarget.
604	TargetId *string
605
606	// The ECSTaskSet objects associated with the ECS target.
607	TaskSetsInfo []ECSTaskSet
608}
609
610// Information about a set of Amazon ECS tasks in an AWS CodeDeploy deployment. An
611// Amazon ECS task set includes details such as the desired number of tasks, how
612// many tasks are running, and whether the task set serves production traffic. An
613// AWS CodeDeploy application that uses the Amazon ECS compute platform deploys a
614// containerized application in an Amazon ECS service as a task set.
615type ECSTaskSet struct {
616
617	// The number of tasks in a task set. During a deployment that uses the Amazon ECS
618	// compute type, CodeDeploy instructs Amazon ECS to create a new task set and uses
619	// this value to determine how many tasks to create. After the updated task set is
620	// created, CodeDeploy shifts traffic to the new task set.
621	DesiredCount int64
622
623	// A unique ID of an ECSTaskSet.
624	Identifer *string
625
626	// The number of tasks in the task set that are in the PENDING status during an
627	// Amazon ECS deployment. A task in the PENDING state is preparing to enter the
628	// RUNNING state. A task set enters the PENDING status when it launches for the
629	// first time, or when it is restarted after being in the STOPPED state.
630	PendingCount int64
631
632	// The number of tasks in the task set that are in the RUNNING status during an
633	// Amazon ECS deployment. A task in the RUNNING state is running and ready for use.
634	RunningCount int64
635
636	// The status of the task set. There are three valid task set statuses:
637	//
638	// * PRIMARY:
639	// Indicates the task set is serving production traffic.
640	//
641	// * ACTIVE: Indicates the
642	// task set is not serving production traffic.
643	//
644	// * DRAINING: Indicates the tasks in
645	// the task set are being stopped and their corresponding targets are being
646	// deregistered from their target group.
647	Status *string
648
649	// The target group associated with the task set. The target group is used by AWS
650	// CodeDeploy to manage traffic to a task set.
651	TargetGroup *TargetGroupInfo
652
653	// A label that identifies whether the ECS task set is an original target (BLUE) or
654	// a replacement target (GREEN).
655	TaskSetLabel TargetLabel
656
657	// The percentage of traffic served by this task set.
658	TrafficWeight float64
659}
660
661// Information about a load balancer in Elastic Load Balancing to use in a
662// deployment. Instances are registered directly with a load balancer, and traffic
663// is routed to the load balancer.
664type ELBInfo struct {
665
666	// For blue/green deployments, the name of the load balancer that is used to route
667	// traffic from original instances to replacement instances in a blue/green
668	// deployment. For in-place deployments, the name of the load balancer that
669	// instances are deregistered from so they are not serving traffic during a
670	// deployment, and then re-registered with after the deployment is complete.
671	Name *string
672}
673
674// Information about a deployment error.
675type ErrorInformation struct {
676
677	// For more information, see Error Codes for AWS CodeDeploy
678	// (https://docs.aws.amazon.com/codedeploy/latest/userguide/error-codes.html) in
679	// the AWS CodeDeploy User Guide
680	// (https://docs.aws.amazon.com/codedeploy/latest/userguide). The error code:
681	//
682	// *
683	// APPLICATION_MISSING: The application was missing. This error code is most likely
684	// raised if the application is deleted after the deployment is created, but before
685	// it is started.
686	//
687	// * DEPLOYMENT_GROUP_MISSING: The deployment group was missing.
688	// This error code is most likely raised if the deployment group is deleted after
689	// the deployment is created, but before it is started.
690	//
691	// * HEALTH_CONSTRAINTS: The
692	// deployment failed on too many instances to be successfully deployed within the
693	// instance health constraints specified.
694	//
695	// * HEALTH_CONSTRAINTS_INVALID: The
696	// revision cannot be successfully deployed within the instance health constraints
697	// specified.
698	//
699	// * IAM_ROLE_MISSING: The service role cannot be accessed.
700	//
701	// *
702	// IAM_ROLE_PERMISSIONS: The service role does not have the correct permissions.
703	//
704	// *
705	// INTERNAL_ERROR: There was an internal error.
706	//
707	// * NO_EC2_SUBSCRIPTION: The calling
708	// account is not subscribed to Amazon EC2.
709	//
710	// * NO_INSTANCES: No instances were
711	// specified, or no instances can be found.
712	//
713	// * OVER_MAX_INSTANCES: The maximum
714	// number of instances was exceeded.
715	//
716	// * THROTTLED: The operation was throttled
717	// because the calling account exceeded the throttling limits of one or more AWS
718	// services.
719	//
720	// * TIMEOUT: The deployment has timed out.
721	//
722	// * REVISION_MISSING: The
723	// revision ID was missing. This error code is most likely raised if the revision
724	// is deleted after the deployment is created, but before it is started.
725	Code ErrorCode
726
727	// An accompanying error message.
728	Message *string
729}
730
731// Information about an application revision.
732type GenericRevisionInfo struct {
733
734	// The deployment groups for which this is the current target revision.
735	DeploymentGroups []string
736
737	// A comment about the revision.
738	Description *string
739
740	// When the revision was first used by AWS CodeDeploy.
741	FirstUsedTime *time.Time
742
743	// When the revision was last used by AWS CodeDeploy.
744	LastUsedTime *time.Time
745
746	// When the revision was registered with AWS CodeDeploy.
747	RegisterTime *time.Time
748}
749
750// Information about the location of application artifacts stored in GitHub.
751type GitHubLocation struct {
752
753	// The SHA1 commit ID of the GitHub commit that represents the bundled artifacts
754	// for the application revision.
755	CommitId *string
756
757	// The GitHub account and repository pair that stores a reference to the commit
758	// that represents the bundled artifacts for the application revision. Specified as
759	// account/repository.
760	Repository *string
761}
762
763// Information about the instances that belong to the replacement environment in a
764// blue/green deployment.
765type GreenFleetProvisioningOption struct {
766
767	// The method used to add instances to a replacement environment.
768	//
769	// *
770	// DISCOVER_EXISTING: Use instances that already exist or will be created
771	// manually.
772	//
773	// * COPY_AUTO_SCALING_GROUP: Use settings from a specified Auto Scaling
774	// group to define and create instances in a new Auto Scaling group.
775	Action GreenFleetProvisioningAction
776}
777
778// Information about an on-premises instance.
779type InstanceInfo struct {
780
781	// If the on-premises instance was deregistered, the time at which the on-premises
782	// instance was deregistered.
783	DeregisterTime *time.Time
784
785	// The ARN of the IAM session associated with the on-premises instance.
786	IamSessionArn *string
787
788	// The IAM user ARN associated with the on-premises instance.
789	IamUserArn *string
790
791	// The ARN of the on-premises instance.
792	InstanceArn *string
793
794	// The name of the on-premises instance.
795	InstanceName *string
796
797	// The time at which the on-premises instance was registered.
798	RegisterTime *time.Time
799
800	// The tags currently associated with the on-premises instance.
801	Tags []Tag
802}
803
804// Information about an instance in a deployment.
805type InstanceSummary struct {
806
807	// The unique ID of a deployment.
808	DeploymentId *string
809
810	// The instance ID.
811	InstanceId *string
812
813	// Information about which environment an instance belongs to in a blue/green
814	// deployment.
815	//
816	// * BLUE: The instance is part of the original environment.
817	//
818	// * GREEN:
819	// The instance is part of the replacement environment.
820	InstanceType InstanceType
821
822	// A timestamp that indicates when the instance information was last updated.
823	LastUpdatedAt *time.Time
824
825	// A list of lifecycle events for this instance.
826	LifecycleEvents []LifecycleEvent
827
828	// The deployment status for this instance:
829	//
830	// * Pending: The deployment is pending
831	// for this instance.
832	//
833	// * In Progress: The deployment is in progress for this
834	// instance.
835	//
836	// * Succeeded: The deployment has succeeded for this instance.
837	//
838	// *
839	// Failed: The deployment has failed for this instance.
840	//
841	// * Skipped: The deployment
842	// has been skipped for this instance.
843	//
844	// * Unknown: The deployment status is unknown
845	// for this instance.
846	//
847	// Deprecated: InstanceStatus is deprecated, use TargetStatus instead.
848	Status InstanceStatus
849}
850
851// A target Amazon EC2 or on-premises instance during a deployment that uses the
852// EC2/On-premises compute platform.
853type InstanceTarget struct {
854
855	// The unique ID of a deployment.
856	DeploymentId *string
857
858	// A label that identifies whether the instance is an original target (BLUE) or a
859	// replacement target (GREEN).
860	InstanceLabel TargetLabel
861
862	// The date and time when the target instance was updated by a deployment.
863	LastUpdatedAt *time.Time
864
865	// The lifecycle events of the deployment to this target instance.
866	LifecycleEvents []LifecycleEvent
867
868	// The status an EC2/On-premises deployment's target instance.
869	Status TargetStatus
870
871	// The Amazon Resource Name (ARN) of the target.
872	TargetArn *string
873
874	// The unique ID of a deployment target that has a type of instanceTarget.
875	TargetId *string
876}
877
878// Information about a Lambda function specified in a deployment.
879type LambdaFunctionInfo struct {
880
881	// The version of a Lambda function that production traffic points to.
882	CurrentVersion *string
883
884	// The alias of a Lambda function. For more information, see AWS Lambda Function
885	// Aliases (https://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html) in the
886	// AWS Lambda Developer Guide.
887	FunctionAlias *string
888
889	// The name of a Lambda function.
890	FunctionName *string
891
892	// The version of a Lambda function that production traffic points to after the
893	// Lambda function is deployed.
894	TargetVersion *string
895
896	// The percentage of production traffic that the target version of a Lambda
897	// function receives.
898	TargetVersionWeight float64
899}
900
901// Information about the target AWS Lambda function during an AWS Lambda
902// deployment.
903type LambdaTarget struct {
904
905	// The unique ID of a deployment.
906	DeploymentId *string
907
908	// A LambdaFunctionInfo object that describes a target Lambda function.
909	LambdaFunctionInfo *LambdaFunctionInfo
910
911	// The date and time when the target Lambda function was updated by a deployment.
912	LastUpdatedAt *time.Time
913
914	// The lifecycle events of the deployment to this target Lambda function.
915	LifecycleEvents []LifecycleEvent
916
917	// The status an AWS Lambda deployment's target Lambda function.
918	Status TargetStatus
919
920	// The Amazon Resource Name (ARN) of the target.
921	TargetArn *string
922
923	// The unique ID of a deployment target that has a type of lambdaTarget.
924	TargetId *string
925}
926
927// Information about the most recent attempted or successful deployment to a
928// deployment group.
929type LastDeploymentInfo struct {
930
931	// A timestamp that indicates when the most recent deployment to the deployment
932	// group started.
933	CreateTime *time.Time
934
935	// The unique ID of a deployment.
936	DeploymentId *string
937
938	// A timestamp that indicates when the most recent deployment to the deployment
939	// group was complete.
940	EndTime *time.Time
941
942	// The status of the most recent deployment.
943	Status DeploymentStatus
944}
945
946// Information about a deployment lifecycle event.
947type LifecycleEvent struct {
948
949	// Diagnostic information about the deployment lifecycle event.
950	Diagnostics *Diagnostics
951
952	// A timestamp that indicates when the deployment lifecycle event ended.
953	EndTime *time.Time
954
955	// The deployment lifecycle event name, such as ApplicationStop, BeforeInstall,
956	// AfterInstall, ApplicationStart, or ValidateService.
957	LifecycleEventName *string
958
959	// A timestamp that indicates when the deployment lifecycle event started.
960	StartTime *time.Time
961
962	// The deployment lifecycle event status:
963	//
964	// * Pending: The deployment lifecycle
965	// event is pending.
966	//
967	// * InProgress: The deployment lifecycle event is in
968	// progress.
969	//
970	// * Succeeded: The deployment lifecycle event ran successfully.
971	//
972	// *
973	// Failed: The deployment lifecycle event has failed.
974	//
975	// * Skipped: The deployment
976	// lifecycle event has been skipped.
977	//
978	// * Unknown: The deployment lifecycle event is
979	// unknown.
980	Status LifecycleEventStatus
981}
982
983// Information about the Elastic Load Balancing load balancer or target group used
984// in a deployment.
985type LoadBalancerInfo struct {
986
987	// An array that contains information about the load balancer to use for load
988	// balancing in a deployment. In Elastic Load Balancing, load balancers are used
989	// with Classic Load Balancers. Adding more than one load balancer to the array is
990	// not supported.
991	ElbInfoList []ELBInfo
992
993	// An array that contains information about the target group to use for load
994	// balancing in a deployment. In Elastic Load Balancing, target groups are used
995	// with Application Load Balancers. Adding more than one target group to the array
996	// is not supported.
997	TargetGroupInfoList []TargetGroupInfo
998
999	// The target group pair information. This is an array of TargeGroupPairInfo
1000	// objects with a maximum size of one.
1001	TargetGroupPairInfoList []TargetGroupPairInfo
1002}
1003
1004// Information about minimum healthy instance.
1005type MinimumHealthyHosts struct {
1006
1007	// The minimum healthy instance type:
1008	//
1009	// * HOST_COUNT: The minimum number of healthy
1010	// instances as an absolute value.
1011	//
1012	// * FLEET_PERCENT: The minimum number of healthy
1013	// instances as a percentage of the total number of instances in the
1014	// deployment.
1015	//
1016	// In an example of nine instances, if a HOST_COUNT of six is
1017	// specified, deploy to up to three instances at a time. The deployment is
1018	// successful if six or more instances are deployed to successfully. Otherwise, the
1019	// deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five
1020	// instances at a time. The deployment is successful if four or more instances are
1021	// deployed to successfully. Otherwise, the deployment fails. In a call to the
1022	// GetDeploymentConfig, CodeDeployDefault.OneAtATime returns a minimum healthy
1023	// instance type of MOST_CONCURRENCY and a value of 1. This means a deployment to
1024	// only one instance at a time. (You cannot set the type to MOST_CONCURRENCY, only
1025	// to HOST_COUNT or FLEET_PERCENT.) In addition, with CodeDeployDefault.OneAtATime,
1026	// AWS CodeDeploy attempts to ensure that all instances but one are kept in a
1027	// healthy state during the deployment. Although this allows one instance at a time
1028	// to be taken offline for a new deployment, it also means that if the deployment
1029	// to the last instance fails, the overall deployment is still successful. For more
1030	// information, see AWS CodeDeploy Instance Health
1031	// (https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html)
1032	// in the AWS CodeDeploy User Guide.
1033	Type MinimumHealthyHostsType
1034
1035	// The minimum healthy instance value.
1036	Value int32
1037}
1038
1039// Information about groups of on-premises instance tags.
1040type OnPremisesTagSet struct {
1041
1042	// A list that contains other lists of on-premises instance tag groups. For an
1043	// instance to be included in the deployment group, it must be identified by all of
1044	// the tag groups in the list.
1045	OnPremisesTagSetList [][]TagFilter
1046}
1047
1048// A revision for an AWS Lambda deployment that is a YAML-formatted or
1049// JSON-formatted string. For AWS Lambda deployments, the revision is the same as
1050// the AppSpec file.
1051type RawString struct {
1052
1053	// The YAML-formatted or JSON-formatted revision string. It includes information
1054	// about which Lambda function to update and optional Lambda functions that
1055	// validate deployment lifecycle events.
1056	Content *string
1057
1058	// The SHA256 hash value of the revision content.
1059	Sha256 *string
1060}
1061
1062// Information about an application revision.
1063type RevisionInfo struct {
1064
1065	// Information about an application revision, including usage details and
1066	// associated deployment groups.
1067	GenericRevisionInfo *GenericRevisionInfo
1068
1069	// Information about the location and type of an application revision.
1070	RevisionLocation *RevisionLocation
1071}
1072
1073// Information about the location of an application revision.
1074type RevisionLocation struct {
1075
1076	// The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The
1077	// content is formatted as JSON or YAML and stored as a RawString.
1078	AppSpecContent *AppSpecContent
1079
1080	// Information about the location of application artifacts stored in GitHub.
1081	GitHubLocation *GitHubLocation
1082
1083	// The type of application revision:
1084	//
1085	// * S3: An application revision stored in
1086	// Amazon S3.
1087	//
1088	// * GitHub: An application revision stored in GitHub (EC2/On-premises
1089	// deployments only).
1090	//
1091	// * String: A YAML-formatted or JSON-formatted string (AWS
1092	// Lambda deployments only).
1093	//
1094	// * AppSpecContent: An AppSpecContent object that
1095	// contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS
1096	// deployment. The content is formatted as JSON or YAML stored as a RawString.
1097	RevisionType RevisionLocationType
1098
1099	// Information about the location of a revision stored in Amazon S3.
1100	S3Location *S3Location
1101
1102	// Information about the location of an AWS Lambda deployment revision stored as a
1103	// RawString.
1104	//
1105	// Deprecated: RawString and String revision type are deprecated, use
1106	// AppSpecContent type instead.
1107	String_ *RawString
1108}
1109
1110// Information about a deployment rollback.
1111type RollbackInfo struct {
1112
1113	// The ID of the deployment rollback.
1114	RollbackDeploymentId *string
1115
1116	// Information that describes the status of a deployment rollback (for example,
1117	// whether the deployment can't be rolled back, is in progress, failed, or
1118	// succeeded).
1119	RollbackMessage *string
1120
1121	// The deployment ID of the deployment that was underway and triggered a rollback
1122	// deployment because it failed or was stopped.
1123	RollbackTriggeringDeploymentId *string
1124}
1125
1126// Information about the location of application artifacts stored in Amazon S3.
1127type S3Location struct {
1128
1129	// The name of the Amazon S3 bucket where the application revision is stored.
1130	Bucket *string
1131
1132	// The file type of the application revision. Must be one of the following:
1133	//
1134	// * tar:
1135	// A tar archive file.
1136	//
1137	// * tgz: A compressed tar archive file.
1138	//
1139	// * zip: A zip archive
1140	// file.
1141	BundleType BundleType
1142
1143	// The ETag of the Amazon S3 object that represents the bundled artifacts for the
1144	// application revision. If the ETag is not specified as an input parameter, ETag
1145	// validation of the object is skipped.
1146	ETag *string
1147
1148	// The name of the Amazon S3 object that represents the bundled artifacts for the
1149	// application revision.
1150	Key *string
1151
1152	// A specific version of the Amazon S3 object that represents the bundled artifacts
1153	// for the application revision. If the version is not specified, the system uses
1154	// the most recent version by default.
1155	Version *string
1156}
1157
1158// Information about a tag.
1159type Tag struct {
1160
1161	// The tag's key.
1162	Key *string
1163
1164	// The tag's value.
1165	Value *string
1166}
1167
1168// Information about an on-premises instance tag filter.
1169type TagFilter struct {
1170
1171	// The on-premises instance tag filter key.
1172	Key *string
1173
1174	// The on-premises instance tag filter type:
1175	//
1176	// * KEY_ONLY: Key only.
1177	//
1178	// * VALUE_ONLY:
1179	// Value only.
1180	//
1181	// * KEY_AND_VALUE: Key and value.
1182	Type TagFilterType
1183
1184	// The on-premises instance tag filter value.
1185	Value *string
1186}
1187
1188// Information about a target group in Elastic Load Balancing to use in a
1189// deployment. Instances are registered as targets in a target group, and traffic
1190// is routed to the target group.
1191type TargetGroupInfo struct {
1192
1193	// For blue/green deployments, the name of the target group that instances in the
1194	// original environment are deregistered from, and instances in the replacement
1195	// environment are registered with. For in-place deployments, the name of the
1196	// target group that instances are deregistered from, so they are not serving
1197	// traffic during a deployment, and then re-registered with after the deployment is
1198	// complete.
1199	Name *string
1200}
1201
1202// Information about two target groups and how traffic is routed during an Amazon
1203// ECS deployment. An optional test traffic route can be specified.
1204type TargetGroupPairInfo struct {
1205
1206	// The path used by a load balancer to route production traffic when an Amazon ECS
1207	// deployment is complete.
1208	ProdTrafficRoute *TrafficRoute
1209
1210	// One pair of target groups. One is associated with the original task set. The
1211	// second is associated with the task set that serves traffic after the deployment
1212	// is complete.
1213	TargetGroups []TargetGroupInfo
1214
1215	// An optional path used by a load balancer to route test traffic after an Amazon
1216	// ECS deployment. Validation can occur while test traffic is served during a
1217	// deployment.
1218	TestTrafficRoute *TrafficRoute
1219}
1220
1221// Information about the instances to be used in the replacement environment in a
1222// blue/green deployment.
1223type TargetInstances struct {
1224
1225	// The names of one or more Auto Scaling groups to identify a replacement
1226	// environment for a blue/green deployment.
1227	AutoScalingGroups []string
1228
1229	// Information about the groups of EC2 instance tags that an instance must be
1230	// identified by in order for it to be included in the replacement environment for
1231	// a blue/green deployment. Cannot be used in the same call as tagFilters.
1232	Ec2TagSet *EC2TagSet
1233
1234	// The tag filter key, type, and value used to identify Amazon EC2 instances in a
1235	// replacement environment for a blue/green deployment. Cannot be used in the same
1236	// call as ec2TagSet.
1237	TagFilters []EC2TagFilter
1238}
1239
1240// A configuration that shifts traffic from one version of a Lambda function or ECS
1241// task set to another in two increments. The original and target Lambda function
1242// versions or ECS task sets are specified in the deployment's AppSpec file.
1243type TimeBasedCanary struct {
1244
1245	// The number of minutes between the first and second traffic shifts of a
1246	// TimeBasedCanary deployment.
1247	CanaryInterval int32
1248
1249	// The percentage of traffic to shift in the first increment of a TimeBasedCanary
1250	// deployment.
1251	CanaryPercentage int32
1252}
1253
1254// A configuration that shifts traffic from one version of a Lambda function or ECS
1255// task set to another in equal increments, with an equal number of minutes between
1256// each increment. The original and target Lambda function versions or ECS task
1257// sets are specified in the deployment's AppSpec file.
1258type TimeBasedLinear struct {
1259
1260	// The number of minutes between each incremental traffic shift of a
1261	// TimeBasedLinear deployment.
1262	LinearInterval int32
1263
1264	// The percentage of traffic that is shifted at the start of each increment of a
1265	// TimeBasedLinear deployment.
1266	LinearPercentage int32
1267}
1268
1269// Information about a time range.
1270type TimeRange struct {
1271
1272	// The end time of the time range. Specify null to leave the end time open-ended.
1273	End *time.Time
1274
1275	// The start time of the time range. Specify null to leave the start time
1276	// open-ended.
1277	Start *time.Time
1278}
1279
1280// Information about a listener. The listener contains the path used to route
1281// traffic that is received from the load balancer to a target group.
1282type TrafficRoute struct {
1283
1284	// The Amazon Resource Name (ARN) of one listener. The listener identifies the
1285	// route between a target group and a load balancer. This is an array of strings
1286	// with a maximum size of one.
1287	ListenerArns []string
1288}
1289
1290// The configuration that specifies how traffic is shifted from one version of a
1291// Lambda function to another version during an AWS Lambda deployment, or from one
1292// Amazon ECS task set to another during an Amazon ECS deployment.
1293type TrafficRoutingConfig struct {
1294
1295	// A configuration that shifts traffic from one version of a Lambda function or ECS
1296	// task set to another in two increments. The original and target Lambda function
1297	// versions or ECS task sets are specified in the deployment's AppSpec file.
1298	TimeBasedCanary *TimeBasedCanary
1299
1300	// A configuration that shifts traffic from one version of a Lambda function or ECS
1301	// task set to another in equal increments, with an equal number of minutes between
1302	// each increment. The original and target Lambda function versions or ECS task
1303	// sets are specified in the deployment's AppSpec file.
1304	TimeBasedLinear *TimeBasedLinear
1305
1306	// The type of traffic shifting (TimeBasedCanary or TimeBasedLinear) used by a
1307	// deployment configuration.
1308	Type TrafficRoutingType
1309}
1310
1311// Information about notification triggers for the deployment group.
1312type TriggerConfig struct {
1313
1314	// The event type or types for which notifications are triggered.
1315	TriggerEvents []TriggerEventType
1316
1317	// The name of the notification trigger.
1318	TriggerName *string
1319
1320	// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service topic
1321	// through which notifications about deployment or instance events are sent.
1322	TriggerTargetArn *string
1323}
1324