Class: AWSCDK::Batch::CfnJobDefinitionProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
batch/cfn_job_definition_props.rb

Overview

Properties for defining a CfnJobDefinition.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type:, consumable_resource_properties: nil, container_properties: nil, ecs_properties: nil, eks_properties: nil, job_definition_name: nil, node_properties: nil, parameters: nil, platform_capabilities: nil, propagate_tags: nil, resource_retention_policy: nil, retry_strategy: nil, scheduling_priority: nil, tags: nil, timeout: nil) ⇒ CfnJobDefinitionProps

Returns a new instance of CfnJobDefinitionProps.

Parameters:



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'batch/cfn_job_definition_props.rb', line 24

def initialize(type:, consumable_resource_properties: nil, container_properties: nil, ecs_properties: nil, eks_properties: nil, job_definition_name: nil, node_properties: nil, parameters: nil, platform_capabilities: nil, propagate_tags: nil, resource_retention_policy: nil, retry_strategy: nil, scheduling_priority: nil, tags: nil, timeout: nil)
  @type = type
  Jsii::Type.check_type(@type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "type")
  @consumable_resource_properties = consumable_resource_properties.is_a?(Hash) ? ::AWSCDK::Batch::CfnJobDefinition::ConsumableResourcePropertiesProperty.new(**consumable_resource_properties.transform_keys(&:to_sym)) : consumable_resource_properties
  Jsii::Type.check_type(@consumable_resource_properties, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19iYXRjaC5DZm5Kb2JEZWZpbml0aW9uLkNvbnN1bWFibGVSZXNvdXJjZVByb3BlcnRpZXNQcm9wZXJ0eSJ9XX19")), "consumableResourceProperties") unless @consumable_resource_properties.nil?
  @container_properties = container_properties.is_a?(Hash) ? ::AWSCDK::Batch::CfnJobDefinition::ContainerPropertiesProperty.new(**container_properties.transform_keys(&:to_sym)) : container_properties
  Jsii::Type.check_type(@container_properties, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19iYXRjaC5DZm5Kb2JEZWZpbml0aW9uLkNvbnRhaW5lclByb3BlcnRpZXNQcm9wZXJ0eSJ9XX19")), "containerProperties") unless @container_properties.nil?
  @ecs_properties = ecs_properties.is_a?(Hash) ? ::AWSCDK::Batch::CfnJobDefinition::ECSPropertiesProperty.new(**ecs_properties.transform_keys(&:to_sym)) : ecs_properties
  Jsii::Type.check_type(@ecs_properties, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19iYXRjaC5DZm5Kb2JEZWZpbml0aW9uLkVjc1Byb3BlcnRpZXNQcm9wZXJ0eSJ9XX19")), "ecsProperties") unless @ecs_properties.nil?
  @eks_properties = eks_properties.is_a?(Hash) ? ::AWSCDK::Batch::CfnJobDefinition::EKSPropertiesProperty.new(**eks_properties.transform_keys(&:to_sym)) : eks_properties
  Jsii::Type.check_type(@eks_properties, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19iYXRjaC5DZm5Kb2JEZWZpbml0aW9uLkVrc1Byb3BlcnRpZXNQcm9wZXJ0eSJ9XX19")), "eksProperties") unless @eks_properties.nil?
  @job_definition_name = job_definition_name
  Jsii::Type.check_type(@job_definition_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "jobDefinitionName") unless @job_definition_name.nil?
  @node_properties = node_properties.is_a?(Hash) ? ::AWSCDK::Batch::CfnJobDefinition::NodePropertiesProperty.new(**node_properties.transform_keys(&:to_sym)) : node_properties
  Jsii::Type.check_type(@node_properties, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19iYXRjaC5DZm5Kb2JEZWZpbml0aW9uLk5vZGVQcm9wZXJ0aWVzUHJvcGVydHkifV19fQ==")), "nodeProperties") unless @node_properties.nil?
  @parameters = parameters
  Jsii::Type.check_type(@parameters, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "parameters") unless @parameters.nil?
  @platform_capabilities = platform_capabilities
  Jsii::Type.check_type(@platform_capabilities, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "platformCapabilities") unless @platform_capabilities.nil?
  @propagate_tags = propagate_tags
  Jsii::Type.check_type(@propagate_tags, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "propagateTags") unless @propagate_tags.nil?
  @resource_retention_policy = resource_retention_policy.is_a?(Hash) ? ::AWSCDK::Batch::CfnJobDefinition::ResourceRetentionPolicyProperty.new(**resource_retention_policy.transform_keys(&:to_sym)) : resource_retention_policy
  Jsii::Type.check_type(@resource_retention_policy, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19iYXRjaC5DZm5Kb2JEZWZpbml0aW9uLlJlc291cmNlUmV0ZW50aW9uUG9saWN5UHJvcGVydHkifV19fQ==")), "resourceRetentionPolicy") unless @resource_retention_policy.nil?
  @retry_strategy = retry_strategy.is_a?(Hash) ? ::AWSCDK::Batch::CfnJobDefinition::RetryStrategyProperty.new(**retry_strategy.transform_keys(&:to_sym)) : retry_strategy
  Jsii::Type.check_type(@retry_strategy, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19iYXRjaC5DZm5Kb2JEZWZpbml0aW9uLlJldHJ5U3RyYXRlZ3lQcm9wZXJ0eSJ9XX19")), "retryStrategy") unless @retry_strategy.nil?
  @scheduling_priority = scheduling_priority
  Jsii::Type.check_type(@scheduling_priority, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "schedulingPriority") unless @scheduling_priority.nil?
  @tags = tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "tags") unless @tags.nil?
  @timeout = timeout.is_a?(Hash) ? ::AWSCDK::Batch::CfnJobDefinition::TimeoutProperty.new(**timeout.transform_keys(&:to_sym)) : timeout
  Jsii::Type.check_type(@timeout, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19iYXRjaC5DZm5Kb2JEZWZpbml0aW9uLlRpbWVvdXRQcm9wZXJ0eSJ9XX19")), "timeout") unless @timeout.nil?
end

Instance Attribute Details

#consumable_resource_propertiesAWSCDK::IResolvable, ... (readonly)

Contains a list of consumable resources required by the job.



73
74
75
# File 'batch/cfn_job_definition_props.rb', line 73

def consumable_resource_properties
  @consumable_resource_properties
end

#container_propertiesAWSCDK::IResolvable, ... (readonly)

An object with properties specific to Amazon ECS-based jobs.

When container_properties is used in the job definition, it can't be used in addition to eks_properties , ecs_properties , or node_properties .



80
81
82
# File 'batch/cfn_job_definition_props.rb', line 80

def container_properties
  @container_properties
end

#ecs_propertiesAWSCDK::IResolvable, ... (readonly)

An object that contains the properties for the Amazon ECS resources of a job.When ecsProperties is used in the job definition, it can't be used in addition to containerProperties , eksProperties , or nodeProperties .



85
86
87
# File 'batch/cfn_job_definition_props.rb', line 85

def ecs_properties
  @ecs_properties
end

#eks_propertiesAWSCDK::IResolvable, ... (readonly)

An object with properties that are specific to Amazon EKS-based jobs.

When eks_properties is used in the job definition, it can't be used in addition to container_properties , ecs_properties , or node_properties .



92
93
94
# File 'batch/cfn_job_definition_props.rb', line 92

def eks_properties
  @eks_properties
end

#job_definition_nameString? (readonly)

The name of the job definition.



97
98
99
# File 'batch/cfn_job_definition_props.rb', line 97

def job_definition_name
  @job_definition_name
end

#node_propertiesAWSCDK::IResolvable, ... (readonly)

An object with properties that are specific to multi-node parallel jobs.

When node_properties is used in the job definition, it can't be used in addition to container_properties , ecs_properties , or eks_properties .

If the job runs on Fargate resources, don't specify node_properties . Use container_properties instead.



106
107
108
# File 'batch/cfn_job_definition_props.rb', line 106

def node_properties
  @node_properties
end

#parametersObject? (readonly)

Default parameters or parameter substitution placeholders that are set in the job definition.

Parameters are specified as a key-value pair mapping. Parameters in a SubmitJob request override any corresponding parameter defaults from the job definition. For more information about specifying parameters, see Job definition parameters in the AWS Batch User Guide .



113
114
115
# File 'batch/cfn_job_definition_props.rb', line 113

def parameters
  @parameters
end

#platform_capabilitiesArray<String>? (readonly)

The platform capabilities required by the job definition.

If no value is specified, it defaults to EC2 . Jobs run on Fargate resources specify FARGATE .



120
121
122
# File 'batch/cfn_job_definition_props.rb', line 120

def platform_capabilities
  @platform_capabilities
end

#propagate_tagsBoolean, ... (readonly)

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task.

If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks when the tasks are created. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.



127
128
129
# File 'batch/cfn_job_definition_props.rb', line 127

def propagate_tags
  @propagate_tags
end

#resource_retention_policyAWSCDK::IResolvable, ... (readonly)

Specifies the resource retention policy settings for the job definition.



132
133
134
# File 'batch/cfn_job_definition_props.rb', line 132

def resource_retention_policy
  @resource_retention_policy
end

#retry_strategyAWSCDK::IResolvable, ... (readonly)

The retry strategy to use for failed jobs that are submitted with this job definition.



137
138
139
# File 'batch/cfn_job_definition_props.rb', line 137

def retry_strategy
  @retry_strategy
end

#scheduling_priorityNumeric? (readonly)

The scheduling priority of the job definition.

This only affects jobs in job queues with a fair-share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority.



144
145
146
# File 'batch/cfn_job_definition_props.rb', line 144

def scheduling_priority
  @scheduling_priority
end

#tagsObject? (readonly)

The tags that are applied to the job definition.



149
150
151
# File 'batch/cfn_job_definition_props.rb', line 149

def tags
  @tags
end

#timeoutAWSCDK::IResolvable, ... (readonly)

The timeout time for jobs that are submitted with this job definition.

After the amount of time you specify passes, AWS Batch terminates your jobs if they aren't finished.



156
157
158
# File 'batch/cfn_job_definition_props.rb', line 156

def timeout
  @timeout
end

#typeString (readonly)

The type of job definition.

For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the AWS Batch User Guide .

  • If the value is container , then one of the following is required: container_properties , ecs_properties , or eks_properties .
  • If the value is multinode , then node_properties is required.

If the job is run on Fargate resources, then multinode isn't supported.



68
69
70
# File 'batch/cfn_job_definition_props.rb', line 68

def type
  @type
end

Class Method Details

.jsii_propertiesObject



158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'batch/cfn_job_definition_props.rb', line 158

def self.jsii_properties
  {
    :type => "type",
    :consumable_resource_properties => "consumableResourceProperties",
    :container_properties => "containerProperties",
    :ecs_properties => "ecsProperties",
    :eks_properties => "eksProperties",
    :job_definition_name => "jobDefinitionName",
    :node_properties => "nodeProperties",
    :parameters => "parameters",
    :platform_capabilities => "platformCapabilities",
    :propagate_tags => "propagateTags",
    :resource_retention_policy => "resourceRetentionPolicy",
    :retry_strategy => "retryStrategy",
    :scheduling_priority => "schedulingPriority",
    :tags => "tags",
    :timeout => "timeout",
  }
end

Instance Method Details

#to_jsiiObject



178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'batch/cfn_job_definition_props.rb', line 178

def to_jsii
  result = {}
  result.merge!({
    "type" => @type,
    "consumableResourceProperties" => @consumable_resource_properties,
    "containerProperties" => @container_properties,
    "ecsProperties" => @ecs_properties,
    "eksProperties" => @eks_properties,
    "jobDefinitionName" => @job_definition_name,
    "nodeProperties" => @node_properties,
    "parameters" => @parameters,
    "platformCapabilities" => @platform_capabilities,
    "propagateTags" => @propagate_tags,
    "resourceRetentionPolicy" => @resource_retention_policy,
    "retryStrategy" => @retry_strategy,
    "schedulingPriority" => @scheduling_priority,
    "tags" => @tags,
    "timeout" => @timeout,
  })
  result.compact
end