Class: AWSCDK::PCS::CfnClusterProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
pcs/cfn_cluster_props.rb

Overview

Properties for defining a CfnCluster.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(networking:, scheduler:, size:, name: nil, slurm_configuration: nil, tags: nil) ⇒ CfnClusterProps

Returns a new instance of CfnClusterProps.

Parameters:



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'pcs/cfn_cluster_props.rb', line 15

def initialize(networking:, scheduler:, size:, name: nil, slurm_configuration: nil, tags: nil)
  @networking = networking.is_a?(Hash) ? ::AWSCDK::PCS::CfnCluster::NetworkingProperty.new(**networking.transform_keys(&:to_sym)) : networking
  Jsii::Type.check_type(@networking, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19wY3MuQ2ZuQ2x1c3Rlci5OZXR3b3JraW5nUHJvcGVydHkifV19fQ==")), "networking")
  @scheduler = scheduler.is_a?(Hash) ? ::AWSCDK::PCS::CfnCluster::SchedulerProperty.new(**scheduler.transform_keys(&:to_sym)) : scheduler
  Jsii::Type.check_type(@scheduler, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19wY3MuQ2ZuQ2x1c3Rlci5TY2hlZHVsZXJQcm9wZXJ0eSJ9XX19")), "scheduler")
  @size = size
  Jsii::Type.check_type(@size, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "size")
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name") unless @name.nil?
  @slurm_configuration = slurm_configuration.is_a?(Hash) ? ::AWSCDK::PCS::CfnCluster::SlurmConfigurationProperty.new(**slurm_configuration.transform_keys(&:to_sym)) : slurm_configuration
  Jsii::Type.check_type(@slurm_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19wY3MuQ2ZuQ2x1c3Rlci5TbHVybUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "slurmConfiguration") unless @slurm_configuration.nil?
  @tags = tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoibWFwIn19")), "tags") unless @tags.nil?
end

Instance Attribute Details

#nameString? (readonly)

The name that identifies the cluster.



53
54
55
# File 'pcs/cfn_cluster_props.rb', line 53

def name
  @name
end

#networkingAWSCDK::IResolvable, AWSCDK::PCS::CfnCluster::NetworkingProperty (readonly)

The networking configuration for the cluster's control plane.



34
35
36
# File 'pcs/cfn_cluster_props.rb', line 34

def networking
  @networking
end

#schedulerAWSCDK::IResolvable, AWSCDK::PCS::CfnCluster::SchedulerProperty (readonly)

The cluster management and job scheduling software associated with the cluster.



39
40
41
# File 'pcs/cfn_cluster_props.rb', line 39

def scheduler
  @scheduler
end

#sizeString (readonly)

The size of the cluster.

  • SMALL : 32 compute nodes and 256 jobs
  • MEDIUM : 512 compute nodes and 8192 jobs
  • LARGE : 2048 compute nodes and 16,384 jobs


48
49
50
# File 'pcs/cfn_cluster_props.rb', line 48

def size
  @size
end

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

Additional options related to the Slurm scheduler.



58
59
60
# File 'pcs/cfn_cluster_props.rb', line 58

def slurm_configuration
  @slurm_configuration
end

#tagsHash{String => String}? (readonly)

1 or more tags added to the resource.

Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.



65
66
67
# File 'pcs/cfn_cluster_props.rb', line 65

def tags
  @tags
end

Class Method Details

.jsii_propertiesObject



67
68
69
70
71
72
73
74
75
76
# File 'pcs/cfn_cluster_props.rb', line 67

def self.jsii_properties
  {
    :networking => "networking",
    :scheduler => "scheduler",
    :size => "size",
    :name => "name",
    :slurm_configuration => "slurmConfiguration",
    :tags => "tags",
  }
end

Instance Method Details

#to_jsiiObject



78
79
80
81
82
83
84
85
86
87
88
89
# File 'pcs/cfn_cluster_props.rb', line 78

def to_jsii
  result = {}
  result.merge!({
    "networking" => @networking,
    "scheduler" => @scheduler,
    "size" => @size,
    "name" => @name,
    "slurmConfiguration" => @slurm_configuration,
    "tags" => @tags,
  })
  result.compact
end