From 2df520d4dabf1e07caa95ad2324f2de56062c555 Mon Sep 17 00:00:00 2001 From: awstools Date: Mon, 16 Sep 2024 18:23:01 +0000 Subject: [PATCH] feat(client-iot): This release adds additional enhancements to AWS IoT Device Management Software Package Catalog and Jobs. It also adds SBOM support in Software Package Version. --- clients/client-iot/README.md | 24 + clients/client-iot/src/IoT.ts | 69 +++ clients/client-iot/src/IoTClient.ts | 18 + .../AssociateSbomWithPackageVersionCommand.ts | 123 +++++ .../commands/CreatePackageVersionCommand.ts | 8 + .../commands/DeleteCACertificateCommand.ts | 2 +- .../src/commands/DeleteCertificateCommand.ts | 2 +- .../DeleteCertificateProviderCommand.ts | 2 +- .../src/commands/DescribeJobCommand.ts | 1 + ...sassociateSbomFromPackageVersionCommand.ts | 105 ++++ .../src/commands/GetJobDocumentCommand.ts | 1 + .../src/commands/GetPackageVersionCommand.ts | 16 + .../src/commands/ListMetricValuesCommand.ts | 3 +- .../commands/ListMitigationActionsCommand.ts | 2 +- .../src/commands/ListOTAUpdatesCommand.ts | 2 +- .../ListSbomValidationResultsCommand.ts | 106 ++++ .../commands/UpdatePackageVersionCommand.ts | 8 + .../src/commands/UpdateStreamCommand.ts | 3 + clients/client-iot/src/commands/index.ts | 3 + clients/client-iot/src/models/models_0.ts | 383 ++++++++------ clients/client-iot/src/models/models_1.ts | 271 +++++----- clients/client-iot/src/models/models_2.ts | 276 ++++++++++ .../ListSbomValidationResultsPaginator.ts | 24 + clients/client-iot/src/pagination/index.ts | 1 + .../client-iot/src/protocols/Aws_restJson1.ts | 206 +++++++- codegen/sdk-codegen/aws-models/iot.json | 495 +++++++++++++++++- 26 files changed, 1824 insertions(+), 330 deletions(-) create mode 100644 clients/client-iot/src/commands/AssociateSbomWithPackageVersionCommand.ts create mode 100644 clients/client-iot/src/commands/DisassociateSbomFromPackageVersionCommand.ts create mode 100644 clients/client-iot/src/commands/ListSbomValidationResultsCommand.ts create mode 100644 clients/client-iot/src/pagination/ListSbomValidationResultsPaginator.ts diff --git a/clients/client-iot/README.md b/clients/client-iot/README.md index a184ff1e9fe51..8e5738375ec61 100644 --- a/clients/client-iot/README.md +++ b/clients/client-iot/README.md @@ -242,6 +242,14 @@ AddThingToThingGroup [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/AddThingToThingGroupCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/AddThingToThingGroupCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/AddThingToThingGroupCommandOutput/) + +
+ +AssociateSbomWithPackageVersion + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/AssociateSbomWithPackageVersionCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/AssociateSbomWithPackageVersionCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/AssociateSbomWithPackageVersionCommandOutput/) +
@@ -1186,6 +1194,14 @@ DisableTopicRule [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/DisableTopicRuleCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/DisableTopicRuleCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/DisableTopicRuleCommandOutput/) +
+
+ +DisassociateSbomFromPackageVersion + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/DisassociateSbomFromPackageVersionCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/DisassociateSbomFromPackageVersionCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/DisassociateSbomFromPackageVersionCommandOutput/) +
@@ -1666,6 +1682,14 @@ ListRoleAliases [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/ListRoleAliasesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListRoleAliasesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListRoleAliasesCommandOutput/) +
+
+ +ListSbomValidationResults + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/ListSbomValidationResultsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListSbomValidationResultsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListSbomValidationResultsCommandOutput/) +
diff --git a/clients/client-iot/src/IoT.ts b/clients/client-iot/src/IoT.ts index 41d4786853501..8c29fe8a93ea8 100644 --- a/clients/client-iot/src/IoT.ts +++ b/clients/client-iot/src/IoT.ts @@ -17,6 +17,11 @@ import { AddThingToThingGroupCommandInput, AddThingToThingGroupCommandOutput, } from "./commands/AddThingToThingGroupCommand"; +import { + AssociateSbomWithPackageVersionCommand, + AssociateSbomWithPackageVersionCommandInput, + AssociateSbomWithPackageVersionCommandOutput, +} from "./commands/AssociateSbomWithPackageVersionCommand"; import { AssociateTargetsWithJobCommand, AssociateTargetsWithJobCommandInput, @@ -583,6 +588,11 @@ import { DisableTopicRuleCommandInput, DisableTopicRuleCommandOutput, } from "./commands/DisableTopicRuleCommand"; +import { + DisassociateSbomFromPackageVersionCommand, + DisassociateSbomFromPackageVersionCommandInput, + DisassociateSbomFromPackageVersionCommandOutput, +} from "./commands/DisassociateSbomFromPackageVersionCommand"; import { EnableTopicRuleCommand, EnableTopicRuleCommandInput, @@ -867,6 +877,11 @@ import { ListRoleAliasesCommandInput, ListRoleAliasesCommandOutput, } from "./commands/ListRoleAliasesCommand"; +import { + ListSbomValidationResultsCommand, + ListSbomValidationResultsCommandInput, + ListSbomValidationResultsCommandOutput, +} from "./commands/ListSbomValidationResultsCommand"; import { ListScheduledAuditsCommand, ListScheduledAuditsCommandInput, @@ -1219,6 +1234,7 @@ const commands = { AcceptCertificateTransferCommand, AddThingToBillingGroupCommand, AddThingToThingGroupCommand, + AssociateSbomWithPackageVersionCommand, AssociateTargetsWithJobCommand, AttachPolicyCommand, AttachPrincipalPolicyCommand, @@ -1337,6 +1353,7 @@ const commands = { DetachSecurityProfileCommand, DetachThingPrincipalCommand, DisableTopicRuleCommand, + DisassociateSbomFromPackageVersionCommand, EnableTopicRuleCommand, GetBehaviorModelTrainingSummariesCommand, GetBucketsAggregationCommand, @@ -1397,6 +1414,7 @@ const commands = { ListProvisioningTemplateVersionsCommand, ListRelatedResourcesForAuditFindingCommand, ListRoleAliasesCommand, + ListSbomValidationResultsCommand, ListScheduledAuditsCommand, ListSecurityProfilesCommand, ListSecurityProfilesForTargetCommand, @@ -1527,6 +1545,23 @@ export interface IoT { cb: (err: any, data?: AddThingToThingGroupCommandOutput) => void ): void; + /** + * @see {@link AssociateSbomWithPackageVersionCommand} + */ + associateSbomWithPackageVersion( + args: AssociateSbomWithPackageVersionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + associateSbomWithPackageVersion( + args: AssociateSbomWithPackageVersionCommandInput, + cb: (err: any, data?: AssociateSbomWithPackageVersionCommandOutput) => void + ): void; + associateSbomWithPackageVersion( + args: AssociateSbomWithPackageVersionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AssociateSbomWithPackageVersionCommandOutput) => void + ): void; + /** * @see {@link AssociateTargetsWithJobCommand} */ @@ -3409,6 +3444,23 @@ export interface IoT { cb: (err: any, data?: DisableTopicRuleCommandOutput) => void ): void; + /** + * @see {@link DisassociateSbomFromPackageVersionCommand} + */ + disassociateSbomFromPackageVersion( + args: DisassociateSbomFromPackageVersionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + disassociateSbomFromPackageVersion( + args: DisassociateSbomFromPackageVersionCommandInput, + cb: (err: any, data?: DisassociateSbomFromPackageVersionCommandOutput) => void + ): void; + disassociateSbomFromPackageVersion( + args: DisassociateSbomFromPackageVersionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DisassociateSbomFromPackageVersionCommandOutput) => void + ): void; + /** * @see {@link EnableTopicRuleCommand} */ @@ -4379,6 +4431,23 @@ export interface IoT { cb: (err: any, data?: ListRoleAliasesCommandOutput) => void ): void; + /** + * @see {@link ListSbomValidationResultsCommand} + */ + listSbomValidationResults( + args: ListSbomValidationResultsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listSbomValidationResults( + args: ListSbomValidationResultsCommandInput, + cb: (err: any, data?: ListSbomValidationResultsCommandOutput) => void + ): void; + listSbomValidationResults( + args: ListSbomValidationResultsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListSbomValidationResultsCommandOutput) => void + ): void; + /** * @see {@link ListScheduledAuditsCommand} */ diff --git a/clients/client-iot/src/IoTClient.ts b/clients/client-iot/src/IoTClient.ts index 1fa7bbd5764a1..3f6ea19b1f5bf 100644 --- a/clients/client-iot/src/IoTClient.ts +++ b/clients/client-iot/src/IoTClient.ts @@ -71,6 +71,10 @@ import { AddThingToThingGroupCommandInput, AddThingToThingGroupCommandOutput, } from "./commands/AddThingToThingGroupCommand"; +import { + AssociateSbomWithPackageVersionCommandInput, + AssociateSbomWithPackageVersionCommandOutput, +} from "./commands/AssociateSbomWithPackageVersionCommand"; import { AssociateTargetsWithJobCommandInput, AssociateTargetsWithJobCommandOutput, @@ -387,6 +391,10 @@ import { DetachThingPrincipalCommandOutput, } from "./commands/DetachThingPrincipalCommand"; import { DisableTopicRuleCommandInput, DisableTopicRuleCommandOutput } from "./commands/DisableTopicRuleCommand"; +import { + DisassociateSbomFromPackageVersionCommandInput, + DisassociateSbomFromPackageVersionCommandOutput, +} from "./commands/DisassociateSbomFromPackageVersionCommand"; import { EnableTopicRuleCommandInput, EnableTopicRuleCommandOutput } from "./commands/EnableTopicRuleCommand"; import { GetBehaviorModelTrainingSummariesCommandInput, @@ -537,6 +545,10 @@ import { ListRelatedResourcesForAuditFindingCommandOutput, } from "./commands/ListRelatedResourcesForAuditFindingCommand"; import { ListRoleAliasesCommandInput, ListRoleAliasesCommandOutput } from "./commands/ListRoleAliasesCommand"; +import { + ListSbomValidationResultsCommandInput, + ListSbomValidationResultsCommandOutput, +} from "./commands/ListSbomValidationResultsCommand"; import { ListScheduledAuditsCommandInput, ListScheduledAuditsCommandOutput, @@ -776,6 +788,7 @@ export type ServiceInputTypes = | AcceptCertificateTransferCommandInput | AddThingToBillingGroupCommandInput | AddThingToThingGroupCommandInput + | AssociateSbomWithPackageVersionCommandInput | AssociateTargetsWithJobCommandInput | AttachPolicyCommandInput | AttachPrincipalPolicyCommandInput @@ -894,6 +907,7 @@ export type ServiceInputTypes = | DetachSecurityProfileCommandInput | DetachThingPrincipalCommandInput | DisableTopicRuleCommandInput + | DisassociateSbomFromPackageVersionCommandInput | EnableTopicRuleCommandInput | GetBehaviorModelTrainingSummariesCommandInput | GetBucketsAggregationCommandInput @@ -954,6 +968,7 @@ export type ServiceInputTypes = | ListProvisioningTemplatesCommandInput | ListRelatedResourcesForAuditFindingCommandInput | ListRoleAliasesCommandInput + | ListSbomValidationResultsCommandInput | ListScheduledAuditsCommandInput | ListSecurityProfilesCommandInput | ListSecurityProfilesForTargetCommandInput @@ -1036,6 +1051,7 @@ export type ServiceOutputTypes = | AcceptCertificateTransferCommandOutput | AddThingToBillingGroupCommandOutput | AddThingToThingGroupCommandOutput + | AssociateSbomWithPackageVersionCommandOutput | AssociateTargetsWithJobCommandOutput | AttachPolicyCommandOutput | AttachPrincipalPolicyCommandOutput @@ -1154,6 +1170,7 @@ export type ServiceOutputTypes = | DetachSecurityProfileCommandOutput | DetachThingPrincipalCommandOutput | DisableTopicRuleCommandOutput + | DisassociateSbomFromPackageVersionCommandOutput | EnableTopicRuleCommandOutput | GetBehaviorModelTrainingSummariesCommandOutput | GetBucketsAggregationCommandOutput @@ -1214,6 +1231,7 @@ export type ServiceOutputTypes = | ListProvisioningTemplatesCommandOutput | ListRelatedResourcesForAuditFindingCommandOutput | ListRoleAliasesCommandOutput + | ListSbomValidationResultsCommandOutput | ListScheduledAuditsCommandOutput | ListSecurityProfilesCommandOutput | ListSecurityProfilesForTargetCommandOutput diff --git a/clients/client-iot/src/commands/AssociateSbomWithPackageVersionCommand.ts b/clients/client-iot/src/commands/AssociateSbomWithPackageVersionCommand.ts new file mode 100644 index 0000000000000..46096a6ee7fe2 --- /dev/null +++ b/clients/client-iot/src/commands/AssociateSbomWithPackageVersionCommand.ts @@ -0,0 +1,123 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient"; +import { AssociateSbomWithPackageVersionRequest, AssociateSbomWithPackageVersionResponse } from "../models/models_0"; +import { + de_AssociateSbomWithPackageVersionCommand, + se_AssociateSbomWithPackageVersionCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link AssociateSbomWithPackageVersionCommand}. + */ +export interface AssociateSbomWithPackageVersionCommandInput extends AssociateSbomWithPackageVersionRequest {} +/** + * @public + * + * The output of {@link AssociateSbomWithPackageVersionCommand}. + */ +export interface AssociateSbomWithPackageVersionCommandOutput + extends AssociateSbomWithPackageVersionResponse, + __MetadataBearer {} + +/** + *

Associates a software bill of materials (SBOM) with a specific software package version.

+ *

Requires permission to access the AssociateSbomWithPackageVersion action.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { IoTClient, AssociateSbomWithPackageVersionCommand } from "@aws-sdk/client-iot"; // ES Modules import + * // const { IoTClient, AssociateSbomWithPackageVersionCommand } = require("@aws-sdk/client-iot"); // CommonJS import + * const client = new IoTClient(config); + * const input = { // AssociateSbomWithPackageVersionRequest + * packageName: "STRING_VALUE", // required + * versionName: "STRING_VALUE", // required + * sbom: { // Sbom + * s3Location: { // S3Location + * bucket: "STRING_VALUE", + * key: "STRING_VALUE", + * version: "STRING_VALUE", + * }, + * }, + * clientToken: "STRING_VALUE", + * }; + * const command = new AssociateSbomWithPackageVersionCommand(input); + * const response = await client.send(command); + * // { // AssociateSbomWithPackageVersionResponse + * // packageName: "STRING_VALUE", + * // versionName: "STRING_VALUE", + * // sbom: { // Sbom + * // s3Location: { // S3Location + * // bucket: "STRING_VALUE", + * // key: "STRING_VALUE", + * // version: "STRING_VALUE", + * // }, + * // }, + * // sbomValidationStatus: "IN_PROGRESS" || "FAILED" || "SUCCEEDED", + * // }; + * + * ``` + * + * @param AssociateSbomWithPackageVersionCommandInput - {@link AssociateSbomWithPackageVersionCommandInput} + * @returns {@link AssociateSbomWithPackageVersionCommandOutput} + * @see {@link AssociateSbomWithPackageVersionCommandInput} for command's `input` shape. + * @see {@link AssociateSbomWithPackageVersionCommandOutput} for command's `response` shape. + * @see {@link IoTClientResolvedConfig | config} for IoTClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

A resource with the same name already exists.

+ * + * @throws {@link InternalServerException} (server fault) + *

Internal error from the service that indicates an unexpected error or that the service + * is unavailable.

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

The specified resource does not exist.

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

A limit has been exceeded.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The rate exceeds the limit.

+ * + * @throws {@link ValidationException} (client fault) + *

The request is not valid.

+ * + * @throws {@link IoTServiceException} + *

Base exception class for all service exceptions from IoT service.

+ * + * @public + */ +export class AssociateSbomWithPackageVersionCommand extends $Command + .classBuilder< + AssociateSbomWithPackageVersionCommandInput, + AssociateSbomWithPackageVersionCommandOutput, + IoTClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: IoTClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSIotService", "AssociateSbomWithPackageVersion", {}) + .n("IoTClient", "AssociateSbomWithPackageVersionCommand") + .f(void 0, void 0) + .ser(se_AssociateSbomWithPackageVersionCommand) + .de(de_AssociateSbomWithPackageVersionCommand) + .build() {} diff --git a/clients/client-iot/src/commands/CreatePackageVersionCommand.ts b/clients/client-iot/src/commands/CreatePackageVersionCommand.ts index 8e63e6c96b4ff..7028c4d52d717 100644 --- a/clients/client-iot/src/commands/CreatePackageVersionCommand.ts +++ b/clients/client-iot/src/commands/CreatePackageVersionCommand.ts @@ -48,6 +48,14 @@ export interface CreatePackageVersionCommandOutput extends CreatePackageVersionR * attributes: { // ResourceAttributes * "": "STRING_VALUE", * }, + * artifact: { // PackageVersionArtifact + * s3Location: { // S3Location + * bucket: "STRING_VALUE", + * key: "STRING_VALUE", + * version: "STRING_VALUE", + * }, + * }, + * recipe: "STRING_VALUE", * tags: { // TagMap * "": "STRING_VALUE", * }, diff --git a/clients/client-iot/src/commands/DeleteCACertificateCommand.ts b/clients/client-iot/src/commands/DeleteCACertificateCommand.ts index 39cad1541f378..a8b3f5dcf35b4 100644 --- a/clients/client-iot/src/commands/DeleteCACertificateCommand.ts +++ b/clients/client-iot/src/commands/DeleteCACertificateCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { commonParams } from "../endpoint/EndpointParameters"; import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient"; -import { DeleteCACertificateRequest, DeleteCACertificateResponse } from "../models/models_0"; +import { DeleteCACertificateRequest, DeleteCACertificateResponse } from "../models/models_1"; import { de_DeleteCACertificateCommand, se_DeleteCACertificateCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-iot/src/commands/DeleteCertificateCommand.ts b/clients/client-iot/src/commands/DeleteCertificateCommand.ts index 4da59b853de9d..c13b8f5d47e0b 100644 --- a/clients/client-iot/src/commands/DeleteCertificateCommand.ts +++ b/clients/client-iot/src/commands/DeleteCertificateCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { commonParams } from "../endpoint/EndpointParameters"; import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient"; -import { DeleteCertificateRequest } from "../models/models_0"; +import { DeleteCertificateRequest } from "../models/models_1"; import { de_DeleteCertificateCommand, se_DeleteCertificateCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-iot/src/commands/DeleteCertificateProviderCommand.ts b/clients/client-iot/src/commands/DeleteCertificateProviderCommand.ts index 5445863950102..f9edb6503bfae 100644 --- a/clients/client-iot/src/commands/DeleteCertificateProviderCommand.ts +++ b/clients/client-iot/src/commands/DeleteCertificateProviderCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { commonParams } from "../endpoint/EndpointParameters"; import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient"; -import { DeleteCertificateProviderRequest, DeleteCertificateProviderResponse } from "../models/models_0"; +import { DeleteCertificateProviderRequest, DeleteCertificateProviderResponse } from "../models/models_1"; import { de_DeleteCertificateProviderCommand, se_DeleteCertificateProviderCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-iot/src/commands/DescribeJobCommand.ts b/clients/client-iot/src/commands/DescribeJobCommand.ts index 6191c590ea8e8..8ea9b31bf9c91 100644 --- a/clients/client-iot/src/commands/DescribeJobCommand.ts +++ b/clients/client-iot/src/commands/DescribeJobCommand.ts @@ -38,6 +38,7 @@ export interface DescribeJobCommandOutput extends DescribeJobResponse, __Metadat * const client = new IoTClient(config); * const input = { // DescribeJobRequest * jobId: "STRING_VALUE", // required + * beforeSubstitution: true || false, * }; * const command = new DescribeJobCommand(input); * const response = await client.send(command); diff --git a/clients/client-iot/src/commands/DisassociateSbomFromPackageVersionCommand.ts b/clients/client-iot/src/commands/DisassociateSbomFromPackageVersionCommand.ts new file mode 100644 index 0000000000000..d8017d9df2548 --- /dev/null +++ b/clients/client-iot/src/commands/DisassociateSbomFromPackageVersionCommand.ts @@ -0,0 +1,105 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient"; +import { + DisassociateSbomFromPackageVersionRequest, + DisassociateSbomFromPackageVersionResponse, +} from "../models/models_1"; +import { + de_DisassociateSbomFromPackageVersionCommand, + se_DisassociateSbomFromPackageVersionCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DisassociateSbomFromPackageVersionCommand}. + */ +export interface DisassociateSbomFromPackageVersionCommandInput extends DisassociateSbomFromPackageVersionRequest {} +/** + * @public + * + * The output of {@link DisassociateSbomFromPackageVersionCommand}. + */ +export interface DisassociateSbomFromPackageVersionCommandOutput + extends DisassociateSbomFromPackageVersionResponse, + __MetadataBearer {} + +/** + *

Disassociates a software bill of materials (SBOM) from a specific software package version.

+ *

Requires permission to access the DisassociateSbomWithPackageVersion action.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { IoTClient, DisassociateSbomFromPackageVersionCommand } from "@aws-sdk/client-iot"; // ES Modules import + * // const { IoTClient, DisassociateSbomFromPackageVersionCommand } = require("@aws-sdk/client-iot"); // CommonJS import + * const client = new IoTClient(config); + * const input = { // DisassociateSbomFromPackageVersionRequest + * packageName: "STRING_VALUE", // required + * versionName: "STRING_VALUE", // required + * clientToken: "STRING_VALUE", + * }; + * const command = new DisassociateSbomFromPackageVersionCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DisassociateSbomFromPackageVersionCommandInput - {@link DisassociateSbomFromPackageVersionCommandInput} + * @returns {@link DisassociateSbomFromPackageVersionCommandOutput} + * @see {@link DisassociateSbomFromPackageVersionCommandInput} for command's `input` shape. + * @see {@link DisassociateSbomFromPackageVersionCommandOutput} for command's `response` shape. + * @see {@link IoTClientResolvedConfig | config} for IoTClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

A resource with the same name already exists.

+ * + * @throws {@link InternalServerException} (server fault) + *

Internal error from the service that indicates an unexpected error or that the service + * is unavailable.

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

The specified resource does not exist.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The rate exceeds the limit.

+ * + * @throws {@link ValidationException} (client fault) + *

The request is not valid.

+ * + * @throws {@link IoTServiceException} + *

Base exception class for all service exceptions from IoT service.

+ * + * @public + */ +export class DisassociateSbomFromPackageVersionCommand extends $Command + .classBuilder< + DisassociateSbomFromPackageVersionCommandInput, + DisassociateSbomFromPackageVersionCommandOutput, + IoTClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: IoTClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSIotService", "DisassociateSbomFromPackageVersion", {}) + .n("IoTClient", "DisassociateSbomFromPackageVersionCommand") + .f(void 0, void 0) + .ser(se_DisassociateSbomFromPackageVersionCommand) + .de(de_DisassociateSbomFromPackageVersionCommand) + .build() {} diff --git a/clients/client-iot/src/commands/GetJobDocumentCommand.ts b/clients/client-iot/src/commands/GetJobDocumentCommand.ts index 184dd7a60d1b1..b09f3844d6f75 100644 --- a/clients/client-iot/src/commands/GetJobDocumentCommand.ts +++ b/clients/client-iot/src/commands/GetJobDocumentCommand.ts @@ -38,6 +38,7 @@ export interface GetJobDocumentCommandOutput extends GetJobDocumentResponse, __M * const client = new IoTClient(config); * const input = { // GetJobDocumentRequest * jobId: "STRING_VALUE", // required + * beforeSubstitution: true || false, * }; * const command = new GetJobDocumentCommand(input); * const response = await client.send(command); diff --git a/clients/client-iot/src/commands/GetPackageVersionCommand.ts b/clients/client-iot/src/commands/GetPackageVersionCommand.ts index 9d685beded693..ccadd386e0be6 100644 --- a/clients/client-iot/src/commands/GetPackageVersionCommand.ts +++ b/clients/client-iot/src/commands/GetPackageVersionCommand.ts @@ -54,10 +54,26 @@ export interface GetPackageVersionCommandOutput extends GetPackageVersionRespons * // attributes: { // ResourceAttributes * // "": "STRING_VALUE", * // }, + * // artifact: { // PackageVersionArtifact + * // s3Location: { // S3Location + * // bucket: "STRING_VALUE", + * // key: "STRING_VALUE", + * // version: "STRING_VALUE", + * // }, + * // }, * // status: "DRAFT" || "PUBLISHED" || "DEPRECATED", * // errorReason: "STRING_VALUE", * // creationDate: new Date("TIMESTAMP"), * // lastModifiedDate: new Date("TIMESTAMP"), + * // sbom: { // Sbom + * // s3Location: { + * // bucket: "STRING_VALUE", + * // key: "STRING_VALUE", + * // version: "STRING_VALUE", + * // }, + * // }, + * // sbomValidationStatus: "IN_PROGRESS" || "FAILED" || "SUCCEEDED", + * // recipe: "STRING_VALUE", * // }; * * ``` diff --git a/clients/client-iot/src/commands/ListMetricValuesCommand.ts b/clients/client-iot/src/commands/ListMetricValuesCommand.ts index 4ae18da029c21..a58cfeca7008e 100644 --- a/clients/client-iot/src/commands/ListMetricValuesCommand.ts +++ b/clients/client-iot/src/commands/ListMetricValuesCommand.ts @@ -6,7 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { commonParams } from "../endpoint/EndpointParameters"; import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient"; -import { ListMetricValuesRequest, ListMetricValuesResponse } from "../models/models_1"; +import { ListMetricValuesRequest } from "../models/models_1"; +import { ListMetricValuesResponse } from "../models/models_2"; import { de_ListMetricValuesCommand, se_ListMetricValuesCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-iot/src/commands/ListMitigationActionsCommand.ts b/clients/client-iot/src/commands/ListMitigationActionsCommand.ts index 73109b544e070..efc199da6cbdb 100644 --- a/clients/client-iot/src/commands/ListMitigationActionsCommand.ts +++ b/clients/client-iot/src/commands/ListMitigationActionsCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { commonParams } from "../endpoint/EndpointParameters"; import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient"; -import { ListMitigationActionsRequest, ListMitigationActionsResponse } from "../models/models_1"; +import { ListMitigationActionsRequest, ListMitigationActionsResponse } from "../models/models_2"; import { de_ListMitigationActionsCommand, se_ListMitigationActionsCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-iot/src/commands/ListOTAUpdatesCommand.ts b/clients/client-iot/src/commands/ListOTAUpdatesCommand.ts index 5184e9b6eb73e..96047997e88e1 100644 --- a/clients/client-iot/src/commands/ListOTAUpdatesCommand.ts +++ b/clients/client-iot/src/commands/ListOTAUpdatesCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { commonParams } from "../endpoint/EndpointParameters"; import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient"; -import { ListOTAUpdatesRequest, ListOTAUpdatesResponse } from "../models/models_1"; +import { ListOTAUpdatesRequest, ListOTAUpdatesResponse } from "../models/models_2"; import { de_ListOTAUpdatesCommand, se_ListOTAUpdatesCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-iot/src/commands/ListSbomValidationResultsCommand.ts b/clients/client-iot/src/commands/ListSbomValidationResultsCommand.ts new file mode 100644 index 0000000000000..ea04150f6e8eb --- /dev/null +++ b/clients/client-iot/src/commands/ListSbomValidationResultsCommand.ts @@ -0,0 +1,106 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient"; +import { ListSbomValidationResultsRequest, ListSbomValidationResultsResponse } from "../models/models_2"; +import { de_ListSbomValidationResultsCommand, se_ListSbomValidationResultsCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListSbomValidationResultsCommand}. + */ +export interface ListSbomValidationResultsCommandInput extends ListSbomValidationResultsRequest {} +/** + * @public + * + * The output of {@link ListSbomValidationResultsCommand}. + */ +export interface ListSbomValidationResultsCommandOutput extends ListSbomValidationResultsResponse, __MetadataBearer {} + +/** + *

The validation results for all software bill of materials (SBOM) attached to a specific software package version.

+ *

Requires permission to access the ListSbomValidationResults action.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { IoTClient, ListSbomValidationResultsCommand } from "@aws-sdk/client-iot"; // ES Modules import + * // const { IoTClient, ListSbomValidationResultsCommand } = require("@aws-sdk/client-iot"); // CommonJS import + * const client = new IoTClient(config); + * const input = { // ListSbomValidationResultsRequest + * packageName: "STRING_VALUE", // required + * versionName: "STRING_VALUE", // required + * validationResult: "FAILED" || "SUCCEEDED", + * maxResults: Number("int"), + * nextToken: "STRING_VALUE", + * }; + * const command = new ListSbomValidationResultsCommand(input); + * const response = await client.send(command); + * // { // ListSbomValidationResultsResponse + * // validationResultSummaries: [ // SbomValidationResultSummaryList + * // { // SbomValidationResultSummary + * // fileName: "STRING_VALUE", + * // validationResult: "FAILED" || "SUCCEEDED", + * // errorCode: "INCOMPATIBLE_FORMAT" || "FILE_SIZE_LIMIT_EXCEEDED", + * // errorMessage: "STRING_VALUE", + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListSbomValidationResultsCommandInput - {@link ListSbomValidationResultsCommandInput} + * @returns {@link ListSbomValidationResultsCommandOutput} + * @see {@link ListSbomValidationResultsCommandInput} for command's `input` shape. + * @see {@link ListSbomValidationResultsCommandOutput} for command's `response` shape. + * @see {@link IoTClientResolvedConfig | config} for IoTClient's `config` shape. + * + * @throws {@link InternalServerException} (server fault) + *

Internal error from the service that indicates an unexpected error or that the service + * is unavailable.

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

The specified resource does not exist.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The rate exceeds the limit.

+ * + * @throws {@link ValidationException} (client fault) + *

The request is not valid.

+ * + * @throws {@link IoTServiceException} + *

Base exception class for all service exceptions from IoT service.

+ * + * @public + */ +export class ListSbomValidationResultsCommand extends $Command + .classBuilder< + ListSbomValidationResultsCommandInput, + ListSbomValidationResultsCommandOutput, + IoTClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: IoTClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSIotService", "ListSbomValidationResults", {}) + .n("IoTClient", "ListSbomValidationResultsCommand") + .f(void 0, void 0) + .ser(se_ListSbomValidationResultsCommand) + .de(de_ListSbomValidationResultsCommand) + .build() {} diff --git a/clients/client-iot/src/commands/UpdatePackageVersionCommand.ts b/clients/client-iot/src/commands/UpdatePackageVersionCommand.ts index a345090fdfe6d..039a9a8ece6fc 100644 --- a/clients/client-iot/src/commands/UpdatePackageVersionCommand.ts +++ b/clients/client-iot/src/commands/UpdatePackageVersionCommand.ts @@ -47,7 +47,15 @@ export interface UpdatePackageVersionCommandOutput extends UpdatePackageVersionR * attributes: { // ResourceAttributes * "": "STRING_VALUE", * }, + * artifact: { // PackageVersionArtifact + * s3Location: { // S3Location + * bucket: "STRING_VALUE", + * key: "STRING_VALUE", + * version: "STRING_VALUE", + * }, + * }, * action: "PUBLISH" || "DEPRECATE", + * recipe: "STRING_VALUE", * clientToken: "STRING_VALUE", * }; * const command = new UpdatePackageVersionCommand(input); diff --git a/clients/client-iot/src/commands/UpdateStreamCommand.ts b/clients/client-iot/src/commands/UpdateStreamCommand.ts index eee5b4e57e5d7..5393c2bc9c1c7 100644 --- a/clients/client-iot/src/commands/UpdateStreamCommand.ts +++ b/clients/client-iot/src/commands/UpdateStreamCommand.ts @@ -74,6 +74,9 @@ export interface UpdateStreamCommandOutput extends UpdateStreamResponse, __Metad * @throws {@link InvalidRequestException} (client fault) *

The request is not valid.

* + * @throws {@link LimitExceededException} (client fault) + *

A limit has been exceeded.

+ * * @throws {@link ResourceNotFoundException} (client fault) *

The specified resource does not exist.

* diff --git a/clients/client-iot/src/commands/index.ts b/clients/client-iot/src/commands/index.ts index a69efb0339be2..959eb509086a0 100644 --- a/clients/client-iot/src/commands/index.ts +++ b/clients/client-iot/src/commands/index.ts @@ -2,6 +2,7 @@ export * from "./AcceptCertificateTransferCommand"; export * from "./AddThingToBillingGroupCommand"; export * from "./AddThingToThingGroupCommand"; +export * from "./AssociateSbomWithPackageVersionCommand"; export * from "./AssociateTargetsWithJobCommand"; export * from "./AttachPolicyCommand"; export * from "./AttachPrincipalPolicyCommand"; @@ -120,6 +121,7 @@ export * from "./DetachPrincipalPolicyCommand"; export * from "./DetachSecurityProfileCommand"; export * from "./DetachThingPrincipalCommand"; export * from "./DisableTopicRuleCommand"; +export * from "./DisassociateSbomFromPackageVersionCommand"; export * from "./EnableTopicRuleCommand"; export * from "./GetBehaviorModelTrainingSummariesCommand"; export * from "./GetBucketsAggregationCommand"; @@ -180,6 +182,7 @@ export * from "./ListProvisioningTemplateVersionsCommand"; export * from "./ListProvisioningTemplatesCommand"; export * from "./ListRelatedResourcesForAuditFindingCommand"; export * from "./ListRoleAliasesCommand"; +export * from "./ListSbomValidationResultsCommand"; export * from "./ListScheduledAuditsCommand"; export * from "./ListSecurityProfilesCommand"; export * from "./ListSecurityProfilesForTargetCommand"; diff --git a/clients/client-iot/src/models/models_0.ts b/clients/client-iot/src/models/models_0.ts index f0639232a4d02..dc8489ab3fbe5 100644 --- a/clients/client-iot/src/models/models_0.ts +++ b/clients/client-iot/src/models/models_0.ts @@ -2301,6 +2301,206 @@ export interface Allowed { policies?: Policy[]; } +/** + *

The S3 location.

+ * @public + */ +export interface S3Location { + /** + *

The S3 bucket.

+ * @public + */ + bucket?: string; + + /** + *

The S3 key.

+ * @public + */ + key?: string; + + /** + *

The S3 bucket version.

+ * @public + */ + version?: string; +} + +/** + *

The Amazon S3 location for the software bill of materials associated with a software + * package version.

+ * @public + */ +export interface Sbom { + /** + *

The S3 location.

+ * @public + */ + s3Location?: S3Location; +} + +/** + * @public + */ +export interface AssociateSbomWithPackageVersionRequest { + /** + *

The name of the new software package.

+ * @public + */ + packageName: string | undefined; + + /** + *

The name of the new package version.

+ * @public + */ + versionName: string | undefined; + + /** + *

The Amazon S3 location for the software bill of materials associated with a software + * package version.

+ * @public + */ + sbom: Sbom | undefined; + + /** + *

A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.

+ * @public + */ + clientToken?: string; +} + +/** + * @public + * @enum + */ +export const SbomValidationStatus = { + FAILED: "FAILED", + IN_PROGRESS: "IN_PROGRESS", + SUCCEEDED: "SUCCEEDED", +} as const; + +/** + * @public + */ +export type SbomValidationStatus = (typeof SbomValidationStatus)[keyof typeof SbomValidationStatus]; + +/** + * @public + */ +export interface AssociateSbomWithPackageVersionResponse { + /** + *

The name of the new software package.

+ * @public + */ + packageName?: string; + + /** + *

The name of the new package version.

+ * @public + */ + versionName?: string; + + /** + *

The Amazon S3 location for the software bill of materials associated with a software + * package version.

+ * @public + */ + sbom?: Sbom; + + /** + *

The status of the initial validation for the SBOM against the Software Package Data Exchange (SPDX) and CycloneDX industry standard format.

+ * @public + */ + sbomValidationStatus?: SbomValidationStatus; +} + +/** + *

A resource with the same name already exists.

+ * @public + */ +export class ConflictException extends __BaseException { + readonly name: "ConflictException" = "ConflictException"; + readonly $fault: "client" = "client"; + /** + *

A resource with the same name already exists.

+ * @public + */ + resourceId?: string; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ConflictException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ConflictException.prototype); + this.resourceId = opts.resourceId; + } +} + +/** + *

Internal error from the service that indicates an unexpected error or that the service + * is unavailable.

+ * @public + */ +export class InternalServerException extends __BaseException { + readonly name: "InternalServerException" = "InternalServerException"; + readonly $fault: "server" = "server"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "InternalServerException", + $fault: "server", + ...opts, + }); + Object.setPrototypeOf(this, InternalServerException.prototype); + } +} + +/** + *

A limit has been exceeded.

+ * @public + */ +export class ServiceQuotaExceededException extends __BaseException { + readonly name: "ServiceQuotaExceededException" = "ServiceQuotaExceededException"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ServiceQuotaExceededException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ServiceQuotaExceededException.prototype); + } +} + +/** + *

The request is not valid.

+ * @public + */ +export class ValidationException extends __BaseException { + readonly name: "ValidationException" = "ValidationException"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ValidationException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ValidationException.prototype); + } +} + /** * @public */ @@ -4256,7 +4456,7 @@ export interface ServerCertificateConfig { /** *

A Boolean value that indicates whether Online Certificate Status Protocol (OCSP) server * certificate check is enabled or not.

- *

For more information, see Configuring OCSP server-certificate stapling in domain + *

For more information, see Configuring OCSP server-certificate stapling in domain * configuration from Amazon Web Services IoT Core Developer Guide.

* @public */ @@ -5086,33 +5286,6 @@ export interface CreateJobResponse { description?: string; } -/** - *

A resource with the same name already exists.

- * @public - */ -export class ConflictException extends __BaseException { - readonly name: "ConflictException" = "ConflictException"; - readonly $fault: "client" = "client"; - /** - *

A resource with the same name already exists.

- * @public - */ - resourceId?: string; - - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ConflictException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ConflictException.prototype); - this.resourceId = opts.resourceId; - } -} - /** * @public */ @@ -5834,30 +6007,6 @@ export interface CodeSigning { customCodeSigning?: CustomCodeSigning; } -/** - *

The S3 location.

- * @public - */ -export interface S3Location { - /** - *

The S3 bucket.

- * @public - */ - bucket?: string; - - /** - *

The S3 key.

- * @public - */ - key?: string; - - /** - *

The S3 bucket version.

- * @public - */ - version?: string; -} - /** *

Describes a group of files that can be streamed.

* @public @@ -6151,64 +6300,16 @@ export interface CreatePackageResponse { } /** - *

Internal error from the service that indicates an unexpected error or that the service - * is unavailable.

+ *

The Amazon S3 location for the artifacts associated with a software package + * version.

* @public */ -export class InternalServerException extends __BaseException { - readonly name: "InternalServerException" = "InternalServerException"; - readonly $fault: "server" = "server"; +export interface PackageVersionArtifact { /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "InternalServerException", - $fault: "server", - ...opts, - }); - Object.setPrototypeOf(this, InternalServerException.prototype); - } -} - -/** - *

A limit has been exceeded.

- * @public - */ -export class ServiceQuotaExceededException extends __BaseException { - readonly name: "ServiceQuotaExceededException" = "ServiceQuotaExceededException"; - readonly $fault: "client" = "client"; - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ServiceQuotaExceededException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ServiceQuotaExceededException.prototype); - } -} - -/** - *

The request is not valid.

- * @public - */ -export class ValidationException extends __BaseException { - readonly name: "ValidationException" = "ValidationException"; - readonly $fault: "client" = "client"; - /** - * @internal + *

The S3 location.

+ * @public */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ValidationException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ValidationException.prototype); - } + s3Location?: S3Location; } /** @@ -6240,6 +6341,20 @@ export interface CreatePackageVersionRequest { */ attributes?: Record; + /** + *

The various build components created during the build process such as libraries and + * configuration files that make up a software package version.

+ * @public + */ + artifact?: PackageVersionArtifact; + + /** + *

The inline job document associated with a software package version used for a quick job + * deployment via IoT Jobs.

+ * @public + */ + recipe?: string; + /** *

Metadata that can be used to manage the package version.

* @public @@ -7640,61 +7755,6 @@ export class CertificateStateException extends __BaseException { } } -/** - *

Input for the DeleteCACertificate operation.

- * @public - */ -export interface DeleteCACertificateRequest { - /** - *

The ID of the certificate to delete. (The last part of the certificate ARN contains - * the certificate ID.)

- * @public - */ - certificateId: string | undefined; -} - -/** - *

The output for the DeleteCACertificate operation.

- * @public - */ -export interface DeleteCACertificateResponse {} - -/** - *

The input for the DeleteCertificate operation.

- * @public - */ -export interface DeleteCertificateRequest { - /** - *

The ID of the certificate. (The last part of the certificate ARN contains the - * certificate ID.)

- * @public - */ - certificateId: string | undefined; - - /** - *

Forces the deletion of a certificate if it is inactive and is not attached to an IoT - * thing.

- * @public - */ - forceDelete?: boolean; -} - -/** - * @public - */ -export interface DeleteCertificateProviderRequest { - /** - *

The name of the certificate provider.

- * @public - */ - certificateProviderName: string | undefined; -} - -/** - * @public - */ -export interface DeleteCertificateProviderResponse {} - /** * @internal */ @@ -7734,6 +7794,7 @@ export const CreatePackageVersionRequestFilterSensitiveLog = (obj: CreatePackage ...obj, ...(obj.description && { description: SENSITIVE_STRING }), ...(obj.attributes && { attributes: SENSITIVE_STRING }), + ...(obj.recipe && { recipe: SENSITIVE_STRING }), }); /** diff --git a/clients/client-iot/src/models/models_1.ts b/clients/client-iot/src/models/models_1.ts index aa1c1a3d9f808..3d672a38a4952 100644 --- a/clients/client-iot/src/models/models_1.ts +++ b/clients/client-iot/src/models/models_1.ts @@ -50,12 +50,15 @@ import { MitigationActionParams, OTAUpdateFile, OTAUpdateStatus, + PackageVersionArtifact, PackageVersionStatus, Policy, PresignedUrlConfig, Protocol, ProvisioningHook, ResourceIdentifier, + Sbom, + SbomValidationStatus, SchedulingConfig, ServerCertificateConfig, ServiceType, @@ -71,6 +74,61 @@ import { VerificationState, } from "./models_0"; +/** + *

Input for the DeleteCACertificate operation.

+ * @public + */ +export interface DeleteCACertificateRequest { + /** + *

The ID of the certificate to delete. (The last part of the certificate ARN contains + * the certificate ID.)

+ * @public + */ + certificateId: string | undefined; +} + +/** + *

The output for the DeleteCACertificate operation.

+ * @public + */ +export interface DeleteCACertificateResponse {} + +/** + *

The input for the DeleteCertificate operation.

+ * @public + */ +export interface DeleteCertificateRequest { + /** + *

The ID of the certificate. (The last part of the certificate ARN contains the + * certificate ID.)

+ * @public + */ + certificateId: string | undefined; + + /** + *

Forces the deletion of a certificate if it is inactive and is not attached to an IoT + * thing.

+ * @public + */ + forceDelete?: boolean; +} + +/** + * @public + */ +export interface DeleteCertificateProviderRequest { + /** + *

The name of the certificate provider.

+ * @public + */ + certificateProviderName: string | undefined; +} + +/** + * @public + */ +export interface DeleteCertificateProviderResponse {} + /** * @public */ @@ -2282,6 +2340,12 @@ export interface DescribeJobRequest { * @public */ jobId: string | undefined; + + /** + *

A flag that provides a view of the job document before and after the substitution parameters have been resolved with their exact values.

+ * @public + */ + beforeSubstitution?: boolean; } /** @@ -3970,6 +4034,34 @@ export interface DisableTopicRuleRequest { ruleName: string | undefined; } +/** + * @public + */ +export interface DisassociateSbomFromPackageVersionRequest { + /** + *

The name of the new software package.

+ * @public + */ + packageName: string | undefined; + + /** + *

The name of the new package version.

+ * @public + */ + versionName: string | undefined; + + /** + *

A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.

+ * @public + */ + clientToken?: string; +} + +/** + * @public + */ +export interface DisassociateSbomFromPackageVersionResponse {} + /** *

The input for the EnableTopicRuleRequest operation.

* @public @@ -4655,6 +4747,12 @@ export interface GetJobDocumentRequest { * @public */ jobId: string | undefined; + + /** + *

A flag that provides a view of the job document before and after the substitution parameters have been resolved with their exact values.

+ * @public + */ + beforeSubstitution?: boolean; } /** @@ -4981,6 +5079,12 @@ export interface GetPackageVersionResponse { */ attributes?: Record; + /** + *

The various components that make up a software package version.

+ * @public + */ + artifact?: PackageVersionArtifact; + /** *

The status associated to the package version. For more information, see Package version lifecycle.

* @public @@ -5004,6 +5108,26 @@ export interface GetPackageVersionResponse { * @public */ lastModifiedDate?: Date; + + /** + *

The software bill of materials for a software package version.

+ * @public + */ + sbom?: Sbom; + + /** + *

The status of the validation for a new software bill of materials added to a software + * package version.

+ * @public + */ + sbomValidationStatus?: SbomValidationStatus; + + /** + *

The inline job document associated with a software package version used for a quick job + * deployment via IoT Jobs.

+ * @public + */ + recipe?: string; } /** @@ -7331,152 +7455,6 @@ export interface MetricDatum { value?: MetricValue; } -/** - * @public - */ -export interface ListMetricValuesResponse { - /** - *

The data the thing reports for the metric during the specified time period.

- * @public - */ - metricDatumList?: MetricDatum[]; - - /** - *

A token that can be used to retrieve the next set of results, or null - * if there are no additional results.

- * @public - */ - nextToken?: string; -} - -/** - * @public - */ -export interface ListMitigationActionsRequest { - /** - *

Specify a value to limit the result to mitigation actions with a specific action type.

- * @public - */ - actionType?: MitigationActionType; - - /** - *

The maximum number of results to return at one time. The default is 25.

- * @public - */ - maxResults?: number; - - /** - *

The token for the next set of results.

- * @public - */ - nextToken?: string; -} - -/** - *

Information that identifies a mitigation action. This information is returned by ListMitigationActions.

- * @public - */ -export interface MitigationActionIdentifier { - /** - *

The friendly name of the mitigation action.

- * @public - */ - actionName?: string; - - /** - *

The IAM role ARN used to apply this mitigation action.

- * @public - */ - actionArn?: string; - - /** - *

The date when this mitigation action was created.

- * @public - */ - creationDate?: Date; -} - -/** - * @public - */ -export interface ListMitigationActionsResponse { - /** - *

A set of actions that matched the specified filter criteria.

- * @public - */ - actionIdentifiers?: MitigationActionIdentifier[]; - - /** - *

The token for the next set of results.

- * @public - */ - nextToken?: string; -} - -/** - * @public - */ -export interface ListOTAUpdatesRequest { - /** - *

The maximum number of results to return at one time.

- * @public - */ - maxResults?: number; - - /** - *

A token used to retrieve the next set of results.

- * @public - */ - nextToken?: string; - - /** - *

The OTA update job status.

- * @public - */ - otaUpdateStatus?: OTAUpdateStatus; -} - -/** - *

An OTA update summary.

- * @public - */ -export interface OTAUpdateSummary { - /** - *

The OTA update ID.

- * @public - */ - otaUpdateId?: string; - - /** - *

The OTA update ARN.

- * @public - */ - otaUpdateArn?: string; - - /** - *

The date when the OTA update was created.

- * @public - */ - creationDate?: Date; -} - -/** - * @public - */ -export interface ListOTAUpdatesResponse { - /** - *

A list of OTA update jobs.

- * @public - */ - otaUpdates?: OTAUpdateSummary[]; - - /** - *

A token to use to get the next set of results.

- * @public - */ - nextToken?: string; -} - /** * @internal */ @@ -7492,4 +7470,5 @@ export const GetPackageVersionResponseFilterSensitiveLog = (obj: GetPackageVersi ...obj, ...(obj.description && { description: SENSITIVE_STRING }), ...(obj.attributes && { attributes: SENSITIVE_STRING }), + ...(obj.recipe && { recipe: SENSITIVE_STRING }), }); diff --git a/clients/client-iot/src/models/models_2.ts b/clients/client-iot/src/models/models_2.ts index 003526442b660..85f8ccdd57d3a 100644 --- a/clients/client-iot/src/models/models_2.ts +++ b/clients/client-iot/src/models/models_2.ts @@ -33,6 +33,8 @@ import { MetricToRetain, MetricValue, MitigationActionParams, + OTAUpdateStatus, + PackageVersionArtifact, PackageVersionStatus, Policy, PresignedUrlConfig, @@ -64,6 +66,8 @@ import { EventType, GroupNameAndArn, LogTargetType, + MetricDatum, + MitigationActionType, RegistrationConfig, Status, ThingGroupIndexingConfiguration, @@ -73,6 +77,152 @@ import { ViolationEventOccurrenceRange, } from "./models_1"; +/** + * @public + */ +export interface ListMetricValuesResponse { + /** + *

The data the thing reports for the metric during the specified time period.

+ * @public + */ + metricDatumList?: MetricDatum[]; + + /** + *

A token that can be used to retrieve the next set of results, or null + * if there are no additional results.

+ * @public + */ + nextToken?: string; +} + +/** + * @public + */ +export interface ListMitigationActionsRequest { + /** + *

Specify a value to limit the result to mitigation actions with a specific action type.

+ * @public + */ + actionType?: MitigationActionType; + + /** + *

The maximum number of results to return at one time. The default is 25.

+ * @public + */ + maxResults?: number; + + /** + *

The token for the next set of results.

+ * @public + */ + nextToken?: string; +} + +/** + *

Information that identifies a mitigation action. This information is returned by ListMitigationActions.

+ * @public + */ +export interface MitigationActionIdentifier { + /** + *

The friendly name of the mitigation action.

+ * @public + */ + actionName?: string; + + /** + *

The IAM role ARN used to apply this mitigation action.

+ * @public + */ + actionArn?: string; + + /** + *

The date when this mitigation action was created.

+ * @public + */ + creationDate?: Date; +} + +/** + * @public + */ +export interface ListMitigationActionsResponse { + /** + *

A set of actions that matched the specified filter criteria.

+ * @public + */ + actionIdentifiers?: MitigationActionIdentifier[]; + + /** + *

The token for the next set of results.

+ * @public + */ + nextToken?: string; +} + +/** + * @public + */ +export interface ListOTAUpdatesRequest { + /** + *

The maximum number of results to return at one time.

+ * @public + */ + maxResults?: number; + + /** + *

A token used to retrieve the next set of results.

+ * @public + */ + nextToken?: string; + + /** + *

The OTA update job status.

+ * @public + */ + otaUpdateStatus?: OTAUpdateStatus; +} + +/** + *

An OTA update summary.

+ * @public + */ +export interface OTAUpdateSummary { + /** + *

The OTA update ID.

+ * @public + */ + otaUpdateId?: string; + + /** + *

The OTA update ARN.

+ * @public + */ + otaUpdateArn?: string; + + /** + *

The date when the OTA update was created.

+ * @public + */ + creationDate?: Date; +} + +/** + * @public + */ +export interface ListOTAUpdatesResponse { + /** + *

A list of OTA update jobs.

+ * @public + */ + otaUpdates?: OTAUpdateSummary[]; + + /** + *

A token to use to get the next set of results.

+ * @public + */ + nextToken?: string; +} + /** *

The input to the ListOutgoingCertificates operation.

* @public @@ -772,6 +922,118 @@ export interface ListRoleAliasesResponse { nextMarker?: string; } +/** + * @public + * @enum + */ +export const SbomValidationResult = { + FAILED: "FAILED", + SUCCEEDED: "SUCCEEDED", +} as const; + +/** + * @public + */ +export type SbomValidationResult = (typeof SbomValidationResult)[keyof typeof SbomValidationResult]; + +/** + * @public + */ +export interface ListSbomValidationResultsRequest { + /** + *

The name of the new software package.

+ * @public + */ + packageName: string | undefined; + + /** + *

The name of the new package version.

+ * @public + */ + versionName: string | undefined; + + /** + *

The end result of the

+ * @public + */ + validationResult?: SbomValidationResult; + + /** + *

The maximum number of results to return at one time.

+ * @public + */ + maxResults?: number; + + /** + *

A token that can be used to retrieve the next set of results, or null if there are no additional results.

+ * @public + */ + nextToken?: string; +} + +/** + * @public + * @enum + */ +export const SbomValidationErrorCode = { + FILE_SIZE_LIMIT_EXCEEDED: "FILE_SIZE_LIMIT_EXCEEDED", + INCOMPATIBLE_FORMAT: "INCOMPATIBLE_FORMAT", +} as const; + +/** + * @public + */ +export type SbomValidationErrorCode = (typeof SbomValidationErrorCode)[keyof typeof SbomValidationErrorCode]; + +/** + *

A summary of the validation results for a specific software bill of materials (SBOM) attached to a software package version.

+ * @public + */ +export interface SbomValidationResultSummary { + /** + *

The name of the SBOM file.

+ * @public + */ + fileName?: string; + + /** + *

The end result of the SBOM validation.

+ * @public + */ + validationResult?: SbomValidationResult; + + /** + *

The errorCode representing the validation failure error if the SBOM + * validation failed.

+ * @public + */ + errorCode?: SbomValidationErrorCode; + + /** + *

The errorMessage representing the validation failure error if the SBOM + * validation failed.

+ * @public + */ + errorMessage?: string; +} + +/** + * @public + */ +export interface ListSbomValidationResultsResponse { + /** + *

A summary of the validation results for each software bill of materials attached to a software package version.

+ * @public + */ + validationResultSummaries?: SbomValidationResultSummary[]; + + /** + *

A token that can be used to retrieve the next set of results, or null if there are no additional results.

+ * @public + */ + nextToken?: string; +} + /** * @public */ @@ -4308,12 +4570,25 @@ export interface UpdatePackageVersionRequest { */ attributes?: Record; + /** + *

The various components that make up a software package version.

+ * @public + */ + artifact?: PackageVersionArtifact; + /** *

The status that the package version should be assigned. For more information, see Package version lifecycle.

* @public */ action?: PackageVersionAction; + /** + *

The inline job document associated with a software package version used for a quick job + * deployment via IoT Jobs.

+ * @public + */ + recipe?: string; + /** *

A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. * Don't reuse this client token if a new idempotent request is required.

@@ -4953,4 +5228,5 @@ export const UpdatePackageVersionRequestFilterSensitiveLog = (obj: UpdatePackage ...obj, ...(obj.description && { description: SENSITIVE_STRING }), ...(obj.attributes && { attributes: SENSITIVE_STRING }), + ...(obj.recipe && { recipe: SENSITIVE_STRING }), }); diff --git a/clients/client-iot/src/pagination/ListSbomValidationResultsPaginator.ts b/clients/client-iot/src/pagination/ListSbomValidationResultsPaginator.ts new file mode 100644 index 0000000000000..727a5b9233b6a --- /dev/null +++ b/clients/client-iot/src/pagination/ListSbomValidationResultsPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { + ListSbomValidationResultsCommand, + ListSbomValidationResultsCommandInput, + ListSbomValidationResultsCommandOutput, +} from "../commands/ListSbomValidationResultsCommand"; +import { IoTClient } from "../IoTClient"; +import { IoTPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListSbomValidationResults: ( + config: IoTPaginationConfiguration, + input: ListSbomValidationResultsCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + IoTPaginationConfiguration, + ListSbomValidationResultsCommandInput, + ListSbomValidationResultsCommandOutput +>(IoTClient, ListSbomValidationResultsCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-iot/src/pagination/index.ts b/clients/client-iot/src/pagination/index.ts index f280106d7ca79..4fc9c40e63cd1 100644 --- a/clients/client-iot/src/pagination/index.ts +++ b/clients/client-iot/src/pagination/index.ts @@ -39,6 +39,7 @@ export * from "./ListProvisioningTemplateVersionsPaginator"; export * from "./ListProvisioningTemplatesPaginator"; export * from "./ListRelatedResourcesForAuditFindingPaginator"; export * from "./ListRoleAliasesPaginator"; +export * from "./ListSbomValidationResultsPaginator"; export * from "./ListScheduledAuditsPaginator"; export * from "./ListSecurityProfilesForTargetPaginator"; export * from "./ListSecurityProfilesPaginator"; diff --git a/clients/client-iot/src/protocols/Aws_restJson1.ts b/clients/client-iot/src/protocols/Aws_restJson1.ts index 4c1a314723f3c..294784bbad48d 100644 --- a/clients/client-iot/src/protocols/Aws_restJson1.ts +++ b/clients/client-iot/src/protocols/Aws_restJson1.ts @@ -42,6 +42,10 @@ import { AddThingToThingGroupCommandInput, AddThingToThingGroupCommandOutput, } from "../commands/AddThingToThingGroupCommand"; +import { + AssociateSbomWithPackageVersionCommandInput, + AssociateSbomWithPackageVersionCommandOutput, +} from "../commands/AssociateSbomWithPackageVersionCommand"; import { AssociateTargetsWithJobCommandInput, AssociateTargetsWithJobCommandOutput, @@ -358,6 +362,10 @@ import { DetachThingPrincipalCommandOutput, } from "../commands/DetachThingPrincipalCommand"; import { DisableTopicRuleCommandInput, DisableTopicRuleCommandOutput } from "../commands/DisableTopicRuleCommand"; +import { + DisassociateSbomFromPackageVersionCommandInput, + DisassociateSbomFromPackageVersionCommandOutput, +} from "../commands/DisassociateSbomFromPackageVersionCommand"; import { EnableTopicRuleCommandInput, EnableTopicRuleCommandOutput } from "../commands/EnableTopicRuleCommand"; import { GetBehaviorModelTrainingSummariesCommandInput, @@ -508,6 +516,10 @@ import { ListRelatedResourcesForAuditFindingCommandOutput, } from "../commands/ListRelatedResourcesForAuditFindingCommand"; import { ListRoleAliasesCommandInput, ListRoleAliasesCommandOutput } from "../commands/ListRoleAliasesCommand"; +import { + ListSbomValidationResultsCommandInput, + ListSbomValidationResultsCommandOutput, +} from "../commands/ListSbomValidationResultsCommand"; import { ListScheduledAuditsCommandInput, ListScheduledAuditsCommandOutput, @@ -822,6 +834,7 @@ import { MqttHeaders, OpenSearchAction, OTAUpdateFile, + PackageVersionArtifact, PolicyVersionIdentifier, PresignedUrlConfig, Protocol, @@ -840,6 +853,7 @@ import { S3Destination, S3Location, SalesforceAction, + Sbom, SchedulingConfig, ServerCertificateConfig, ServiceQuotaExceededException, @@ -900,10 +914,8 @@ import { JobSummary, JobTemplateSummary, MetricDatum, - MitigationActionIdentifier, NotConfiguredException, OTAUpdateInfo, - OTAUpdateSummary, PercentPair, RegistrationConfig, RoleAliasDescription, @@ -925,7 +937,9 @@ import { InvalidResponseException, LoggingOptionsPayload, LogTarget, + MitigationActionIdentifier, MqttContext, + OTAUpdateSummary, OutgoingCertificate, PackageSummary, PackageVersionSummary, @@ -1013,6 +1027,33 @@ export const se_AddThingToThingGroupCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1AssociateSbomWithPackageVersionCommand + */ +export const se_AssociateSbomWithPackageVersionCommand = async ( + input: AssociateSbomWithPackageVersionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/packages/{packageName}/versions/{versionName}/sbom"); + b.p("packageName", () => input.packageName!, "{packageName}", false); + b.p("versionName", () => input.versionName!, "{versionName}", false); + const query: any = map({ + [_cT]: [, input[_cT] ?? generateIdempotencyToken()], + }); + let body: any; + body = JSON.stringify( + take(input, { + sbom: (_) => _json(_), + }) + ); + b.m("PUT").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1AssociateTargetsWithJobCommand */ @@ -1735,8 +1776,10 @@ export const se_CreatePackageVersionCommand = async ( let body: any; body = JSON.stringify( take(input, { + artifact: (_) => _json(_), attributes: (_) => _json(_), description: [], + recipe: [], tags: (_) => _json(_), }) ); @@ -3037,8 +3080,11 @@ export const se_DescribeJobCommand = async ( const headers: any = {}; b.bp("/jobs/{jobId}"); b.p("jobId", () => input.jobId!, "{jobId}", false); + const query: any = map({ + [_bS]: [() => input.beforeSubstitution !== void 0, () => input[_bS]!.toString()], + }); let body: any; - b.m("GET").h(headers).b(body); + b.m("GET").h(headers).q(query).b(body); return b.build(); }; @@ -3368,6 +3414,26 @@ export const se_DisableTopicRuleCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1DisassociateSbomFromPackageVersionCommand + */ +export const se_DisassociateSbomFromPackageVersionCommand = async ( + input: DisassociateSbomFromPackageVersionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/packages/{packageName}/versions/{versionName}/sbom"); + b.p("packageName", () => input.packageName!, "{packageName}", false); + b.p("versionName", () => input.versionName!, "{versionName}", false); + const query: any = map({ + [_cT]: [, input[_cT] ?? generateIdempotencyToken()], + }); + let body: any; + b.m("DELETE").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1EnableTopicRuleCommand */ @@ -3507,8 +3573,11 @@ export const se_GetJobDocumentCommand = async ( const headers: any = {}; b.bp("/jobs/{jobId}/job-document"); b.p("jobId", () => input.jobId!, "{jobId}", false); + const query: any = map({ + [_bS]: [() => input.beforeSubstitution !== void 0, () => input[_bS]!.toString()], + }); let body: any; - b.m("GET").h(headers).b(body); + b.m("GET").h(headers).q(query).b(body); return b.build(); }; @@ -4581,6 +4650,28 @@ export const se_ListRoleAliasesCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1ListSbomValidationResultsCommand + */ +export const se_ListSbomValidationResultsCommand = async ( + input: ListSbomValidationResultsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/packages/{packageName}/versions/{versionName}/sbom-validation-results"); + b.p("packageName", () => input.packageName!, "{packageName}", false); + b.p("versionName", () => input.versionName!, "{versionName}", false); + const query: any = map({ + [_vR]: [, input[_vR]!], + [_mR]: [() => input.maxResults !== void 0, () => input[_mR]!.toString()], + [_nT]: [, input[_nT]!], + }); + let body: any; + b.m("GET").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1ListScheduledAuditsCommand */ @@ -6076,8 +6167,10 @@ export const se_UpdatePackageVersionCommand = async ( body = JSON.stringify( take(input, { action: [], + artifact: (_) => _json(_), attributes: (_) => _json(_), description: [], + recipe: [], }) ); b.m("PATCH").h(headers).q(query).b(body); @@ -6393,6 +6486,30 @@ export const de_AddThingToThingGroupCommand = async ( return contents; }; +/** + * deserializeAws_restJson1AssociateSbomWithPackageVersionCommand + */ +export const de_AssociateSbomWithPackageVersionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + packageName: __expectString, + sbom: _json, + sbomValidationStatus: __expectString, + versionName: __expectString, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1AssociateTargetsWithJobCommand */ @@ -8871,6 +8988,23 @@ export const de_DisableTopicRuleCommand = async ( return contents; }; +/** + * deserializeAws_restJson1DisassociateSbomFromPackageVersionCommand + */ +export const de_DisassociateSbomFromPackageVersionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + await collectBody(output.body, context); + return contents; +}; + /** * deserializeAws_restJson1EnableTopicRuleCommand */ @@ -9122,6 +9256,7 @@ export const de_GetPackageVersionCommand = async ( }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { + artifact: _json, attributes: _json, creationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), description: __expectString, @@ -9129,6 +9264,9 @@ export const de_GetPackageVersionCommand = async ( lastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), packageName: __expectString, packageVersionArn: __expectString, + recipe: __expectString, + sbom: _json, + sbomValidationStatus: __expectString, status: __expectString, versionName: __expectString, }); @@ -10199,6 +10337,28 @@ export const de_ListRoleAliasesCommand = async ( return contents; }; +/** + * deserializeAws_restJson1ListSbomValidationResultsCommand + */ +export const de_ListSbomValidationResultsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + nextToken: __expectString, + validationResultSummaries: _json, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1ListScheduledAuditsCommand */ @@ -11737,6 +11897,18 @@ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext): case "UnauthorizedException": case "com.amazonaws.iot#UnauthorizedException": throw await de_UnauthorizedExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.iot#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); + case "InternalServerException": + case "com.amazonaws.iot#InternalServerException": + throw await de_InternalServerExceptionRes(parsedOutput, context); + case "ServiceQuotaExceededException": + case "com.amazonaws.iot#ServiceQuotaExceededException": + throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context); + case "ValidationException": + case "com.amazonaws.iot#ValidationException": + throw await de_ValidationExceptionRes(parsedOutput, context); case "LimitExceededException": case "com.amazonaws.iot#LimitExceededException": throw await de_LimitExceededExceptionRes(parsedOutput, context); @@ -11767,18 +11939,6 @@ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext): case "InvalidAggregationException": case "com.amazonaws.iot#InvalidAggregationException": throw await de_InvalidAggregationExceptionRes(parsedOutput, context); - case "ConflictException": - case "com.amazonaws.iot#ConflictException": - throw await de_ConflictExceptionRes(parsedOutput, context); - case "InternalServerException": - case "com.amazonaws.iot#InternalServerException": - throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ServiceQuotaExceededException": - case "com.amazonaws.iot#ServiceQuotaExceededException": - throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.iot#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); case "MalformedPolicyException": case "com.amazonaws.iot#MalformedPolicyException": throw await de_MalformedPolicyExceptionRes(parsedOutput, context); @@ -12897,6 +13057,8 @@ const se_OTAUpdateFiles = (input: OTAUpdateFile[], context: __SerdeContext): any }); }; +// se_PackageVersionArtifact omitted. + // se_ParameterMap omitted. // se_Parameters omitted. @@ -12962,6 +13124,8 @@ const se_PercentList = (input: number[], context: __SerdeContext): any => { // se_SalesforceAction omitted. +// se_Sbom omitted. + // se_SchedulingConfig omitted. // se_SearchableAttributes omitted. @@ -14201,6 +14365,8 @@ const de_PackageSummaryList = (output: any, context: __SerdeContext): PackageSum return retVal; }; +// de_PackageVersionArtifact omitted. + /** * deserializeAws_restJson1PackageVersionSummary */ @@ -14414,6 +14580,12 @@ const de_RoleAliasDescription = (output: any, context: __SerdeContext): RoleAlia // de_SalesforceAction omitted. +// de_Sbom omitted. + +// de_SbomValidationResultSummary omitted. + +// de_SbomValidationResultSummaryList omitted. + // de_ScheduledAuditMetadata omitted. // de_ScheduledAuditMetadataList omitted. @@ -14795,6 +14967,7 @@ const _aT = "actionType"; const _aTI = "auditTaskId"; const _aV = "attributeValue"; const _bCT = "behaviorCriteriaType"; +const _bS = "beforeSubstitution"; const _cI = "clientId"; const _cT = "clientToken"; const _dN = "dimensionName"; @@ -14853,6 +15026,7 @@ const _tV = "templateVersion"; const _to = "topic"; const _uPAV = "usePrefixAttributeValue"; const _vI = "violationId"; +const _vR = "validationResult"; const _vS = "verificationState"; const _xaip = "x-amzn-iot-principal"; const _xaip_ = "x-amzn-iot-policy"; diff --git a/codegen/sdk-codegen/aws-models/iot.json b/codegen/sdk-codegen/aws-models/iot.json index b7dace0879358..2283c5b328e0b 100644 --- a/codegen/sdk-codegen/aws-models/iot.json +++ b/codegen/sdk-codegen/aws-models/iot.json @@ -42,6 +42,9 @@ { "target": "com.amazonaws.iot#AddThingToThingGroup" }, + { + "target": "com.amazonaws.iot#AssociateSbomWithPackageVersion" + }, { "target": "com.amazonaws.iot#AssociateTargetsWithJob" }, @@ -396,6 +399,9 @@ { "target": "com.amazonaws.iot#DisableTopicRule" }, + { + "target": "com.amazonaws.iot#DisassociateSbomFromPackageVersion" + }, { "target": "com.amazonaws.iot#EnableTopicRule" }, @@ -576,6 +582,9 @@ { "target": "com.amazonaws.iot#ListRoleAliases" }, + { + "target": "com.amazonaws.iot#ListSbomValidationResults" + }, { "target": "com.amazonaws.iot#ListScheduledAudits" }, @@ -2726,6 +2735,111 @@ "smithy.api#documentation": "

Contains an asset property value (of a single type).

" } }, + "com.amazonaws.iot#AssociateSbomWithPackageVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#AssociateSbomWithPackageVersionRequest" + }, + "output": { + "target": "com.amazonaws.iot#AssociateSbomWithPackageVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#ConflictException" + }, + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Associates a software bill of materials (SBOM) with a specific software package version.

\n

Requires permission to access the AssociateSbomWithPackageVersion action.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/packages/{packageName}/versions/{versionName}/sbom", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.iot#AssociateSbomWithPackageVersionRequest": { + "type": "structure", + "members": { + "packageName": { + "target": "com.amazonaws.iot#PackageName", + "traits": { + "smithy.api#documentation": "

The name of the new software package.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "versionName": { + "target": "com.amazonaws.iot#VersionName", + "traits": { + "smithy.api#documentation": "

The name of the new package version.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "sbom": { + "target": "com.amazonaws.iot#Sbom", + "traits": { + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.iot#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.

", + "smithy.api#httpQuery": "clientToken", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#AssociateSbomWithPackageVersionResponse": { + "type": "structure", + "members": { + "packageName": { + "target": "com.amazonaws.iot#PackageName", + "traits": { + "smithy.api#documentation": "

The name of the new software package.

" + } + }, + "versionName": { + "target": "com.amazonaws.iot#VersionName", + "traits": { + "smithy.api#documentation": "

The name of the new package version.

" + } + }, + "sbom": { + "target": "com.amazonaws.iot#Sbom" + }, + "sbomValidationStatus": { + "target": "com.amazonaws.iot#SbomValidationStatus", + "traits": { + "smithy.api#documentation": "

The status of the initial validation for the SBOM against the Software Package Data Exchange (SPDX) and CycloneDX industry standard format.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iot#AssociateTargetsWithJob": { "type": "operation", "input": { @@ -4382,6 +4496,12 @@ "com.amazonaws.iot#BatchMode": { "type": "boolean" }, + "com.amazonaws.iot#BeforeSubstitutionFlag": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, "com.amazonaws.iot#Behavior": { "type": "structure", "members": { @@ -8131,6 +8251,18 @@ "smithy.api#documentation": "

Metadata that can be used to define a package version’s configuration. For example, the S3 file location, configuration options that are being sent to the device or fleet.

\n

The combined size of all the attributes on a package version is limited to 3KB.

" } }, + "artifact": { + "target": "com.amazonaws.iot#PackageVersionArtifact", + "traits": { + "smithy.api#documentation": "

The various build components created during the build process such as libraries and\n configuration files that make up a software package version.

" + } + }, + "recipe": { + "target": "com.amazonaws.iot#PackageVersionRecipe", + "traits": { + "smithy.api#documentation": "

The inline job document associated with a software package version used for a quick job\n deployment via IoT Jobs.

" + } + }, "tags": { "target": "com.amazonaws.iot#TagMap", "traits": { @@ -13618,6 +13750,14 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "beforeSubstitution": { + "target": "com.amazonaws.iot#BeforeSubstitutionFlag", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that provides a view of the job document before and after the substitution parameters have been resolved with their exact values.

", + "smithy.api#httpQuery": "beforeSubstitution" + } } }, "traits": { @@ -15728,6 +15868,80 @@ "smithy.api#input": {} } }, + "com.amazonaws.iot#DisassociateSbomFromPackageVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#DisassociateSbomFromPackageVersionRequest" + }, + "output": { + "target": "com.amazonaws.iot#DisassociateSbomFromPackageVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#ConflictException" + }, + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Disassociates a software bill of materials (SBOM) from a specific software package version.

\n

Requires permission to access the DisassociateSbomWithPackageVersion action.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/packages/{packageName}/versions/{versionName}/sbom", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.iot#DisassociateSbomFromPackageVersionRequest": { + "type": "structure", + "members": { + "packageName": { + "target": "com.amazonaws.iot#PackageName", + "traits": { + "smithy.api#documentation": "

The name of the new software package.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "versionName": { + "target": "com.amazonaws.iot#VersionName", + "traits": { + "smithy.api#documentation": "

The name of the new package version.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.iot#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.

", + "smithy.api#httpQuery": "clientToken", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#DisassociateSbomFromPackageVersionResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iot#DisconnectReason": { "type": "string" }, @@ -17342,6 +17556,14 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "beforeSubstitution": { + "target": "com.amazonaws.iot#BeforeSubstitutionFlag", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that provides a view of the job document before and after the substitution parameters have been resolved with their exact values.

", + "smithy.api#httpQuery": "beforeSubstitution" + } } }, "traits": { @@ -17711,6 +17933,12 @@ "smithy.api#documentation": "

Metadata that were added to the package version that can be used to define a package version’s configuration.

" } }, + "artifact": { + "target": "com.amazonaws.iot#PackageVersionArtifact", + "traits": { + "smithy.api#documentation": "

The various components that make up a software package version.

" + } + }, "status": { "target": "com.amazonaws.iot#PackageVersionStatus", "traits": { @@ -17734,6 +17962,24 @@ "traits": { "smithy.api#documentation": "

The date when the package version was last updated.

" } + }, + "sbom": { + "target": "com.amazonaws.iot#Sbom", + "traits": { + "smithy.api#documentation": "

The software bill of materials for a software package version.

" + } + }, + "sbomValidationStatus": { + "target": "com.amazonaws.iot#SbomValidationStatus", + "traits": { + "smithy.api#documentation": "

The status of the validation for a new software bill of materials added to a software\n package version.

" + } + }, + "recipe": { + "target": "com.amazonaws.iot#PackageVersionRecipe", + "traits": { + "smithy.api#documentation": "

The inline job document associated with a software package version used for a quick job\n deployment via IoT Jobs.

" + } } }, "traits": { @@ -23747,6 +23993,108 @@ "smithy.api#output": {} } }, + "com.amazonaws.iot#ListSbomValidationResults": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#ListSbomValidationResultsRequest" + }, + "output": { + "target": "com.amazonaws.iot#ListSbomValidationResultsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#InternalServerException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

The validation results for all software bill of materials (SBOM) attached to a specific software package version.

\n

Requires permission to access the ListSbomValidationResults action.

", + "smithy.api#http": { + "method": "GET", + "uri": "/packages/{packageName}/versions/{versionName}/sbom-validation-results", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "validationResultSummaries", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.iot#ListSbomValidationResultsRequest": { + "type": "structure", + "members": { + "packageName": { + "target": "com.amazonaws.iot#PackageName", + "traits": { + "smithy.api#documentation": "

The name of the new software package.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "versionName": { + "target": "com.amazonaws.iot#VersionName", + "traits": { + "smithy.api#documentation": "

The name of the new package version.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "validationResult": { + "target": "com.amazonaws.iot#SbomValidationResult", + "traits": { + "smithy.api#documentation": "

The end result of the

", + "smithy.api#httpQuery": "validationResult" + } + }, + "maxResults": { + "target": "com.amazonaws.iot#PackageCatalogMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return at one time.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.iot#NextToken", + "traits": { + "smithy.api#documentation": "

A token that can be used to retrieve the next set of results, or null if there are no additional results.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iot#ListSbomValidationResultsResponse": { + "type": "structure", + "members": { + "validationResultSummaries": { + "target": "com.amazonaws.iot#SbomValidationResultSummaryList", + "traits": { + "smithy.api#documentation": "

A summary of the validation results for each software bill of materials attached to a software package version.

" + } + }, + "nextToken": { + "target": "com.amazonaws.iot#NextToken", + "traits": { + "smithy.api#documentation": "

A token that can be used to retrieve the next set of results, or null if there are no additional results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iot#ListScheduledAudits": { "type": "operation", "input": { @@ -27107,9 +27455,30 @@ "smithy.api#pattern": "^arn:[!-~]+$" } }, + "com.amazonaws.iot#PackageVersionArtifact": { + "type": "structure", + "members": { + "s3Location": { + "target": "com.amazonaws.iot#S3Location" + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon S3 location for the artifacts associated with a software package\n version.

" + } + }, "com.amazonaws.iot#PackageVersionErrorReason": { "type": "string" }, + "com.amazonaws.iot#PackageVersionRecipe": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 3072 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.iot#PackageVersionStatus": { "type": "enum", "members": { @@ -29414,6 +29783,115 @@ } } }, + "com.amazonaws.iot#Sbom": { + "type": "structure", + "members": { + "s3Location": { + "target": "com.amazonaws.iot#S3Location" + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon S3 location for the software bill of materials associated with a software\n package version.

" + } + }, + "com.amazonaws.iot#SbomValidationErrorCode": { + "type": "enum", + "members": { + "INCOMPATIBLE_FORMAT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INCOMPATIBLE_FORMAT" + } + }, + "FILE_SIZE_LIMIT_EXCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FILE_SIZE_LIMIT_EXCEEDED" + } + } + } + }, + "com.amazonaws.iot#SbomValidationErrorMessage": { + "type": "string" + }, + "com.amazonaws.iot#SbomValidationResult": { + "type": "enum", + "members": { + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + } + } + }, + "com.amazonaws.iot#SbomValidationResultSummary": { + "type": "structure", + "members": { + "fileName": { + "target": "com.amazonaws.iot#FileName", + "traits": { + "smithy.api#documentation": "

The name of the SBOM file.

" + } + }, + "validationResult": { + "target": "com.amazonaws.iot#SbomValidationResult", + "traits": { + "smithy.api#documentation": "

The end result of the SBOM validation.

" + } + }, + "errorCode": { + "target": "com.amazonaws.iot#SbomValidationErrorCode", + "traits": { + "smithy.api#documentation": "

The errorCode representing the validation failure error if the SBOM\n validation failed.

" + } + }, + "errorMessage": { + "target": "com.amazonaws.iot#SbomValidationErrorMessage", + "traits": { + "smithy.api#documentation": "

The errorMessage representing the validation failure error if the SBOM\n validation failed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the validation results for a specific software bill of materials (SBOM) attached to a software package version.

" + } + }, + "com.amazonaws.iot#SbomValidationResultSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.iot#SbomValidationResultSummary" + } + }, + "com.amazonaws.iot#SbomValidationStatus": { + "type": "enum", + "members": { + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + } + } + }, "com.amazonaws.iot#ScheduledAuditArn": { "type": "string" }, @@ -29786,7 +30264,7 @@ "enableOCSPCheck": { "target": "com.amazonaws.iot#EnableOCSPCheck", "traits": { - "smithy.api#documentation": "

A Boolean value that indicates whether Online Certificate Status Protocol (OCSP) server\n certificate check is enabled or not.

\n

For more information, see Configuring OCSP server-certificate stapling in domain\n configuration from Amazon Web Services IoT Core Developer Guide.

" + "smithy.api#documentation": "

A Boolean value that indicates whether Online Certificate Status Protocol (OCSP) server\n certificate check is enabled or not.

\n

For more information, see Configuring OCSP server-certificate stapling in domain\n configuration from Amazon Web Services IoT Core Developer Guide.

" } } }, @@ -34783,12 +35261,24 @@ "smithy.api#documentation": "

Metadata that can be used to define a package version’s configuration. For example, the Amazon S3 file location, configuration options that are being sent to the device or fleet.

\n

\n Note: Attributes can be updated only when the package version\n is in a draft state.

\n

The combined size of all the attributes on a package version is limited to 3KB.

" } }, + "artifact": { + "target": "com.amazonaws.iot#PackageVersionArtifact", + "traits": { + "smithy.api#documentation": "

The various components that make up a software package version.

" + } + }, "action": { "target": "com.amazonaws.iot#PackageVersionAction", "traits": { "smithy.api#documentation": "

The status that the package version should be assigned. For more information, see Package version lifecycle.

" } }, + "recipe": { + "target": "com.amazonaws.iot#PackageVersionRecipe", + "traits": { + "smithy.api#documentation": "

The inline job document associated with a software package version used for a quick job\n deployment via IoT Jobs.

" + } + }, "clientToken": { "target": "com.amazonaws.iot#ClientToken", "traits": { @@ -35289,6 +35779,9 @@ { "target": "com.amazonaws.iot#InvalidRequestException" }, + { + "target": "com.amazonaws.iot#LimitExceededException" + }, { "target": "com.amazonaws.iot#ResourceNotFoundException" },