@aws-sdk/client-sagemaker 3.267.0 → 3.271.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist-cjs/commands/CreateEndpointConfigCommand.js +3 -3
  2. package/dist-cjs/commands/DeleteWorkteamCommand.js +2 -1
  3. package/dist-cjs/commands/ListAliasesCommand.js +2 -1
  4. package/dist-cjs/commands/ListAppImageConfigsCommand.js +1 -2
  5. package/dist-cjs/commands/UpdateDomainCommand.js +2 -1
  6. package/dist-cjs/endpoint/ruleset.js +3 -3
  7. package/dist-cjs/models/models_0.js +22 -14
  8. package/dist-cjs/models/models_1.js +15 -15
  9. package/dist-cjs/models/models_2.js +13 -13
  10. package/dist-cjs/models/models_3.js +14 -16
  11. package/dist-cjs/models/models_4.js +12 -2
  12. package/dist-cjs/protocols/Aws_json1_1.js +57 -0
  13. package/dist-es/commands/CreateEndpointConfigCommand.js +1 -1
  14. package/dist-es/commands/DeleteWorkteamCommand.js +2 -1
  15. package/dist-es/commands/ListAliasesCommand.js +2 -1
  16. package/dist-es/commands/ListAppImageConfigsCommand.js +1 -2
  17. package/dist-es/commands/UpdateDomainCommand.js +2 -1
  18. package/dist-es/endpoint/ruleset.js +3 -3
  19. package/dist-es/models/models_0.js +15 -6
  20. package/dist-es/models/models_1.js +6 -6
  21. package/dist-es/models/models_2.js +6 -6
  22. package/dist-es/models/models_3.js +6 -9
  23. package/dist-es/models/models_4.js +9 -0
  24. package/dist-es/protocols/Aws_json1_1.js +57 -0
  25. package/dist-types/SageMaker.d.ts +33 -3
  26. package/dist-types/SageMakerClient.d.ts +15 -15
  27. package/dist-types/commands/CreateDomainCommand.d.ts +1 -1
  28. package/dist-types/commands/CreateEndpointCommand.d.ts +1 -1
  29. package/dist-types/commands/CreateEndpointConfigCommand.d.ts +1 -1
  30. package/dist-types/commands/CreateHubCommand.d.ts +3 -0
  31. package/dist-types/commands/DeleteHubCommand.d.ts +3 -0
  32. package/dist-types/commands/DeleteHubContentCommand.d.ts +3 -0
  33. package/dist-types/commands/DeleteWorkteamCommand.d.ts +2 -1
  34. package/dist-types/commands/DescribeHubCommand.d.ts +3 -0
  35. package/dist-types/commands/DescribeHubContentCommand.d.ts +3 -0
  36. package/dist-types/commands/ImportHubContentCommand.d.ts +3 -0
  37. package/dist-types/commands/ListAliasesCommand.d.ts +2 -1
  38. package/dist-types/commands/ListAppImageConfigsCommand.d.ts +1 -2
  39. package/dist-types/commands/ListHubContentVersionsCommand.d.ts +3 -0
  40. package/dist-types/commands/ListHubContentsCommand.d.ts +3 -0
  41. package/dist-types/commands/ListHubsCommand.d.ts +3 -0
  42. package/dist-types/commands/StopAutoMLJobCommand.d.ts +1 -1
  43. package/dist-types/commands/UpdateDomainCommand.d.ts +2 -1
  44. package/dist-types/commands/UpdateHubCommand.d.ts +3 -0
  45. package/dist-types/endpoint/EndpointParameters.d.ts +1 -1
  46. package/dist-types/models/models_0.d.ts +125 -114
  47. package/dist-types/models/models_1.d.ts +99 -42
  48. package/dist-types/models/models_2.d.ts +46 -64
  49. package/dist-types/models/models_3.d.ts +59 -16
  50. package/dist-types/models/models_4.d.ts +16 -1
  51. package/dist-types/runtimeConfig.browser.d.ts +1 -1
  52. package/dist-types/runtimeConfig.d.ts +1 -1
  53. package/dist-types/runtimeConfig.native.d.ts +4 -4
  54. package/dist-types/ts3.4/SageMakerClient.d.ts +4 -4
  55. package/dist-types/ts3.4/commands/CreateEndpointConfigCommand.d.ts +1 -1
  56. package/dist-types/ts3.4/commands/DeleteWorkteamCommand.d.ts +2 -4
  57. package/dist-types/ts3.4/commands/ListAliasesCommand.d.ts +2 -1
  58. package/dist-types/ts3.4/commands/ListAppImageConfigsCommand.d.ts +4 -2
  59. package/dist-types/ts3.4/commands/UpdateDomainCommand.d.ts +2 -1
  60. package/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +1 -1
  61. package/dist-types/ts3.4/models/models_0.d.ts +19 -19
  62. package/dist-types/ts3.4/models/models_1.d.ts +23 -14
  63. package/dist-types/ts3.4/models/models_2.d.ts +14 -23
  64. package/dist-types/ts3.4/models/models_3.d.ts +22 -11
  65. package/dist-types/ts3.4/models/models_4.d.ts +11 -1
  66. package/dist-types/ts3.4/runtimeConfig.browser.d.ts +1 -1
  67. package/dist-types/ts3.4/runtimeConfig.d.ts +1 -1
  68. package/dist-types/ts3.4/runtimeConfig.native.d.ts +4 -4
  69. package/package.json +30 -30
@@ -12967,8 +12967,32 @@ const serializeAws_json1_1AttributeNames = (input, context) => {
12967
12967
  return entry;
12968
12968
  });
12969
12969
  };
12970
+ const serializeAws_json1_1AutoMLAlgorithmConfig = (input, context) => {
12971
+ return {
12972
+ ...(input.AutoMLAlgorithms != null && {
12973
+ AutoMLAlgorithms: serializeAws_json1_1AutoMLAlgorithms(input.AutoMLAlgorithms, context),
12974
+ }),
12975
+ };
12976
+ };
12977
+ const serializeAws_json1_1AutoMLAlgorithms = (input, context) => {
12978
+ return input
12979
+ .filter((e) => e != null)
12980
+ .map((entry) => {
12981
+ return entry;
12982
+ });
12983
+ };
12984
+ const serializeAws_json1_1AutoMLAlgorithmsConfig = (input, context) => {
12985
+ return input
12986
+ .filter((e) => e != null)
12987
+ .map((entry) => {
12988
+ return serializeAws_json1_1AutoMLAlgorithmConfig(entry, context);
12989
+ });
12990
+ };
12970
12991
  const serializeAws_json1_1AutoMLCandidateGenerationConfig = (input, context) => {
12971
12992
  return {
12993
+ ...(input.AlgorithmsConfig != null && {
12994
+ AlgorithmsConfig: serializeAws_json1_1AutoMLAlgorithmsConfig(input.AlgorithmsConfig, context),
12995
+ }),
12972
12996
  ...(input.FeatureSpecificationS3Uri != null && { FeatureSpecificationS3Uri: input.FeatureSpecificationS3Uri }),
12973
12997
  };
12974
12998
  };
@@ -19899,6 +19923,35 @@ const deserializeAws_json1_1AttributeNames = (output, context) => {
19899
19923
  });
19900
19924
  return retVal;
19901
19925
  };
19926
+ const deserializeAws_json1_1AutoMLAlgorithmConfig = (output, context) => {
19927
+ return {
19928
+ AutoMLAlgorithms: output.AutoMLAlgorithms != null
19929
+ ? deserializeAws_json1_1AutoMLAlgorithms(output.AutoMLAlgorithms, context)
19930
+ : undefined,
19931
+ };
19932
+ };
19933
+ const deserializeAws_json1_1AutoMLAlgorithms = (output, context) => {
19934
+ const retVal = (output || [])
19935
+ .filter((e) => e != null)
19936
+ .map((entry) => {
19937
+ if (entry === null) {
19938
+ return null;
19939
+ }
19940
+ return (0, smithy_client_1.expectString)(entry);
19941
+ });
19942
+ return retVal;
19943
+ };
19944
+ const deserializeAws_json1_1AutoMLAlgorithmsConfig = (output, context) => {
19945
+ const retVal = (output || [])
19946
+ .filter((e) => e != null)
19947
+ .map((entry) => {
19948
+ if (entry === null) {
19949
+ return null;
19950
+ }
19951
+ return deserializeAws_json1_1AutoMLAlgorithmConfig(entry, context);
19952
+ });
19953
+ return retVal;
19954
+ };
19902
19955
  const deserializeAws_json1_1AutoMLCandidate = (output, context) => {
19903
19956
  return {
19904
19957
  CandidateName: (0, smithy_client_1.expectString)(output.CandidateName),
@@ -19926,6 +19979,9 @@ const deserializeAws_json1_1AutoMLCandidate = (output, context) => {
19926
19979
  };
19927
19980
  const deserializeAws_json1_1AutoMLCandidateGenerationConfig = (output, context) => {
19928
19981
  return {
19982
+ AlgorithmsConfig: output.AlgorithmsConfig != null
19983
+ ? deserializeAws_json1_1AutoMLAlgorithmsConfig(output.AlgorithmsConfig, context)
19984
+ : undefined,
19929
19985
  FeatureSpecificationS3Uri: (0, smithy_client_1.expectString)(output.FeatureSpecificationS3Uri),
19930
19986
  };
19931
19987
  };
@@ -23555,6 +23611,7 @@ const deserializeAws_json1_1FileSystemDataSource = (output, context) => {
23555
23611
  const deserializeAws_json1_1FinalAutoMLJobObjectiveMetric = (output, context) => {
23556
23612
  return {
23557
23613
  MetricName: (0, smithy_client_1.expectString)(output.MetricName),
23614
+ StandardMetricName: (0, smithy_client_1.expectString)(output.StandardMetricName),
23558
23615
  Type: (0, smithy_client_1.expectString)(output.Type),
23559
23616
  Value: (0, smithy_client_1.limitedParseFloat32)(output.Value),
23560
23617
  };
@@ -1,7 +1,7 @@
1
1
  import { getEndpointPlugin } from "@aws-sdk/middleware-endpoint";
2
2
  import { getSerdePlugin } from "@aws-sdk/middleware-serde";
3
3
  import { Command as $Command } from "@aws-sdk/smithy-client";
4
- import { CreateEndpointConfigInputFilterSensitiveLog, CreateEndpointConfigOutputFilterSensitiveLog, } from "../models/models_0";
4
+ import { CreateEndpointConfigInputFilterSensitiveLog, CreateEndpointConfigOutputFilterSensitiveLog, } from "../models/models_1";
5
5
  import { deserializeAws_json1_1CreateEndpointConfigCommand, serializeAws_json1_1CreateEndpointConfigCommand, } from "../protocols/Aws_json1_1";
6
6
  export class CreateEndpointConfigCommand extends $Command {
7
7
  constructor(input) {
@@ -1,7 +1,8 @@
1
1
  import { getEndpointPlugin } from "@aws-sdk/middleware-endpoint";
2
2
  import { getSerdePlugin } from "@aws-sdk/middleware-serde";
3
3
  import { Command as $Command } from "@aws-sdk/smithy-client";
4
- import { DeleteWorkteamRequestFilterSensitiveLog, DeleteWorkteamResponseFilterSensitiveLog, } from "../models/models_1";
4
+ import { DeleteWorkteamRequestFilterSensitiveLog } from "../models/models_1";
5
+ import { DeleteWorkteamResponseFilterSensitiveLog } from "../models/models_2";
5
6
  import { deserializeAws_json1_1DeleteWorkteamCommand, serializeAws_json1_1DeleteWorkteamCommand, } from "../protocols/Aws_json1_1";
6
7
  export class DeleteWorkteamCommand extends $Command {
7
8
  constructor(input) {
@@ -1,7 +1,8 @@
1
1
  import { getEndpointPlugin } from "@aws-sdk/middleware-endpoint";
2
2
  import { getSerdePlugin } from "@aws-sdk/middleware-serde";
3
3
  import { Command as $Command } from "@aws-sdk/smithy-client";
4
- import { ListAliasesRequestFilterSensitiveLog, ListAliasesResponseFilterSensitiveLog, } from "../models/models_2";
4
+ import { ListAliasesRequestFilterSensitiveLog } from "../models/models_2";
5
+ import { ListAliasesResponseFilterSensitiveLog } from "../models/models_3";
5
6
  import { deserializeAws_json1_1ListAliasesCommand, serializeAws_json1_1ListAliasesCommand, } from "../protocols/Aws_json1_1";
6
7
  export class ListAliasesCommand extends $Command {
7
8
  constructor(input) {
@@ -1,8 +1,7 @@
1
1
  import { getEndpointPlugin } from "@aws-sdk/middleware-endpoint";
2
2
  import { getSerdePlugin } from "@aws-sdk/middleware-serde";
3
3
  import { Command as $Command } from "@aws-sdk/smithy-client";
4
- import { ListAppImageConfigsRequestFilterSensitiveLog } from "../models/models_2";
5
- import { ListAppImageConfigsResponseFilterSensitiveLog } from "../models/models_3";
4
+ import { ListAppImageConfigsRequestFilterSensitiveLog, ListAppImageConfigsResponseFilterSensitiveLog, } from "../models/models_3";
6
5
  import { deserializeAws_json1_1ListAppImageConfigsCommand, serializeAws_json1_1ListAppImageConfigsCommand, } from "../protocols/Aws_json1_1";
7
6
  export class ListAppImageConfigsCommand extends $Command {
8
7
  constructor(input) {
@@ -1,7 +1,8 @@
1
1
  import { getEndpointPlugin } from "@aws-sdk/middleware-endpoint";
2
2
  import { getSerdePlugin } from "@aws-sdk/middleware-serde";
3
3
  import { Command as $Command } from "@aws-sdk/smithy-client";
4
- import { UpdateDomainRequestFilterSensitiveLog, UpdateDomainResponseFilterSensitiveLog, } from "../models/models_3";
4
+ import { UpdateDomainRequestFilterSensitiveLog } from "../models/models_3";
5
+ import { UpdateDomainResponseFilterSensitiveLog } from "../models/models_4";
5
6
  import { deserializeAws_json1_1UpdateDomainCommand, serializeAws_json1_1UpdateDomainCommand, } from "../protocols/Aws_json1_1";
6
7
  export class UpdateDomainCommand extends $Command {
7
8
  constructor(input) {
@@ -1,4 +1,4 @@
1
- const t = "fn", u = "argv", v = "ref";
2
- const a = true, b = false, c = "String", d = "PartitionResult", e = "tree", f = "error", g = "endpoint", h = "stringEquals", i = { "required": true, "default": false, "type": "Boolean" }, j = { [v]: "Endpoint" }, k = { [t]: "booleanEquals", [u]: [{ [v]: "UseFIPS" }, true] }, l = { [t]: "booleanEquals", [u]: [{ [v]: "UseDualStack" }, true] }, m = {}, n = { [t]: "booleanEquals", [u]: [true, { [t]: "getAttr", [u]: [{ [v]: d }, "supportsFIPS"] }] }, o = { [t]: "booleanEquals", [u]: [true, { [t]: "getAttr", [u]: [{ [v]: d }, "supportsDualStack"] }] }, p = { [t]: "getAttr", [u]: [{ [v]: d }, "name"] }, q = { "url": "https://api-fips.sagemaker.{Region}.amazonaws.com", "properties": {}, "headers": {} }, r = [k], s = [l];
3
- const _data = { version: "1.0", parameters: { Region: { required: a, type: c }, UseDualStack: i, UseFIPS: i, Endpoint: { required: b, type: c } }, rules: [{ conditions: [{ [t]: "aws.partition", [u]: [{ [v]: "Region" }], assign: d }], type: e, rules: [{ conditions: [{ [t]: "isSet", [u]: [j] }], type: e, rules: [{ conditions: r, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: f }, { type: e, rules: [{ conditions: s, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: f }, { endpoint: { url: j, properties: m, headers: m }, type: g }] }] }, { conditions: [k, l], type: e, rules: [{ conditions: [n, o], type: e, rules: [{ type: e, rules: [{ endpoint: { url: "https://api.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: m, headers: m }, type: g }] }] }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: f }] }, { conditions: r, type: e, rules: [{ conditions: [n], type: e, rules: [{ type: e, rules: [{ conditions: [{ [t]: h, [u]: ["aws", p] }], endpoint: q, type: g }, { conditions: [{ [t]: h, [u]: ["aws-us-gov", p] }], endpoint: q, type: g }, { endpoint: { url: "https://api.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", properties: m, headers: m }, type: g }] }] }, { error: "FIPS is enabled but this partition does not support FIPS", type: f }] }, { conditions: s, type: e, rules: [{ conditions: [o], type: e, rules: [{ type: e, rules: [{ endpoint: { url: "https://api.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: m, headers: m }, type: g }] }] }, { error: "DualStack is enabled but this partition does not support DualStack", type: f }] }, { type: e, rules: [{ endpoint: { url: "https://api.sagemaker.{Region}.{PartitionResult#dnsSuffix}", properties: m, headers: m }, type: g }] }] }] };
1
+ const t = "required", u = "fn", v = "argv", w = "ref";
2
+ const a = "isSet", b = "tree", c = "error", d = "endpoint", e = "PartitionResult", f = "stringEquals", g = { [t]: false, "type": "String" }, h = { [t]: true, "default": false, "type": "Boolean" }, i = { [w]: "Endpoint" }, j = { [u]: "booleanEquals", [v]: [{ [w]: "UseFIPS" }, true] }, k = { [u]: "booleanEquals", [v]: [{ [w]: "UseDualStack" }, true] }, l = {}, m = { [u]: "booleanEquals", [v]: [true, { [u]: "getAttr", [v]: [{ [w]: e }, "supportsFIPS"] }] }, n = { [u]: "booleanEquals", [v]: [true, { [u]: "getAttr", [v]: [{ [w]: e }, "supportsDualStack"] }] }, o = { [u]: "getAttr", [v]: [{ [w]: e }, "name"] }, p = { "url": "https://api-fips.sagemaker.{Region}.amazonaws.com", "properties": {}, "headers": {} }, q = [j], r = [k], s = [{ [w]: "Region" }];
3
+ const _data = { version: "1.0", parameters: { Region: g, UseDualStack: h, UseFIPS: h, Endpoint: g }, rules: [{ conditions: [{ [u]: a, [v]: [i] }], type: b, rules: [{ conditions: q, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: c }, { type: b, rules: [{ conditions: r, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: c }, { endpoint: { url: i, properties: l, headers: l }, type: d }] }] }, { type: b, rules: [{ conditions: [{ [u]: a, [v]: s }], type: b, rules: [{ conditions: [{ [u]: "aws.partition", [v]: s, assign: e }], type: b, rules: [{ conditions: [j, k], type: b, rules: [{ conditions: [m, n], type: b, rules: [{ type: b, rules: [{ endpoint: { url: "https://api.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: l, headers: l }, type: d }] }] }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: c }] }, { conditions: q, type: b, rules: [{ conditions: [m], type: b, rules: [{ type: b, rules: [{ conditions: [{ [u]: f, [v]: ["aws", o] }], endpoint: p, type: d }, { conditions: [{ [u]: f, [v]: ["aws-us-gov", o] }], endpoint: p, type: d }, { endpoint: { url: "https://api.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", properties: l, headers: l }, type: d }] }] }, { error: "FIPS is enabled but this partition does not support FIPS", type: c }] }, { conditions: r, type: b, rules: [{ conditions: [n], type: b, rules: [{ type: b, rules: [{ endpoint: { url: "https://api.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: l, headers: l }, type: d }] }] }, { error: "DualStack is enabled but this partition does not support DualStack", type: c }] }, { type: b, rules: [{ endpoint: { url: "https://api.sagemaker.{Region}.{PartitionResult#dnsSuffix}", properties: l, headers: l }, type: d }] }] }] }, { error: "Invalid Configuration: Missing Region", type: c }] }] };
4
4
  export const ruleSet = _data;
@@ -473,6 +473,18 @@ export var AuthMode;
473
473
  AuthMode["IAM"] = "IAM";
474
474
  AuthMode["SSO"] = "SSO";
475
475
  })(AuthMode || (AuthMode = {}));
476
+ export var AutoMLAlgorithm;
477
+ (function (AutoMLAlgorithm) {
478
+ AutoMLAlgorithm["CATBOOST"] = "catboost";
479
+ AutoMLAlgorithm["EXTRA_TREES"] = "extra-trees";
480
+ AutoMLAlgorithm["FASTAI"] = "fastai";
481
+ AutoMLAlgorithm["LIGHTGBM"] = "lightgbm";
482
+ AutoMLAlgorithm["LINEAR_LEARNER"] = "linear-learner";
483
+ AutoMLAlgorithm["MLP"] = "mlp";
484
+ AutoMLAlgorithm["NN_TORCH"] = "nn-torch";
485
+ AutoMLAlgorithm["RANDOMFOREST"] = "randomforest";
486
+ AutoMLAlgorithm["XGBOOST"] = "xgboost";
487
+ })(AutoMLAlgorithm || (AutoMLAlgorithm = {}));
476
488
  export var AutoMLMetricEnum;
477
489
  (function (AutoMLMetricEnum) {
478
490
  AutoMLMetricEnum["ACCURACY"] = "Accuracy";
@@ -1166,6 +1178,9 @@ export const AsyncInferenceConfigFilterSensitiveLog = (obj) => ({
1166
1178
  export const AthenaDatasetDefinitionFilterSensitiveLog = (obj) => ({
1167
1179
  ...obj,
1168
1180
  });
1181
+ export const AutoMLAlgorithmConfigFilterSensitiveLog = (obj) => ({
1182
+ ...obj,
1183
+ });
1169
1184
  export const CandidateArtifactLocationsFilterSensitiveLog = (obj) => ({
1170
1185
  ...obj,
1171
1186
  });
@@ -1619,9 +1634,3 @@ export const ProductionVariantServerlessConfigFilterSensitiveLog = (obj) => ({
1619
1634
  export const ProductionVariantFilterSensitiveLog = (obj) => ({
1620
1635
  ...obj,
1621
1636
  });
1622
- export const CreateEndpointConfigInputFilterSensitiveLog = (obj) => ({
1623
- ...obj,
1624
- });
1625
- export const CreateEndpointConfigOutputFilterSensitiveLog = (obj) => ({
1626
- ...obj,
1627
- });
@@ -262,6 +262,12 @@ export var HubContentType;
262
262
  HubContentType["MODEL"] = "Model";
263
263
  HubContentType["NOTEBOOK"] = "Notebook";
264
264
  })(HubContentType || (HubContentType = {}));
265
+ export const CreateEndpointConfigInputFilterSensitiveLog = (obj) => ({
266
+ ...obj,
267
+ });
268
+ export const CreateEndpointConfigOutputFilterSensitiveLog = (obj) => ({
269
+ ...obj,
270
+ });
265
271
  export const CreateExperimentRequestFilterSensitiveLog = (obj) => ({
266
272
  ...obj,
267
273
  });
@@ -1068,9 +1074,3 @@ export const DeleteWorkforceResponseFilterSensitiveLog = (obj) => ({
1068
1074
  export const DeleteWorkteamRequestFilterSensitiveLog = (obj) => ({
1069
1075
  ...obj,
1070
1076
  });
1071
- export const DeleteWorkteamResponseFilterSensitiveLog = (obj) => ({
1072
- ...obj,
1073
- });
1074
- export const DeployedImageFilterSensitiveLog = (obj) => ({
1075
- ...obj,
1076
- });
@@ -474,6 +474,12 @@ export var SortOrder;
474
474
  SortOrder["ASCENDING"] = "Ascending";
475
475
  SortOrder["DESCENDING"] = "Descending";
476
476
  })(SortOrder || (SortOrder = {}));
477
+ export const DeleteWorkteamResponseFilterSensitiveLog = (obj) => ({
478
+ ...obj,
479
+ });
480
+ export const DeployedImageFilterSensitiveLog = (obj) => ({
481
+ ...obj,
482
+ });
477
483
  export const EdgeDeploymentStatusFilterSensitiveLog = (obj) => ({
478
484
  ...obj,
479
485
  });
@@ -1192,9 +1198,3 @@ export const ListAlgorithmsOutputFilterSensitiveLog = (obj) => ({
1192
1198
  export const ListAliasesRequestFilterSensitiveLog = (obj) => ({
1193
1199
  ...obj,
1194
1200
  });
1195
- export const ListAliasesResponseFilterSensitiveLog = (obj) => ({
1196
- ...obj,
1197
- });
1198
- export const ListAppImageConfigsRequestFilterSensitiveLog = (obj) => ({
1199
- ...obj,
1200
- });
@@ -266,12 +266,12 @@ export var SearchSortOrder;
266
266
  SearchSortOrder["ASCENDING"] = "Ascending";
267
267
  SearchSortOrder["DESCENDING"] = "Descending";
268
268
  })(SearchSortOrder || (SearchSortOrder = {}));
269
- export var VariantPropertyType;
270
- (function (VariantPropertyType) {
271
- VariantPropertyType["DataCaptureConfig"] = "DataCaptureConfig";
272
- VariantPropertyType["DesiredInstanceCount"] = "DesiredInstanceCount";
273
- VariantPropertyType["DesiredWeight"] = "DesiredWeight";
274
- })(VariantPropertyType || (VariantPropertyType = {}));
269
+ export const ListAliasesResponseFilterSensitiveLog = (obj) => ({
270
+ ...obj,
271
+ });
272
+ export const ListAppImageConfigsRequestFilterSensitiveLog = (obj) => ({
273
+ ...obj,
274
+ });
275
275
  export const ListAppImageConfigsResponseFilterSensitiveLog = (obj) => ({
276
276
  ...obj,
277
277
  });
@@ -1029,6 +1029,3 @@ export const UpdateDevicesRequestFilterSensitiveLog = (obj) => ({
1029
1029
  export const UpdateDomainRequestFilterSensitiveLog = (obj) => ({
1030
1030
  ...obj,
1031
1031
  });
1032
- export const UpdateDomainResponseFilterSensitiveLog = (obj) => ({
1033
- ...obj,
1034
- });
@@ -1,5 +1,14 @@
1
1
  import { SENSITIVE_STRING } from "@aws-sdk/smithy-client";
2
2
  import { OidcConfigFilterSensitiveLog, TrialComponentParameterValueFilterSensitiveLog, } from "./models_1";
3
+ export var VariantPropertyType;
4
+ (function (VariantPropertyType) {
5
+ VariantPropertyType["DataCaptureConfig"] = "DataCaptureConfig";
6
+ VariantPropertyType["DesiredInstanceCount"] = "DesiredInstanceCount";
7
+ VariantPropertyType["DesiredWeight"] = "DesiredWeight";
8
+ })(VariantPropertyType || (VariantPropertyType = {}));
9
+ export const UpdateDomainResponseFilterSensitiveLog = (obj) => ({
10
+ ...obj,
11
+ });
3
12
  export const VariantPropertyFilterSensitiveLog = (obj) => ({
4
13
  ...obj,
5
14
  });
@@ -12353,8 +12353,32 @@ const serializeAws_json1_1AttributeNames = (input, context) => {
12353
12353
  return entry;
12354
12354
  });
12355
12355
  };
12356
+ const serializeAws_json1_1AutoMLAlgorithmConfig = (input, context) => {
12357
+ return {
12358
+ ...(input.AutoMLAlgorithms != null && {
12359
+ AutoMLAlgorithms: serializeAws_json1_1AutoMLAlgorithms(input.AutoMLAlgorithms, context),
12360
+ }),
12361
+ };
12362
+ };
12363
+ const serializeAws_json1_1AutoMLAlgorithms = (input, context) => {
12364
+ return input
12365
+ .filter((e) => e != null)
12366
+ .map((entry) => {
12367
+ return entry;
12368
+ });
12369
+ };
12370
+ const serializeAws_json1_1AutoMLAlgorithmsConfig = (input, context) => {
12371
+ return input
12372
+ .filter((e) => e != null)
12373
+ .map((entry) => {
12374
+ return serializeAws_json1_1AutoMLAlgorithmConfig(entry, context);
12375
+ });
12376
+ };
12356
12377
  const serializeAws_json1_1AutoMLCandidateGenerationConfig = (input, context) => {
12357
12378
  return {
12379
+ ...(input.AlgorithmsConfig != null && {
12380
+ AlgorithmsConfig: serializeAws_json1_1AutoMLAlgorithmsConfig(input.AlgorithmsConfig, context),
12381
+ }),
12358
12382
  ...(input.FeatureSpecificationS3Uri != null && { FeatureSpecificationS3Uri: input.FeatureSpecificationS3Uri }),
12359
12383
  };
12360
12384
  };
@@ -19285,6 +19309,35 @@ const deserializeAws_json1_1AttributeNames = (output, context) => {
19285
19309
  });
19286
19310
  return retVal;
19287
19311
  };
19312
+ const deserializeAws_json1_1AutoMLAlgorithmConfig = (output, context) => {
19313
+ return {
19314
+ AutoMLAlgorithms: output.AutoMLAlgorithms != null
19315
+ ? deserializeAws_json1_1AutoMLAlgorithms(output.AutoMLAlgorithms, context)
19316
+ : undefined,
19317
+ };
19318
+ };
19319
+ const deserializeAws_json1_1AutoMLAlgorithms = (output, context) => {
19320
+ const retVal = (output || [])
19321
+ .filter((e) => e != null)
19322
+ .map((entry) => {
19323
+ if (entry === null) {
19324
+ return null;
19325
+ }
19326
+ return __expectString(entry);
19327
+ });
19328
+ return retVal;
19329
+ };
19330
+ const deserializeAws_json1_1AutoMLAlgorithmsConfig = (output, context) => {
19331
+ const retVal = (output || [])
19332
+ .filter((e) => e != null)
19333
+ .map((entry) => {
19334
+ if (entry === null) {
19335
+ return null;
19336
+ }
19337
+ return deserializeAws_json1_1AutoMLAlgorithmConfig(entry, context);
19338
+ });
19339
+ return retVal;
19340
+ };
19288
19341
  const deserializeAws_json1_1AutoMLCandidate = (output, context) => {
19289
19342
  return {
19290
19343
  CandidateName: __expectString(output.CandidateName),
@@ -19312,6 +19365,9 @@ const deserializeAws_json1_1AutoMLCandidate = (output, context) => {
19312
19365
  };
19313
19366
  const deserializeAws_json1_1AutoMLCandidateGenerationConfig = (output, context) => {
19314
19367
  return {
19368
+ AlgorithmsConfig: output.AlgorithmsConfig != null
19369
+ ? deserializeAws_json1_1AutoMLAlgorithmsConfig(output.AlgorithmsConfig, context)
19370
+ : undefined,
19315
19371
  FeatureSpecificationS3Uri: __expectString(output.FeatureSpecificationS3Uri),
19316
19372
  };
19317
19373
  };
@@ -22941,6 +22997,7 @@ const deserializeAws_json1_1FileSystemDataSource = (output, context) => {
22941
22997
  const deserializeAws_json1_1FinalAutoMLJobObjectiveMetric = (output, context) => {
22942
22998
  return {
22943
22999
  MetricName: __expectString(output.MetricName),
23000
+ StandardMetricName: __expectString(output.StandardMetricName),
22944
23001
  Type: __expectString(output.Type),
22945
23002
  Value: __limitedParseFloat32(output.Value),
22946
23003
  };
@@ -498,7 +498,7 @@ export declare class SageMaker extends SageMakerClient {
498
498
  /**
499
499
  * <p>Creates a <code>Domain</code> used by Amazon SageMaker Studio. A domain consists of an associated
500
500
  * Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application,
501
- * policy, and Amazon Virtual Private Cloud (VPC) configurations. An Amazon Web Services account is limited to one domain per region.
501
+ * policy, and Amazon Virtual Private Cloud (VPC) configurations.
502
502
  * Users within a domain can share notebook files and other artifacts with each other.</p>
503
503
  * <p>
504
504
  * <b>EFS storage</b>
@@ -600,7 +600,7 @@ export declare class SageMaker extends SageMakerClient {
600
600
  * API.</p>
601
601
  * <p>If any of the models hosted at this endpoint get model data from an Amazon S3 location,
602
602
  * SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the
603
- * S3 path you provided. Amazon Web Services STS is activated in your IAM user account by
603
+ * S3 path you provided. Amazon Web Services STS is activated in your Amazon Web Services account by
604
604
  * default. If you previously deactivated Amazon Web Services STS for a region, you need to
605
605
  * reactivate Amazon Web Services STS for that region. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html">Activating and
606
606
  * Deactivating Amazon Web Services STS in an Amazon Web Services Region</a> in the
@@ -731,6 +731,9 @@ export declare class SageMaker extends SageMakerClient {
731
731
  createFlowDefinition(args: CreateFlowDefinitionCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: CreateFlowDefinitionCommandOutput) => void): void;
732
732
  /**
733
733
  * <p>Create a hub.</p>
734
+ * <note>
735
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
736
+ * </note>
734
737
  */
735
738
  createHub(args: CreateHubCommandInput, options?: __HttpHandlerOptions): Promise<CreateHubCommandOutput>;
736
739
  createHub(args: CreateHubCommandInput, cb: (err: any, data?: CreateHubCommandOutput) => void): void;
@@ -1414,12 +1417,18 @@ export declare class SageMaker extends SageMakerClient {
1414
1417
  deleteFlowDefinition(args: DeleteFlowDefinitionCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: DeleteFlowDefinitionCommandOutput) => void): void;
1415
1418
  /**
1416
1419
  * <p>Delete a hub.</p>
1420
+ * <note>
1421
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
1422
+ * </note>
1417
1423
  */
1418
1424
  deleteHub(args: DeleteHubCommandInput, options?: __HttpHandlerOptions): Promise<DeleteHubCommandOutput>;
1419
1425
  deleteHub(args: DeleteHubCommandInput, cb: (err: any, data?: DeleteHubCommandOutput) => void): void;
1420
1426
  deleteHub(args: DeleteHubCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: DeleteHubCommandOutput) => void): void;
1421
1427
  /**
1422
1428
  * <p>Delete the contents of a hub.</p>
1429
+ * <note>
1430
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
1431
+ * </note>
1423
1432
  */
1424
1433
  deleteHubContent(args: DeleteHubContentCommandInput, options?: __HttpHandlerOptions): Promise<DeleteHubContentCommandOutput>;
1425
1434
  deleteHubContent(args: DeleteHubContentCommandInput, cb: (err: any, data?: DeleteHubContentCommandOutput) => void): void;
@@ -1767,12 +1776,18 @@ export declare class SageMaker extends SageMakerClient {
1767
1776
  describeFlowDefinition(args: DescribeFlowDefinitionCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: DescribeFlowDefinitionCommandOutput) => void): void;
1768
1777
  /**
1769
1778
  * <p>Describe a hub.</p>
1779
+ * <note>
1780
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
1781
+ * </note>
1770
1782
  */
1771
1783
  describeHub(args: DescribeHubCommandInput, options?: __HttpHandlerOptions): Promise<DescribeHubCommandOutput>;
1772
1784
  describeHub(args: DescribeHubCommandInput, cb: (err: any, data?: DescribeHubCommandOutput) => void): void;
1773
1785
  describeHub(args: DescribeHubCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: DescribeHubCommandOutput) => void): void;
1774
1786
  /**
1775
1787
  * <p>Describe the content of a hub.</p>
1788
+ * <note>
1789
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
1790
+ * </note>
1776
1791
  */
1777
1792
  describeHubContent(args: DescribeHubContentCommandInput, options?: __HttpHandlerOptions): Promise<DescribeHubContentCommandOutput>;
1778
1793
  describeHubContent(args: DescribeHubContentCommandInput, cb: (err: any, data?: DescribeHubContentCommandOutput) => void): void;
@@ -2069,6 +2084,9 @@ export declare class SageMaker extends SageMakerClient {
2069
2084
  getSearchSuggestions(args: GetSearchSuggestionsCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: GetSearchSuggestionsCommandOutput) => void): void;
2070
2085
  /**
2071
2086
  * <p>Import hub content.</p>
2087
+ * <note>
2088
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
2089
+ * </note>
2072
2090
  */
2073
2091
  importHubContent(args: ImportHubContentCommandInput, options?: __HttpHandlerOptions): Promise<ImportHubContentCommandOutput>;
2074
2092
  importHubContent(args: ImportHubContentCommandInput, cb: (err: any, data?: ImportHubContentCommandOutput) => void): void;
@@ -2219,18 +2237,27 @@ export declare class SageMaker extends SageMakerClient {
2219
2237
  listFlowDefinitions(args: ListFlowDefinitionsCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: ListFlowDefinitionsCommandOutput) => void): void;
2220
2238
  /**
2221
2239
  * <p>List the contents of a hub.</p>
2240
+ * <note>
2241
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
2242
+ * </note>
2222
2243
  */
2223
2244
  listHubContents(args: ListHubContentsCommandInput, options?: __HttpHandlerOptions): Promise<ListHubContentsCommandOutput>;
2224
2245
  listHubContents(args: ListHubContentsCommandInput, cb: (err: any, data?: ListHubContentsCommandOutput) => void): void;
2225
2246
  listHubContents(args: ListHubContentsCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: ListHubContentsCommandOutput) => void): void;
2226
2247
  /**
2227
2248
  * <p>List hub content versions.</p>
2249
+ * <note>
2250
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
2251
+ * </note>
2228
2252
  */
2229
2253
  listHubContentVersions(args: ListHubContentVersionsCommandInput, options?: __HttpHandlerOptions): Promise<ListHubContentVersionsCommandOutput>;
2230
2254
  listHubContentVersions(args: ListHubContentVersionsCommandInput, cb: (err: any, data?: ListHubContentVersionsCommandOutput) => void): void;
2231
2255
  listHubContentVersions(args: ListHubContentVersionsCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: ListHubContentVersionsCommandOutput) => void): void;
2232
2256
  /**
2233
2257
  * <p>List all existing hubs.</p>
2258
+ * <note>
2259
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
2260
+ * </note>
2234
2261
  */
2235
2262
  listHubs(args: ListHubsCommandInput, options?: __HttpHandlerOptions): Promise<ListHubsCommandOutput>;
2236
2263
  listHubs(args: ListHubsCommandInput, cb: (err: any, data?: ListHubsCommandOutput) => void): void;
@@ -2662,7 +2689,7 @@ export declare class SageMaker extends SageMakerClient {
2662
2689
  startPipelineExecution(args: StartPipelineExecutionCommandInput, cb: (err: any, data?: StartPipelineExecutionCommandOutput) => void): void;
2663
2690
  startPipelineExecution(args: StartPipelineExecutionCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: StartPipelineExecutionCommandOutput) => void): void;
2664
2691
  /**
2665
- * <p>A method for forcing the termination of a running job.</p>
2692
+ * <p>A method for forcing a running job to shut down.</p>
2666
2693
  */
2667
2694
  stopAutoMLJob(args: StopAutoMLJobCommandInput, options?: __HttpHandlerOptions): Promise<StopAutoMLJobCommandOutput>;
2668
2695
  stopAutoMLJob(args: StopAutoMLJobCommandInput, cb: (err: any, data?: StopAutoMLJobCommandOutput) => void): void;
@@ -2899,6 +2926,9 @@ export declare class SageMaker extends SageMakerClient {
2899
2926
  updateFeatureMetadata(args: UpdateFeatureMetadataCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: UpdateFeatureMetadataCommandOutput) => void): void;
2900
2927
  /**
2901
2928
  * <p>Update a hub.</p>
2929
+ * <note>
2930
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
2931
+ * </note>
2902
2932
  */
2903
2933
  updateHub(args: UpdateHubCommandInput, options?: __HttpHandlerOptions): Promise<UpdateHubCommandOutput>;
2904
2934
  updateHub(args: UpdateHubCommandInput, cb: (err: any, data?: UpdateHubCommandOutput) => void): void;
@@ -367,17 +367,10 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__
367
367
  */
368
368
  disableHostPrefix?: boolean;
369
369
  /**
370
- * Value for how many times a request will be made at most in case of retry.
371
- */
372
- maxAttempts?: number | __Provider<number>;
373
- /**
374
- * Specifies which retry algorithm to use.
375
- */
376
- retryMode?: string | __Provider<string>;
377
- /**
378
- * Optional logger for logging debug/info/warn/error.
370
+ * Unique service identifier.
371
+ * @internal
379
372
  */
380
- logger?: __Logger;
373
+ serviceId?: string;
381
374
  /**
382
375
  * Enables IPv6/IPv4 dualstack endpoint.
383
376
  */
@@ -386,11 +379,6 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__
386
379
  * Enables FIPS compatible endpoints.
387
380
  */
388
381
  useFipsEndpoint?: boolean | __Provider<boolean>;
389
- /**
390
- * Unique service identifier.
391
- * @internal
392
- */
393
- serviceId?: string;
394
382
  /**
395
383
  * The AWS region to which this client will send requests
396
384
  */
@@ -405,6 +393,18 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__
405
393
  * @internal
406
394
  */
407
395
  defaultUserAgentProvider?: Provider<__UserAgent>;
396
+ /**
397
+ * Value for how many times a request will be made at most in case of retry.
398
+ */
399
+ maxAttempts?: number | __Provider<number>;
400
+ /**
401
+ * Specifies which retry algorithm to use.
402
+ */
403
+ retryMode?: string | __Provider<string>;
404
+ /**
405
+ * Optional logger for logging debug/info/warn/error.
406
+ */
407
+ logger?: __Logger;
408
408
  /**
409
409
  * The {@link __DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK.
410
410
  */
@@ -10,7 +10,7 @@ export interface CreateDomainCommandOutput extends CreateDomainResponse, __Metad
10
10
  /**
11
11
  * <p>Creates a <code>Domain</code> used by Amazon SageMaker Studio. A domain consists of an associated
12
12
  * Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application,
13
- * policy, and Amazon Virtual Private Cloud (VPC) configurations. An Amazon Web Services account is limited to one domain per region.
13
+ * policy, and Amazon Virtual Private Cloud (VPC) configurations.
14
14
  * Users within a domain can share notebook files and other artifacts with each other.</p>
15
15
  * <p>
16
16
  * <b>EFS storage</b>
@@ -44,7 +44,7 @@ export interface CreateEndpointCommandOutput extends CreateEndpointOutput, __Met
44
44
  * API.</p>
45
45
  * <p>If any of the models hosted at this endpoint get model data from an Amazon S3 location,
46
46
  * SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the
47
- * S3 path you provided. Amazon Web Services STS is activated in your IAM user account by
47
+ * S3 path you provided. Amazon Web Services STS is activated in your Amazon Web Services account by
48
48
  * default. If you previously deactivated Amazon Web Services STS for a region, you need to
49
49
  * reactivate Amazon Web Services STS for that region. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html">Activating and
50
50
  * Deactivating Amazon Web Services STS in an Amazon Web Services Region</a> in the
@@ -1,7 +1,7 @@
1
1
  import { EndpointParameterInstructions } from "@aws-sdk/middleware-endpoint";
2
2
  import { Command as $Command } from "@aws-sdk/smithy-client";
3
3
  import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MetadataBearer as __MetadataBearer, MiddlewareStack } from "@aws-sdk/types";
4
- import { CreateEndpointConfigInput, CreateEndpointConfigOutput } from "../models/models_0";
4
+ import { CreateEndpointConfigInput, CreateEndpointConfigOutput } from "../models/models_1";
5
5
  import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";
6
6
  export interface CreateEndpointConfigCommandInput extends CreateEndpointConfigInput {
7
7
  }
@@ -9,6 +9,9 @@ export interface CreateHubCommandOutput extends CreateHubResponse, __MetadataBea
9
9
  }
10
10
  /**
11
11
  * <p>Create a hub.</p>
12
+ * <note>
13
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
14
+ * </note>
12
15
  * @example
13
16
  * Use a bare-bones client and the command you need to make an API call.
14
17
  * ```javascript
@@ -9,6 +9,9 @@ export interface DeleteHubCommandOutput extends __MetadataBearer {
9
9
  }
10
10
  /**
11
11
  * <p>Delete a hub.</p>
12
+ * <note>
13
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
14
+ * </note>
12
15
  * @example
13
16
  * Use a bare-bones client and the command you need to make an API call.
14
17
  * ```javascript
@@ -9,6 +9,9 @@ export interface DeleteHubContentCommandOutput extends __MetadataBearer {
9
9
  }
10
10
  /**
11
11
  * <p>Delete the contents of a hub.</p>
12
+ * <note>
13
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
14
+ * </note>
12
15
  * @example
13
16
  * Use a bare-bones client and the command you need to make an API call.
14
17
  * ```javascript
@@ -1,7 +1,8 @@
1
1
  import { EndpointParameterInstructions } from "@aws-sdk/middleware-endpoint";
2
2
  import { Command as $Command } from "@aws-sdk/smithy-client";
3
3
  import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MetadataBearer as __MetadataBearer, MiddlewareStack } from "@aws-sdk/types";
4
- import { DeleteWorkteamRequest, DeleteWorkteamResponse } from "../models/models_1";
4
+ import { DeleteWorkteamRequest } from "../models/models_1";
5
+ import { DeleteWorkteamResponse } from "../models/models_2";
5
6
  import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient";
6
7
  export interface DeleteWorkteamCommandInput extends DeleteWorkteamRequest {
7
8
  }
@@ -9,6 +9,9 @@ export interface DescribeHubCommandOutput extends DescribeHubResponse, __Metadat
9
9
  }
10
10
  /**
11
11
  * <p>Describe a hub.</p>
12
+ * <note>
13
+ * <p>Hub APIs are only callable through SageMaker Studio.</p>
14
+ * </note>
12
15
  * @example
13
16
  * Use a bare-bones client and the command you need to make an API call.
14
17
  * ```javascript