@aws-sdk/client-compute-optimizer 3.236.0 → 3.238.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 (84) hide show
  1. package/README.md +2 -1
  2. package/dist-cjs/ComputeOptimizer.js +45 -0
  3. package/dist-cjs/commands/ExportECSServiceRecommendationsCommand.js +46 -0
  4. package/dist-cjs/commands/GetECSServiceRecommendationProjectedMetricsCommand.js +46 -0
  5. package/dist-cjs/commands/GetECSServiceRecommendationsCommand.js +46 -0
  6. package/dist-cjs/commands/index.js +3 -0
  7. package/dist-cjs/endpoint/ruleset.js +3 -3
  8. package/dist-cjs/index.js +1 -0
  9. package/dist-cjs/models/models_0.js +137 -3
  10. package/dist-cjs/pagination/DescribeRecommendationExportJobsPaginator.js +36 -0
  11. package/dist-cjs/pagination/GetEnrollmentStatusesForOrganizationPaginator.js +36 -0
  12. package/dist-cjs/pagination/GetLambdaFunctionRecommendationsPaginator.js +36 -0
  13. package/dist-cjs/pagination/GetRecommendationPreferencesPaginator.js +36 -0
  14. package/dist-cjs/pagination/GetRecommendationSummariesPaginator.js +36 -0
  15. package/dist-cjs/pagination/Interfaces.js +2 -0
  16. package/dist-cjs/pagination/index.js +9 -0
  17. package/dist-cjs/protocols/Aws_json1_0.js +491 -1
  18. package/dist-es/ComputeOptimizer.js +45 -0
  19. package/dist-es/commands/ExportECSServiceRecommendationsCommand.js +42 -0
  20. package/dist-es/commands/GetECSServiceRecommendationProjectedMetricsCommand.js +42 -0
  21. package/dist-es/commands/GetECSServiceRecommendationsCommand.js +42 -0
  22. package/dist-es/commands/index.js +3 -0
  23. package/dist-es/endpoint/ruleset.js +3 -3
  24. package/dist-es/index.js +1 -0
  25. package/dist-es/models/models_0.js +117 -0
  26. package/dist-es/pagination/DescribeRecommendationExportJobsPaginator.js +32 -0
  27. package/dist-es/pagination/GetEnrollmentStatusesForOrganizationPaginator.js +32 -0
  28. package/dist-es/pagination/GetLambdaFunctionRecommendationsPaginator.js +32 -0
  29. package/dist-es/pagination/GetRecommendationPreferencesPaginator.js +32 -0
  30. package/dist-es/pagination/GetRecommendationSummariesPaginator.js +32 -0
  31. package/dist-es/pagination/Interfaces.js +1 -0
  32. package/dist-es/pagination/index.js +6 -0
  33. package/dist-es/protocols/Aws_json1_0.js +484 -0
  34. package/dist-types/ComputeOptimizer.d.ts +76 -32
  35. package/dist-types/ComputeOptimizerClient.d.ts +7 -3
  36. package/dist-types/commands/DeleteRecommendationPreferencesCommand.d.ts +1 -1
  37. package/dist-types/commands/DescribeRecommendationExportJobsCommand.d.ts +1 -1
  38. package/dist-types/commands/ExportAutoScalingGroupRecommendationsCommand.d.ts +2 -2
  39. package/dist-types/commands/ExportEBSVolumeRecommendationsCommand.d.ts +2 -2
  40. package/dist-types/commands/ExportEC2InstanceRecommendationsCommand.d.ts +2 -2
  41. package/dist-types/commands/ExportECSServiceRecommendationsCommand.d.ts +44 -0
  42. package/dist-types/commands/ExportLambdaFunctionRecommendationsCommand.d.ts +2 -2
  43. package/dist-types/commands/GetAutoScalingGroupRecommendationsCommand.d.ts +1 -1
  44. package/dist-types/commands/GetEBSVolumeRecommendationsCommand.d.ts +1 -1
  45. package/dist-types/commands/GetEC2InstanceRecommendationsCommand.d.ts +1 -1
  46. package/dist-types/commands/GetEC2RecommendationProjectedMetricsCommand.d.ts +2 -2
  47. package/dist-types/commands/GetECSServiceRecommendationProjectedMetricsCommand.d.ts +39 -0
  48. package/dist-types/commands/GetECSServiceRecommendationsCommand.d.ts +46 -0
  49. package/dist-types/commands/GetEffectiveRecommendationPreferencesCommand.d.ts +1 -1
  50. package/dist-types/commands/GetEnrollmentStatusCommand.d.ts +1 -1
  51. package/dist-types/commands/GetEnrollmentStatusesForOrganizationCommand.d.ts +1 -1
  52. package/dist-types/commands/GetLambdaFunctionRecommendationsCommand.d.ts +1 -1
  53. package/dist-types/commands/GetRecommendationPreferencesCommand.d.ts +2 -2
  54. package/dist-types/commands/GetRecommendationSummariesCommand.d.ts +10 -6
  55. package/dist-types/commands/PutRecommendationPreferencesCommand.d.ts +1 -1
  56. package/dist-types/commands/UpdateEnrollmentStatusCommand.d.ts +3 -3
  57. package/dist-types/commands/index.d.ts +3 -0
  58. package/dist-types/index.d.ts +1 -0
  59. package/dist-types/models/models_0.d.ts +1353 -519
  60. package/dist-types/pagination/DescribeRecommendationExportJobsPaginator.d.ts +4 -0
  61. package/dist-types/pagination/GetEnrollmentStatusesForOrganizationPaginator.d.ts +4 -0
  62. package/dist-types/pagination/GetLambdaFunctionRecommendationsPaginator.d.ts +4 -0
  63. package/dist-types/pagination/GetRecommendationPreferencesPaginator.d.ts +4 -0
  64. package/dist-types/pagination/GetRecommendationSummariesPaginator.d.ts +4 -0
  65. package/dist-types/pagination/Interfaces.d.ts +6 -0
  66. package/dist-types/pagination/index.d.ts +6 -0
  67. package/dist-types/protocols/Aws_json1_0.d.ts +9 -0
  68. package/dist-types/ts3.4/ComputeOptimizer.d.ts +57 -0
  69. package/dist-types/ts3.4/ComputeOptimizerClient.d.ts +18 -0
  70. package/dist-types/ts3.4/commands/ExportECSServiceRecommendationsCommand.d.ts +41 -0
  71. package/dist-types/ts3.4/commands/GetECSServiceRecommendationProjectedMetricsCommand.d.ts +41 -0
  72. package/dist-types/ts3.4/commands/GetECSServiceRecommendationsCommand.d.ts +41 -0
  73. package/dist-types/ts3.4/commands/index.d.ts +3 -0
  74. package/dist-types/ts3.4/index.d.ts +1 -0
  75. package/dist-types/ts3.4/models/models_0.d.ts +210 -0
  76. package/dist-types/ts3.4/pagination/DescribeRecommendationExportJobsPaginator.d.ts +11 -0
  77. package/dist-types/ts3.4/pagination/GetEnrollmentStatusesForOrganizationPaginator.d.ts +11 -0
  78. package/dist-types/ts3.4/pagination/GetLambdaFunctionRecommendationsPaginator.d.ts +11 -0
  79. package/dist-types/ts3.4/pagination/GetRecommendationPreferencesPaginator.d.ts +11 -0
  80. package/dist-types/ts3.4/pagination/GetRecommendationSummariesPaginator.d.ts +11 -0
  81. package/dist-types/ts3.4/pagination/Interfaces.d.ts +7 -0
  82. package/dist-types/ts3.4/pagination/index.d.ts +6 -0
  83. package/dist-types/ts3.4/protocols/Aws_json1_0.d.ts +36 -0
  84. package/package.json +5 -4
@@ -47,6 +47,15 @@ export const serializeAws_json1_0ExportEC2InstanceRecommendationsCommand = async
47
47
  body = JSON.stringify(serializeAws_json1_0ExportEC2InstanceRecommendationsRequest(input, context));
48
48
  return buildHttpRpcRequest(context, headers, "/", undefined, body);
49
49
  };
50
+ export const serializeAws_json1_0ExportECSServiceRecommendationsCommand = async (input, context) => {
51
+ const headers = {
52
+ "content-type": "application/x-amz-json-1.0",
53
+ "x-amz-target": "ComputeOptimizerService.ExportECSServiceRecommendations",
54
+ };
55
+ let body;
56
+ body = JSON.stringify(serializeAws_json1_0ExportECSServiceRecommendationsRequest(input, context));
57
+ return buildHttpRpcRequest(context, headers, "/", undefined, body);
58
+ };
50
59
  export const serializeAws_json1_0ExportLambdaFunctionRecommendationsCommand = async (input, context) => {
51
60
  const headers = {
52
61
  "content-type": "application/x-amz-json-1.0",
@@ -92,6 +101,24 @@ export const serializeAws_json1_0GetEC2RecommendationProjectedMetricsCommand = a
92
101
  body = JSON.stringify(serializeAws_json1_0GetEC2RecommendationProjectedMetricsRequest(input, context));
93
102
  return buildHttpRpcRequest(context, headers, "/", undefined, body);
94
103
  };
104
+ export const serializeAws_json1_0GetECSServiceRecommendationProjectedMetricsCommand = async (input, context) => {
105
+ const headers = {
106
+ "content-type": "application/x-amz-json-1.0",
107
+ "x-amz-target": "ComputeOptimizerService.GetECSServiceRecommendationProjectedMetrics",
108
+ };
109
+ let body;
110
+ body = JSON.stringify(serializeAws_json1_0GetECSServiceRecommendationProjectedMetricsRequest(input, context));
111
+ return buildHttpRpcRequest(context, headers, "/", undefined, body);
112
+ };
113
+ export const serializeAws_json1_0GetECSServiceRecommendationsCommand = async (input, context) => {
114
+ const headers = {
115
+ "content-type": "application/x-amz-json-1.0",
116
+ "x-amz-target": "ComputeOptimizerService.GetECSServiceRecommendations",
117
+ };
118
+ let body;
119
+ body = JSON.stringify(serializeAws_json1_0GetECSServiceRecommendationsRequest(input, context));
120
+ return buildHttpRpcRequest(context, headers, "/", undefined, body);
121
+ };
95
122
  export const serializeAws_json1_0GetEffectiveRecommendationPreferencesCommand = async (input, context) => {
96
123
  const headers = {
97
124
  "content-type": "application/x-amz-json-1.0",
@@ -434,6 +461,60 @@ const deserializeAws_json1_0ExportEC2InstanceRecommendationsCommandError = async
434
461
  });
435
462
  }
436
463
  };
464
+ export const deserializeAws_json1_0ExportECSServiceRecommendationsCommand = async (output, context) => {
465
+ if (output.statusCode >= 300) {
466
+ return deserializeAws_json1_0ExportECSServiceRecommendationsCommandError(output, context);
467
+ }
468
+ const data = await parseBody(output.body, context);
469
+ let contents = {};
470
+ contents = deserializeAws_json1_0ExportECSServiceRecommendationsResponse(data, context);
471
+ const response = {
472
+ $metadata: deserializeMetadata(output),
473
+ ...contents,
474
+ };
475
+ return Promise.resolve(response);
476
+ };
477
+ const deserializeAws_json1_0ExportECSServiceRecommendationsCommandError = async (output, context) => {
478
+ const parsedOutput = {
479
+ ...output,
480
+ body: await parseErrorBody(output.body, context),
481
+ };
482
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
483
+ switch (errorCode) {
484
+ case "AccessDeniedException":
485
+ case "com.amazonaws.computeoptimizer#AccessDeniedException":
486
+ throw await deserializeAws_json1_0AccessDeniedExceptionResponse(parsedOutput, context);
487
+ case "InternalServerException":
488
+ case "com.amazonaws.computeoptimizer#InternalServerException":
489
+ throw await deserializeAws_json1_0InternalServerExceptionResponse(parsedOutput, context);
490
+ case "InvalidParameterValueException":
491
+ case "com.amazonaws.computeoptimizer#InvalidParameterValueException":
492
+ throw await deserializeAws_json1_0InvalidParameterValueExceptionResponse(parsedOutput, context);
493
+ case "LimitExceededException":
494
+ case "com.amazonaws.computeoptimizer#LimitExceededException":
495
+ throw await deserializeAws_json1_0LimitExceededExceptionResponse(parsedOutput, context);
496
+ case "MissingAuthenticationToken":
497
+ case "com.amazonaws.computeoptimizer#MissingAuthenticationToken":
498
+ throw await deserializeAws_json1_0MissingAuthenticationTokenResponse(parsedOutput, context);
499
+ case "OptInRequiredException":
500
+ case "com.amazonaws.computeoptimizer#OptInRequiredException":
501
+ throw await deserializeAws_json1_0OptInRequiredExceptionResponse(parsedOutput, context);
502
+ case "ServiceUnavailableException":
503
+ case "com.amazonaws.computeoptimizer#ServiceUnavailableException":
504
+ throw await deserializeAws_json1_0ServiceUnavailableExceptionResponse(parsedOutput, context);
505
+ case "ThrottlingException":
506
+ case "com.amazonaws.computeoptimizer#ThrottlingException":
507
+ throw await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context);
508
+ default:
509
+ const parsedBody = parsedOutput.body;
510
+ throwDefaultError({
511
+ output,
512
+ parsedBody,
513
+ exceptionCtor: __BaseException,
514
+ errorCode,
515
+ });
516
+ }
517
+ };
437
518
  export const deserializeAws_json1_0ExportLambdaFunctionRecommendationsCommand = async (output, context) => {
438
519
  if (output.statusCode >= 300) {
439
520
  return deserializeAws_json1_0ExportLambdaFunctionRecommendationsCommandError(output, context);
@@ -704,6 +785,114 @@ const deserializeAws_json1_0GetEC2RecommendationProjectedMetricsCommandError = a
704
785
  });
705
786
  }
706
787
  };
788
+ export const deserializeAws_json1_0GetECSServiceRecommendationProjectedMetricsCommand = async (output, context) => {
789
+ if (output.statusCode >= 300) {
790
+ return deserializeAws_json1_0GetECSServiceRecommendationProjectedMetricsCommandError(output, context);
791
+ }
792
+ const data = await parseBody(output.body, context);
793
+ let contents = {};
794
+ contents = deserializeAws_json1_0GetECSServiceRecommendationProjectedMetricsResponse(data, context);
795
+ const response = {
796
+ $metadata: deserializeMetadata(output),
797
+ ...contents,
798
+ };
799
+ return Promise.resolve(response);
800
+ };
801
+ const deserializeAws_json1_0GetECSServiceRecommendationProjectedMetricsCommandError = async (output, context) => {
802
+ const parsedOutput = {
803
+ ...output,
804
+ body: await parseErrorBody(output.body, context),
805
+ };
806
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
807
+ switch (errorCode) {
808
+ case "AccessDeniedException":
809
+ case "com.amazonaws.computeoptimizer#AccessDeniedException":
810
+ throw await deserializeAws_json1_0AccessDeniedExceptionResponse(parsedOutput, context);
811
+ case "InternalServerException":
812
+ case "com.amazonaws.computeoptimizer#InternalServerException":
813
+ throw await deserializeAws_json1_0InternalServerExceptionResponse(parsedOutput, context);
814
+ case "InvalidParameterValueException":
815
+ case "com.amazonaws.computeoptimizer#InvalidParameterValueException":
816
+ throw await deserializeAws_json1_0InvalidParameterValueExceptionResponse(parsedOutput, context);
817
+ case "MissingAuthenticationToken":
818
+ case "com.amazonaws.computeoptimizer#MissingAuthenticationToken":
819
+ throw await deserializeAws_json1_0MissingAuthenticationTokenResponse(parsedOutput, context);
820
+ case "OptInRequiredException":
821
+ case "com.amazonaws.computeoptimizer#OptInRequiredException":
822
+ throw await deserializeAws_json1_0OptInRequiredExceptionResponse(parsedOutput, context);
823
+ case "ResourceNotFoundException":
824
+ case "com.amazonaws.computeoptimizer#ResourceNotFoundException":
825
+ throw await deserializeAws_json1_0ResourceNotFoundExceptionResponse(parsedOutput, context);
826
+ case "ServiceUnavailableException":
827
+ case "com.amazonaws.computeoptimizer#ServiceUnavailableException":
828
+ throw await deserializeAws_json1_0ServiceUnavailableExceptionResponse(parsedOutput, context);
829
+ case "ThrottlingException":
830
+ case "com.amazonaws.computeoptimizer#ThrottlingException":
831
+ throw await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context);
832
+ default:
833
+ const parsedBody = parsedOutput.body;
834
+ throwDefaultError({
835
+ output,
836
+ parsedBody,
837
+ exceptionCtor: __BaseException,
838
+ errorCode,
839
+ });
840
+ }
841
+ };
842
+ export const deserializeAws_json1_0GetECSServiceRecommendationsCommand = async (output, context) => {
843
+ if (output.statusCode >= 300) {
844
+ return deserializeAws_json1_0GetECSServiceRecommendationsCommandError(output, context);
845
+ }
846
+ const data = await parseBody(output.body, context);
847
+ let contents = {};
848
+ contents = deserializeAws_json1_0GetECSServiceRecommendationsResponse(data, context);
849
+ const response = {
850
+ $metadata: deserializeMetadata(output),
851
+ ...contents,
852
+ };
853
+ return Promise.resolve(response);
854
+ };
855
+ const deserializeAws_json1_0GetECSServiceRecommendationsCommandError = async (output, context) => {
856
+ const parsedOutput = {
857
+ ...output,
858
+ body: await parseErrorBody(output.body, context),
859
+ };
860
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
861
+ switch (errorCode) {
862
+ case "AccessDeniedException":
863
+ case "com.amazonaws.computeoptimizer#AccessDeniedException":
864
+ throw await deserializeAws_json1_0AccessDeniedExceptionResponse(parsedOutput, context);
865
+ case "InternalServerException":
866
+ case "com.amazonaws.computeoptimizer#InternalServerException":
867
+ throw await deserializeAws_json1_0InternalServerExceptionResponse(parsedOutput, context);
868
+ case "InvalidParameterValueException":
869
+ case "com.amazonaws.computeoptimizer#InvalidParameterValueException":
870
+ throw await deserializeAws_json1_0InvalidParameterValueExceptionResponse(parsedOutput, context);
871
+ case "MissingAuthenticationToken":
872
+ case "com.amazonaws.computeoptimizer#MissingAuthenticationToken":
873
+ throw await deserializeAws_json1_0MissingAuthenticationTokenResponse(parsedOutput, context);
874
+ case "OptInRequiredException":
875
+ case "com.amazonaws.computeoptimizer#OptInRequiredException":
876
+ throw await deserializeAws_json1_0OptInRequiredExceptionResponse(parsedOutput, context);
877
+ case "ResourceNotFoundException":
878
+ case "com.amazonaws.computeoptimizer#ResourceNotFoundException":
879
+ throw await deserializeAws_json1_0ResourceNotFoundExceptionResponse(parsedOutput, context);
880
+ case "ServiceUnavailableException":
881
+ case "com.amazonaws.computeoptimizer#ServiceUnavailableException":
882
+ throw await deserializeAws_json1_0ServiceUnavailableExceptionResponse(parsedOutput, context);
883
+ case "ThrottlingException":
884
+ case "com.amazonaws.computeoptimizer#ThrottlingException":
885
+ throw await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context);
886
+ default:
887
+ const parsedBody = parsedOutput.body;
888
+ throwDefaultError({
889
+ output,
890
+ parsedBody,
891
+ exceptionCtor: __BaseException,
892
+ errorCode,
893
+ });
894
+ }
895
+ };
707
896
  export const deserializeAws_json1_0GetEffectiveRecommendationPreferencesCommand = async (output, context) => {
708
897
  if (output.statusCode >= 300) {
709
898
  return deserializeAws_json1_0GetEffectiveRecommendationPreferencesCommandError(output, context);
@@ -1247,6 +1436,19 @@ const serializeAws_json1_0EBSFilters = (input, context) => {
1247
1436
  return serializeAws_json1_0EBSFilter(entry, context);
1248
1437
  });
1249
1438
  };
1439
+ const serializeAws_json1_0ECSServiceRecommendationFilter = (input, context) => {
1440
+ return {
1441
+ ...(input.name != null && { name: input.name }),
1442
+ ...(input.values != null && { values: serializeAws_json1_0FilterValues(input.values, context) }),
1443
+ };
1444
+ };
1445
+ const serializeAws_json1_0ECSServiceRecommendationFilters = (input, context) => {
1446
+ return input
1447
+ .filter((e) => e != null)
1448
+ .map((entry) => {
1449
+ return serializeAws_json1_0ECSServiceRecommendationFilter(entry, context);
1450
+ });
1451
+ };
1250
1452
  const serializeAws_json1_0EnrollmentFilter = (input, context) => {
1251
1453
  return {
1252
1454
  ...(input.name != null && { name: input.name }),
@@ -1267,6 +1469,13 @@ const serializeAws_json1_0ExportableAutoScalingGroupFields = (input, context) =>
1267
1469
  return entry;
1268
1470
  });
1269
1471
  };
1472
+ const serializeAws_json1_0ExportableECSServiceFields = (input, context) => {
1473
+ return input
1474
+ .filter((e) => e != null)
1475
+ .map((entry) => {
1476
+ return entry;
1477
+ });
1478
+ };
1270
1479
  const serializeAws_json1_0ExportableInstanceFields = (input, context) => {
1271
1480
  return input
1272
1481
  .filter((e) => e != null)
@@ -1336,6 +1545,22 @@ const serializeAws_json1_0ExportEC2InstanceRecommendationsRequest = (input, cont
1336
1545
  }),
1337
1546
  };
1338
1547
  };
1548
+ const serializeAws_json1_0ExportECSServiceRecommendationsRequest = (input, context) => {
1549
+ return {
1550
+ ...(input.accountIds != null && { accountIds: serializeAws_json1_0AccountIds(input.accountIds, context) }),
1551
+ ...(input.fieldsToExport != null && {
1552
+ fieldsToExport: serializeAws_json1_0ExportableECSServiceFields(input.fieldsToExport, context),
1553
+ }),
1554
+ ...(input.fileFormat != null && { fileFormat: input.fileFormat }),
1555
+ ...(input.filters != null && {
1556
+ filters: serializeAws_json1_0ECSServiceRecommendationFilters(input.filters, context),
1557
+ }),
1558
+ ...(input.includeMemberAccounts != null && { includeMemberAccounts: input.includeMemberAccounts }),
1559
+ ...(input.s3DestinationConfig != null && {
1560
+ s3DestinationConfig: serializeAws_json1_0S3DestinationConfig(input.s3DestinationConfig, context),
1561
+ }),
1562
+ };
1563
+ };
1339
1564
  const serializeAws_json1_0ExportLambdaFunctionRecommendationsRequest = (input, context) => {
1340
1565
  return {
1341
1566
  ...(input.accountIds != null && { accountIds: serializeAws_json1_0AccountIds(input.accountIds, context) }),
@@ -1431,6 +1656,26 @@ const serializeAws_json1_0GetEC2RecommendationProjectedMetricsRequest = (input,
1431
1656
  ...(input.stat != null && { stat: input.stat }),
1432
1657
  };
1433
1658
  };
1659
+ const serializeAws_json1_0GetECSServiceRecommendationProjectedMetricsRequest = (input, context) => {
1660
+ return {
1661
+ ...(input.endTime != null && { endTime: Math.round(input.endTime.getTime() / 1000) }),
1662
+ ...(input.period != null && { period: input.period }),
1663
+ ...(input.serviceArn != null && { serviceArn: input.serviceArn }),
1664
+ ...(input.startTime != null && { startTime: Math.round(input.startTime.getTime() / 1000) }),
1665
+ ...(input.stat != null && { stat: input.stat }),
1666
+ };
1667
+ };
1668
+ const serializeAws_json1_0GetECSServiceRecommendationsRequest = (input, context) => {
1669
+ return {
1670
+ ...(input.accountIds != null && { accountIds: serializeAws_json1_0AccountIds(input.accountIds, context) }),
1671
+ ...(input.filters != null && {
1672
+ filters: serializeAws_json1_0ECSServiceRecommendationFilters(input.filters, context),
1673
+ }),
1674
+ ...(input.maxResults != null && { maxResults: input.maxResults }),
1675
+ ...(input.nextToken != null && { nextToken: input.nextToken }),
1676
+ ...(input.serviceArns != null && { serviceArns: serializeAws_json1_0ServiceArns(input.serviceArns, context) }),
1677
+ };
1678
+ };
1434
1679
  const serializeAws_json1_0GetEffectiveRecommendationPreferencesRequest = (input, context) => {
1435
1680
  return {
1436
1681
  ...(input.resourceArn != null && { resourceArn: input.resourceArn }),
@@ -1551,6 +1796,13 @@ const serializeAws_json1_0Scope = (input, context) => {
1551
1796
  ...(input.value != null && { value: input.value }),
1552
1797
  };
1553
1798
  };
1799
+ const serializeAws_json1_0ServiceArns = (input, context) => {
1800
+ return input
1801
+ .filter((e) => e != null)
1802
+ .map((entry) => {
1803
+ return entry;
1804
+ });
1805
+ };
1554
1806
  const serializeAws_json1_0UpdateEnrollmentStatusRequest = (input, context) => {
1555
1807
  return {
1556
1808
  ...(input.includeMemberAccounts != null && { includeMemberAccounts: input.includeMemberAccounts }),
@@ -1664,6 +1916,46 @@ const deserializeAws_json1_0AutoScalingGroupRecommendations = (output, context)
1664
1916
  });
1665
1917
  return retVal;
1666
1918
  };
1919
+ const deserializeAws_json1_0ContainerConfiguration = (output, context) => {
1920
+ return {
1921
+ containerName: __expectString(output.containerName),
1922
+ cpu: __expectInt32(output.cpu),
1923
+ memorySizeConfiguration: output.memorySizeConfiguration != null
1924
+ ? deserializeAws_json1_0MemorySizeConfiguration(output.memorySizeConfiguration, context)
1925
+ : undefined,
1926
+ };
1927
+ };
1928
+ const deserializeAws_json1_0ContainerConfigurations = (output, context) => {
1929
+ const retVal = (output || [])
1930
+ .filter((e) => e != null)
1931
+ .map((entry) => {
1932
+ if (entry === null) {
1933
+ return null;
1934
+ }
1935
+ return deserializeAws_json1_0ContainerConfiguration(entry, context);
1936
+ });
1937
+ return retVal;
1938
+ };
1939
+ const deserializeAws_json1_0ContainerRecommendation = (output, context) => {
1940
+ return {
1941
+ containerName: __expectString(output.containerName),
1942
+ cpu: __expectInt32(output.cpu),
1943
+ memorySizeConfiguration: output.memorySizeConfiguration != null
1944
+ ? deserializeAws_json1_0MemorySizeConfiguration(output.memorySizeConfiguration, context)
1945
+ : undefined,
1946
+ };
1947
+ };
1948
+ const deserializeAws_json1_0ContainerRecommendations = (output, context) => {
1949
+ const retVal = (output || [])
1950
+ .filter((e) => e != null)
1951
+ .map((entry) => {
1952
+ if (entry === null) {
1953
+ return null;
1954
+ }
1955
+ return deserializeAws_json1_0ContainerRecommendation(entry, context);
1956
+ });
1957
+ return retVal;
1958
+ };
1667
1959
  const deserializeAws_json1_0CpuVendorArchitectures = (output, context) => {
1668
1960
  const retVal = (output || [])
1669
1961
  .filter((e) => e != null)
@@ -1712,6 +2004,159 @@ const deserializeAws_json1_0EBSUtilizationMetrics = (output, context) => {
1712
2004
  });
1713
2005
  return retVal;
1714
2006
  };
2007
+ const deserializeAws_json1_0ECSServiceProjectedMetric = (output, context) => {
2008
+ return {
2009
+ lowerBoundValues: output.lowerBoundValues != null
2010
+ ? deserializeAws_json1_0MetricValues(output.lowerBoundValues, context)
2011
+ : undefined,
2012
+ name: __expectString(output.name),
2013
+ timestamps: output.timestamps != null ? deserializeAws_json1_0Timestamps(output.timestamps, context) : undefined,
2014
+ upperBoundValues: output.upperBoundValues != null
2015
+ ? deserializeAws_json1_0MetricValues(output.upperBoundValues, context)
2016
+ : undefined,
2017
+ };
2018
+ };
2019
+ const deserializeAws_json1_0ECSServiceProjectedMetrics = (output, context) => {
2020
+ const retVal = (output || [])
2021
+ .filter((e) => e != null)
2022
+ .map((entry) => {
2023
+ if (entry === null) {
2024
+ return null;
2025
+ }
2026
+ return deserializeAws_json1_0ECSServiceProjectedMetric(entry, context);
2027
+ });
2028
+ return retVal;
2029
+ };
2030
+ const deserializeAws_json1_0ECSServiceProjectedUtilizationMetric = (output, context) => {
2031
+ return {
2032
+ lowerBoundValue: __limitedParseDouble(output.lowerBoundValue),
2033
+ name: __expectString(output.name),
2034
+ statistic: __expectString(output.statistic),
2035
+ upperBoundValue: __limitedParseDouble(output.upperBoundValue),
2036
+ };
2037
+ };
2038
+ const deserializeAws_json1_0ECSServiceProjectedUtilizationMetrics = (output, context) => {
2039
+ const retVal = (output || [])
2040
+ .filter((e) => e != null)
2041
+ .map((entry) => {
2042
+ if (entry === null) {
2043
+ return null;
2044
+ }
2045
+ return deserializeAws_json1_0ECSServiceProjectedUtilizationMetric(entry, context);
2046
+ });
2047
+ return retVal;
2048
+ };
2049
+ const deserializeAws_json1_0ECSServiceRecommendation = (output, context) => {
2050
+ return {
2051
+ accountId: __expectString(output.accountId),
2052
+ currentPerformanceRisk: __expectString(output.currentPerformanceRisk),
2053
+ currentServiceConfiguration: output.currentServiceConfiguration != null
2054
+ ? deserializeAws_json1_0ServiceConfiguration(output.currentServiceConfiguration, context)
2055
+ : undefined,
2056
+ finding: __expectString(output.finding),
2057
+ findingReasonCodes: output.findingReasonCodes != null
2058
+ ? deserializeAws_json1_0ECSServiceRecommendationFindingReasonCodes(output.findingReasonCodes, context)
2059
+ : undefined,
2060
+ lastRefreshTimestamp: output.lastRefreshTimestamp != null
2061
+ ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.lastRefreshTimestamp)))
2062
+ : undefined,
2063
+ launchType: __expectString(output.launchType),
2064
+ lookbackPeriodInDays: __limitedParseDouble(output.lookbackPeriodInDays),
2065
+ serviceArn: __expectString(output.serviceArn),
2066
+ serviceRecommendationOptions: output.serviceRecommendationOptions != null
2067
+ ? deserializeAws_json1_0ECSServiceRecommendationOptions(output.serviceRecommendationOptions, context)
2068
+ : undefined,
2069
+ utilizationMetrics: output.utilizationMetrics != null
2070
+ ? deserializeAws_json1_0ECSServiceUtilizationMetrics(output.utilizationMetrics, context)
2071
+ : undefined,
2072
+ };
2073
+ };
2074
+ const deserializeAws_json1_0ECSServiceRecommendationFindingReasonCodes = (output, context) => {
2075
+ const retVal = (output || [])
2076
+ .filter((e) => e != null)
2077
+ .map((entry) => {
2078
+ if (entry === null) {
2079
+ return null;
2080
+ }
2081
+ return __expectString(entry);
2082
+ });
2083
+ return retVal;
2084
+ };
2085
+ const deserializeAws_json1_0ECSServiceRecommendationOption = (output, context) => {
2086
+ return {
2087
+ containerRecommendations: output.containerRecommendations != null
2088
+ ? deserializeAws_json1_0ContainerRecommendations(output.containerRecommendations, context)
2089
+ : undefined,
2090
+ cpu: __expectInt32(output.cpu),
2091
+ memory: __expectInt32(output.memory),
2092
+ projectedUtilizationMetrics: output.projectedUtilizationMetrics != null
2093
+ ? deserializeAws_json1_0ECSServiceProjectedUtilizationMetrics(output.projectedUtilizationMetrics, context)
2094
+ : undefined,
2095
+ savingsOpportunity: output.savingsOpportunity != null
2096
+ ? deserializeAws_json1_0SavingsOpportunity(output.savingsOpportunity, context)
2097
+ : undefined,
2098
+ };
2099
+ };
2100
+ const deserializeAws_json1_0ECSServiceRecommendationOptions = (output, context) => {
2101
+ const retVal = (output || [])
2102
+ .filter((e) => e != null)
2103
+ .map((entry) => {
2104
+ if (entry === null) {
2105
+ return null;
2106
+ }
2107
+ return deserializeAws_json1_0ECSServiceRecommendationOption(entry, context);
2108
+ });
2109
+ return retVal;
2110
+ };
2111
+ const deserializeAws_json1_0ECSServiceRecommendations = (output, context) => {
2112
+ const retVal = (output || [])
2113
+ .filter((e) => e != null)
2114
+ .map((entry) => {
2115
+ if (entry === null) {
2116
+ return null;
2117
+ }
2118
+ return deserializeAws_json1_0ECSServiceRecommendation(entry, context);
2119
+ });
2120
+ return retVal;
2121
+ };
2122
+ const deserializeAws_json1_0ECSServiceRecommendedOptionProjectedMetric = (output, context) => {
2123
+ return {
2124
+ projectedMetrics: output.projectedMetrics != null
2125
+ ? deserializeAws_json1_0ECSServiceProjectedMetrics(output.projectedMetrics, context)
2126
+ : undefined,
2127
+ recommendedCpuUnits: __expectInt32(output.recommendedCpuUnits),
2128
+ recommendedMemorySize: __expectInt32(output.recommendedMemorySize),
2129
+ };
2130
+ };
2131
+ const deserializeAws_json1_0ECSServiceRecommendedOptionProjectedMetrics = (output, context) => {
2132
+ const retVal = (output || [])
2133
+ .filter((e) => e != null)
2134
+ .map((entry) => {
2135
+ if (entry === null) {
2136
+ return null;
2137
+ }
2138
+ return deserializeAws_json1_0ECSServiceRecommendedOptionProjectedMetric(entry, context);
2139
+ });
2140
+ return retVal;
2141
+ };
2142
+ const deserializeAws_json1_0ECSServiceUtilizationMetric = (output, context) => {
2143
+ return {
2144
+ name: __expectString(output.name),
2145
+ statistic: __expectString(output.statistic),
2146
+ value: __limitedParseDouble(output.value),
2147
+ };
2148
+ };
2149
+ const deserializeAws_json1_0ECSServiceUtilizationMetrics = (output, context) => {
2150
+ const retVal = (output || [])
2151
+ .filter((e) => e != null)
2152
+ .map((entry) => {
2153
+ if (entry === null) {
2154
+ return null;
2155
+ }
2156
+ return deserializeAws_json1_0ECSServiceUtilizationMetric(entry, context);
2157
+ });
2158
+ return retVal;
2159
+ };
1715
2160
  const deserializeAws_json1_0EffectiveRecommendationPreferences = (output, context) => {
1716
2161
  return {
1717
2162
  cpuVendorArchitectures: output.cpuVendorArchitectures != null
@@ -1753,6 +2198,12 @@ const deserializeAws_json1_0ExportEC2InstanceRecommendationsResponse = (output,
1753
2198
  s3Destination: output.s3Destination != null ? deserializeAws_json1_0S3Destination(output.s3Destination, context) : undefined,
1754
2199
  };
1755
2200
  };
2201
+ const deserializeAws_json1_0ExportECSServiceRecommendationsResponse = (output, context) => {
2202
+ return {
2203
+ jobId: __expectString(output.jobId),
2204
+ s3Destination: output.s3Destination != null ? deserializeAws_json1_0S3Destination(output.s3Destination, context) : undefined,
2205
+ };
2206
+ };
1756
2207
  const deserializeAws_json1_0ExportLambdaFunctionRecommendationsResponse = (output, context) => {
1757
2208
  return {
1758
2209
  jobId: __expectString(output.jobId),
@@ -1798,6 +2249,22 @@ const deserializeAws_json1_0GetEC2RecommendationProjectedMetricsResponse = (outp
1798
2249
  : undefined,
1799
2250
  };
1800
2251
  };
2252
+ const deserializeAws_json1_0GetECSServiceRecommendationProjectedMetricsResponse = (output, context) => {
2253
+ return {
2254
+ recommendedOptionProjectedMetrics: output.recommendedOptionProjectedMetrics != null
2255
+ ? deserializeAws_json1_0ECSServiceRecommendedOptionProjectedMetrics(output.recommendedOptionProjectedMetrics, context)
2256
+ : undefined,
2257
+ };
2258
+ };
2259
+ const deserializeAws_json1_0GetECSServiceRecommendationsResponse = (output, context) => {
2260
+ return {
2261
+ ecsServiceRecommendations: output.ecsServiceRecommendations != null
2262
+ ? deserializeAws_json1_0ECSServiceRecommendations(output.ecsServiceRecommendations, context)
2263
+ : undefined,
2264
+ errors: output.errors != null ? deserializeAws_json1_0GetRecommendationErrors(output.errors, context) : undefined,
2265
+ nextToken: __expectString(output.nextToken),
2266
+ };
2267
+ };
1801
2268
  const deserializeAws_json1_0GetEffectiveRecommendationPreferencesResponse = (output, context) => {
1802
2269
  return {
1803
2270
  enhancedInfrastructureMetrics: __expectString(output.enhancedInfrastructureMetrics),
@@ -2069,6 +2536,12 @@ const deserializeAws_json1_0LimitExceededException = (output, context) => {
2069
2536
  message: __expectString(output.message),
2070
2537
  };
2071
2538
  };
2539
+ const deserializeAws_json1_0MemorySizeConfiguration = (output, context) => {
2540
+ return {
2541
+ memory: __expectInt32(output.memory),
2542
+ memoryReservation: __expectInt32(output.memoryReservation),
2543
+ };
2544
+ };
2072
2545
  const deserializeAws_json1_0MetricValues = (output, context) => {
2073
2546
  const retVal = (output || [])
2074
2547
  .filter((e) => e != null)
@@ -2296,6 +2769,17 @@ const deserializeAws_json1_0Scope = (output, context) => {
2296
2769
  value: __expectString(output.value),
2297
2770
  };
2298
2771
  };
2772
+ const deserializeAws_json1_0ServiceConfiguration = (output, context) => {
2773
+ return {
2774
+ autoScalingConfiguration: __expectString(output.autoScalingConfiguration),
2775
+ containerConfigurations: output.containerConfigurations != null
2776
+ ? deserializeAws_json1_0ContainerConfigurations(output.containerConfigurations, context)
2777
+ : undefined,
2778
+ cpu: __expectInt32(output.cpu),
2779
+ memory: __expectInt32(output.memory),
2780
+ taskDefinitionArn: __expectString(output.taskDefinitionArn),
2781
+ };
2782
+ };
2299
2783
  const deserializeAws_json1_0ServiceUnavailableException = (output, context) => {
2300
2784
  return {
2301
2785
  message: __expectString(output.message),