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