Class: Aws::PCS::Client

Inherits:
Seahorse::Client::Base show all
Includes:
ClientStubs
Defined in:
gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb

Overview

An API client for PCS. To construct a client, you need to configure a :region and :credentials.

client = Aws::PCS::Client.new(
  region: region_name,
  credentials: credentials,
  # ...
)

For details on configuring region and credentials see the developer guide.

See #initialize for a full list of supported configuration options.

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Base

#config, #handlers

API Operations collapse

Instance Method Summary collapse

Methods included from ClientStubs

#api_requests, #stub_data, #stub_responses

Methods inherited from Seahorse::Client::Base

add_plugin, api, clear_plugins, define, new, #operation_names, plugins, remove_plugin, set_api, set_plugins

Methods included from Seahorse::Client::HandlerBuilder

#handle, #handle_request, #handle_response

Constructor Details

#initialize(options) ⇒ Client

Returns a new instance of Client.

Parameters:

  • options (Hash)

Options Hash (options):

  • :plugins (Array<Seahorse::Client::Plugin>) — default: []] —

    A list of plugins to apply to the client. Each plugin is either a class name or an instance of a plugin class.

  • :credentials (required, Aws::CredentialProvider) —

    Your AWS credentials used for authentication. This can be any class that includes and implements Aws::CredentialProvider, or instance of any one of the following classes:

    • Aws::Credentials - Used for configuring static, non-refreshing credentials.

    • Aws::SharedCredentials - Used for loading static credentials from a shared file, such as ~/.aws/config.

    • Aws::AssumeRoleCredentials - Used when you need to assume a role.

    • Aws::AssumeRoleWebIdentityCredentials - Used when you need to assume a role after providing credentials via the web.

    • Aws::SSOCredentials - Used for loading credentials from AWS SSO using an access token generated from aws login.

    • Aws::ProcessCredentials - Used for loading credentials from a process that outputs to stdout.

    • Aws::InstanceProfileCredentials - Used for loading credentials from an EC2 IMDS on an EC2 instance.

    • Aws::ECSCredentials - Used for loading credentials from instances running in ECS.

    • Aws::CognitoIdentityCredentials - Used for loading credentials from the Cognito Identity service.

    When :credentials are not configured directly, the following locations will be searched for credentials:

    • Aws.config[:credentials]

    • The :access_key_id, :secret_access_key, :session_token, and :account_id options.

    • ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'], ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID'].

    • ~/.aws/credentials

    • ~/.aws/config

    • EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive. Construct and pass an instance of Aws::InstanceProfileCredentials or Aws::ECSCredentials to enable retries and extended timeouts. Instance profile credential fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED'] to true.

  • :region (required, String) —

    The AWS region to connect to. The configured :region is used to determine the service :endpoint. When not passed, a default :region is searched for in the following locations:

    • Aws.config[:region]
    • ENV['AWS_REGION']
    • ENV['AMAZON_REGION']
    • ENV['AWS_DEFAULT_REGION']
    • ~/.aws/credentials
    • ~/.aws/config
  • :access_key_id (String)
  • :account_id (String)
  • :active_endpoint_cache (Boolean) — default: false —

    When set to true, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to false.

  • :adaptive_retry_wait_to_fill (Boolean) — default: true —

    Used only in adaptive retry mode. When true, the request will sleep until there is sufficent client side capacity to retry the request. When false, the request will raise a RetryCapacityNotAvailableError and will not retry instead of sleeping.

  • :auth_scheme_preference (Array<String>) —

    A list of preferred authentication schemes to use when making a request. Supported values are: sigv4, sigv4a, httpBearerAuth, and noAuth. When set using ENV['AWS_AUTH_SCHEME_PREFERENCE'] or in shared config as auth_scheme_preference, the value should be a comma-separated list.

  • :client_side_monitoring (Boolean) — default: false —

    When true, client-side metrics will be collected for all API requests from this client.

  • :client_side_monitoring_client_id (String) — default: "" —

    Allows you to provide an identifier for this client which will be attached to all generated client side metrics. Defaults to an empty string.

  • :client_side_monitoring_host (String) — default: "127.0.0.1" —

    Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_port (Integer) — default: 31000 —

    Required for publishing client metrics. The port that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) — default: Aws::ClientSideMonitoring::Publisher —

    Allows you to provide a custom client-side monitoring publisher class. By default, will use the Client Side Monitoring Agent Publisher.

  • :convert_params (Boolean) — default: true —

    When true, an attempt is made to coerce request parameters into the required types.

  • :correct_clock_skew (Boolean) — default: true —

    Used only in standard and adaptive retry modes. Specifies whether to apply a clock skew correction and retry requests with skewed client clocks. Takes effect only when disable_clock_skew_correction is not set.

  • :defaults_mode (String) — default: "legacy" —

    See DefaultsModeConfiguration for a list of the accepted modes and the configuration defaults that are included.

  • :disable_clock_skew_correction (Boolean) —

    Used only in standard and adaptive retry modes. When true, the SDK does not apply a clock skew correction, does not update its stored skew from responses, and does not retry clock skew errors. Clock skew correction is enabled by default.

  • :disable_host_prefix_injection (Boolean) — default: false —

    When true, the SDK will not prepend the modeled host prefix to the endpoint.

  • :disable_request_compression (Boolean) — default: false —

    When set to 'true' the request body will not be compressed for supported operations.

  • :endpoint (String, URI::HTTPS, URI::HTTP) —

    Normally you should not configure the :endpoint option directly. This is normally constructed from the :region option. Configuring :endpoint is normally reserved for connecting to test or custom endpoints. The endpoint should be a URI formatted like:

    'http://example.com'
    'https://example.com'
    'http://example.com:123'
    
  • :endpoint_cache_max_entries (Integer) — default: 1000 —

    Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000.

  • :endpoint_cache_max_threads (Integer) — default: 10 —

    Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.

  • :endpoint_cache_poll_interval (Integer) — default: 60 —

    When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec.

  • :endpoint_discovery (Boolean) — default: false —

    When set to true, endpoint discovery will be enabled for operations when available.

  • :ignore_configured_endpoint_urls (Boolean) —

    Setting to true disables use of endpoint URLs provided via environment variables and the shared configuration file.

  • :log_formatter (Aws::Log::Formatter) — default: Aws::Log::Formatter.default —

    The log formatter.

  • :log_level (Symbol) — default: :info —

    The log level to send messages to the :logger at.

  • :logger (Logger) —

    The Logger instance to send log messages to. If this option is not set, logging will be disabled.

  • :max_attempts (Integer) — default: 3 —

    An integer representing the maximum number attempts that will be made for a single request, including the initial attempt. For example, setting this value to 5 will result in a request being retried up to 4 times. Used in standard and adaptive retry modes. Defaults to 3, except for DynamoDB and DynamoDB Streams, which default to 4.

  • :profile (String) — default: "default" —

    Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used.

  • :request_checksum_calculation (String) — default: "when_supported" —

    Determines when a checksum will be calculated for request payloads. Values are:

    • when_supported - (default) When set, a checksum will be calculated for all request payloads of operations modeled with the httpChecksum trait where requestChecksumRequired is true and/or a requestAlgorithmMember is modeled.
    • when_required - When set, a checksum will only be calculated for request payloads of operations modeled with the httpChecksum trait where requestChecksumRequired is true or where a requestAlgorithmMember is modeled and supplied.
  • :request_min_compression_size_bytes (Integer) — default: 10240 —

    The minimum size in bytes that triggers compression for request bodies. The value must be non-negative integer value between 0 and 10485780 bytes inclusive.

  • :response_checksum_validation (String) — default: "when_supported" —

    Determines when checksum validation will be performed on response payloads. Values are:

    • when_supported - (default) When set, checksum validation is performed on all response payloads of operations modeled with the httpChecksum trait where responseAlgorithms is modeled, except when no modeled checksum algorithms are supported.
    • when_required - When set, checksum validation is not performed on response payloads of operations unless the checksum algorithm is supported and the requestValidationModeMember member is set to ENABLED.
  • :retry_backoff (Proc) —

    A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. This option is only used in the legacy retry mode.

  • :retry_base_delay (Float) — default: 0.3 —

    The base delay in seconds used by the default backoff function. This option is only used in the legacy retry mode.

  • :retry_jitter (Symbol) — default: :none —

    A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number. This option is only used in the legacy retry mode.

    @see https://www.awsarchitectureblog.com/2015/03/backoff.html

  • :retry_limit (Integer) — default: 3 —

    The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors, auth errors, endpoint discovery, and errors from expired credentials. This option is only used in the legacy retry mode.

  • :retry_max_delay (Integer) — default: 0 —

    The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function. This option is only used in the legacy retry mode.

  • :retry_mode (String) — default: "standard" —

    Specifies which retry algorithm to use. Values are:

    • legacy - The pre-existing retry behavior.

    • standard - A standardized set of retry rules across the AWS SDKs. This includes support for retry quotas, which limit the number of unsuccessful retries a client can make. This is the default value if no retry mode is provided.

    • adaptive - A retry mode that includes all the functionality of standard mode along with automatic client side throttling.

  • :sdk_ua_app_id (String) —

    A unique and opaque application ID that is appended to the User-Agent header as app/sdk_ua_app_id. It should have a maximum length of 50. This variable is sourced from environment variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.

  • :secret_access_key (String)
  • :session_token (String)
  • :sigv4a_signing_region_set (Array) —

    A list of regions that should be signed with SigV4a signing. When not passed, a default :sigv4a_signing_region_set is searched for in the following locations:

    • Aws.config[:sigv4a_signing_region_set]
    • ENV['AWS_SIGV4A_SIGNING_REGION_SET']
    • ~/.aws/config
  • :simple_json (Boolean) — default: false —

    Disables request parameter conversion, validation, and formatting. Also disables response data type conversions. The request parameters hash must be formatted exactly as the API expects.This option is useful when you want to ensure the highest level of performance by avoiding overhead of walking request parameters and response data structures.

  • :stub_responses (Boolean) — default: false —

    Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling ClientStubs#stub_responses. See ClientStubs for more information.

    Please note When response stubbing is enabled, no HTTP requests are made, and retries are disabled.

  • :telemetry_provider (Aws::Telemetry::TelemetryProviderBase) — default: Aws::Telemetry::NoOpTelemetryProvider —

    Allows you to provide a telemetry provider, which is used to emit telemetry data. By default, uses NoOpTelemetryProvider which will not record or emit any telemetry data. The SDK supports the following telemetry providers:

    • OpenTelemetry (OTel) - To use the OTel provider, install and require the opentelemetry-sdk gem and then, pass in an instance of a Aws::Telemetry::OTelProvider for telemetry provider.
  • :token_provider (Aws::TokenProvider) —

    Your Bearer token used for authentication. This can be any class that includes and implements Aws::TokenProvider, or instance of any one of the following classes:

    • Aws::StaticTokenProvider - Used for configuring static, non-refreshing tokens.

    • Aws::SSOTokenProvider - Used for loading tokens from AWS SSO using an access token generated from aws login.

    When :token_provider is not configured directly, the Aws::TokenProviderChain will be used to search for tokens configured for your profile in shared configuration files.

  • :use_dualstack_endpoint (Boolean) —

    When set to true, dualstack enabled endpoints (with .aws TLD) will be used if available.

  • :use_fips_endpoint (Boolean) —

    When set to true, fips compatible endpoints will be used if available. When a fips region is used, the region is normalized and this config is set to true.

  • :validate_params (Boolean) — default: true —

    When true, request parameters are validated before sending the request.

  • :endpoint_provider (Aws::PCS::EndpointProvider) —

    The endpoint provider used to resolve endpoints. Any object that responds to #resolve_endpoint(parameters) where parameters is a Struct similar to Aws::PCS::EndpointParameters.

  • :http_continue_timeout (Float) — default: 1 —

    The number of seconds to wait for a 100-continue response before sending the request body. This option has no effect unless the request has "Expect" header set to "100-continue". Defaults to nil which disables this behaviour. This value can safely be set per request on the session.

  • :http_idle_timeout (Float) — default: 5 —

    The number of seconds a connection is allowed to sit idle before it is considered stale. Stale connections are closed and removed from the pool before making a request.

  • :http_open_timeout (Float) — default: 15 —

    The default number of seconds to wait for response data. This value can safely be set per-request on the session.

  • :http_proxy (URI::HTTP, String) —

    A proxy to send requests through. Formatted like 'http://proxy.com:123'.

  • :http_read_timeout (Float) — default: 60 —

    The default number of seconds to wait for response data. This value can safely be set per-request on the session.

  • :http_wire_trace (Boolean) — default: false —

    When true, HTTP debug output will be sent to the :logger.

  • :on_chunk_received (Proc) —

    When a Proc object is provided, it will be used as callback when each chunk of the response body is received. It provides three arguments: the chunk, the number of bytes received, and the total number of bytes in the response (or nil if the server did not send a content-length).

  • :on_chunk_sent (Proc) —

    When a Proc object is provided, it will be used as callback when each chunk of the request body is sent. It provides three arguments: the chunk, the number of bytes read from the body, and the total number of bytes in the body.

  • :raise_response_errors (Boolean) — default: true —

    When true, response errors are raised.

  • :ssl_ca_bundle (String) —

    Full path to the SSL certificate authority bundle file that should be used when verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.

  • :ssl_ca_directory (String) —

    Full path of the directory that contains the unbundled SSL certificate authority files for verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.

  • :ssl_ca_store (String) —

    Sets the X509::Store to verify peer certificate.

  • :ssl_cert (OpenSSL::X509::Certificate) —

    Sets a client certificate when creating http connections.

  • :ssl_key (OpenSSL::PKey) —

    Sets a client key when creating http connections.

  • :ssl_timeout (Float) —

    Sets the SSL timeout in seconds

  • :ssl_verify_peer (Boolean) — default: true —

    When true, SSL peer certificates are verified when establishing a connection.



486
487
488
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 486

def initialize(*args)
  super
end

Instance Method Details

#create_cluster(params = {}) ⇒ Types::CreateClusterResponse

Creates a cluster in your account. PCS creates the cluster controller in a service-owned account. The cluster controller communicates with the cluster resources in your account. The subnets and security groups for the cluster must already exist before you use this API action.

It takes time for PCS to create the cluster. The cluster is in a Creating state until it is ready to use. There can only be 1 cluster in a Creating state per Amazon Web Services Region per Amazon Web Services account. CreateCluster fails with a ServiceQuotaExceededException if there is already a cluster in a Creating state.

Examples:

Request syntax with placeholder values


resp = client.create_cluster({
  cluster_name: "ClusterName", # required
  scheduler: { # required
    type: "SLURM", # required, accepts SLURM
    version: "String", # required
  },
  size: "SMALL", # required, accepts SMALL, MEDIUM, LARGE
  networking: { # required
    subnet_ids: ["SubnetId"],
    security_group_ids: ["SecurityGroupId"],
    network_type: "IPV4", # accepts IPV4, IPV6
  },
  slurm_configuration: {
    scale_down_idle_time_in_seconds: 1,
    slurm_custom_settings: [
      {
        parameter_name: "String", # required
        parameter_value: "String", # required
      },
    ],
    slurmdbd_custom_settings: [
      {
        parameter_name: "String", # required
        parameter_value: "String", # required
      },
    ],
    cgroup_custom_settings: [
      {
        parameter_name: "String", # required
        parameter_value: "String", # required
      },
    ],
    accounting: {
      default_purge_time_in_days: 1,
      mode: "STANDARD", # required, accepts STANDARD, NONE
    },
    slurm_rest: {
      mode: "STANDARD", # required, accepts STANDARD, NONE
    },
  },
  client_token: "SBClientToken",
  tags: {
    "TagKey" => "TagValue",
  },
})

Response structure


resp.cluster.name #=> String
resp.cluster.id #=> String
resp.cluster.arn #=> String
resp.cluster.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.cluster.created_at #=> Time
resp.cluster.modified_at #=> Time
resp.cluster.scheduler.type #=> String, one of "SLURM"
resp.cluster.scheduler.version #=> String
resp.cluster.size #=> String, one of "SMALL", "MEDIUM", "LARGE"
resp.cluster.slurm_configuration.scale_down_idle_time_in_seconds #=> Integer
resp.cluster.slurm_configuration.slurm_custom_settings #=> Array
resp.cluster.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String
resp.cluster.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String
resp.cluster.slurm_configuration.slurmdbd_custom_settings #=> Array
resp.cluster.slurm_configuration.slurmdbd_custom_settings[0].parameter_name #=> String
resp.cluster.slurm_configuration.slurmdbd_custom_settings[0].parameter_value #=> String
resp.cluster.slurm_configuration.cgroup_custom_settings #=> Array
resp.cluster.slurm_configuration.cgroup_custom_settings[0].parameter_name #=> String
resp.cluster.slurm_configuration.cgroup_custom_settings[0].parameter_value #=> String
resp.cluster.slurm_configuration.auth_key.secret_arn #=> String
resp.cluster.slurm_configuration.auth_key.secret_version #=> String
resp.cluster.slurm_configuration.jwt_auth.jwt_key.secret_arn #=> String
resp.cluster.slurm_configuration.jwt_auth.jwt_key.secret_version #=> String
resp.cluster.slurm_configuration.accounting.default_purge_time_in_days #=> Integer
resp.cluster.slurm_configuration.accounting.mode #=> String, one of "STANDARD", "NONE"
resp.cluster.slurm_configuration.slurm_rest.mode #=> String, one of "STANDARD", "NONE"
resp.cluster.networking.subnet_ids #=> Array
resp.cluster.networking.subnet_ids[0] #=> String
resp.cluster.networking.security_group_ids #=> Array
resp.cluster.networking.security_group_ids[0] #=> String
resp.cluster.networking.network_type #=> String, one of "IPV4", "IPV6"
resp.cluster.endpoints #=> Array
resp.cluster.endpoints[0].type #=> String, one of "SLURMCTLD", "SLURMDBD", "SLURMRESTD"
resp.cluster.endpoints[0].private_ip_address #=> String
resp.cluster.endpoints[0].public_ip_address #=> String
resp.cluster.endpoints[0].ipv6_address #=> String
resp.cluster.endpoints[0].port #=> String
resp.cluster.error_info #=> Array
resp.cluster.error_info[0].code #=> String
resp.cluster.error_info[0].message #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_name (required, String) —

    A name to identify the cluster. Example: MyCluster

  • :scheduler (required, Types::SchedulerRequest) —

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

  • :size (required, String) —

    A value that determines the maximum number of compute nodes in the cluster and the maximum number of jobs (active and queued).

    • SMALL: 32 compute nodes and 256 jobs

    • MEDIUM: 512 compute nodes and 8192 jobs

    • LARGE: 2048 compute nodes and 16,384 jobs

  • :networking (required, Types::NetworkingRequest) —

    The networking configuration used to set up the cluster's control plane.

  • :slurm_configuration (Types::ClusterSlurmConfigurationRequest) —

    Additional options related to the Slurm scheduler.

  • :client_token (String) —

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate one for you.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

  • :tags (Hash<String,String>) —

    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.

Returns:

See Also:



645
646
647
648
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 645

def create_cluster(params = {}, options = {})
  req = build_request(:create_cluster, params)
  req.send_request(options)
end

#create_compute_node_group(params = {}) ⇒ Types::CreateComputeNodeGroupResponse

Creates a managed set of compute nodes. You associate a compute node group with a cluster through 1 or more PCS queues or as part of the login fleet. A compute node group includes the definition of the compute properties and lifecycle management. PCS uses the information you provide to this API action to launch compute nodes in your account. You can only specify subnets in the same Amazon VPC as your cluster. You receive billing charges for the compute nodes that PCS launches in your account. You can configure common instance settings, such as the AMI, security groups, and SSH key pair, directly on the compute node group, or you can provide a custom EC2 launch template. To use a launch template that PCS manages, set launchTemplateMode to MANAGED and don't provide customLaunchTemplate. In this case, you must specify amiId and securityGroupIds. For more information, see Configuring instance settings for compute node groups in PCS in the PCS User Guide.

Examples:

Request syntax with placeholder values


resp = client.create_compute_node_group({
  ami_id: "AmiId",
  security_group_ids: ["SecurityGroupId"],
  ssh_key_name: "KeyPairName",
  cluster_identifier: "ClusterIdentifier", # required
  compute_node_group_name: "ComputeNodeGroupName", # required
  subnet_ids: ["String"], # required
  purchase_option: "ONDEMAND", # accepts ONDEMAND, SPOT, CAPACITY_BLOCK, INTERRUPTIBLE_CAPACITY_RESERVATION
  launch_template_mode: "CUSTOM", # accepts CUSTOM, MANAGED
  custom_launch_template: {
    id: "String", # required
    version: "String", # required
  },
  iam_instance_profile_arn: "InstanceProfileArn", # required
  scaling_configuration: { # required
    min_instance_count: 1, # required
    max_instance_count: 1, # required
  },
  instance_configs: [ # required
    {
      instance_type: "String",
    },
  ],
  spot_options: {
    allocation_strategy: "lowest-price", # accepts lowest-price, capacity-optimized, price-capacity-optimized
  },
  slurm_configuration: {
    scale_down_idle_time_in_seconds: 1,
    slurm_custom_settings: [
      {
        parameter_name: "String", # required
        parameter_value: "String", # required
      },
    ],
    gres_custom_settings: [
      {
        "String" => "String",
      },
    ],
  },
  node_lifecycle_actions: {
    stages: { # required
      node_bootstrapped: [
        {
          name: "NodeLifecycleScriptNameString", # required
          script_source: { # required
            script_location: "ScriptSourceScriptLocationString", # required
            s3_version_id: "ScriptSourceS3VersionIdString",
            checksum: "ScriptSourceChecksumString",
          },
          arguments: ["NodeLifecycleScriptArgument"],
          on_error: "TERMINATE", # accepts TERMINATE, STOP_SEQUENCE, CONTINUE
          execution_policy: "FIRST_BOOT_ONLY", # accepts FIRST_BOOT_ONLY, EVERY_BOOT
        },
      ],
      node_ready: [
        {
          name: "NodeLifecycleScriptNameString", # required
          script_source: { # required
            script_location: "ScriptSourceScriptLocationString", # required
            s3_version_id: "ScriptSourceS3VersionIdString",
            checksum: "ScriptSourceChecksumString",
          },
          arguments: ["NodeLifecycleScriptArgument"],
          on_error: "TERMINATE", # accepts TERMINATE, STOP_SEQUENCE, CONTINUE
          execution_policy: "FIRST_BOOT_ONLY", # accepts FIRST_BOOT_ONLY, EVERY_BOOT
        },
      ],
    },
    script_caching_policy: "CACHE_ONCE", # accepts CACHE_ONCE, REFRESH_ON_REBOOT
  },
  client_token: "SBClientToken",
  tags: {
    "TagKey" => "TagValue",
  },
})

Response structure


resp.compute_node_group.ami_id #=> String
resp.compute_node_group.security_group_ids #=> Array
resp.compute_node_group.security_group_ids[0] #=> String
resp.compute_node_group.ssh_key_name #=> String
resp.compute_node_group.name #=> String
resp.compute_node_group.id #=> String
resp.compute_node_group.arn #=> String
resp.compute_node_group.cluster_id #=> String
resp.compute_node_group.created_at #=> Time
resp.compute_node_group.modified_at #=> Time
resp.compute_node_group.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "DELETED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.compute_node_group.subnet_ids #=> Array
resp.compute_node_group.subnet_ids[0] #=> String
resp.compute_node_group.purchase_option #=> String, one of "ONDEMAND", "SPOT", "CAPACITY_BLOCK", "INTERRUPTIBLE_CAPACITY_RESERVATION"
resp.compute_node_group.launch_template_mode #=> String, one of "CUSTOM", "MANAGED"
resp.compute_node_group.custom_launch_template.id #=> String
resp.compute_node_group.custom_launch_template.version #=> String
resp.compute_node_group.iam_instance_profile_arn #=> String
resp.compute_node_group.scaling_configuration.min_instance_count #=> Integer
resp.compute_node_group.scaling_configuration.max_instance_count #=> Integer
resp.compute_node_group.instance_configs #=> Array
resp.compute_node_group.instance_configs[0].instance_type #=> String
resp.compute_node_group.spot_options.allocation_strategy #=> String, one of "lowest-price", "capacity-optimized", "price-capacity-optimized"
resp.compute_node_group.slurm_configuration.scale_down_idle_time_in_seconds #=> Integer
resp.compute_node_group.slurm_configuration.slurm_custom_settings #=> Array
resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String
resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String
resp.compute_node_group.slurm_configuration.gres_custom_settings #=> Array
resp.compute_node_group.slurm_configuration.gres_custom_settings[0] #=> Hash
resp.compute_node_group.slurm_configuration.gres_custom_settings[0]["String"] #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].name #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.script_location #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.s3_version_id #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.checksum #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].arguments #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].arguments[0] #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].on_error #=> String, one of "TERMINATE", "STOP_SEQUENCE", "CONTINUE"
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].execution_policy #=> String, one of "FIRST_BOOT_ONLY", "EVERY_BOOT"
resp.compute_node_group.node_lifecycle_actions.stages.node_ready #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].name #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].script_source.script_location #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].script_source.s3_version_id #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].script_source.checksum #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].arguments #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].arguments[0] #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].on_error #=> String, one of "TERMINATE", "STOP_SEQUENCE", "CONTINUE"
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].execution_policy #=> String, one of "FIRST_BOOT_ONLY", "EVERY_BOOT"
resp.compute_node_group.node_lifecycle_actions.script_caching_policy #=> String, one of "CACHE_ONCE", "REFRESH_ON_REBOOT"
resp.compute_node_group.error_info #=> Array
resp.compute_node_group.error_info[0].code #=> String
resp.compute_node_group.error_info[0].message #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :ami_id (String) —

    The ID of the Amazon Machine Image (AMI) that PCS uses to launch compute nodes (Amazon EC2 instances). This value overrides the AMI ID in the custom launch template. If you don't provide this value, PCS uses the AMI ID specified in the custom launch template. You must provide this value if launchTemplateMode is MANAGED.

  • :security_group_ids (Array<String>) —

    The IDs of the EC2 security groups to configure directly on the compute node group. The security groups must be in the same VPC as the cluster. PCS uses these security groups instead of the security groups in the custom launch template. You can't specify this value if the custom launch template defines network interfaces. If you don't provide this value, PCS uses the security groups in the custom launch template. You must provide this value if launchTemplateMode is MANAGED. For more information, see Configuring instance settings for compute node groups in PCS in the PCS User Guide.

  • :ssh_key_name (String) —

    The name of the EC2 key pair to configure directly on the compute node group. The key pair must exist in your account and Amazon Web Services Region. PCS uses this key pair instead of the key pair in the custom launch template. If you don't provide this value, PCS uses the key pair in the custom launch template, if one is specified. You must have permission for ec2:DescribeKeyPairs. If you delete the key pair later, future instance launches can fail. For more information, see Configuring instance settings for compute node groups in PCS in the PCS User Guide.

  • :cluster_identifier (required, String) —

    The name or ID of the cluster to create a compute node group in.

  • :compute_node_group_name (required, String) —

    A name to identify the cluster. Example: MyCluster

  • :subnet_ids (required, Array<String>) —

    The list of subnet IDs where the compute node group launches instances. Subnets must be in the same VPC as the cluster.

  • :purchase_option (String) —

    Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, Interruptible Capacity Reservations, On-Demand Capacity Reservations, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. For more information about PCS support for interruptible capacity reservations, see Using I-ODCRs with PCS in the PCS User Guide. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see Using ODCRs with PCS. If you don't provide this option, it defaults to On-Demand.

  • :launch_template_mode (String) —

    Specifies whether the compute node group uses a custom launch template or a launch template that PCS manages. The default value is CUSTOM.

    If the value is CUSTOM, provide customLaunchTemplate. If the value is MANAGED, omit customLaunchTemplate and provide amiId and securityGroupIds.

  • :custom_launch_template (Types::CustomLaunchTemplate) —

    The custom Amazon EC2 launch template to associate with the compute node group. Specify the launch template id and version when launchTemplateMode is CUSTOM. Don't specify this value when launchTemplateMode is MANAGED.

  • :iam_instance_profile_arn (required, String) —

    The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have the pcs:RegisterComputeNodeGroupInstance permission and the role name must start with AWSPCS or must have the path /aws-pcs/. For more information, see IAM instance profiles for PCS in the PCS User Guide.

  • :scaling_configuration (required, Types::ScalingConfigurationRequest) —

    Specifies the boundaries of the compute node group auto scaling.

  • :instance_configs (required, Array<Types::InstanceConfig>) —

    A list of EC2 instance configurations that PCS can provision in the compute node group.

  • :spot_options (Types::SpotOptions) —

    Additional configuration when you specify SPOT as the purchaseOption for the CreateComputeNodeGroup API action.

  • :slurm_configuration (Types::ComputeNodeGroupSlurmConfigurationRequest) —

    Additional options related to the Slurm scheduler.

  • :node_lifecycle_actions (Types::NodeLifecycleActionsRequest) —

    The lifecycle actions to run on compute nodes in the compute node group. Use lifecycle actions to run custom scripts at defined stages of a compute node's lifecycle, such as when a compute node finishes bootstrapping or becomes ready to accept jobs.

  • :client_token (String) —

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate one for you.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

  • :tags (Hash<String,String>) —

    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.

Returns:

See Also:



943
944
945
946
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 943

def create_compute_node_group(params = {}, options = {})
  req = build_request(:create_compute_node_group, params)
  req.send_request(options)
end

#create_queue(params = {}) ⇒ Types::CreateQueueResponse

Creates a job queue. You must associate 1 or more compute node groups with the queue. You can associate 1 compute node group with multiple queues.

Examples:

Request syntax with placeholder values


resp = client.create_queue({
  cluster_identifier: "ClusterIdentifier", # required
  queue_name: "QueueName", # required
  compute_node_group_configurations: [
    {
      compute_node_group_id: "String",
    },
  ],
  slurm_configuration: {
    slurm_custom_settings: [
      {
        parameter_name: "String", # required
        parameter_value: "String", # required
      },
    ],
  },
  client_token: "SBClientToken",
  tags: {
    "TagKey" => "TagValue",
  },
})

Response structure


resp.queue.name #=> String
resp.queue.id #=> String
resp.queue.arn #=> String
resp.queue.cluster_id #=> String
resp.queue.created_at #=> Time
resp.queue.modified_at #=> Time
resp.queue.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.queue.compute_node_group_configurations #=> Array
resp.queue.compute_node_group_configurations[0].compute_node_group_id #=> String
resp.queue.slurm_configuration.slurm_custom_settings #=> Array
resp.queue.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String
resp.queue.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String
resp.queue.error_info #=> Array
resp.queue.error_info[0].code #=> String
resp.queue.error_info[0].message #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster for which to create a queue.

  • :queue_name (required, String) —

    A name to identify the queue.

  • :compute_node_group_configurations (Array<Types::ComputeNodeGroupConfiguration>) —

    The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.

  • :slurm_configuration (Types::QueueSlurmConfigurationRequest) —

    Additional options related to the Slurm scheduler.

  • :client_token (String) —

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate one for you.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

  • :tags (Hash<String,String>) —

    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.

Returns:

See Also:



1031
1032
1033
1034
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1031

def create_queue(params = {}, options = {})
  req = build_request(:create_queue, params)
  req.send_request(options)
end

#delete_cluster(params = {}) ⇒ Struct

Deletes a cluster and all its linked resources. You must delete all queues and compute node groups associated with the cluster before you can delete the cluster.

Examples:

Request syntax with placeholder values


resp = client.delete_cluster({
  cluster_identifier: "ClusterIdentifier", # required
  client_token: "SBClientToken",
})

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster to delete.

  • :client_token (String) —

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate one for you.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

Returns:

  • (Struct) —

    Returns an empty response.

See Also:



1068
1069
1070
1071
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1068

def delete_cluster(params = {}, options = {})
  req = build_request(:delete_cluster, params)
  req.send_request(options)
end

#delete_compute_node_group(params = {}) ⇒ Struct

Deletes a compute node group. You must delete all queues associated with the compute node group first.

Examples:

Request syntax with placeholder values


resp = client.delete_compute_node_group({
  cluster_identifier: "ClusterIdentifier", # required
  compute_node_group_identifier: "ComputeNodeGroupIdentifier", # required
  client_token: "SBClientToken",
})

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster of the compute node group.

  • :compute_node_group_identifier (required, String) —

    The name or ID of the compute node group to delete.

  • :client_token (String) —

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate one for you.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

Returns:

  • (Struct) —

    Returns an empty response.

See Also:



1108
1109
1110
1111
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1108

def delete_compute_node_group(params = {}, options = {})
  req = build_request(:delete_compute_node_group, params)
  req.send_request(options)
end

#delete_queue(params = {}) ⇒ Struct

Deletes a job queue. If the compute node group associated with this queue isn't associated with any other queues, PCS terminates all the compute nodes for this queue.

Examples:

Request syntax with placeholder values


resp = client.delete_queue({
  cluster_identifier: "ClusterIdentifier", # required
  queue_identifier: "QueueIdentifier", # required
  client_token: "SBClientToken",
})

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster of the queue.

  • :queue_identifier (required, String) —

    The name or ID of the queue to delete.

  • :client_token (String) —

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate one for you.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

Returns:

  • (Struct) —

    Returns an empty response.

See Also:



1149
1150
1151
1152
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1149

def delete_queue(params = {}, options = {})
  req = build_request(:delete_queue, params)
  req.send_request(options)
end

#get_cluster(params = {}) ⇒ Types::GetClusterResponse

Returns detailed information about a running cluster in your account. This API action provides networking information, endpoint information for communication with the scheduler, and provisioning status.

Examples:

Request syntax with placeholder values


resp = client.get_cluster({
  cluster_identifier: "ClusterIdentifier", # required
})

Response structure


resp.cluster.name #=> String
resp.cluster.id #=> String
resp.cluster.arn #=> String
resp.cluster.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.cluster.created_at #=> Time
resp.cluster.modified_at #=> Time
resp.cluster.scheduler.type #=> String, one of "SLURM"
resp.cluster.scheduler.version #=> String
resp.cluster.size #=> String, one of "SMALL", "MEDIUM", "LARGE"
resp.cluster.slurm_configuration.scale_down_idle_time_in_seconds #=> Integer
resp.cluster.slurm_configuration.slurm_custom_settings #=> Array
resp.cluster.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String
resp.cluster.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String
resp.cluster.slurm_configuration.slurmdbd_custom_settings #=> Array
resp.cluster.slurm_configuration.slurmdbd_custom_settings[0].parameter_name #=> String
resp.cluster.slurm_configuration.slurmdbd_custom_settings[0].parameter_value #=> String
resp.cluster.slurm_configuration.cgroup_custom_settings #=> Array
resp.cluster.slurm_configuration.cgroup_custom_settings[0].parameter_name #=> String
resp.cluster.slurm_configuration.cgroup_custom_settings[0].parameter_value #=> String
resp.cluster.slurm_configuration.auth_key.secret_arn #=> String
resp.cluster.slurm_configuration.auth_key.secret_version #=> String
resp.cluster.slurm_configuration.jwt_auth.jwt_key.secret_arn #=> String
resp.cluster.slurm_configuration.jwt_auth.jwt_key.secret_version #=> String
resp.cluster.slurm_configuration.accounting.default_purge_time_in_days #=> Integer
resp.cluster.slurm_configuration.accounting.mode #=> String, one of "STANDARD", "NONE"
resp.cluster.slurm_configuration.slurm_rest.mode #=> String, one of "STANDARD", "NONE"
resp.cluster.networking.subnet_ids #=> Array
resp.cluster.networking.subnet_ids[0] #=> String
resp.cluster.networking.security_group_ids #=> Array
resp.cluster.networking.security_group_ids[0] #=> String
resp.cluster.networking.network_type #=> String, one of "IPV4", "IPV6"
resp.cluster.endpoints #=> Array
resp.cluster.endpoints[0].type #=> String, one of "SLURMCTLD", "SLURMDBD", "SLURMRESTD"
resp.cluster.endpoints[0].private_ip_address #=> String
resp.cluster.endpoints[0].public_ip_address #=> String
resp.cluster.endpoints[0].ipv6_address #=> String
resp.cluster.endpoints[0].port #=> String
resp.cluster.error_info #=> Array
resp.cluster.error_info[0].code #=> String
resp.cluster.error_info[0].message #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster.

Returns:

See Also:



1218
1219
1220
1221
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1218

def get_cluster(params = {}, options = {})
  req = build_request(:get_cluster, params)
  req.send_request(options)
end

#get_compute_node_group(params = {}) ⇒ Types::GetComputeNodeGroupResponse

Returns detailed information about a compute node group. This API action provides networking information, EC2 instance type, compute node group status, and scheduler (such as Slurm) configuration.

Examples:

Request syntax with placeholder values


resp = client.get_compute_node_group({
  cluster_identifier: "ClusterIdentifier", # required
  compute_node_group_identifier: "ComputeNodeGroupIdentifier", # required
})

Response structure


resp.compute_node_group.ami_id #=> String
resp.compute_node_group.security_group_ids #=> Array
resp.compute_node_group.security_group_ids[0] #=> String
resp.compute_node_group.ssh_key_name #=> String
resp.compute_node_group.name #=> String
resp.compute_node_group.id #=> String
resp.compute_node_group.arn #=> String
resp.compute_node_group.cluster_id #=> String
resp.compute_node_group.created_at #=> Time
resp.compute_node_group.modified_at #=> Time
resp.compute_node_group.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "DELETED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.compute_node_group.subnet_ids #=> Array
resp.compute_node_group.subnet_ids[0] #=> String
resp.compute_node_group.purchase_option #=> String, one of "ONDEMAND", "SPOT", "CAPACITY_BLOCK", "INTERRUPTIBLE_CAPACITY_RESERVATION"
resp.compute_node_group.launch_template_mode #=> String, one of "CUSTOM", "MANAGED"
resp.compute_node_group.custom_launch_template.id #=> String
resp.compute_node_group.custom_launch_template.version #=> String
resp.compute_node_group.iam_instance_profile_arn #=> String
resp.compute_node_group.scaling_configuration.min_instance_count #=> Integer
resp.compute_node_group.scaling_configuration.max_instance_count #=> Integer
resp.compute_node_group.instance_configs #=> Array
resp.compute_node_group.instance_configs[0].instance_type #=> String
resp.compute_node_group.spot_options.allocation_strategy #=> String, one of "lowest-price", "capacity-optimized", "price-capacity-optimized"
resp.compute_node_group.slurm_configuration.scale_down_idle_time_in_seconds #=> Integer
resp.compute_node_group.slurm_configuration.slurm_custom_settings #=> Array
resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String
resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String
resp.compute_node_group.slurm_configuration.gres_custom_settings #=> Array
resp.compute_node_group.slurm_configuration.gres_custom_settings[0] #=> Hash
resp.compute_node_group.slurm_configuration.gres_custom_settings[0]["String"] #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].name #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.script_location #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.s3_version_id #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.checksum #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].arguments #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].arguments[0] #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].on_error #=> String, one of "TERMINATE", "STOP_SEQUENCE", "CONTINUE"
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].execution_policy #=> String, one of "FIRST_BOOT_ONLY", "EVERY_BOOT"
resp.compute_node_group.node_lifecycle_actions.stages.node_ready #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].name #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].script_source.script_location #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].script_source.s3_version_id #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].script_source.checksum #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].arguments #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].arguments[0] #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].on_error #=> String, one of "TERMINATE", "STOP_SEQUENCE", "CONTINUE"
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].execution_policy #=> String, one of "FIRST_BOOT_ONLY", "EVERY_BOOT"
resp.compute_node_group.node_lifecycle_actions.script_caching_policy #=> String, one of "CACHE_ONCE", "REFRESH_ON_REBOOT"
resp.compute_node_group.error_info #=> Array
resp.compute_node_group.error_info[0].code #=> String
resp.compute_node_group.error_info[0].message #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster.

  • :compute_node_group_identifier (required, String) —

    The name or ID of the compute node group.

Returns:

See Also:



1303
1304
1305
1306
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1303

def get_compute_node_group(params = {}, options = {})
  req = build_request(:get_compute_node_group, params)
  req.send_request(options)
end

#get_queue(params = {}) ⇒ Types::GetQueueResponse

Returns detailed information about a queue. The information includes the compute node groups that the queue uses to schedule jobs.

Examples:

Request syntax with placeholder values


resp = client.get_queue({
  cluster_identifier: "ClusterIdentifier", # required
  queue_identifier: "QueueIdentifier", # required
})

Response structure


resp.queue.name #=> String
resp.queue.id #=> String
resp.queue.arn #=> String
resp.queue.cluster_id #=> String
resp.queue.created_at #=> Time
resp.queue.modified_at #=> Time
resp.queue.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.queue.compute_node_group_configurations #=> Array
resp.queue.compute_node_group_configurations[0].compute_node_group_id #=> String
resp.queue.slurm_configuration.slurm_custom_settings #=> Array
resp.queue.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String
resp.queue.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String
resp.queue.error_info #=> Array
resp.queue.error_info[0].code #=> String
resp.queue.error_info[0].message #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster of the queue.

  • :queue_identifier (required, String) —

    The name or ID of the queue.

Returns:

See Also:



1350
1351
1352
1353
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1350

def get_queue(params = {}, options = {})
  req = build_request(:get_queue, params)
  req.send_request(options)
end

#list_clusters(params = {}) ⇒ Types::ListClustersResponse

Returns a list of running clusters in your account.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.list_clusters({
  next_token: "String",
  max_results: 1,
})

Response structure


resp.clusters #=> Array
resp.clusters[0].name #=> String
resp.clusters[0].id #=> String
resp.clusters[0].arn #=> String
resp.clusters[0].created_at #=> Time
resp.clusters[0].modified_at #=> Time
resp.clusters[0].status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :next_token (String) —

    The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error.

  • :max_results (Integer) —

    The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 10 results, and the maximum allowed page size is 100 results. A value of 0 uses the default.

Returns:

See Also:



1400
1401
1402
1403
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1400

def list_clusters(params = {}, options = {})
  req = build_request(:list_clusters, params)
  req.send_request(options)
end

#list_compute_node_groups(params = {}) ⇒ Types::ListComputeNodeGroupsResponse

Returns a list of all compute node groups associated with a cluster.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.list_compute_node_groups({
  cluster_identifier: "ClusterIdentifier", # required
  next_token: "String",
  max_results: 1,
})

Response structure


resp.compute_node_groups #=> Array
resp.compute_node_groups[0].name #=> String
resp.compute_node_groups[0].id #=> String
resp.compute_node_groups[0].arn #=> String
resp.compute_node_groups[0].cluster_id #=> String
resp.compute_node_groups[0].created_at #=> Time
resp.compute_node_groups[0].modified_at #=> Time
resp.compute_node_groups[0].status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "DELETED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster to list compute node groups for.

  • :next_token (String) —

    The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error.

  • :max_results (Integer) —

    The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 10 results, and the maximum allowed page size is 100 results. A value of 0 uses the default.

Returns:

See Also:



1455
1456
1457
1458
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1455

def list_compute_node_groups(params = {}, options = {})
  req = build_request(:list_compute_node_groups, params)
  req.send_request(options)
end

#list_queues(params = {}) ⇒ Types::ListQueuesResponse

Returns a list of all queues associated with a cluster.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.list_queues({
  cluster_identifier: "ClusterIdentifier", # required
  next_token: "String",
  max_results: 1,
})

Response structure


resp.queues #=> Array
resp.queues[0].name #=> String
resp.queues[0].id #=> String
resp.queues[0].arn #=> String
resp.queues[0].cluster_id #=> String
resp.queues[0].created_at #=> Time
resp.queues[0].modified_at #=> Time
resp.queues[0].status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster to list queues for.

  • :next_token (String) —

    The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error.

  • :max_results (Integer) —

    The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 10 results, and the maximum allowed page size is 100 results. A value of 0 uses the default.

Returns:

See Also:



1510
1511
1512
1513
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1510

def list_queues(params = {}, options = {})
  req = build_request(:list_queues, params)
  req.send_request(options)
end

#list_tags_for_resource(params = {}) ⇒ Types::ListTagsForResourceResponse

Returns a list of all tags on an PCS resource.

Examples:

Request syntax with placeholder values


resp = client.list_tags_for_resource({
  resource_arn: "Arn", # required
})

Response structure


resp.tags #=> Hash
resp.tags["TagKey"] #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :resource_arn (required, String) —

    The Amazon Resource Name (ARN) of the resource for which to list tags.

Returns:

See Also:



1539
1540
1541
1542
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1539

def list_tags_for_resource(params = {}, options = {})
  req = build_request(:list_tags_for_resource, params)
  req.send_request(options)
end

#register_compute_node_group_instance(params = {}) ⇒ Types::RegisterComputeNodeGroupInstanceResponse

This API action isn't intended for you to use.

PCS uses this API action to register the compute nodes it launches in your account.

Examples:

Request syntax with placeholder values


resp = client.register_compute_node_group_instance({
  cluster_identifier: "ClusterIdentifier", # required
  bootstrap_id: "BootstrapId", # required
})

Response structure


resp.node_id #=> String
resp.shared_secret #=> String
resp.endpoints #=> Array
resp.endpoints[0].type #=> String, one of "SLURMCTLD", "SLURMDBD", "SLURMRESTD"
resp.endpoints[0].private_ip_address #=> String
resp.endpoints[0].public_ip_address #=> String
resp.endpoints[0].ipv6_address #=> String
resp.endpoints[0].port #=> String
resp.cluster_name #=> String
resp.compute_node_group_id #=> String
resp.compute_node_group_name #=> String
resp.node_lifecycle_actions.stages.node_bootstrapped #=> Array
resp.node_lifecycle_actions.stages.node_bootstrapped[0].name #=> String
resp.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.script_location #=> String
resp.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.s3_version_id #=> String
resp.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.checksum #=> String
resp.node_lifecycle_actions.stages.node_bootstrapped[0].arguments #=> Array
resp.node_lifecycle_actions.stages.node_bootstrapped[0].arguments[0] #=> String
resp.node_lifecycle_actions.stages.node_bootstrapped[0].on_error #=> String, one of "TERMINATE", "STOP_SEQUENCE", "CONTINUE"
resp.node_lifecycle_actions.stages.node_bootstrapped[0].execution_policy #=> String, one of "FIRST_BOOT_ONLY", "EVERY_BOOT"
resp.node_lifecycle_actions.stages.node_ready #=> Array
resp.node_lifecycle_actions.stages.node_ready[0].name #=> String
resp.node_lifecycle_actions.stages.node_ready[0].script_source.script_location #=> String
resp.node_lifecycle_actions.stages.node_ready[0].script_source.s3_version_id #=> String
resp.node_lifecycle_actions.stages.node_ready[0].script_source.checksum #=> String
resp.node_lifecycle_actions.stages.node_ready[0].arguments #=> Array
resp.node_lifecycle_actions.stages.node_ready[0].arguments[0] #=> String
resp.node_lifecycle_actions.stages.node_ready[0].on_error #=> String, one of "TERMINATE", "STOP_SEQUENCE", "CONTINUE"
resp.node_lifecycle_actions.stages.node_ready[0].execution_policy #=> String, one of "FIRST_BOOT_ONLY", "EVERY_BOOT"
resp.node_lifecycle_actions.script_caching_policy #=> String, one of "CACHE_ONCE", "REFRESH_ON_REBOOT"
resp.scheduler_version #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster to register the compute node group instance in.

  • :bootstrap_id (required, String) —

    The client-generated token to allow for retries.

Returns:

See Also:



1612
1613
1614
1615
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1612

def register_compute_node_group_instance(params = {}, options = {})
  req = build_request(:register_compute_node_group_instance, params)
  req.send_request(options)
end

#tag_resource(params = {}) ⇒ Struct

Adds or edits tags on an PCS resource. Each tag consists of a tag key and a tag value. The tag key and tag value are case-sensitive strings. The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value.

Examples:

Request syntax with placeholder values


resp = client.tag_resource({
  resource_arn: "Arn", # required
  tags: { # required
    "TagKey" => "TagValue",
  },
})

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :resource_arn (required, String) —

    The Amazon Resource Name (ARN) of the resource.

  • :tags (required, Hash<String,String>) —

    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.

Returns:

  • (Struct) —

    Returns an empty response.

See Also:



1645
1646
1647
1648
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1645

def tag_resource(params = {}, options = {})
  req = build_request(:tag_resource, params)
  req.send_request(options)
end

#untag_resource(params = {}) ⇒ Struct

Deletes tags from an PCS resource. To delete a tag, specify the tag key and the Amazon Resource Name (ARN) of the PCS resource.

Examples:

Request syntax with placeholder values


resp = client.untag_resource({
  resource_arn: "Arn", # required
  tag_keys: ["TagKey"], # required
})

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :resource_arn (required, String) —

    The Amazon Resource Name (ARN) of the resource.

  • :tag_keys (required, Array<String>) —

    1 or more tag keys to remove from the resource. Specify only tag keys and not tag values.

Returns:

  • (Struct) —

    Returns an empty response.

See Also:



1673
1674
1675
1676
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1673

def untag_resource(params = {}, options = {})
  req = build_request(:untag_resource, params)
  req.send_request(options)
end

#update_cluster(params = {}) ⇒ Types::UpdateClusterResponse

Updates a cluster configuration. You can update the scheduler version, modify scheduler settings, and update accounting configuration for an existing cluster. For more information about updating the scheduler version, see Updating the scheduler version on a cluster in the PCS User Guide.

You can only update clusters that are in ACTIVE, UPDATE_FAILED, or SUSPENDED state. All associated resources (queues and compute node groups) must be in ACTIVE state before you can update the cluster.

Examples:

Request syntax with placeholder values


resp = client.update_cluster({
  cluster_identifier: "ClusterIdentifier", # required
  client_token: "SBClientToken",
  slurm_configuration: {
    scale_down_idle_time_in_seconds: 1,
    slurm_custom_settings: [
      {
        parameter_name: "String", # required
        parameter_value: "String", # required
      },
    ],
    slurmdbd_custom_settings: [
      {
        parameter_name: "String", # required
        parameter_value: "String", # required
      },
    ],
    cgroup_custom_settings: [
      {
        parameter_name: "String", # required
        parameter_value: "String", # required
      },
    ],
    accounting: {
      default_purge_time_in_days: 1,
      mode: "STANDARD", # accepts STANDARD, NONE
    },
    slurm_rest: {
      mode: "STANDARD", # accepts STANDARD, NONE
    },
  },
  scheduler: {
    version: "String", # required
  },
})

Response structure


resp.cluster.name #=> String
resp.cluster.id #=> String
resp.cluster.arn #=> String
resp.cluster.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.cluster.created_at #=> Time
resp.cluster.modified_at #=> Time
resp.cluster.scheduler.type #=> String, one of "SLURM"
resp.cluster.scheduler.version #=> String
resp.cluster.size #=> String, one of "SMALL", "MEDIUM", "LARGE"
resp.cluster.slurm_configuration.scale_down_idle_time_in_seconds #=> Integer
resp.cluster.slurm_configuration.slurm_custom_settings #=> Array
resp.cluster.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String
resp.cluster.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String
resp.cluster.slurm_configuration.slurmdbd_custom_settings #=> Array
resp.cluster.slurm_configuration.slurmdbd_custom_settings[0].parameter_name #=> String
resp.cluster.slurm_configuration.slurmdbd_custom_settings[0].parameter_value #=> String
resp.cluster.slurm_configuration.cgroup_custom_settings #=> Array
resp.cluster.slurm_configuration.cgroup_custom_settings[0].parameter_name #=> String
resp.cluster.slurm_configuration.cgroup_custom_settings[0].parameter_value #=> String
resp.cluster.slurm_configuration.auth_key.secret_arn #=> String
resp.cluster.slurm_configuration.auth_key.secret_version #=> String
resp.cluster.slurm_configuration.jwt_auth.jwt_key.secret_arn #=> String
resp.cluster.slurm_configuration.jwt_auth.jwt_key.secret_version #=> String
resp.cluster.slurm_configuration.accounting.default_purge_time_in_days #=> Integer
resp.cluster.slurm_configuration.accounting.mode #=> String, one of "STANDARD", "NONE"
resp.cluster.slurm_configuration.slurm_rest.mode #=> String, one of "STANDARD", "NONE"
resp.cluster.networking.subnet_ids #=> Array
resp.cluster.networking.subnet_ids[0] #=> String
resp.cluster.networking.security_group_ids #=> Array
resp.cluster.networking.security_group_ids[0] #=> String
resp.cluster.networking.network_type #=> String, one of "IPV4", "IPV6"
resp.cluster.endpoints #=> Array
resp.cluster.endpoints[0].type #=> String, one of "SLURMCTLD", "SLURMDBD", "SLURMRESTD"
resp.cluster.endpoints[0].private_ip_address #=> String
resp.cluster.endpoints[0].public_ip_address #=> String
resp.cluster.endpoints[0].ipv6_address #=> String
resp.cluster.endpoints[0].port #=> String
resp.cluster.error_info #=> Array
resp.cluster.error_info[0].code #=> String
resp.cluster.error_info[0].message #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster to update.

  • :client_token (String) —

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate one for you.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

  • :slurm_configuration (Types::UpdateClusterSlurmConfigurationRequest) —

    Additional options related to the Slurm scheduler.

  • :scheduler (Types::UpdateSchedulerRequest) —

    The scheduler configuration to update for the cluster. Use this to update the scheduler version. For more information, see Updating the scheduler version on a cluster in the PCS User Guide.

Returns:

See Also:



1810
1811
1812
1813
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 1810

def update_cluster(params = {}, options = {})
  req = build_request(:update_cluster, params)
  req.send_request(options)
end

#update_compute_node_group(params = {}) ⇒ Types::UpdateComputeNodeGroupResponse

Updates a compute node group. You can update many of the fields related to your compute node group including the configurations for networking, compute nodes, and settings specific to your scheduler (such as Slurm).

Examples:

Request syntax with placeholder values


resp = client.update_compute_node_group({
  ami_id: "AmiIdOrEmpty",
  security_group_ids: ["SecurityGroupId"],
  ssh_key_name: "KeyPairNameOrEmpty",
  cluster_identifier: "ClusterIdentifier", # required
  compute_node_group_identifier: "ComputeNodeGroupIdentifier", # required
  subnet_ids: ["String"],
  launch_template_mode: "CUSTOM", # accepts CUSTOM, MANAGED
  custom_launch_template: {
    id: "String", # required
    version: "String", # required
  },
  purchase_option: "ONDEMAND", # accepts ONDEMAND, SPOT, CAPACITY_BLOCK, INTERRUPTIBLE_CAPACITY_RESERVATION
  spot_options: {
    allocation_strategy: "lowest-price", # accepts lowest-price, capacity-optimized, price-capacity-optimized
  },
  scaling_configuration: {
    min_instance_count: 1, # required
    max_instance_count: 1, # required
  },
  iam_instance_profile_arn: "InstanceProfileArn",
  slurm_configuration: {
    scale_down_idle_time_in_seconds: 1,
    slurm_custom_settings: [
      {
        parameter_name: "String", # required
        parameter_value: "String", # required
      },
    ],
    gres_custom_settings: [
      {
        "String" => "String",
      },
    ],
  },
  node_lifecycle_actions: {
    stages: { # required
      node_bootstrapped: [
        {
          name: "NodeLifecycleScriptNameString", # required
          script_source: { # required
            script_location: "ScriptSourceScriptLocationString", # required
            s3_version_id: "ScriptSourceS3VersionIdString",
            checksum: "ScriptSourceChecksumString",
          },
          arguments: ["NodeLifecycleScriptArgument"],
          on_error: "TERMINATE", # accepts TERMINATE, STOP_SEQUENCE, CONTINUE
          execution_policy: "FIRST_BOOT_ONLY", # accepts FIRST_BOOT_ONLY, EVERY_BOOT
        },
      ],
      node_ready: [
        {
          name: "NodeLifecycleScriptNameString", # required
          script_source: { # required
            script_location: "ScriptSourceScriptLocationString", # required
            s3_version_id: "ScriptSourceS3VersionIdString",
            checksum: "ScriptSourceChecksumString",
          },
          arguments: ["NodeLifecycleScriptArgument"],
          on_error: "TERMINATE", # accepts TERMINATE, STOP_SEQUENCE, CONTINUE
          execution_policy: "FIRST_BOOT_ONLY", # accepts FIRST_BOOT_ONLY, EVERY_BOOT
        },
      ],
    },
    script_caching_policy: "CACHE_ONCE", # accepts CACHE_ONCE, REFRESH_ON_REBOOT
  },
  client_token: "SBClientToken",
})

Response structure


resp.compute_node_group.ami_id #=> String
resp.compute_node_group.security_group_ids #=> Array
resp.compute_node_group.security_group_ids[0] #=> String
resp.compute_node_group.ssh_key_name #=> String
resp.compute_node_group.name #=> String
resp.compute_node_group.id #=> String
resp.compute_node_group.arn #=> String
resp.compute_node_group.cluster_id #=> String
resp.compute_node_group.created_at #=> Time
resp.compute_node_group.modified_at #=> Time
resp.compute_node_group.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "DELETED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.compute_node_group.subnet_ids #=> Array
resp.compute_node_group.subnet_ids[0] #=> String
resp.compute_node_group.purchase_option #=> String, one of "ONDEMAND", "SPOT", "CAPACITY_BLOCK", "INTERRUPTIBLE_CAPACITY_RESERVATION"
resp.compute_node_group.launch_template_mode #=> String, one of "CUSTOM", "MANAGED"
resp.compute_node_group.custom_launch_template.id #=> String
resp.compute_node_group.custom_launch_template.version #=> String
resp.compute_node_group.iam_instance_profile_arn #=> String
resp.compute_node_group.scaling_configuration.min_instance_count #=> Integer
resp.compute_node_group.scaling_configuration.max_instance_count #=> Integer
resp.compute_node_group.instance_configs #=> Array
resp.compute_node_group.instance_configs[0].instance_type #=> String
resp.compute_node_group.spot_options.allocation_strategy #=> String, one of "lowest-price", "capacity-optimized", "price-capacity-optimized"
resp.compute_node_group.slurm_configuration.scale_down_idle_time_in_seconds #=> Integer
resp.compute_node_group.slurm_configuration.slurm_custom_settings #=> Array
resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String
resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String
resp.compute_node_group.slurm_configuration.gres_custom_settings #=> Array
resp.compute_node_group.slurm_configuration.gres_custom_settings[0] #=> Hash
resp.compute_node_group.slurm_configuration.gres_custom_settings[0]["String"] #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].name #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.script_location #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.s3_version_id #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].script_source.checksum #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].arguments #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].arguments[0] #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].on_error #=> String, one of "TERMINATE", "STOP_SEQUENCE", "CONTINUE"
resp.compute_node_group.node_lifecycle_actions.stages.node_bootstrapped[0].execution_policy #=> String, one of "FIRST_BOOT_ONLY", "EVERY_BOOT"
resp.compute_node_group.node_lifecycle_actions.stages.node_ready #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].name #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].script_source.script_location #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].script_source.s3_version_id #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].script_source.checksum #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].arguments #=> Array
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].arguments[0] #=> String
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].on_error #=> String, one of "TERMINATE", "STOP_SEQUENCE", "CONTINUE"
resp.compute_node_group.node_lifecycle_actions.stages.node_ready[0].execution_policy #=> String, one of "FIRST_BOOT_ONLY", "EVERY_BOOT"
resp.compute_node_group.node_lifecycle_actions.script_caching_policy #=> String, one of "CACHE_ONCE", "REFRESH_ON_REBOOT"
resp.compute_node_group.error_info #=> Array
resp.compute_node_group.error_info[0].code #=> String
resp.compute_node_group.error_info[0].message #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :ami_id (String) —

    The ID of the Amazon Machine Image (AMI) that PCS uses to launch instances. This value overrides the AMI ID in the custom launch template. Specify an empty string ("") to remove the AMI ID from the compute node group and use the AMI ID specified in the custom launch template. Omit this value to leave the current setting unchanged.

  • :security_group_ids (Array<String>) —

    The IDs of the EC2 security groups to configure directly on the compute node group. The security groups must be in the same VPC as the cluster. PCS uses these security groups instead of the security groups in the custom launch template. You can't specify this value if the custom launch template defines network interfaces. Specify an empty list ([]) to remove the security groups from the compute node group and use the security groups in the custom launch template. Omit this value to leave the current setting unchanged.

  • :ssh_key_name (String) —

    The name of the EC2 key pair to configure directly on the compute node group. The key pair must exist in your account and Amazon Web Services Region. PCS uses this key pair instead of the key pair in the custom launch template. Specify an empty string ("") to remove the key pair from the compute node group and use the key pair in the custom launch template. Omit this value to leave the current setting unchanged. You must have permission for ec2:DescribeKeyPairs to specify a key pair. If you delete the key pair later, future instance launches can fail.

  • :cluster_identifier (required, String) —

    The name or ID of the cluster of the compute node group.

  • :compute_node_group_identifier (required, String) —

    The name or ID of the compute node group.

  • :subnet_ids (Array<String>) —

    The list of subnet IDs where the compute node group provisions instances. The subnets must be in the same VPC as the cluster.

  • :launch_template_mode (String) —

    Specifies whether the compute node group uses a custom launch template or a launch template that PCS manages. Omit this value to keep the current mode.

    Valid values:

    • CUSTOM – Use a custom launch template. To switch from MANAGED, also provide customLaunchTemplate. If the compute node group already uses CUSTOM and you omit customLaunchTemplate, the existing launch template is unchanged.

    • MANAGED – Use a launch template created and managed by PCS. Omit customLaunchTemplate. Switching to this mode removes the custom launch template association but doesn't delete the launch template.

    When switching to MANAGED, the compute node group must have amiId and securityGroupIds configured. You can set these values in the same request.

  • :custom_launch_template (Types::CustomLaunchTemplate) —

    The custom Amazon EC2 launch template to associate with the compute node group. To set or change the custom launch template, specify id and version. If you provide this value and omit launchTemplateMode, the compute node group must already use CUSTOM mode. To switch from MANAGED to CUSTOM, specify launchTemplateMode as CUSTOM and provide this value. If the compute node group already uses CUSTOM, omit this value while also omitting launchTemplateMode, or while specifying CUSTOM, to keep the existing custom launch template. For more information, see Migrating a compute node group from a custom launch template in the PCS User Guide.

  • :purchase_option (String) —

    Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, Interruptible Capacity Reservations, On-Demand Capacity Reservations, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. For more information about PCS support for interruptible capacity reservations, see Using I-ODCRs with PCS in the PCS User Guide. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see Using ODCRs with PCS. If you don't provide this option, it defaults to On-Demand.

  • :spot_options (Types::SpotOptions) —

    Additional configuration when you specify SPOT as the purchaseOption for the CreateComputeNodeGroup API action.

  • :scaling_configuration (Types::ScalingConfigurationRequest) —

    Specifies the boundaries of the compute node group auto scaling.

  • :iam_instance_profile_arn (String) —

    The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have the pcs:RegisterComputeNodeGroupInstance permission and the role name must start with AWSPCS or must have the path /aws-pcs/. For more information, see IAM instance profiles for PCS in the PCS User Guide.

  • :slurm_configuration (Types::UpdateComputeNodeGroupSlurmConfigurationRequest) —

    Additional options related to the Slurm scheduler.

  • :node_lifecycle_actions (Types::UpdateNodeLifecycleActionsRequest) —

    The lifecycle actions to run on compute nodes in the compute node group. Use lifecycle actions to run custom scripts at defined stages of a compute node's lifecycle, such as when a compute node finishes bootstrapping or becomes ready to accept jobs.

  • :client_token (String) —

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate one for you.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

Returns:

See Also:



2090
2091
2092
2093
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 2090

def update_compute_node_group(params = {}, options = {})
  req = build_request(:update_compute_node_group, params)
  req.send_request(options)
end

#update_queue(params = {}) ⇒ Types::UpdateQueueResponse

Updates the compute node group configuration of a queue. Use this API to change the compute node groups that the queue can send jobs to.

Examples:

Request syntax with placeholder values


resp = client.update_queue({
  cluster_identifier: "ClusterIdentifier", # required
  queue_identifier: "QueueIdentifier", # required
  compute_node_group_configurations: [
    {
      compute_node_group_id: "String",
    },
  ],
  slurm_configuration: {
    slurm_custom_settings: [
      {
        parameter_name: "String", # required
        parameter_value: "String", # required
      },
    ],
  },
  client_token: "SBClientToken",
})

Response structure


resp.queue.name #=> String
resp.queue.id #=> String
resp.queue.arn #=> String
resp.queue.cluster_id #=> String
resp.queue.created_at #=> Time
resp.queue.modified_at #=> Time
resp.queue.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "SUSPENDING", "SUSPENDED", "RESUMING"
resp.queue.compute_node_group_configurations #=> Array
resp.queue.compute_node_group_configurations[0].compute_node_group_id #=> String
resp.queue.slurm_configuration.slurm_custom_settings #=> Array
resp.queue.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String
resp.queue.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String
resp.queue.error_info #=> Array
resp.queue.error_info[0].code #=> String
resp.queue.error_info[0].message #=> String

Parameters:

  • params (Hash) (defaults to: {}) —

    ({})

Options Hash (params):

  • :cluster_identifier (required, String) —

    The name or ID of the cluster of the queue.

  • :queue_identifier (required, String) —

    The name or ID of the queue.

  • :compute_node_group_configurations (Array<Types::ComputeNodeGroupConfiguration>) —

    The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.

  • :slurm_configuration (Types::UpdateQueueSlurmConfigurationRequest) —

    Additional options related to the Slurm scheduler.

  • :client_token (String) —

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate one for you.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

Returns:

See Also:



2170
2171
2172
2173
# File 'gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb', line 2170

def update_queue(params = {}, options = {})
  req = build_request(:update_queue, params)
  req.send_request(options)
end