{
  "version": "2.0",
  "service": "<p>Parallel Computing Service (PCS) is a managed service that makes it easier for you to run and scale your high performance computing (HPC) workloads, and build scientific and engineering models on Amazon Web Services using Slurm. For more information, see the <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide\">Parallel Computing Service User Guide</a>.</p> <p>This reference describes the actions and data types of the service management API. You can use the Amazon Web Services SDKs to call the API actions in software, or use the Command Line Interface (CLI) to call the API actions manually. These API actions manage the service through an Amazon Web Services account.</p> <p>The API actions operate on PCS resources. A <i>resource</i> is an entity in Amazon Web Services that you can work with. Amazon Web Services services create resources when you use the features of the service. Examples of PCS resources include clusters, compute node groups, and queues. For more information about resources in Amazon Web Services, see <a href=\"https://docs.aws.amazon.com/resource-explorer/latest/userguide/getting-started-terms-and-concepts.html#term-resource\">Resource</a> in the <i>Resource Explorer User Guide</i>. </p> <p>An PCS <i>compute node</i> is an Amazon EC2 instance. You don't launch compute nodes directly. PCS uses configuration information that you provide to launch compute nodes in your Amazon Web Services account. You receive billing charges for your running compute nodes. PCS automatically terminates your compute nodes when you delete the PCS resources related to those compute nodes.</p>",
  "operations": {
    "CreateCluster": "<p>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.</p> <note> <p>It takes time for PCS to create the cluster. The cluster is in a <code>Creating</code> state until it is ready to use. There can only be 1 cluster in a <code>Creating</code> state per Amazon Web Services Region per Amazon Web Services account. <code>CreateCluster</code> fails with a <code>ServiceQuotaExceededException</code> if there is already a cluster in a <code>Creating</code> state.</p> </note>",
    "CreateComputeNodeGroup": "<p>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 <code>launchTemplateMode</code> to <code>MANAGED</code> and don't provide <code>customLaunchTemplate</code>. In this case, you must specify <code>amiId</code> and <code>securityGroupIds</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/working-with_cng_instance-settings.html\">Configuring instance settings for compute node groups in PCS</a> in the <i>PCS User Guide</i>.</p>",
    "CreateQueue": "<p>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.</p>",
    "DeleteCluster": "<p>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.</p>",
    "DeleteComputeNodeGroup": "<p>Deletes a compute node group. You must delete all queues associated with the compute node group first.</p>",
    "DeleteQueue": "<p>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.</p>",
    "GetCluster": "<p>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.</p>",
    "GetComputeNodeGroup": "<p>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.</p>",
    "GetQueue": "<p>Returns detailed information about a queue. The information includes the compute node groups that the queue uses to schedule jobs.</p>",
    "ListClusters": "<p>Returns a list of running clusters in your account.</p>",
    "ListComputeNodeGroups": "<p>Returns a list of all compute node groups associated with a cluster.</p>",
    "ListQueues": "<p>Returns a list of all queues associated with a cluster.</p>",
    "ListTagsForResource": "<p>Returns a list of all tags on an PCS resource.</p>",
    "RegisterComputeNodeGroupInstance": "<p><important> <p>This API action isn't intended for you to use.</p> </important> <p>PCS uses this API action to register the compute nodes it launches in your account.</p></p>",
    "TagResource": "<p>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.</p>",
    "UntagResource": "<p>Deletes tags from an PCS resource. To delete a tag, specify the tag key and the Amazon Resource Name (ARN) of the PCS resource.</p>",
    "UpdateCluster": "<p>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 <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/working-with_clusters_version_update.html\">Updating the scheduler version on a cluster</a> in the <i>PCS User Guide</i>. </p> <note> <p>You can only update clusters that are in <code>ACTIVE</code>, <code>UPDATE_FAILED</code>, or <code>SUSPENDED</code> state. All associated resources (queues and compute node groups) must be in <code>ACTIVE</code> state before you can update the cluster.</p> </note>",
    "UpdateComputeNodeGroup": "<p>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).</p>",
    "UpdateQueue": "<p>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.</p>"
  },
  "shapes": {
    "AccessDeniedException": {
      "base": "<p>You don't have permission to perform the action.</p> <p> <u>Examples</u> </p> <ul> <li> <p>The launch template instance profile doesn't pass <code>iam:PassRole</code> verification.</p> </li> <li> <p>There is a mismatch between the account ID and cluster ID.</p> </li> <li> <p>The cluster ID doesn't exist.</p> </li> <li> <p>The EC2 instance isn't present.</p> </li> </ul>",
      "refs": {}
    },
    "Accounting": {
      "base": "<p>The accounting configuration includes configurable settings for Slurm accounting. It's a property of the <b>ClusterSlurmConfiguration</b> object.</p>",
      "refs": {
        "ClusterSlurmConfiguration$accounting": "<p>The accounting configuration includes configurable settings for Slurm accounting.</p>"
      }
    },
    "AccountingDefaultPurgeTimeInDaysInteger": {
      "base": null,
      "refs": {
        "Accounting$defaultPurgeTimeInDays": "<p>The default value for all purge settings for <code>slurmdbd.conf</code>. For more information, see the <a href=\"https://slurm.schedmd.com/slurmdbd.conf.html\">slurmdbd.conf documentation at SchedMD</a>.</p> <p>The default value for <code>defaultPurgeTimeInDays</code> is <code>-1</code>.</p> <p>A value of <code>-1</code> means there is no purge time and records persist as long as the cluster exists.</p> <important> <p> <code>0</code> isn't a valid value.</p> </important>"
      }
    },
    "AccountingMode": {
      "base": null,
      "refs": {
        "Accounting$mode": "<p>The default value for <code>mode</code> is <code>NONE</code>. A value of <code>STANDARD</code> means Slurm accounting is enabled.</p>",
        "AccountingRequest$mode": "<p>The default value for <code>mode</code> is <code>NONE</code>. A value of <code>STANDARD</code> means Slurm accounting is enabled.</p>",
        "UpdateAccountingRequest$mode": "<p>The default value for <code>mode</code> is <code>NONE</code>. A value of <code>STANDARD</code> means Slurm accounting is enabled.</p>"
      }
    },
    "AccountingRequest": {
      "base": "<p>The accounting configuration includes configurable settings for Slurm accounting. It's a property of the <b>ClusterSlurmConfiguration</b> object.</p>",
      "refs": {
        "ClusterSlurmConfigurationRequest$accounting": "<p>The accounting configuration includes configurable settings for Slurm accounting.</p>"
      }
    },
    "AccountingRequestDefaultPurgeTimeInDaysInteger": {
      "base": null,
      "refs": {
        "AccountingRequest$defaultPurgeTimeInDays": "<p>The default value for all purge settings for <code>slurmdbd.conf</code>. For more information, see the <a href=\"https://slurm.schedmd.com/slurmdbd.conf.html\">slurmdbd.conf documentation at SchedMD</a>.</p> <p>The default value for <code>defaultPurgeTimeInDays</code> is <code>-1</code>.</p> <p>A value of <code>-1</code> means there is no purge time and records persist as long as the cluster exists.</p> <important> <p> <code>0</code> isn't a valid value.</p> </important>"
      }
    },
    "AmiId": {
      "base": null,
      "refs": {
        "ComputeNodeGroup$amiId": "<p>The ID of the Amazon Machine Image (AMI) that PCS uses to launch instances. If not present, PCS uses the AMI ID specified in the custom launch template.</p>",
        "CreateComputeNodeGroupRequest$amiId": "<p> 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 <code>launchTemplateMode</code> is <code>MANAGED</code>.</p>"
      }
    },
    "AmiIdOrEmpty": {
      "base": null,
      "refs": {
        "UpdateComputeNodeGroupRequest$amiId": "<p>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 (<code>\"\"</code>) 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.</p>"
      }
    },
    "Arn": {
      "base": null,
      "refs": {
        "ListTagsForResourceRequest$resourceArn": "<p>The Amazon Resource Name (ARN) of the resource for which to list tags.</p>",
        "TagResourceRequest$resourceArn": "<p>The Amazon Resource Name (ARN) of the resource.</p>",
        "UntagResourceRequest$resourceArn": "<p>The Amazon Resource Name (ARN) of the resource.</p>"
      }
    },
    "BootstrapId": {
      "base": null,
      "refs": {
        "RegisterComputeNodeGroupInstanceRequest$bootstrapId": "<p>The client-generated token to allow for retries.</p>"
      }
    },
    "CgroupCustomSetting": {
      "base": "<p>Additional settings that directly map to Cgroup settings.</p> <important> <p>PCS supports a subset of Cgroup settings. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/cgroup-custom-settings.html\">Configuring custom Cgroup settings in PCS</a> in the <i>PCS User Guide</i>.</p> </important>",
      "refs": {
        "CgroupCustomSettings$member": null
      }
    },
    "CgroupCustomSettings": {
      "base": null,
      "refs": {
        "ClusterSlurmConfiguration$cgroupCustomSettings": "<p>Additional Cgroup-specific configuration that directly maps to Cgroup settings.</p>",
        "ClusterSlurmConfigurationRequest$cgroupCustomSettings": "<p>Additional Cgroup-specific configuration that directly maps to Cgroup settings.</p>",
        "UpdateClusterSlurmConfigurationRequest$cgroupCustomSettings": "<p>Additional Cgroup-specific configuration that directly maps to Cgroup settings.</p>"
      }
    },
    "Cluster": {
      "base": "<p>The cluster resource and configuration.</p>",
      "refs": {
        "CreateClusterResponse$cluster": "<p>The cluster resource.</p>",
        "GetClusterResponse$cluster": "<p>The cluster resource.</p>",
        "UpdateClusterResponse$cluster": null
      }
    },
    "ClusterIdentifier": {
      "base": null,
      "refs": {
        "CreateComputeNodeGroupRequest$clusterIdentifier": "<p>The name or ID of the cluster to create a compute node group in.</p>",
        "CreateQueueRequest$clusterIdentifier": "<p>The name or ID of the cluster for which to create a queue.</p>",
        "DeleteClusterRequest$clusterIdentifier": "<p>The name or ID of the cluster to delete.</p>",
        "DeleteComputeNodeGroupRequest$clusterIdentifier": "<p>The name or ID of the cluster of the compute node group.</p>",
        "DeleteQueueRequest$clusterIdentifier": "<p>The name or ID of the cluster of the queue.</p>",
        "GetClusterRequest$clusterIdentifier": "<p>The name or ID of the cluster.</p>",
        "GetComputeNodeGroupRequest$clusterIdentifier": "<p>The name or ID of the cluster.</p>",
        "GetQueueRequest$clusterIdentifier": "<p>The name or ID of the cluster of the queue.</p>",
        "ListComputeNodeGroupsRequest$clusterIdentifier": "<p>The name or ID of the cluster to list compute node groups for.</p>",
        "ListQueuesRequest$clusterIdentifier": "<p>The name or ID of the cluster to list queues for.</p>",
        "RegisterComputeNodeGroupInstanceRequest$clusterIdentifier": "<p>The name or ID of the cluster to register the compute node group instance in.</p>",
        "UpdateClusterRequest$clusterIdentifier": "<p>The name or ID of the cluster to update.</p>",
        "UpdateComputeNodeGroupRequest$clusterIdentifier": "<p>The name or ID of the cluster of the compute node group.</p>",
        "UpdateQueueRequest$clusterIdentifier": "<p>The name or ID of the cluster of the queue.</p>"
      }
    },
    "ClusterList": {
      "base": null,
      "refs": {
        "ListClustersResponse$clusters": "<p>The list of clusters.</p>"
      }
    },
    "ClusterName": {
      "base": null,
      "refs": {
        "CreateClusterRequest$clusterName": "<p>A name to identify the cluster. Example: <code>MyCluster</code> </p>"
      }
    },
    "ClusterSlurmConfiguration": {
      "base": "<p>Additional options related to the Slurm scheduler.</p>",
      "refs": {
        "Cluster$slurmConfiguration": "<p>Additional options related to the Slurm scheduler.</p>"
      }
    },
    "ClusterSlurmConfigurationRequest": {
      "base": "<p>Additional options related to the Slurm scheduler.</p>",
      "refs": {
        "CreateClusterRequest$slurmConfiguration": "<p>Additional options related to the Slurm scheduler.</p>"
      }
    },
    "ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger": {
      "base": null,
      "refs": {
        "ClusterSlurmConfigurationRequest$scaleDownIdleTimeInSeconds": "<p>The time (in seconds) before an idle node is scaled down.</p> <p>Default: <code>600</code> </p>"
      }
    },
    "ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger": {
      "base": null,
      "refs": {
        "ClusterSlurmConfiguration$scaleDownIdleTimeInSeconds": "<p>The time (in seconds) before an idle node is scaled down.</p> <p>Default: <code>600</code> </p>"
      }
    },
    "ClusterStatus": {
      "base": null,
      "refs": {
        "Cluster$status": "<p>The provisioning status of the cluster.</p> <note> <p>The provisioning status doesn't indicate the overall health of the cluster.</p> </note> <important> <p>The resource enters the <code>SUSPENDING</code> and <code>SUSPENDED</code> states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is <code>SUSPENDED</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-versions_faq.html\">Frequently asked questions about Slurm versions in PCS</a> in the <i>PCS User Guide</i>.</p> </important>",
        "ClusterSummary$status": "<p>The provisioning status of the cluster.</p> <note> <p>The provisioning status doesn't indicate the overall health of the cluster.</p> </note> <important> <p>The resource enters the <code>SUSPENDING</code> and <code>SUSPENDED</code> states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is <code>SUSPENDED</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-versions_faq.html\">Frequently asked questions about Slurm versions in PCS</a> in the <i>PCS User Guide</i>.</p> </important>"
      }
    },
    "ClusterSummary": {
      "base": "<p>The object returned by the <code>ListClusters</code> API action.</p>",
      "refs": {
        "ClusterList$member": null
      }
    },
    "ComputeNodeGroup": {
      "base": "<p>A compute node group associated with a cluster.</p>",
      "refs": {
        "CreateComputeNodeGroupResponse$computeNodeGroup": null,
        "GetComputeNodeGroupResponse$computeNodeGroup": null,
        "UpdateComputeNodeGroupResponse$computeNodeGroup": null
      }
    },
    "ComputeNodeGroupConfiguration": {
      "base": "<p>The compute node group configuration for a queue.</p>",
      "refs": {
        "ComputeNodeGroupConfigurationList$member": null
      }
    },
    "ComputeNodeGroupConfigurationList": {
      "base": null,
      "refs": {
        "CreateQueueRequest$computeNodeGroupConfigurations": "<p>The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.</p>",
        "Queue$computeNodeGroupConfigurations": "<p>The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.</p>",
        "UpdateQueueRequest$computeNodeGroupConfigurations": "<p>The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.</p>"
      }
    },
    "ComputeNodeGroupIdentifier": {
      "base": null,
      "refs": {
        "DeleteComputeNodeGroupRequest$computeNodeGroupIdentifier": "<p>The name or ID of the compute node group to delete.</p>",
        "GetComputeNodeGroupRequest$computeNodeGroupIdentifier": "<p>The name or ID of the compute node group.</p>",
        "UpdateComputeNodeGroupRequest$computeNodeGroupIdentifier": "<p>The name or ID of the compute node group.</p>"
      }
    },
    "ComputeNodeGroupList": {
      "base": null,
      "refs": {
        "ListComputeNodeGroupsResponse$computeNodeGroups": "<p>The list of compute node groups for the cluster.</p>"
      }
    },
    "ComputeNodeGroupName": {
      "base": null,
      "refs": {
        "ComputeNodeGroup$name": "<p>The name that identifies the compute node group.</p>",
        "ComputeNodeGroupSummary$name": "<p>The name that identifies the compute node group.</p>",
        "CreateComputeNodeGroupRequest$computeNodeGroupName": "<p>A name to identify the cluster. Example: <code>MyCluster</code> </p>"
      }
    },
    "ComputeNodeGroupSlurmConfiguration": {
      "base": "<p>Additional options related to the Slurm scheduler.</p>",
      "refs": {
        "ComputeNodeGroup$slurmConfiguration": null
      }
    },
    "ComputeNodeGroupSlurmConfigurationRequest": {
      "base": "<p>Additional options related to the Slurm scheduler.</p>",
      "refs": {
        "CreateComputeNodeGroupRequest$slurmConfiguration": "<p>Additional options related to the Slurm scheduler.</p>"
      }
    },
    "ComputeNodeGroupSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger": {
      "base": null,
      "refs": {
        "ComputeNodeGroupSlurmConfigurationRequest$scaleDownIdleTimeInSeconds": "<p>The time (in seconds) before an idle node is scaled down. If not specified, the cluster-level setting applies. This overrides the cluster-level <code>scaleDownIdleTimeInSeconds</code> setting. A value of <code>-1</code> removes the override and applies the cluster-level setting to this compute node group. Requires Slurm version 25.11 or later.</p>"
      }
    },
    "ComputeNodeGroupSlurmConfigurationScaleDownIdleTimeInSecondsInteger": {
      "base": null,
      "refs": {
        "ComputeNodeGroupSlurmConfiguration$scaleDownIdleTimeInSeconds": "<p>The time (in seconds) before an idle node is scaled down. If not specified, the cluster-level setting applies. This overrides the cluster-level <code>scaleDownIdleTimeInSeconds</code> setting. A value of <code>-1</code> removes the override and applies the cluster-level setting to this compute node group. Requires Slurm version 25.11 or later.</p>"
      }
    },
    "ComputeNodeGroupStatus": {
      "base": null,
      "refs": {
        "ComputeNodeGroup$status": "<p>The provisioning status of the compute node group.</p> <note> <p>The provisioning status doesn't indicate the overall health of the compute node group.</p> </note> <important> <p>The resource enters the <code>SUSPENDING</code> and <code>SUSPENDED</code> states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is <code>SUSPENDED</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-versions_faq.html\">Frequently asked questions about Slurm versions in PCS</a> in the <i>PCS User Guide</i>.</p> </important>",
        "ComputeNodeGroupSummary$status": "<p>The provisioning status of the compute node group.</p> <note> <p>The provisioning status doesn't indicate the overall health of the compute node group.</p> </note> <important> <p>The resource enters the <code>SUSPENDING</code> and <code>SUSPENDED</code> states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is <code>SUSPENDED</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-versions_faq.html\">Frequently asked questions about Slurm versions in PCS</a> in the <i>PCS User Guide</i>.</p> </important>"
      }
    },
    "ComputeNodeGroupSummary": {
      "base": "<p>The object returned by the <code>ListComputeNodeGroups</code> API action.</p>",
      "refs": {
        "ComputeNodeGroupList$member": null
      }
    },
    "ConflictException": {
      "base": "<p>Your request has conflicting operations. This can occur if you're trying to perform more than 1 operation on the same resource at the same time.</p> <p> <u>Examples</u> </p> <ul> <li> <p>A cluster with the same name already exists.</p> </li> <li> <p>A cluster isn't in <code>ACTIVE</code> status.</p> </li> <li> <p>A cluster to delete is in an unstable state. For example, because it still has <code>ACTIVE</code> node groups or queues.</p> </li> <li> <p>A queue already exists in a cluster.</p> </li> </ul>",
      "refs": {}
    },
    "CreateClusterRequest": {
      "base": null,
      "refs": {}
    },
    "CreateClusterResponse": {
      "base": null,
      "refs": {}
    },
    "CreateComputeNodeGroupRequest": {
      "base": null,
      "refs": {}
    },
    "CreateComputeNodeGroupResponse": {
      "base": null,
      "refs": {}
    },
    "CreateQueueRequest": {
      "base": null,
      "refs": {}
    },
    "CreateQueueResponse": {
      "base": null,
      "refs": {}
    },
    "CustomLaunchTemplate": {
      "base": "<p>An Amazon EC2 launch template PCS uses to launch compute nodes. The structure contains the launch template ID and version.</p>",
      "refs": {
        "ComputeNodeGroup$customLaunchTemplate": "<p>The custom Amazon EC2 launch template associated with the compute node group. This value is present when <code>launchTemplateMode</code> is <code>CUSTOM</code> and isn't present when <code>launchTemplateMode</code> is <code>MANAGED</code>.</p>",
        "CreateComputeNodeGroupRequest$customLaunchTemplate": "<p>The custom Amazon EC2 launch template to associate with the compute node group. Specify the launch template <code>id</code> and <code>version</code> when <code>launchTemplateMode</code> is <code>CUSTOM</code>. Don't specify this value when <code>launchTemplateMode</code> is <code>MANAGED</code>.</p>",
        "UpdateComputeNodeGroupRequest$customLaunchTemplate": "<p>The custom Amazon EC2 launch template to associate with the compute node group. To set or change the custom launch template, specify <code>id</code> and <code>version</code>. If you provide this value and omit <code>launchTemplateMode</code>, the compute node group must already use <code>CUSTOM</code> mode. To switch from <code>MANAGED</code> to <code>CUSTOM</code>, specify <code>launchTemplateMode</code> as <code>CUSTOM</code> and provide this value. If the compute node group already uses <code>CUSTOM</code>, omit this value while also omitting <code>launchTemplateMode</code>, or while specifying <code>CUSTOM</code>, to keep the existing custom launch template. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/working-with_cng_instance-settings-migrate.html\">Migrating a compute node group from a custom launch template</a> in the <i>PCS User Guide</i>.</p>"
      }
    },
    "DeleteClusterRequest": {
      "base": null,
      "refs": {}
    },
    "DeleteClusterResponse": {
      "base": null,
      "refs": {}
    },
    "DeleteComputeNodeGroupRequest": {
      "base": null,
      "refs": {}
    },
    "DeleteComputeNodeGroupResponse": {
      "base": null,
      "refs": {}
    },
    "DeleteQueueRequest": {
      "base": null,
      "refs": {}
    },
    "DeleteQueueResponse": {
      "base": null,
      "refs": {}
    },
    "Endpoint": {
      "base": "<p>An endpoint available for interaction with the scheduler.</p>",
      "refs": {
        "Endpoints$member": null
      }
    },
    "EndpointType": {
      "base": null,
      "refs": {
        "Endpoint$type": "<p>Indicates the type of endpoint running at the specific IP address.</p>"
      }
    },
    "Endpoints": {
      "base": null,
      "refs": {
        "Cluster$endpoints": "<p>The list of endpoints available for interaction with the scheduler.</p>",
        "RegisterComputeNodeGroupInstanceResponse$endpoints": "<p>The list of endpoints available for interaction with the scheduler.</p>"
      }
    },
    "ErrorInfo": {
      "base": "<p>An error that occurred during resource creation.</p>",
      "refs": {
        "ErrorInfoList$member": null
      }
    },
    "ErrorInfoList": {
      "base": null,
      "refs": {
        "Cluster$errorInfo": "<p>The list of errors that occurred during cluster provisioning.</p>",
        "ComputeNodeGroup$errorInfo": "<p>The list of errors that occurred during compute node group provisioning.</p>",
        "Queue$errorInfo": "<p>The list of errors that occurred during queue provisioning.</p>"
      }
    },
    "ExecutionPolicy": {
      "base": "<p>The policy that determines when a node lifecycle script runs. Valid values:</p> <ul> <li> <p> <code>FIRST_BOOT_ONLY</code> – Runs the script only the first time the compute node boots.</p> </li> <li> <p> <code>EVERY_BOOT</code> – Runs the script every time the compute node boots, including reboots.</p> </li> </ul>",
      "refs": {
        "NodeLifecycleScript$executionPolicy": "<p>The policy that determines when the script runs. The default value is <code>FIRST_BOOT_ONLY</code>. Valid values:</p> <ul> <li> <p> <code>FIRST_BOOT_ONLY</code> – Runs the script only the first time the compute node boots.</p> </li> <li> <p> <code>EVERY_BOOT</code> – Runs the script every time the compute node boots, including reboots.</p> </li> </ul>"
      }
    },
    "GetClusterRequest": {
      "base": null,
      "refs": {}
    },
    "GetClusterResponse": {
      "base": null,
      "refs": {}
    },
    "GetComputeNodeGroupRequest": {
      "base": null,
      "refs": {}
    },
    "GetComputeNodeGroupResponse": {
      "base": null,
      "refs": {}
    },
    "GetQueueRequest": {
      "base": null,
      "refs": {}
    },
    "GetQueueResponse": {
      "base": null,
      "refs": {}
    },
    "GresCustomSettingMap": {
      "base": "<p>A single Slurm <code>gres.conf</code> record, expressed as a map of <code>gres.conf</code> attribute names to their values. For example, <code>{\"Name\": \"gpu\", \"Type\": \"a100\", \"File\": \"/dev/nvidia[0-7]\"}</code> or <code>{\"AutoDetect\": \"nvml\"}</code>. PCS adds the <code>NodeName=</code> prefix for the compute node group.</p> <important> <p>PCS supports a subset of <code>gres.conf</code> settings. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/gres-custom-settings.html\">Configuring custom GRES settings in PCS</a> in the <i>PCS User Guide</i>.</p> </important>",
      "refs": {
        "GresCustomSettings$member": null
      }
    },
    "GresCustomSettings": {
      "base": null,
      "refs": {
        "ComputeNodeGroupSlurmConfiguration$gresCustomSettings": "<p>The additional Slurm <code>gres.conf</code> records for the compute node group. Each item is a map of <code>gres.conf</code> attribute names to values that describes one <code>gres.conf</code> record, such as a GPU topology, MIG, MPS, or custom GRES entry. PCS adds the <code>NodeName=</code> prefix and merges these records with the GPU record it derives from the instance type.</p>",
        "ComputeNodeGroupSlurmConfigurationRequest$gresCustomSettings": "<p>The additional Slurm <code>gres.conf</code> records for the compute node group. Each item is a map of <code>gres.conf</code> attribute names to values that describes one <code>gres.conf</code> record, such as a GPU topology, MIG, MPS, or custom GRES entry. PCS adds the <code>NodeName=</code> prefix and merges these records with the GPU record it derives from the instance type.</p>",
        "UpdateComputeNodeGroupSlurmConfigurationRequest$gresCustomSettings": "<p>The additional Slurm <code>gres.conf</code> records for the compute node group. Each item is a map of <code>gres.conf</code> attribute names to values that describes one <code>gres.conf</code> record, such as a GPU topology, MIG, MPS, or custom GRES entry. PCS adds the <code>NodeName=</code> prefix and merges these records with the GPU record it derives from the instance type.</p>"
      }
    },
    "InstanceConfig": {
      "base": "<p>An EC2 instance configuration PCS uses to launch compute nodes.</p>",
      "refs": {
        "InstanceList$member": null
      }
    },
    "InstanceList": {
      "base": null,
      "refs": {
        "ComputeNodeGroup$instanceConfigs": "<p>A list of EC2 instance configurations that PCS can provision in the compute node group.</p>",
        "CreateComputeNodeGroupRequest$instanceConfigs": "<p>A list of EC2 instance configurations that PCS can provision in the compute node group.</p>"
      }
    },
    "InstanceProfileArn": {
      "base": null,
      "refs": {
        "ComputeNodeGroup$iamInstanceProfileArn": "<p>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 <code>pcs:RegisterComputeNodeGroupInstance</code> permission and the role name must start with <code>AWSPCS</code> or must have the path <code>/aws-pcs/</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/security-instance-profiles.html\">IAM instance profiles for PCS</a> in the <i>PCS User Guide</i>.</p>",
        "CreateComputeNodeGroupRequest$iamInstanceProfileArn": "<p>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 <code>pcs:RegisterComputeNodeGroupInstance</code> permission and the role name must start with <code>AWSPCS</code> or must have the path <code>/aws-pcs/</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/security-instance-profiles.html\">IAM instance profiles for PCS</a> in the <i>PCS User Guide</i>.</p>",
        "UpdateComputeNodeGroupRequest$iamInstanceProfileArn": "<p>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 <code>pcs:RegisterComputeNodeGroupInstance</code> permission and the role name must start with <code>AWSPCS</code> or must have the path <code>/aws-pcs/</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/security-instance-profiles.html\">IAM instance profiles for PCS</a> in the <i>PCS User Guide</i>.</p>"
      }
    },
    "Integer": {
      "base": null,
      "refs": {
        "ThrottlingException$retryAfterSeconds": "<p> The number of seconds to wait before retrying the request. </p>"
      }
    },
    "InternalServerException": {
      "base": "<p>PCS can't process your request right now. Try again later.</p>",
      "refs": {}
    },
    "JwtAuth": {
      "base": "<p>The JWT authentication configuration for Slurm REST API access.</p>",
      "refs": {
        "ClusterSlurmConfiguration$jwtAuth": "<p>The JWT authentication configuration for Slurm REST API access.</p>"
      }
    },
    "JwtKey": {
      "base": "<p>The JWT key stored in Amazon Web Services Secrets Manager for Slurm REST API authentication.</p>",
      "refs": {
        "JwtAuth$jwtKey": "<p>The JWT key for Slurm REST API authentication.</p>"
      }
    },
    "KeyPairName": {
      "base": null,
      "refs": {
        "ComputeNodeGroup$sshKeyName": "<p>The name of the EC2 key pair configured directly on the compute node group. PCS uses this key pair instead of the key pair in the custom launch template. This value isn't present if a key pair isn't configured directly on the compute node group. In that case, PCS uses the key pair in the custom launch template, if one is specified.</p>",
        "CreateComputeNodeGroupRequest$sshKeyName": "<p>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 <code>ec2:DescribeKeyPairs</code>. If you delete the key pair later, future instance launches can fail. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/working-with_cng_instance-settings.html\">Configuring instance settings for compute node groups in PCS</a> in the <i>PCS User Guide</i>.</p>"
      }
    },
    "KeyPairNameOrEmpty": {
      "base": null,
      "refs": {
        "UpdateComputeNodeGroupRequest$sshKeyName": "<p>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 (<code>\"\"</code>) 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 <code>ec2:DescribeKeyPairs</code> to specify a key pair. If you delete the key pair later, future instance launches can fail.</p>"
      }
    },
    "LaunchTemplateMode": {
      "base": null,
      "refs": {
        "ComputeNodeGroup$launchTemplateMode": "<p>Indicates whether the compute node group uses a custom launch template or a launch template that PCS manages. The default value is <code>CUSTOM</code>.</p> <p>Valid values:</p> <ul> <li> <p> <code>CUSTOM</code> – The compute node group uses the launch template in <code>customLaunchTemplate</code>.</p> </li> <li> <p> <code>MANAGED</code> – PCS creates and manages the launch template.</p> </li> </ul>",
        "CreateComputeNodeGroupRequest$launchTemplateMode": "<p>Specifies whether the compute node group uses a custom launch template or a launch template that PCS manages. The default value is <code>CUSTOM</code>.</p> <p>If the value is <code>CUSTOM</code>, provide <code>customLaunchTemplate</code>. If the value is <code>MANAGED</code>, omit <code>customLaunchTemplate</code> and provide <code>amiId</code> and <code>securityGroupIds</code>.</p>",
        "UpdateComputeNodeGroupRequest$launchTemplateMode": "<p>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.</p> <p>Valid values:</p> <ul> <li> <p> <code>CUSTOM</code> – Use a custom launch template. To switch from <code>MANAGED</code>, also provide <code>customLaunchTemplate</code>. If the compute node group already uses <code>CUSTOM</code> and you omit <code>customLaunchTemplate</code>, the existing launch template is unchanged.</p> </li> <li> <p> <code>MANAGED</code> – Use a launch template created and managed by PCS. Omit <code>customLaunchTemplate</code>. Switching to this mode removes the custom launch template association but doesn't delete the launch template.</p> </li> </ul> <p>When switching to <code>MANAGED</code>, the compute node group must have <code>amiId</code> and <code>securityGroupIds</code> configured. You can set these values in the same request.</p>"
      }
    },
    "ListClustersRequest": {
      "base": null,
      "refs": {}
    },
    "ListClustersResponse": {
      "base": null,
      "refs": {}
    },
    "ListComputeNodeGroupsRequest": {
      "base": null,
      "refs": {}
    },
    "ListComputeNodeGroupsResponse": {
      "base": null,
      "refs": {}
    },
    "ListQueuesRequest": {
      "base": null,
      "refs": {}
    },
    "ListQueuesResponse": {
      "base": null,
      "refs": {}
    },
    "ListTagsForResourceRequest": {
      "base": null,
      "refs": {}
    },
    "ListTagsForResourceResponse": {
      "base": null,
      "refs": {}
    },
    "MaxResults": {
      "base": null,
      "refs": {
        "ListClustersRequest$maxResults": "<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> 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.</p>",
        "ListComputeNodeGroupsRequest$maxResults": "<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> 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.</p>",
        "ListQueuesRequest$maxResults": "<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> 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.</p>"
      }
    },
    "NetworkType": {
      "base": null,
      "refs": {
        "Networking$networkType": "<p>The IP address version the cluster uses. The default is <code>IPV4</code>.</p>",
        "NetworkingRequest$networkType": "<p>The IP address version the cluster uses. The default is <code>IPV4</code>.</p>"
      }
    },
    "Networking": {
      "base": "<p>The networking configuration for the cluster's control plane.</p>",
      "refs": {
        "Cluster$networking": null
      }
    },
    "NetworkingRequest": {
      "base": "<p>The networking configuration for the cluster's control plane.</p>",
      "refs": {
        "CreateClusterRequest$networking": "<p>The networking configuration used to set up the cluster's control plane.</p>"
      }
    },
    "NodeLifecycleActions": {
      "base": "<p>The lifecycle actions configured on a compute node group. Lifecycle actions define scripts that PCS runs on compute nodes at specific stages of their lifecycle.</p>",
      "refs": {
        "ComputeNodeGroup$nodeLifecycleActions": "<p>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.</p>",
        "RegisterComputeNodeGroupInstanceResponse$nodeLifecycleActions": "<p>The node lifecycle actions configured for the node group, including scripts to run when a compute node finishes bootstrapping or becomes ready to accept jobs.</p>"
      }
    },
    "NodeLifecycleActionsRequest": {
      "base": "<p>The lifecycle actions to configure on a compute node group when you create it. Lifecycle actions define scripts that PCS runs on compute nodes at specific stages of their lifecycle.</p>",
      "refs": {
        "CreateComputeNodeGroupRequest$nodeLifecycleActions": "<p>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.</p>"
      }
    },
    "NodeLifecycleScript": {
      "base": "<p>A script to run during a compute node lifecycle stage.</p>",
      "refs": {
        "NodeLifecycleScriptList$member": null
      }
    },
    "NodeLifecycleScriptArgument": {
      "base": null,
      "refs": {
        "NodeLifecycleScriptArguments$member": null
      }
    },
    "NodeLifecycleScriptArguments": {
      "base": null,
      "refs": {
        "NodeLifecycleScript$arguments": "<p>The command-line arguments to pass to the script. You can specify up to 20 arguments, and each argument can be up to 256 characters long.</p>"
      }
    },
    "NodeLifecycleScriptList": {
      "base": null,
      "refs": {
        "NodeLifecycleStages$nodeBootstrapped": "<p>The scripts to run after PCS finishes setting up the compute node and before the Slurm daemon (<code>slurmd</code>) starts. Use this stage for tasks that must complete before the node accepts jobs, such as mounting shared storage, configuring networking, or installing software packages.</p>",
        "NodeLifecycleStages$nodeReady": "<p>The scripts to run after the Slurm daemon (<code>slurmd</code>) starts and the compute node registers with the Slurm controller. Use this stage for tasks that require Slurm to be running, such as running Slurm commands.</p>"
      }
    },
    "NodeLifecycleScriptNameString": {
      "base": null,
      "refs": {
        "NodeLifecycleScript$name": "<p>A unique name for the script. The name can be up to 64 characters long. Valid characters are letters, numbers, spaces, underscores (<code>_</code>), and hyphens (<code>-</code>). The first character must be a letter or a number.</p>"
      }
    },
    "NodeLifecycleStages": {
      "base": "<p>The stages of a compute node's lifecycle where you can configure scripts to run.</p>",
      "refs": {
        "NodeLifecycleActions$stages": "<p>The lifecycle stages where you configure scripts to run.</p>",
        "NodeLifecycleActionsRequest$stages": "<p>The lifecycle stages where you configure scripts to run.</p>",
        "UpdateNodeLifecycleActionsRequest$stages": "<p>The lifecycle stages where you configure scripts to run.</p>"
      }
    },
    "OnError": {
      "base": "<p>The behavior when a node lifecycle script fails. Valid values:</p> <ul> <li> <p> <code>TERMINATE</code> – Terminates the compute node.</p> </li> <li> <p> <code>STOP_SEQUENCE</code> – Stops running subsequent scripts in the sequence but doesn't terminate the compute node.</p> </li> <li> <p> <code>CONTINUE</code> – Ignores the error and continues running the next script.</p> </li> </ul>",
      "refs": {
        "NodeLifecycleScript$onError": "<p>The behavior when the script fails. The default value is <code>TERMINATE</code>. Valid values:</p> <ul> <li> <p> <code>TERMINATE</code> – Terminates the compute node.</p> </li> <li> <p> <code>STOP_SEQUENCE</code> – Stops running subsequent scripts in the sequence but doesn't terminate the compute node.</p> </li> <li> <p> <code>CONTINUE</code> – Ignores the error and continues running the next script.</p> </li> </ul>"
      }
    },
    "PurchaseOption": {
      "base": null,
      "refs": {
        "ComputeNodeGroup$purchaseOption": "<p>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 <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html\">Amazon EC2 billing and purchasing options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information about PCS support for Capacity Blocks, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/capacity-blocks.html\">Using Amazon EC2 Capacity Blocks for ML with PCS</a> in the <i>PCS User Guide</i>. For more information about PCS support for interruptible capacity reservations, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/capacity-reservations-iodcr.html\">Using I-ODCRs with PCS</a> in the <i>PCS User Guide</i>. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/capacity-reservations-odcr.html\">Using ODCRs with PCS</a>. If you don't provide this option, it defaults to On-Demand.</p>",
        "CreateComputeNodeGroupRequest$purchaseOption": "<p>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 <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html\">Amazon EC2 billing and purchasing options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information about PCS support for Capacity Blocks, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/capacity-blocks.html\">Using Amazon EC2 Capacity Blocks for ML with PCS</a> in the <i>PCS User Guide</i>. For more information about PCS support for interruptible capacity reservations, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/capacity-reservations-iodcr.html\">Using I-ODCRs with PCS</a> in the <i>PCS User Guide</i>. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/capacity-reservations-odcr.html\">Using ODCRs with PCS</a>. If you don't provide this option, it defaults to On-Demand.</p>",
        "UpdateComputeNodeGroupRequest$purchaseOption": "<p>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 <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html\">Amazon EC2 billing and purchasing options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information about PCS support for Capacity Blocks, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/capacity-blocks.html\">Using Amazon EC2 Capacity Blocks for ML with PCS</a> in the <i>PCS User Guide</i>. For more information about PCS support for interruptible capacity reservations, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/capacity-reservations-iodcr.html\">Using I-ODCRs with PCS</a> in the <i>PCS User Guide</i>. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/capacity-reservations-odcr.html\">Using ODCRs with PCS</a>. If you don't provide this option, it defaults to On-Demand.</p>"
      }
    },
    "Queue": {
      "base": "<p>A queue resource.</p>",
      "refs": {
        "CreateQueueResponse$queue": null,
        "GetQueueResponse$queue": null,
        "UpdateQueueResponse$queue": null
      }
    },
    "QueueIdentifier": {
      "base": null,
      "refs": {
        "DeleteQueueRequest$queueIdentifier": "<p>The name or ID of the queue to delete.</p>",
        "GetQueueRequest$queueIdentifier": "<p>The name or ID of the queue.</p>",
        "UpdateQueueRequest$queueIdentifier": "<p>The name or ID of the queue.</p>"
      }
    },
    "QueueList": {
      "base": null,
      "refs": {
        "ListQueuesResponse$queues": "<p>The list of queues associated with the cluster.</p>"
      }
    },
    "QueueName": {
      "base": null,
      "refs": {
        "CreateQueueRequest$queueName": "<p>A name to identify the queue.</p>",
        "Queue$name": "<p>The name that identifies the queue.</p>",
        "QueueSummary$name": "<p>The name that identifies the queue.</p>"
      }
    },
    "QueueSlurmConfiguration": {
      "base": "<p>Additional options related to the Slurm scheduler.</p>",
      "refs": {
        "Queue$slurmConfiguration": "<p>Additional options related to the Slurm scheduler.</p>"
      }
    },
    "QueueSlurmConfigurationRequest": {
      "base": "<p>Additional options related to the Slurm scheduler.</p>",
      "refs": {
        "CreateQueueRequest$slurmConfiguration": "<p>Additional options related to the Slurm scheduler.</p>"
      }
    },
    "QueueStatus": {
      "base": null,
      "refs": {
        "Queue$status": "<p>The provisioning status of the queue.</p> <note> <p>The provisioning status doesn't indicate the overall health of the queue.</p> </note> <important> <p>The resource enters the <code>SUSPENDING</code> and <code>SUSPENDED</code> states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is <code>SUSPENDED</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-versions_faq.html\">Frequently asked questions about Slurm versions in PCS</a> in the <i>PCS User Guide</i>.</p> </important>",
        "QueueSummary$status": "<p>The provisioning status of the queue.</p> <note> <p> The provisioning status doesn't indicate the overall health of the queue.</p> </note> <important> <p>The resource enters the <code>SUSPENDING</code> and <code>SUSPENDED</code> states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is <code>SUSPENDED</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-versions_faq.html\">Frequently asked questions about Slurm versions in PCS</a> in the <i>PCS User Guide</i>.</p> </important>"
      }
    },
    "QueueSummary": {
      "base": "<p>The object returned by the <code>ListQueues</code> API action.</p>",
      "refs": {
        "QueueList$member": null
      }
    },
    "RegisterComputeNodeGroupInstanceRequest": {
      "base": null,
      "refs": {}
    },
    "RegisterComputeNodeGroupInstanceResponse": {
      "base": null,
      "refs": {}
    },
    "RequestTagMap": {
      "base": null,
      "refs": {
        "CreateClusterRequest$tags": "<p>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.</p>",
        "CreateComputeNodeGroupRequest$tags": "<p>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.</p>",
        "CreateQueueRequest$tags": "<p>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.</p>",
        "TagResourceRequest$tags": "<p>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.</p>"
      }
    },
    "ResourceNotFoundException": {
      "base": "<p>The requested resource can't be found. The cluster, node group, or queue you're attempting to get, update, list, or delete doesn't exist.</p> <p> <u>Examples</u> </p>",
      "refs": {}
    },
    "ResponseTagMap": {
      "base": null,
      "refs": {
        "ListTagsForResourceResponse$tags": "<p>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.</p>"
      }
    },
    "SBClientToken": {
      "base": null,
      "refs": {
        "CreateClusterRequest$clientToken": "<p>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.</p>",
        "CreateComputeNodeGroupRequest$clientToken": "<p>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.</p>",
        "CreateQueueRequest$clientToken": "<p>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.</p>",
        "DeleteClusterRequest$clientToken": "<p>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.</p>",
        "DeleteComputeNodeGroupRequest$clientToken": "<p>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.</p>",
        "DeleteQueueRequest$clientToken": "<p>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.</p>",
        "UpdateClusterRequest$clientToken": "<p>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.</p>",
        "UpdateComputeNodeGroupRequest$clientToken": "<p>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.</p>",
        "UpdateQueueRequest$clientToken": "<p>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.</p>"
      }
    },
    "ScalingConfiguration": {
      "base": "<p>Specifies the boundaries of the compute node group auto scaling.</p>",
      "refs": {
        "ComputeNodeGroup$scalingConfiguration": null
      }
    },
    "ScalingConfigurationMaxInstanceCountInteger": {
      "base": null,
      "refs": {
        "ScalingConfiguration$maxInstanceCount": "<p>The upper bound of the number of instances allowed in the compute fleet.</p>"
      }
    },
    "ScalingConfigurationMinInstanceCountInteger": {
      "base": null,
      "refs": {
        "ScalingConfiguration$minInstanceCount": "<p>The lower bound of the number of instances allowed in the compute fleet.</p>"
      }
    },
    "ScalingConfigurationRequest": {
      "base": "<p>Specifies the boundaries of the compute node group auto scaling.</p>",
      "refs": {
        "CreateComputeNodeGroupRequest$scalingConfiguration": "<p>Specifies the boundaries of the compute node group auto scaling.</p>",
        "UpdateComputeNodeGroupRequest$scalingConfiguration": "<p>Specifies the boundaries of the compute node group auto scaling.</p>"
      }
    },
    "ScalingConfigurationRequestMaxInstanceCountInteger": {
      "base": null,
      "refs": {
        "ScalingConfigurationRequest$maxInstanceCount": "<p>The upper bound of the number of instances allowed in the compute fleet.</p>"
      }
    },
    "ScalingConfigurationRequestMinInstanceCountInteger": {
      "base": null,
      "refs": {
        "ScalingConfigurationRequest$minInstanceCount": "<p>The lower bound of the number of instances allowed in the compute fleet.</p>"
      }
    },
    "Scheduler": {
      "base": "<p>The cluster management and job scheduling software associated with the cluster.</p>",
      "refs": {
        "Cluster$scheduler": null
      }
    },
    "SchedulerRequest": {
      "base": "<p>The cluster management and job scheduling software associated with the cluster.</p>",
      "refs": {
        "CreateClusterRequest$scheduler": "<p>The cluster management and job scheduling software associated with the cluster.</p>"
      }
    },
    "SchedulerType": {
      "base": null,
      "refs": {
        "Scheduler$type": "<p>The software PCS uses to manage cluster scaling and job scheduling.</p>",
        "SchedulerRequest$type": "<p>The software PCS uses to manage cluster scaling and job scheduling.</p>"
      }
    },
    "ScriptCachingPolicy": {
      "base": "<p>The caching policy for a node lifecycle script. Valid values:</p> <ul> <li> <p> <code>CACHE_ONCE</code> – Downloads the script once and reuses it on subsequent boots.</p> </li> <li> <p> <code>REFRESH_ON_REBOOT</code> – Downloads the script on every boot.</p> </li> </ul>",
      "refs": {
        "NodeLifecycleActions$scriptCachingPolicy": "<p>The caching policy for node lifecycle scripts. The default value is <code>CACHE_ONCE</code>. Valid values:</p> <ul> <li> <p> <code>CACHE_ONCE</code> – Downloads each script once and reuses it on subsequent boots.</p> </li> <li> <p> <code>REFRESH_ON_REBOOT</code> – Downloads each script on every boot.</p> </li> </ul>",
        "NodeLifecycleActionsRequest$scriptCachingPolicy": "<p>The caching policy for node lifecycle scripts. The default value is <code>CACHE_ONCE</code>. Valid values:</p> <ul> <li> <p> <code>CACHE_ONCE</code> – Downloads each script once and reuses it on subsequent boots.</p> </li> <li> <p> <code>REFRESH_ON_REBOOT</code> – Downloads each script on every boot.</p> </li> </ul>",
        "UpdateNodeLifecycleActionsRequest$scriptCachingPolicy": "<p>The caching policy for node lifecycle scripts. The default value is <code>CACHE_ONCE</code>. Valid values:</p> <ul> <li> <p> <code>CACHE_ONCE</code> – Downloads each script once and reuses it on subsequent boots.</p> </li> <li> <p> <code>REFRESH_ON_REBOOT</code> – Downloads each script on every boot.</p> </li> </ul>"
      }
    },
    "ScriptSource": {
      "base": "<p>The source location and integrity information for a node lifecycle script.</p>",
      "refs": {
        "NodeLifecycleScript$scriptSource": "<p>The source location and integrity information for the script.</p>"
      }
    },
    "ScriptSourceChecksumString": {
      "base": null,
      "refs": {
        "ScriptSource$checksum": "<p>The SHA-256 checksum of the script content, as a 64-character hexadecimal string. This value is optional. When specified, PCS uses this value to verify the integrity of the downloaded script.</p>"
      }
    },
    "ScriptSourceS3VersionIdString": {
      "base": null,
      "refs": {
        "ScriptSource$s3VersionId": "<p>The Amazon S3 version ID of the script. Use this value to pin the script to a specific version in a versioned Amazon S3 bucket. This value is only valid when <code>scriptLocation</code> is an Amazon S3 URI.</p>"
      }
    },
    "ScriptSourceScriptLocationString": {
      "base": null,
      "refs": {
        "ScriptSource$scriptLocation": "<p>The location of the script. Specify either an Amazon S3 URI in the format <code>s3://bucket-name/key</code> or an HTTPS URL.</p>"
      }
    },
    "SecurityGroupId": {
      "base": null,
      "refs": {
        "SecurityGroupIdList$member": null,
        "SecurityGroupIdListOrEmpty$member": null
      }
    },
    "SecurityGroupIdList": {
      "base": null,
      "refs": {
        "ComputeNodeGroup$securityGroupIds": "<p>The IDs of the EC2 security groups configured directly on the compute node group. PCS uses these security groups instead of the security groups in the custom launch template. This value isn't present if security groups aren't configured directly on the compute node group. In that case, PCS uses the security groups in the custom launch template.</p>",
        "CreateComputeNodeGroupRequest$securityGroupIds": "<p>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 <code>launchTemplateMode</code> is <code>MANAGED</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/working-with_cng_instance-settings.html\">Configuring instance settings for compute node groups in PCS</a> in the <i>PCS User Guide</i>.</p>",
        "Networking$securityGroupIds": "<p>The list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets.</p> <p>The following rules are required:</p> <ul> <li> <p>Inbound rule 1</p> <ul> <li> <p>Protocol: All</p> </li> <li> <p>Ports: All</p> </li> <li> <p>Source: Self</p> </li> </ul> </li> <li> <p>Outbound rule 1</p> <ul> <li> <p>Protocol: All</p> </li> <li> <p>Ports: All</p> </li> <li> <p>Destination: 0.0.0.0/0 (IPv4) or ::/0 (IPv6)</p> </li> </ul> </li> <li> <p>Outbound rule 2</p> <ul> <li> <p>Protocol: All</p> </li> <li> <p>Ports: All</p> </li> <li> <p>Destination: Self</p> </li> </ul> </li> </ul>",
        "NetworkingRequest$securityGroupIds": "<p>A list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets.</p>"
      }
    },
    "SecurityGroupIdListOrEmpty": {
      "base": null,
      "refs": {
        "UpdateComputeNodeGroupRequest$securityGroupIds": "<p>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 (<code>[]</code>) 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.</p>"
      }
    },
    "ServiceQuotaExceededException": {
      "base": "<p>You exceeded your service quota. Service quotas, also referred to as limits, are the maximum number of service resources or operations for your Amazon Web Services account. To learn how to increase your service quota, see <a href=\"https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html\">Requesting a quota increase</a> in the <i>Service Quotas User Guide</i> </p> <p> <u>Examples</u> </p> <ul> <li> <p>The max number of clusters or queues has been reached for the account.</p> </li> <li> <p>The max number of compute node groups has been reached for the associated cluster.</p> </li> <li> <p>The total of <code>maxInstances</code> across all compute node groups has been reached for associated cluster.</p> </li> </ul>",
      "refs": {}
    },
    "SharedSecret": {
      "base": null,
      "refs": {
        "RegisterComputeNodeGroupInstanceResponse$sharedSecret": "<p>For the Slurm scheduler, this is the shared Munge key the scheduler uses to authenticate compute node group instances.</p>"
      }
    },
    "Size": {
      "base": null,
      "refs": {
        "Cluster$size": "<p>The size of the cluster.</p> <ul> <li> <p> <code>SMALL</code>: 32 compute nodes and 256 jobs</p> </li> <li> <p> <code>MEDIUM</code>: 512 compute nodes and 8192 jobs</p> </li> <li> <p> <code>LARGE</code>: 2048 compute nodes and 16,384 jobs</p> </li> </ul>",
        "CreateClusterRequest$size": "<p>A value that determines the maximum number of compute nodes in the cluster and the maximum number of jobs (active and queued).</p> <ul> <li> <p> <code>SMALL</code>: 32 compute nodes and 256 jobs</p> </li> <li> <p> <code>MEDIUM</code>: 512 compute nodes and 8192 jobs</p> </li> <li> <p> <code>LARGE</code>: 2048 compute nodes and 16,384 jobs</p> </li> </ul>"
      }
    },
    "SlurmAuthKey": {
      "base": "<p>The shared Slurm key for authentication, also known as the <b>cluster secret</b>.</p>",
      "refs": {
        "ClusterSlurmConfiguration$authKey": "<p>The shared Slurm key for authentication, also known as the <b>cluster secret</b>.</p>"
      }
    },
    "SlurmCustomSetting": {
      "base": "<p>Additional settings that directly map to Slurm settings.</p> <important> <p>PCS supports a subset of Slurm settings. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-custom-settings.html\">Configuring custom Slurm settings in PCS</a> in the <i>PCS User Guide</i>.</p> </important>",
      "refs": {
        "SlurmCustomSettings$member": null
      }
    },
    "SlurmCustomSettings": {
      "base": null,
      "refs": {
        "ClusterSlurmConfiguration$slurmCustomSettings": "<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>",
        "ClusterSlurmConfigurationRequest$slurmCustomSettings": "<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>",
        "ComputeNodeGroupSlurmConfiguration$slurmCustomSettings": "<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>",
        "ComputeNodeGroupSlurmConfigurationRequest$slurmCustomSettings": "<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>",
        "QueueSlurmConfiguration$slurmCustomSettings": "<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>",
        "QueueSlurmConfigurationRequest$slurmCustomSettings": "<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>",
        "UpdateClusterSlurmConfigurationRequest$slurmCustomSettings": "<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>",
        "UpdateComputeNodeGroupSlurmConfigurationRequest$slurmCustomSettings": "<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>",
        "UpdateQueueSlurmConfigurationRequest$slurmCustomSettings": "<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>"
      }
    },
    "SlurmRest": {
      "base": "<p>The Slurm REST API configuration includes settings for enabling and configuring the Slurm REST API. It's a property of the <b>ClusterSlurmConfiguration</b> object.</p>",
      "refs": {
        "ClusterSlurmConfiguration$slurmRest": "<p>The Slurm REST API configuration for the cluster.</p>"
      }
    },
    "SlurmRestMode": {
      "base": null,
      "refs": {
        "SlurmRest$mode": "<p>The default value for <code>mode</code> is <code>NONE</code>. A value of <code>STANDARD</code> means the Slurm REST API is enabled.</p>",
        "SlurmRestRequest$mode": "<p>The default value for <code>mode</code> is <code>NONE</code>. A value of <code>STANDARD</code> means the Slurm REST API is enabled.</p>",
        "UpdateSlurmRestRequest$mode": "<p>The default value for <code>mode</code> is <code>NONE</code>. A value of <code>STANDARD</code> means the Slurm REST API is enabled.</p>"
      }
    },
    "SlurmRestRequest": {
      "base": "<p>The Slurm REST API configuration includes settings for enabling and configuring the Slurm REST API. It's a property of the <b>ClusterSlurmConfiguration</b> object.</p>",
      "refs": {
        "ClusterSlurmConfigurationRequest$slurmRest": "<p>The Slurm REST API configuration for the cluster.</p>"
      }
    },
    "SlurmdbdCustomSetting": {
      "base": "<p>Additional settings that directly map to SlurmDBD settings.</p> <important> <p>PCS supports a subset of SlurmDBD settings. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurmdbd-custom-settings.html\">Configuring custom SlurmDBD settings in PCS</a> in the <i>PCS User Guide</i>.</p> </important>",
      "refs": {
        "SlurmdbdCustomSettings$member": null
      }
    },
    "SlurmdbdCustomSettings": {
      "base": null,
      "refs": {
        "ClusterSlurmConfiguration$slurmdbdCustomSettings": "<p>Additional SlurmDBD-specific configuration that directly maps to SlurmDBD settings.</p>",
        "ClusterSlurmConfigurationRequest$slurmdbdCustomSettings": "<p>Additional SlurmDBD-specific configuration that directly maps to SlurmDBD settings.</p>",
        "UpdateClusterSlurmConfigurationRequest$slurmdbdCustomSettings": "<p>Additional SlurmDBD-specific configuration that directly maps to SlurmDBD settings.</p>"
      }
    },
    "SpotAllocationStrategy": {
      "base": null,
      "refs": {
        "SpotOptions$allocationStrategy": "<p>The Amazon EC2 allocation strategy PCS uses to provision EC2 instances. PCS supports <b>lowest price</b>, <b>capacity optimized</b>, and <b>price capacity optimized</b>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-allocation-strategy.html\">Use allocation strategies to determine how EC2 Fleet or Spot Fleet fulfills Spot and On-Demand capacity</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. If you don't provide this option, it defaults to <b>price capacity optimized</b>.</p>"
      }
    },
    "SpotOptions": {
      "base": "<p>Additional configuration when you specify <code>SPOT</code> as the <code>purchaseOption</code> for the <code>CreateComputeNodeGroup</code> API action.</p>",
      "refs": {
        "ComputeNodeGroup$spotOptions": null,
        "CreateComputeNodeGroupRequest$spotOptions": null,
        "UpdateComputeNodeGroupRequest$spotOptions": null
      }
    },
    "String": {
      "base": null,
      "refs": {
        "AccessDeniedException$message": null,
        "CgroupCustomSetting$parameterName": "<p>PCS supports custom Cgroup settings for clusters. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/cgroup-custom-settings.html\">Configuring custom Cgroup settings in PCS</a> in the <i>PCS User Guide</i>.</p>",
        "CgroupCustomSetting$parameterValue": "<p>The values for the configured Cgroup settings.</p>",
        "Cluster$name": "<p>The name that identifies the cluster.</p>",
        "Cluster$id": "<p>The generated unique ID of the cluster.</p>",
        "Cluster$arn": "<p>The unique Amazon Resource Name (ARN) of the cluster.</p>",
        "ClusterSummary$name": "<p>The name that identifies the cluster.</p>",
        "ClusterSummary$id": "<p>The generated unique ID of the cluster.</p>",
        "ClusterSummary$arn": "<p>The unique Amazon Resource Name (ARN) of the cluster.</p>",
        "ComputeNodeGroup$id": "<p>The generated unique ID of the compute node group.</p>",
        "ComputeNodeGroup$arn": "<p>The unique Amazon Resource Name (ARN) of the compute node group.</p>",
        "ComputeNodeGroup$clusterId": "<p>The ID of the cluster of the compute node group.</p>",
        "ComputeNodeGroupConfiguration$computeNodeGroupId": "<p>The compute node group ID for the compute node group configuration.</p>",
        "ComputeNodeGroupSummary$id": "<p>The generated unique ID of the compute node group.</p>",
        "ComputeNodeGroupSummary$arn": "<p>The unique Amazon Resource Name (ARN) of the compute node group.</p>",
        "ComputeNodeGroupSummary$clusterId": "<p>The ID of the cluster of the compute node group.</p>",
        "ConflictException$message": null,
        "ConflictException$resourceId": "<p> The unique identifier of the resource that caused the conflict exception. </p>",
        "ConflictException$resourceType": "<p> The type or category of the resource that caused the conflict exception.\" </p>",
        "CustomLaunchTemplate$id": "<p>The ID of the EC2 launch template to use to provision instances. Specify this value together with <code>version</code>.</p> <p> Example: <code>lt-xxxx</code> </p>",
        "CustomLaunchTemplate$version": "<p>The version of the EC2 launch template to use to provision instances. Specify this value together with <code>id</code>.</p>",
        "Endpoint$privateIpAddress": "<p>For clusters that use IPv4, this is the endpoint's private IP address.</p> <p>Example: <code>10.1.2.3</code> </p> <p>For clusters configured to use IPv6, this is an empty string.</p>",
        "Endpoint$publicIpAddress": "<p>The endpoint's public IP address.</p> <p>Example: <code>192.0.2.1</code> </p>",
        "Endpoint$ipv6Address": "<p>The endpoint's IPv6 address.</p> <p>Example: <code>2001:db8::1</code> </p>",
        "Endpoint$port": "<p>The endpoint's connection port number.</p> <p> Example: <code>1234</code> </p>",
        "ErrorInfo$code": "<p>The short-form error code.</p>",
        "ErrorInfo$message": "<p>The detailed error information.</p>",
        "GresCustomSettingMap$key": null,
        "GresCustomSettingMap$value": null,
        "InstanceConfig$instanceType": "<p>The EC2 instance type that PCS can provision in the compute node group.</p> <p> Example: <code>t2.xlarge</code> </p>",
        "InternalServerException$message": null,
        "JwtKey$secretArn": "<p>The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret containing the JWT key.</p>",
        "JwtKey$secretVersion": "<p>The version of the Amazon Web Services Secrets Manager secret containing the JWT key.</p>",
        "ListClustersRequest$nextToken": "<p>The value of <code>nextToken</code> is a unique pagination token for each page of results returned. If <code>nextToken</code> 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 <code>HTTP 400 InvalidToken</code> error.</p>",
        "ListClustersResponse$nextToken": "<p>The value of <code>nextToken</code> is a unique pagination token for each page of results returned. If <code>nextToken</code> 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 <code>HTTP 400 InvalidToken</code> error.</p>",
        "ListComputeNodeGroupsRequest$nextToken": "<p>The value of <code>nextToken</code> is a unique pagination token for each page of results returned. If <code>nextToken</code> 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 <code>HTTP 400 InvalidToken</code> error.</p>",
        "ListComputeNodeGroupsResponse$nextToken": "<p>The value of <code>nextToken</code> is a unique pagination token for each page of results returned. If <code>nextToken</code> 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 <code>HTTP 400 InvalidToken</code> error.</p>",
        "ListQueuesRequest$nextToken": "<p>The value of <code>nextToken</code> is a unique pagination token for each page of results returned. If <code>nextToken</code> 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 <code>HTTP 400 InvalidToken</code> error.</p>",
        "ListQueuesResponse$nextToken": "<p>The value of <code>nextToken</code> is a unique pagination token for each page of results returned. If <code>nextToken</code> 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 <code>HTTP 400 InvalidToken</code> error.</p>",
        "Queue$id": "<p>The generated unique ID of the queue.</p>",
        "Queue$arn": "<p>The unique Amazon Resource Name (ARN) of the queue.</p>",
        "Queue$clusterId": "<p>The ID of the cluster of the queue.</p>",
        "QueueSummary$id": "<p>The generated unique ID of the queue.</p>",
        "QueueSummary$arn": "<p>The unique Amazon Resource Name (ARN) of the queue.</p>",
        "QueueSummary$clusterId": "<p>The ID of the cluster of the queue.</p>",
        "RegisterComputeNodeGroupInstanceResponse$nodeID": "<p>The scheduler node ID for this instance.</p>",
        "RegisterComputeNodeGroupInstanceResponse$clusterName": "<p>The name of the cluster that the compute node registered into.</p>",
        "RegisterComputeNodeGroupInstanceResponse$computeNodeGroupId": "<p>The ID of the compute node group that the compute node registered into.</p>",
        "RegisterComputeNodeGroupInstanceResponse$computeNodeGroupName": "<p>The name of the compute node group that the compute node registered into.</p>",
        "RegisterComputeNodeGroupInstanceResponse$schedulerVersion": "<p>The scheduler version that the cluster is running. A compute node uses this value to run the matching scheduler version.</p>",
        "ResourceNotFoundException$message": null,
        "ResourceNotFoundException$resourceId": "<p> The unique identifier of the resource that was not found. </p>",
        "ResourceNotFoundException$resourceType": "<p> The type or category of the resource that was not found. </p>",
        "Scheduler$version": "<p>The version of the specified scheduling software that PCS uses to manage cluster scaling and job scheduling. You can update this version using the <code>UpdateCluster</code> API action. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/working-with_clusters_version_update.html\">Updating the scheduler version on a cluster</a> and <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-versions.html\">Slurm versions in PCS</a> in the <i>PCS User Guide</i>.</p> <p>Valid Values: <code>23.11 | 24.05 | 24.11 | 25.05 | 25.11 | 26.05</code> </p>",
        "SchedulerRequest$version": "<p>The version of the specified scheduling software that PCS uses to manage cluster scaling and job scheduling. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-versions.html\">Slurm versions in PCS</a> in the <i>PCS User Guide</i>.</p> <p>Valid Values: <code>24.11 | 25.05 | 25.11 | 26.05</code> </p>",
        "ServiceQuotaExceededException$message": null,
        "ServiceQuotaExceededException$serviceCode": "<p> The service code associated with the quota that was exceeded. </p>",
        "ServiceQuotaExceededException$resourceId": "<p> The unique identifier of the resource that caused the quota to be exceeded. </p>",
        "ServiceQuotaExceededException$resourceType": "<p> The type or category of the resource that caused the quota to be exceeded. </p>",
        "ServiceQuotaExceededException$quotaCode": "<p> The <b>quota code</b> of the service quota that was exceeded. </p>",
        "SlurmAuthKey$secretArn": "<p>The Amazon Resource Name (ARN) of the shared Slurm key.</p>",
        "SlurmAuthKey$secretVersion": "<p>The version of the shared Slurm key.</p>",
        "SlurmCustomSetting$parameterName": "<p>PCS supports custom Slurm settings for clusters, compute node groups, and queues. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-custom-settings.html\">Configuring custom Slurm settings in PCS</a> in the <i>PCS User Guide</i>.</p>",
        "SlurmCustomSetting$parameterValue": "<p>The values for the configured Slurm settings.</p>",
        "SlurmdbdCustomSetting$parameterName": "<p>PCS supports custom SlurmDBD settings for clusters. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurmdbd-custom-settings.html\">Configuring custom SlurmDBD settings in PCS</a> in the <i>PCS User Guide</i>.</p>",
        "SlurmdbdCustomSetting$parameterValue": "<p>The values for the configured SlurmDBD settings.</p>",
        "StringList$member": null,
        "ThrottlingException$message": null,
        "UpdateSchedulerRequest$version": "<p>The scheduler version to update the cluster to. You can only update to a newer version. For more information about supported versions and update paths, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/working-with_clusters_version_update.html\">Updating the scheduler version on a cluster</a> in the <i>PCS User Guide</i>.</p> <p>Valid Values: <code>24.05 | 24.11 | 25.05 | 25.11 | 26.05</code> </p>",
        "ValidationException$message": null,
        "ValidationExceptionField$name": "<p>The name of the exception.</p>",
        "ValidationExceptionField$message": "<p>The message body of the exception.</p>"
      }
    },
    "StringList": {
      "base": null,
      "refs": {
        "CreateComputeNodeGroupRequest$subnetIds": "<p>The list of subnet IDs where the compute node group launches instances. Subnets must be in the same VPC as the cluster.</p>",
        "UpdateComputeNodeGroupRequest$subnetIds": "<p>The list of subnet IDs where the compute node group provisions instances. The subnets must be in the same VPC as the cluster.</p>"
      }
    },
    "SubnetId": {
      "base": null,
      "refs": {
        "SubnetIdList$member": null
      }
    },
    "SubnetIdList": {
      "base": null,
      "refs": {
        "ComputeNodeGroup$subnetIds": "<p>The list of subnet IDs where instances are provisioned by the compute node group. The subnets must be in the same VPC as the cluster.</p>",
        "Networking$subnetIds": "<p>The ID of the subnet where PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and PCS resources. The subnet must have an available IP address, cannot reside in Outposts, Wavelength, or an Amazon Web Services Local Zone.</p> <p> Example: <code>subnet-abcd1234</code> </p>",
        "NetworkingRequest$subnetIds": "<p>The list of subnet IDs where PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and PCS resources. Subnet IDs have the form <code>subnet-0123456789abcdef0</code>.</p> <p>Subnets can't be in Outposts, Wavelength or an Amazon Web Services Local Zone.</p> <note> <p>PCS currently supports only 1 subnet in this list.</p> </note>"
      }
    },
    "SyntheticTimestamp_date_time": {
      "base": null,
      "refs": {
        "Cluster$createdAt": "<p>The date and time the resource was created.</p>",
        "Cluster$modifiedAt": "<p>The date and time the resource was modified.</p>",
        "ClusterSummary$createdAt": "<p>The date and time the resource was created.</p>",
        "ClusterSummary$modifiedAt": "<p>The date and time the resource was modified.</p>",
        "ComputeNodeGroup$createdAt": "<p>The date and time the resource was created.</p>",
        "ComputeNodeGroup$modifiedAt": "<p>The date and time the resource was modified.</p>",
        "ComputeNodeGroupSummary$createdAt": "<p>The date and time the resource was created.</p>",
        "ComputeNodeGroupSummary$modifiedAt": "<p>The date and time the resource was modified.</p>",
        "Queue$createdAt": "<p>The date and time the resource was created.</p>",
        "Queue$modifiedAt": "<p>The date and time the resource was modified.</p>",
        "QueueSummary$createdAt": "<p>The date and time the resource was created.</p>",
        "QueueSummary$modifiedAt": "<p>The date and time the resource was modified.</p>"
      }
    },
    "TagKey": {
      "base": null,
      "refs": {
        "RequestTagMap$key": null,
        "ResponseTagMap$key": null,
        "TagKeys$member": null
      }
    },
    "TagKeys": {
      "base": null,
      "refs": {
        "UntagResourceRequest$tagKeys": "<p>1 or more tag keys to remove from the resource. Specify only tag keys and not tag values.</p>"
      }
    },
    "TagResourceRequest": {
      "base": null,
      "refs": {}
    },
    "TagResourceResponse": {
      "base": null,
      "refs": {}
    },
    "TagValue": {
      "base": null,
      "refs": {
        "RequestTagMap$value": null,
        "ResponseTagMap$value": null
      }
    },
    "ThrottlingException": {
      "base": "<p>Your request exceeded a request rate quota. Check the resource's request rate quota and try again.</p>",
      "refs": {}
    },
    "UntagResourceRequest": {
      "base": null,
      "refs": {}
    },
    "UntagResourceResponse": {
      "base": null,
      "refs": {}
    },
    "UpdateAccountingRequest": {
      "base": "<p>The accounting configuration includes configurable settings for Slurm accounting.</p>",
      "refs": {
        "UpdateClusterSlurmConfigurationRequest$accounting": "<p>The accounting configuration includes configurable settings for Slurm accounting.</p>"
      }
    },
    "UpdateAccountingRequestDefaultPurgeTimeInDaysInteger": {
      "base": null,
      "refs": {
        "UpdateAccountingRequest$defaultPurgeTimeInDays": "<p>The default value for all purge settings for <code>slurmdbd.conf</code>. For more information, see the <a href=\"https://slurm.schedmd.com/slurmdbd.conf.html\">slurmdbd.conf documentation at SchedMD</a>.</p> <p>The default value for <code>defaultPurgeTimeInDays</code> is <code>-1</code>.</p> <p>A value of <code>-1</code> means there is no purge time and records persist as long as the cluster exists.</p> <important> <p> <code>0</code> isn't a valid value.</p> </important>"
      }
    },
    "UpdateClusterRequest": {
      "base": null,
      "refs": {}
    },
    "UpdateClusterResponse": {
      "base": null,
      "refs": {}
    },
    "UpdateClusterSlurmConfigurationRequest": {
      "base": "<p>Additional options related to the Slurm scheduler.</p>",
      "refs": {
        "UpdateClusterRequest$slurmConfiguration": "<p>Additional options related to the Slurm scheduler.</p>"
      }
    },
    "UpdateClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger": {
      "base": null,
      "refs": {
        "UpdateClusterSlurmConfigurationRequest$scaleDownIdleTimeInSeconds": "<p>The time (in seconds) before an idle node is scaled down.</p> <p>Default: <code>600</code> </p>"
      }
    },
    "UpdateComputeNodeGroupRequest": {
      "base": null,
      "refs": {}
    },
    "UpdateComputeNodeGroupResponse": {
      "base": null,
      "refs": {}
    },
    "UpdateComputeNodeGroupSlurmConfigurationRequest": {
      "base": "<p>Additional options related to the Slurm scheduler.</p>",
      "refs": {
        "UpdateComputeNodeGroupRequest$slurmConfiguration": "<p>Additional options related to the Slurm scheduler.</p>"
      }
    },
    "UpdateComputeNodeGroupSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger": {
      "base": null,
      "refs": {
        "UpdateComputeNodeGroupSlurmConfigurationRequest$scaleDownIdleTimeInSeconds": "<p>The time (in seconds) before an idle node is scaled down. If not specified, the cluster-level setting applies. This overrides the cluster-level <code>scaleDownIdleTimeInSeconds</code> setting. A value of <code>-1</code> removes the override and applies the cluster-level setting to this compute node group. Requires Slurm version 25.11 or later.</p>"
      }
    },
    "UpdateNodeLifecycleActionsRequest": {
      "base": "<p>The lifecycle actions to configure on a compute node group when you update it. Lifecycle actions define scripts that PCS runs on compute nodes at specific stages of their lifecycle.</p>",
      "refs": {
        "UpdateComputeNodeGroupRequest$nodeLifecycleActions": "<p>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.</p>"
      }
    },
    "UpdateQueueRequest": {
      "base": null,
      "refs": {}
    },
    "UpdateQueueResponse": {
      "base": null,
      "refs": {}
    },
    "UpdateQueueSlurmConfigurationRequest": {
      "base": "<p>Additional options related to the Slurm scheduler.</p>",
      "refs": {
        "UpdateQueueRequest$slurmConfiguration": "<p>Additional options related to the Slurm scheduler.</p>"
      }
    },
    "UpdateSchedulerRequest": {
      "base": "<p>The scheduler configuration for updating a cluster. Use this to specify the scheduler version to update to.</p>",
      "refs": {
        "UpdateClusterRequest$scheduler": "<p>The scheduler configuration to update for the cluster. Use this to update the scheduler version. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/working-with_clusters_version_update.html\">Updating the scheduler version on a cluster</a> in the <i>PCS User Guide</i>.</p>"
      }
    },
    "UpdateSlurmRestRequest": {
      "base": "<p>The Slurm REST API configuration includes settings for enabling and configuring the Slurm REST API.</p>",
      "refs": {
        "UpdateClusterSlurmConfigurationRequest$slurmRest": "<p>The Slurm REST API configuration for the cluster.</p>"
      }
    },
    "ValidationException": {
      "base": "<p>The request isn't valid.</p> <p> <u>Examples</u> </p> <ul> <li> <p>Your request contains malformed JSON or unsupported characters.</p> </li> <li> <p>The scheduler version isn't supported.</p> </li> <li> <p>There are networking related errors, such as network validation failure.</p> </li> <li> <p>AMI type is <code>CUSTOM</code> and the launch template doesn't define the AMI ID, or the AMI type is AL2 and the launch template defines the AMI.</p> </li> </ul>",
      "refs": {}
    },
    "ValidationExceptionField": {
      "base": "<p>Stores information about a field in a request that caused an exception.</p>",
      "refs": {
        "ValidationExceptionFieldList$member": null
      }
    },
    "ValidationExceptionFieldList": {
      "base": null,
      "refs": {
        "ValidationException$fieldList": "<p> A list of fields or properties that failed validation. </p>"
      }
    },
    "ValidationExceptionReason": {
      "base": null,
      "refs": {
        "ValidationException$reason": "<p> The specific reason or cause of the validation error. </p>"
      }
    }
  }
}
