Skip to content

Commit 6b7a1ff

Browse files
author
AWS
committed
AWS Parallel Computing Service Update: Added the UpdateCluster API action to modify cluster configurations, and Slurm custom settings for queues.
1 parent 336481d commit 6b7a1ff

File tree

2 files changed

+160
-18
lines changed

2 files changed

+160
-18
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "AWS Parallel Computing Service",
4+
"contributor": "",
5+
"description": "Added the UpdateCluster API action to modify cluster configurations, and Slurm custom settings for queues."
6+
}

services/pcs/src/main/resources/codegen-resources/service-2.json

Lines changed: 154 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,8 @@
147147
{"shape":"InternalServerException"},
148148
{"shape":"AccessDeniedException"}
149149
],
150-
"documentation":"<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>"
150+
"documentation":"<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>",
151+
"readonly":true
151152
},
152153
"GetComputeNodeGroup":{
153154
"name":"GetComputeNodeGroup",
@@ -165,7 +166,8 @@
165166
{"shape":"InternalServerException"},
166167
{"shape":"AccessDeniedException"}
167168
],
168-
"documentation":"<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>"
169+
"documentation":"<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>",
170+
"readonly":true
169171
},
170172
"GetQueue":{
171173
"name":"GetQueue",
@@ -183,7 +185,8 @@
183185
{"shape":"InternalServerException"},
184186
{"shape":"AccessDeniedException"}
185187
],
186-
"documentation":"<p>Returns detailed information about a queue. The information includes the compute node groups that the queue uses to schedule jobs.</p>"
188+
"documentation":"<p>Returns detailed information about a queue. The information includes the compute node groups that the queue uses to schedule jobs.</p>",
189+
"readonly":true
187190
},
188191
"ListClusters":{
189192
"name":"ListClusters",
@@ -201,7 +204,8 @@
201204
{"shape":"InternalServerException"},
202205
{"shape":"AccessDeniedException"}
203206
],
204-
"documentation":"<p>Returns a list of running clusters in your account.</p>"
207+
"documentation":"<p>Returns a list of running clusters in your account.</p>",
208+
"readonly":true
205209
},
206210
"ListComputeNodeGroups":{
207211
"name":"ListComputeNodeGroups",
@@ -219,7 +223,8 @@
219223
{"shape":"InternalServerException"},
220224
{"shape":"AccessDeniedException"}
221225
],
222-
"documentation":"<p>Returns a list of all compute node groups associated with a cluster.</p>"
226+
"documentation":"<p>Returns a list of all compute node groups associated with a cluster.</p>",
227+
"readonly":true
223228
},
224229
"ListQueues":{
225230
"name":"ListQueues",
@@ -237,7 +242,8 @@
237242
{"shape":"InternalServerException"},
238243
{"shape":"AccessDeniedException"}
239244
],
240-
"documentation":"<p>Returns a list of all queues associated with a cluster.</p>"
245+
"documentation":"<p>Returns a list of all queues associated with a cluster.</p>",
246+
"readonly":true
241247
},
242248
"ListTagsForResource":{
243249
"name":"ListTagsForResource",
@@ -250,7 +256,8 @@
250256
"errors":[
251257
{"shape":"ResourceNotFoundException"}
252258
],
253-
"documentation":"<p>Returns a list of all tags on an PCS resource.</p>"
259+
"documentation":"<p>Returns a list of all tags on an PCS resource.</p>",
260+
"readonly":true
254261
},
255262
"RegisterComputeNodeGroupInstance":{
256263
"name":"RegisterComputeNodeGroupInstance",
@@ -293,6 +300,25 @@
293300
"documentation":"<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>",
294301
"idempotent":true
295302
},
303+
"UpdateCluster":{
304+
"name":"UpdateCluster",
305+
"http":{
306+
"method":"POST",
307+
"requestUri":"/"
308+
},
309+
"input":{"shape":"UpdateClusterRequest"},
310+
"output":{"shape":"UpdateClusterResponse"},
311+
"errors":[
312+
{"shape":"ThrottlingException"},
313+
{"shape":"ValidationException"},
314+
{"shape":"ConflictException"},
315+
{"shape":"ResourceNotFoundException"},
316+
{"shape":"InternalServerException"},
317+
{"shape":"AccessDeniedException"}
318+
],
319+
"documentation":"<p>Updates a cluster configuration. You can modify Slurm scheduler settings, accounting configuration, and security groups for an existing cluster. </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>",
320+
"idempotent":true
321+
},
296322
"UpdateComputeNodeGroup":{
297323
"name":"UpdateComputeNodeGroup",
298324
"http":{
@@ -348,13 +374,13 @@
348374
"type":"structure",
349375
"required":["mode"],
350376
"members":{
351-
"mode":{
352-
"shape":"AccountingMode",
353-
"documentation":"<p>The default value for <code>mode</code> is <code>STANDARD</code>. A value of <code>STANDARD</code> means Slurm accounting is enabled.</p>"
354-
},
355377
"defaultPurgeTimeInDays":{
356378
"shape":"AccountingDefaultPurgeTimeInDaysInteger",
357379
"documentation":"<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>"
380+
},
381+
"mode":{
382+
"shape":"AccountingMode",
383+
"documentation":"<p>The default value for <code>mode</code> is <code>STANDARD</code>. A value of <code>STANDARD</code> means Slurm accounting is enabled.</p>"
358384
}
359385
},
360386
"documentation":"<p>The accounting configuration includes configurable settings for Slurm accounting. It's a property of the <b>ClusterSlurmConfiguration</b> object.</p>"
@@ -376,13 +402,13 @@
376402
"type":"structure",
377403
"required":["mode"],
378404
"members":{
379-
"mode":{
380-
"shape":"AccountingMode",
381-
"documentation":"<p>The default value for <code>mode</code> is <code>STANDARD</code>. A value of <code>STANDARD</code> means Slurm accounting is enabled.</p>"
382-
},
383405
"defaultPurgeTimeInDays":{
384406
"shape":"AccountingRequestDefaultPurgeTimeInDaysInteger",
385407
"documentation":"<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>"
408+
},
409+
"mode":{
410+
"shape":"AccountingMode",
411+
"documentation":"<p>The default value for <code>mode</code> is <code>STANDARD</code>. A value of <code>STANDARD</code> means Slurm accounting is enabled.</p>"
386412
}
387413
},
388414
"documentation":"<p>The accounting configuration includes configurable settings for Slurm accounting. It's a property of the <b>ClusterSlurmConfiguration</b> object.</p>"
@@ -922,6 +948,10 @@
922948
"shape":"ComputeNodeGroupConfigurationList",
923949
"documentation":"<p>The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.</p>"
924950
},
951+
"slurmConfiguration":{
952+
"shape":"QueueSlurmConfigurationRequest",
953+
"documentation":"<p>Additional options related to the Slurm scheduler.</p>"
954+
},
925955
"clientToken":{
926956
"shape":"SBClientToken",
927957
"documentation":"<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 1 for you.</p>",
@@ -1094,7 +1124,7 @@
10941124
"members":{
10951125
"clusterIdentifier":{
10961126
"shape":"ClusterIdentifier",
1097-
"documentation":"<p>The name or ID of the cluster of the queue.</p>"
1127+
"documentation":"<p>The name or ID of the cluster.</p>"
10981128
}
10991129
}
11001130
},
@@ -1398,6 +1428,10 @@
13981428
"shape":"ComputeNodeGroupConfigurationList",
13991429
"documentation":"<p>The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.</p>"
14001430
},
1431+
"slurmConfiguration":{
1432+
"shape":"QueueSlurmConfiguration",
1433+
"documentation":"<p>Additional options related to the Slurm scheduler.</p>"
1434+
},
14011435
"errorInfo":{
14021436
"shape":"ErrorInfoList",
14031437
"documentation":"<p>The list of errors that occurred during queue provisioning.</p>"
@@ -1419,6 +1453,26 @@
14191453
"min":3,
14201454
"pattern":"(?!pcs_)^[A-Za-z][A-Za-z0-9-]+"
14211455
},
1456+
"QueueSlurmConfiguration":{
1457+
"type":"structure",
1458+
"members":{
1459+
"slurmCustomSettings":{
1460+
"shape":"SlurmCustomSettings",
1461+
"documentation":"<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>"
1462+
}
1463+
},
1464+
"documentation":"<p>Additional options related to the Slurm scheduler.</p>"
1465+
},
1466+
"QueueSlurmConfigurationRequest":{
1467+
"type":"structure",
1468+
"members":{
1469+
"slurmCustomSettings":{
1470+
"shape":"SlurmCustomSettings",
1471+
"documentation":"<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>"
1472+
}
1473+
},
1474+
"documentation":"<p>Additional options related to the Slurm scheduler.</p>"
1475+
},
14221476
"QueueStatus":{
14231477
"type":"string",
14241478
"enum":[
@@ -1724,14 +1778,14 @@
17241778
"members":{
17251779
"parameterName":{
17261780
"shape":"String",
1727-
"documentation":"<p>PCS supports configuration of the following Slurm parameters:</p> <ul> <li> <p>For <b>clusters</b> </p> <ul> <li> <p> <a href=\"https://slurm.schedmd.com/slurm.conf.html#OPT_Prolog_1\"> <code>Prolog</code> </a> </p> </li> <li> <p> <a href=\"https://slurm.schedmd.com/slurm.conf.html#OPT_Epilog_1\"> <code>Epilog</code> </a> </p> </li> <li> <p> <a href=\"https://slurm.schedmd.com/slurm.conf.html#OPT_SelectTypeParameters\"> <code>SelectTypeParameters</code> </a> </p> </li> <li> <p> <a href=\"https://slurm.schedmd.com/slurm.conf.html#OPT_AccountingStorageEnforce\"> <code>AccountingStorageEnforce</code> </a> </p> <important> <p>PCS supports a subset of the options for <code>AccountingStorageEnforce</code>. For more information, see <a href=\"https://docs.aws.amazon.com/pcs/latest/userguide/slurm-accounting.html\">Slurm accounting in PCS</a> in the <i>PCS User Guide</i>.</p> </important> </li> </ul> </li> <li> <p>For <b>compute node groups</b> </p> <ul> <li> <p> <a href=\"https://slurm.schedmd.com/slurm.conf.html#OPT_Weight\"> <code>Weight</code> </a> </p> </li> <li> <p> <a href=\"https://slurm.schedmd.com/slurm.conf.html#OPT_Weight\"> <code>RealMemory</code> </a> </p> </li> </ul> </li> </ul>"
1781+
"documentation":"<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>"
17281782
},
17291783
"parameterValue":{
17301784
"shape":"String",
17311785
"documentation":"<p>The values for the configured Slurm settings.</p>"
17321786
}
17331787
},
1734-
"documentation":"<p>Additional settings that directly map to Slurm settings.</p>"
1788+
"documentation":"<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>"
17351789
},
17361790
"SlurmCustomSettings":{
17371791
"type":"list",
@@ -1837,6 +1891,74 @@
18371891
}
18381892
}
18391893
},
1894+
"UpdateAccountingRequest":{
1895+
"type":"structure",
1896+
"members":{
1897+
"defaultPurgeTimeInDays":{
1898+
"shape":"UpdateAccountingRequestDefaultPurgeTimeInDaysInteger",
1899+
"documentation":"<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>"
1900+
},
1901+
"mode":{
1902+
"shape":"AccountingMode",
1903+
"documentation":"<p>The default value for <code>mode</code> is <code>STANDARD</code>. A value of <code>STANDARD</code> means Slurm accounting is enabled.</p>"
1904+
}
1905+
},
1906+
"documentation":"<p>The accounting configuration includes configurable settings for Slurm accounting.</p>"
1907+
},
1908+
"UpdateAccountingRequestDefaultPurgeTimeInDaysInteger":{
1909+
"type":"integer",
1910+
"box":true,
1911+
"max":10000,
1912+
"min":-1
1913+
},
1914+
"UpdateClusterRequest":{
1915+
"type":"structure",
1916+
"required":["clusterIdentifier"],
1917+
"members":{
1918+
"clusterIdentifier":{
1919+
"shape":"ClusterIdentifier",
1920+
"documentation":"<p>The name or ID of the cluster to update.</p>"
1921+
},
1922+
"clientToken":{
1923+
"shape":"SBClientToken",
1924+
"documentation":"<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 1 for you.</p>",
1925+
"idempotencyToken":true
1926+
},
1927+
"slurmConfiguration":{
1928+
"shape":"UpdateClusterSlurmConfigurationRequest",
1929+
"documentation":"<p>Additional options related to the Slurm scheduler.</p>"
1930+
}
1931+
}
1932+
},
1933+
"UpdateClusterResponse":{
1934+
"type":"structure",
1935+
"members":{
1936+
"cluster":{"shape":"Cluster"}
1937+
}
1938+
},
1939+
"UpdateClusterSlurmConfigurationRequest":{
1940+
"type":"structure",
1941+
"members":{
1942+
"scaleDownIdleTimeInSeconds":{
1943+
"shape":"UpdateClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger",
1944+
"documentation":"<p>The time (in seconds) before an idle node is scaled down.</p> <p>Default: <code>600</code> </p>"
1945+
},
1946+
"slurmCustomSettings":{
1947+
"shape":"SlurmCustomSettings",
1948+
"documentation":"<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>"
1949+
},
1950+
"accounting":{
1951+
"shape":"UpdateAccountingRequest",
1952+
"documentation":"<p>The accounting configuration includes configurable settings for Slurm accounting.</p>"
1953+
}
1954+
},
1955+
"documentation":"<p>Additional options related to the Slurm scheduler.</p>"
1956+
},
1957+
"UpdateClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger":{
1958+
"type":"integer",
1959+
"box":true,
1960+
"min":1
1961+
},
18401962
"UpdateComputeNodeGroupRequest":{
18411963
"type":"structure",
18421964
"required":[
@@ -1920,6 +2042,10 @@
19202042
"shape":"ComputeNodeGroupConfigurationList",
19212043
"documentation":"<p>The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.</p>"
19222044
},
2045+
"slurmConfiguration":{
2046+
"shape":"UpdateQueueSlurmConfigurationRequest",
2047+
"documentation":"<p>Additional options related to the Slurm scheduler.</p>"
2048+
},
19232049
"clientToken":{
19242050
"shape":"SBClientToken",
19252051
"documentation":"<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 1 for you.</p>",
@@ -1933,6 +2059,16 @@
19332059
"queue":{"shape":"Queue"}
19342060
}
19352061
},
2062+
"UpdateQueueSlurmConfigurationRequest":{
2063+
"type":"structure",
2064+
"members":{
2065+
"slurmCustomSettings":{
2066+
"shape":"SlurmCustomSettings",
2067+
"documentation":"<p>Additional Slurm-specific configuration that directly maps to Slurm settings.</p>"
2068+
}
2069+
},
2070+
"documentation":"<p>Additional options related to the Slurm scheduler.</p>"
2071+
},
19362072
"ValidationException":{
19372073
"type":"structure",
19382074
"required":[

0 commit comments

Comments
 (0)