Class: AWSCDK::CodePipelineActions::ECSDeployActionProps

Inherits:
AWSCDK::Codepipeline::CommonAWSActionProps
  • Object
show all
Defined in:
code_pipeline_actions/ecs_deploy_action_props.rb

Overview

Construction properties of EcsDeployAction.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(action_name:, run_order: nil, variables_namespace: nil, role: nil, service:, deployment_timeout: nil, image_file: nil, input: nil) ⇒ ECSDeployActionProps

Returns a new instance of ECSDeployActionProps.

Parameters:

  • action_name (String)

    The physical, human-readable name of the Action.

  • run_order (Numeric, nil) (defaults to: nil)

    The runOrder property for this Action.

  • variables_namespace (String, nil) (defaults to: nil)

    The name of the namespace to use for variables emitted by this action.

  • role (AWSCDK::IAM::IRole, nil) (defaults to: nil)

    The Role in which context's this Action will be executing in.

  • service (AWSCDK::ECS::IBaseService)

    The ECS Service to deploy.

  • deployment_timeout (AWSCDK::Duration, nil) (defaults to: nil)

    Timeout for the ECS deployment in minutes.

  • image_file (AWSCDK::Codepipeline::ArtifactPath, nil) (defaults to: nil)

    The name of the JSON image definitions file to use for deployments.

  • input (AWSCDK::Codepipeline::Artifact, nil) (defaults to: nil)

    The input artifact that contains the JSON image definitions file to use for deployments.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 15

def initialize(action_name:, run_order: nil, variables_namespace: nil, role: nil, service:, deployment_timeout: nil, image_file: nil, input: nil)
  @action_name = action_name
  Jsii::Type.check_type(@action_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "actionName")
  @run_order = run_order
  Jsii::Type.check_type(@run_order, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "runOrder") unless @run_order.nil?
  @variables_namespace = variables_namespace
  Jsii::Type.check_type(@variables_namespace, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "variablesNamespace") unless @variables_namespace.nil?
  @role = role
  Jsii::Type.check_type(@role, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfaWFtLklSb2xlIn0=")), "role") unless @role.nil?
  @service = service
  Jsii::Type.check_type(@service, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWNzLklCYXNlU2VydmljZSJ9")), "service")
  @deployment_timeout = deployment_timeout
  Jsii::Type.check_type(@deployment_timeout, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "deploymentTimeout") unless @deployment_timeout.nil?
  @image_file = image_file
  Jsii::Type.check_type(@image_file, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY29kZXBpcGVsaW5lLkFydGlmYWN0UGF0aCJ9")), "imageFile") unless @image_file.nil?
  @input = input
  Jsii::Type.check_type(@input, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY29kZXBpcGVsaW5lLkFydGlmYWN0In0=")), "input") unless @input.nil?
end

Instance Attribute Details

#action_nameString (readonly)

The physical, human-readable name of the Action.

Note that Action names must be unique within a single Stage.

Returns:

  • (String)


39
40
41
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 39

def action_name
  @action_name
end

#deployment_timeoutAWSCDK::Duration? (readonly)

Note:

Default: - 60 minutes

Timeout for the ECS deployment in minutes.

Value must be between 1-60.



75
76
77
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 75

def deployment_timeout
  @deployment_timeout
end

#image_fileAWSCDK::Codepipeline::ArtifactPath? (readonly)

Note:

Default: - one of this property, or input, is required

The name of the JSON image definitions file to use for deployments.

The JSON file is a list of objects, each with 2 keys: name is the name of the container in the Task Definition, and image_uri is the Docker image URI you want to update your service with. Use this property if you want to use a different name for this file than the default 'imagedefinitions.json'. If you use this property, you don't need to specify the input property.



87
88
89
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 87

def image_file
  @image_file
end

#inputAWSCDK::Codepipeline::Artifact? (readonly)

Note:

Default: - one of this property, or imageFile, is required

The input artifact that contains the JSON image definitions file to use for deployments.

The JSON file is a list of objects, each with 2 keys: name is the name of the container in the Task Definition, and image_uri is the Docker image URI you want to update your service with. If you use this property, it's assumed the file is called 'imagedefinitions.json'. If your build uses a different file, leave this property empty, and use the image_file property instead.



100
101
102
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 100

def input
  @input
end

#roleAWSCDK::IAM::IRole? (readonly)

Note:

Default: a new Role will be generated

The Role in which context's this Action will be executing in.

The Pipeline's Role will assume this Role (the required permissions for that will be granted automatically) right before executing this Action. This Action will be passed into your IAction.bind method in the ActionBindOptions.role property.

Returns:



63
64
65
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 63

def role
  @role
end

#run_orderNumeric? (readonly)

Note:

Default: 1

The runOrder property for this Action.

RunOrder determines the relative order in which multiple Actions in the same Stage execute.



47
48
49
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 47

def run_order
  @run_order
end

#serviceAWSCDK::ECS::IBaseService (readonly)

The ECS Service to deploy.



67
68
69
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 67

def service
  @service
end

#variables_namespaceString? (readonly)

Note:

Default: - a name will be generated, based on the stage and action names, if any of the action's variables were referenced - otherwise, no namespace will be set

The name of the namespace to use for variables emitted by this action.

Returns:

  • (String, nil)


52
53
54
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 52

def variables_namespace
  @variables_namespace
end

Class Method Details

.jsii_propertiesObject



102
103
104
105
106
107
108
109
110
111
112
113
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 102

def self.jsii_properties
  {
    :action_name => "actionName",
    :run_order => "runOrder",
    :variables_namespace => "variablesNamespace",
    :role => "role",
    :service => "service",
    :deployment_timeout => "deploymentTimeout",
    :image_file => "imageFile",
    :input => "input",
  }
end

Instance Method Details

#to_jsiiObject



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'code_pipeline_actions/ecs_deploy_action_props.rb', line 115

def to_jsii
  result = {}
  result.merge!(super)
  result.merge!({
    "actionName" => @action_name,
    "runOrder" => @run_order,
    "variablesNamespace" => @variables_namespace,
    "role" => @role,
    "service" => @service,
    "deploymentTimeout" => @deployment_timeout,
    "imageFile" => @image_file,
    "input" => @input,
  })
  result.compact
end