Skip to content

Commit 2df520d

Browse files
author
awstools
committed
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.
1 parent 52794ee commit 2df520d

26 files changed

+1824
-330
lines changed

clients/client-iot/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,14 @@ AddThingToThingGroup
242242

243243
[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/)
244244

245+
</details>
246+
<details>
247+
<summary>
248+
AssociateSbomWithPackageVersion
249+
</summary>
250+
251+
[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/)
252+
245253
</details>
246254
<details>
247255
<summary>
@@ -1186,6 +1194,14 @@ DisableTopicRule
11861194

11871195
[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/)
11881196

1197+
</details>
1198+
<details>
1199+
<summary>
1200+
DisassociateSbomFromPackageVersion
1201+
</summary>
1202+
1203+
[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/)
1204+
11891205
</details>
11901206
<details>
11911207
<summary>
@@ -1666,6 +1682,14 @@ ListRoleAliases
16661682

16671683
[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/)
16681684

1685+
</details>
1686+
<details>
1687+
<summary>
1688+
ListSbomValidationResults
1689+
</summary>
1690+
1691+
[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/)
1692+
16691693
</details>
16701694
<details>
16711695
<summary>

clients/client-iot/src/IoT.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ import {
1717
AddThingToThingGroupCommandInput,
1818
AddThingToThingGroupCommandOutput,
1919
} from "./commands/AddThingToThingGroupCommand";
20+
import {
21+
AssociateSbomWithPackageVersionCommand,
22+
AssociateSbomWithPackageVersionCommandInput,
23+
AssociateSbomWithPackageVersionCommandOutput,
24+
} from "./commands/AssociateSbomWithPackageVersionCommand";
2025
import {
2126
AssociateTargetsWithJobCommand,
2227
AssociateTargetsWithJobCommandInput,
@@ -583,6 +588,11 @@ import {
583588
DisableTopicRuleCommandInput,
584589
DisableTopicRuleCommandOutput,
585590
} from "./commands/DisableTopicRuleCommand";
591+
import {
592+
DisassociateSbomFromPackageVersionCommand,
593+
DisassociateSbomFromPackageVersionCommandInput,
594+
DisassociateSbomFromPackageVersionCommandOutput,
595+
} from "./commands/DisassociateSbomFromPackageVersionCommand";
586596
import {
587597
EnableTopicRuleCommand,
588598
EnableTopicRuleCommandInput,
@@ -867,6 +877,11 @@ import {
867877
ListRoleAliasesCommandInput,
868878
ListRoleAliasesCommandOutput,
869879
} from "./commands/ListRoleAliasesCommand";
880+
import {
881+
ListSbomValidationResultsCommand,
882+
ListSbomValidationResultsCommandInput,
883+
ListSbomValidationResultsCommandOutput,
884+
} from "./commands/ListSbomValidationResultsCommand";
870885
import {
871886
ListScheduledAuditsCommand,
872887
ListScheduledAuditsCommandInput,
@@ -1219,6 +1234,7 @@ const commands = {
12191234
AcceptCertificateTransferCommand,
12201235
AddThingToBillingGroupCommand,
12211236
AddThingToThingGroupCommand,
1237+
AssociateSbomWithPackageVersionCommand,
12221238
AssociateTargetsWithJobCommand,
12231239
AttachPolicyCommand,
12241240
AttachPrincipalPolicyCommand,
@@ -1337,6 +1353,7 @@ const commands = {
13371353
DetachSecurityProfileCommand,
13381354
DetachThingPrincipalCommand,
13391355
DisableTopicRuleCommand,
1356+
DisassociateSbomFromPackageVersionCommand,
13401357
EnableTopicRuleCommand,
13411358
GetBehaviorModelTrainingSummariesCommand,
13421359
GetBucketsAggregationCommand,
@@ -1397,6 +1414,7 @@ const commands = {
13971414
ListProvisioningTemplateVersionsCommand,
13981415
ListRelatedResourcesForAuditFindingCommand,
13991416
ListRoleAliasesCommand,
1417+
ListSbomValidationResultsCommand,
14001418
ListScheduledAuditsCommand,
14011419
ListSecurityProfilesCommand,
14021420
ListSecurityProfilesForTargetCommand,
@@ -1527,6 +1545,23 @@ export interface IoT {
15271545
cb: (err: any, data?: AddThingToThingGroupCommandOutput) => void
15281546
): void;
15291547

1548+
/**
1549+
* @see {@link AssociateSbomWithPackageVersionCommand}
1550+
*/
1551+
associateSbomWithPackageVersion(
1552+
args: AssociateSbomWithPackageVersionCommandInput,
1553+
options?: __HttpHandlerOptions
1554+
): Promise<AssociateSbomWithPackageVersionCommandOutput>;
1555+
associateSbomWithPackageVersion(
1556+
args: AssociateSbomWithPackageVersionCommandInput,
1557+
cb: (err: any, data?: AssociateSbomWithPackageVersionCommandOutput) => void
1558+
): void;
1559+
associateSbomWithPackageVersion(
1560+
args: AssociateSbomWithPackageVersionCommandInput,
1561+
options: __HttpHandlerOptions,
1562+
cb: (err: any, data?: AssociateSbomWithPackageVersionCommandOutput) => void
1563+
): void;
1564+
15301565
/**
15311566
* @see {@link AssociateTargetsWithJobCommand}
15321567
*/
@@ -3409,6 +3444,23 @@ export interface IoT {
34093444
cb: (err: any, data?: DisableTopicRuleCommandOutput) => void
34103445
): void;
34113446

3447+
/**
3448+
* @see {@link DisassociateSbomFromPackageVersionCommand}
3449+
*/
3450+
disassociateSbomFromPackageVersion(
3451+
args: DisassociateSbomFromPackageVersionCommandInput,
3452+
options?: __HttpHandlerOptions
3453+
): Promise<DisassociateSbomFromPackageVersionCommandOutput>;
3454+
disassociateSbomFromPackageVersion(
3455+
args: DisassociateSbomFromPackageVersionCommandInput,
3456+
cb: (err: any, data?: DisassociateSbomFromPackageVersionCommandOutput) => void
3457+
): void;
3458+
disassociateSbomFromPackageVersion(
3459+
args: DisassociateSbomFromPackageVersionCommandInput,
3460+
options: __HttpHandlerOptions,
3461+
cb: (err: any, data?: DisassociateSbomFromPackageVersionCommandOutput) => void
3462+
): void;
3463+
34123464
/**
34133465
* @see {@link EnableTopicRuleCommand}
34143466
*/
@@ -4379,6 +4431,23 @@ export interface IoT {
43794431
cb: (err: any, data?: ListRoleAliasesCommandOutput) => void
43804432
): void;
43814433

4434+
/**
4435+
* @see {@link ListSbomValidationResultsCommand}
4436+
*/
4437+
listSbomValidationResults(
4438+
args: ListSbomValidationResultsCommandInput,
4439+
options?: __HttpHandlerOptions
4440+
): Promise<ListSbomValidationResultsCommandOutput>;
4441+
listSbomValidationResults(
4442+
args: ListSbomValidationResultsCommandInput,
4443+
cb: (err: any, data?: ListSbomValidationResultsCommandOutput) => void
4444+
): void;
4445+
listSbomValidationResults(
4446+
args: ListSbomValidationResultsCommandInput,
4447+
options: __HttpHandlerOptions,
4448+
cb: (err: any, data?: ListSbomValidationResultsCommandOutput) => void
4449+
): void;
4450+
43824451
/**
43834452
* @see {@link ListScheduledAuditsCommand}
43844453
*/

clients/client-iot/src/IoTClient.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ import {
7171
AddThingToThingGroupCommandInput,
7272
AddThingToThingGroupCommandOutput,
7373
} from "./commands/AddThingToThingGroupCommand";
74+
import {
75+
AssociateSbomWithPackageVersionCommandInput,
76+
AssociateSbomWithPackageVersionCommandOutput,
77+
} from "./commands/AssociateSbomWithPackageVersionCommand";
7478
import {
7579
AssociateTargetsWithJobCommandInput,
7680
AssociateTargetsWithJobCommandOutput,
@@ -387,6 +391,10 @@ import {
387391
DetachThingPrincipalCommandOutput,
388392
} from "./commands/DetachThingPrincipalCommand";
389393
import { DisableTopicRuleCommandInput, DisableTopicRuleCommandOutput } from "./commands/DisableTopicRuleCommand";
394+
import {
395+
DisassociateSbomFromPackageVersionCommandInput,
396+
DisassociateSbomFromPackageVersionCommandOutput,
397+
} from "./commands/DisassociateSbomFromPackageVersionCommand";
390398
import { EnableTopicRuleCommandInput, EnableTopicRuleCommandOutput } from "./commands/EnableTopicRuleCommand";
391399
import {
392400
GetBehaviorModelTrainingSummariesCommandInput,
@@ -537,6 +545,10 @@ import {
537545
ListRelatedResourcesForAuditFindingCommandOutput,
538546
} from "./commands/ListRelatedResourcesForAuditFindingCommand";
539547
import { ListRoleAliasesCommandInput, ListRoleAliasesCommandOutput } from "./commands/ListRoleAliasesCommand";
548+
import {
549+
ListSbomValidationResultsCommandInput,
550+
ListSbomValidationResultsCommandOutput,
551+
} from "./commands/ListSbomValidationResultsCommand";
540552
import {
541553
ListScheduledAuditsCommandInput,
542554
ListScheduledAuditsCommandOutput,
@@ -776,6 +788,7 @@ export type ServiceInputTypes =
776788
| AcceptCertificateTransferCommandInput
777789
| AddThingToBillingGroupCommandInput
778790
| AddThingToThingGroupCommandInput
791+
| AssociateSbomWithPackageVersionCommandInput
779792
| AssociateTargetsWithJobCommandInput
780793
| AttachPolicyCommandInput
781794
| AttachPrincipalPolicyCommandInput
@@ -894,6 +907,7 @@ export type ServiceInputTypes =
894907
| DetachSecurityProfileCommandInput
895908
| DetachThingPrincipalCommandInput
896909
| DisableTopicRuleCommandInput
910+
| DisassociateSbomFromPackageVersionCommandInput
897911
| EnableTopicRuleCommandInput
898912
| GetBehaviorModelTrainingSummariesCommandInput
899913
| GetBucketsAggregationCommandInput
@@ -954,6 +968,7 @@ export type ServiceInputTypes =
954968
| ListProvisioningTemplatesCommandInput
955969
| ListRelatedResourcesForAuditFindingCommandInput
956970
| ListRoleAliasesCommandInput
971+
| ListSbomValidationResultsCommandInput
957972
| ListScheduledAuditsCommandInput
958973
| ListSecurityProfilesCommandInput
959974
| ListSecurityProfilesForTargetCommandInput
@@ -1036,6 +1051,7 @@ export type ServiceOutputTypes =
10361051
| AcceptCertificateTransferCommandOutput
10371052
| AddThingToBillingGroupCommandOutput
10381053
| AddThingToThingGroupCommandOutput
1054+
| AssociateSbomWithPackageVersionCommandOutput
10391055
| AssociateTargetsWithJobCommandOutput
10401056
| AttachPolicyCommandOutput
10411057
| AttachPrincipalPolicyCommandOutput
@@ -1154,6 +1170,7 @@ export type ServiceOutputTypes =
11541170
| DetachSecurityProfileCommandOutput
11551171
| DetachThingPrincipalCommandOutput
11561172
| DisableTopicRuleCommandOutput
1173+
| DisassociateSbomFromPackageVersionCommandOutput
11571174
| EnableTopicRuleCommandOutput
11581175
| GetBehaviorModelTrainingSummariesCommandOutput
11591176
| GetBucketsAggregationCommandOutput
@@ -1214,6 +1231,7 @@ export type ServiceOutputTypes =
12141231
| ListProvisioningTemplatesCommandOutput
12151232
| ListRelatedResourcesForAuditFindingCommandOutput
12161233
| ListRoleAliasesCommandOutput
1234+
| ListSbomValidationResultsCommandOutput
12171235
| ListScheduledAuditsCommandOutput
12181236
| ListSecurityProfilesCommandOutput
12191237
| ListSecurityProfilesForTargetCommandOutput
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
// smithy-typescript generated code
2+
import { getEndpointPlugin } from "@smithy/middleware-endpoint";
3+
import { getSerdePlugin } from "@smithy/middleware-serde";
4+
import { Command as $Command } from "@smithy/smithy-client";
5+
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
6+
7+
import { commonParams } from "../endpoint/EndpointParameters";
8+
import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient";
9+
import { AssociateSbomWithPackageVersionRequest, AssociateSbomWithPackageVersionResponse } from "../models/models_0";
10+
import {
11+
de_AssociateSbomWithPackageVersionCommand,
12+
se_AssociateSbomWithPackageVersionCommand,
13+
} from "../protocols/Aws_restJson1";
14+
15+
/**
16+
* @public
17+
*/
18+
export type { __MetadataBearer };
19+
export { $Command };
20+
/**
21+
* @public
22+
*
23+
* The input for {@link AssociateSbomWithPackageVersionCommand}.
24+
*/
25+
export interface AssociateSbomWithPackageVersionCommandInput extends AssociateSbomWithPackageVersionRequest {}
26+
/**
27+
* @public
28+
*
29+
* The output of {@link AssociateSbomWithPackageVersionCommand}.
30+
*/
31+
export interface AssociateSbomWithPackageVersionCommandOutput
32+
extends AssociateSbomWithPackageVersionResponse,
33+
__MetadataBearer {}
34+
35+
/**
36+
* <p>Associates a software bill of materials (SBOM) with a specific software package version.</p>
37+
* <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">AssociateSbomWithPackageVersion</a> action.</p>
38+
* @example
39+
* Use a bare-bones client and the command you need to make an API call.
40+
* ```javascript
41+
* import { IoTClient, AssociateSbomWithPackageVersionCommand } from "@aws-sdk/client-iot"; // ES Modules import
42+
* // const { IoTClient, AssociateSbomWithPackageVersionCommand } = require("@aws-sdk/client-iot"); // CommonJS import
43+
* const client = new IoTClient(config);
44+
* const input = { // AssociateSbomWithPackageVersionRequest
45+
* packageName: "STRING_VALUE", // required
46+
* versionName: "STRING_VALUE", // required
47+
* sbom: { // Sbom
48+
* s3Location: { // S3Location
49+
* bucket: "STRING_VALUE",
50+
* key: "STRING_VALUE",
51+
* version: "STRING_VALUE",
52+
* },
53+
* },
54+
* clientToken: "STRING_VALUE",
55+
* };
56+
* const command = new AssociateSbomWithPackageVersionCommand(input);
57+
* const response = await client.send(command);
58+
* // { // AssociateSbomWithPackageVersionResponse
59+
* // packageName: "STRING_VALUE",
60+
* // versionName: "STRING_VALUE",
61+
* // sbom: { // Sbom
62+
* // s3Location: { // S3Location
63+
* // bucket: "STRING_VALUE",
64+
* // key: "STRING_VALUE",
65+
* // version: "STRING_VALUE",
66+
* // },
67+
* // },
68+
* // sbomValidationStatus: "IN_PROGRESS" || "FAILED" || "SUCCEEDED",
69+
* // };
70+
*
71+
* ```
72+
*
73+
* @param AssociateSbomWithPackageVersionCommandInput - {@link AssociateSbomWithPackageVersionCommandInput}
74+
* @returns {@link AssociateSbomWithPackageVersionCommandOutput}
75+
* @see {@link AssociateSbomWithPackageVersionCommandInput} for command's `input` shape.
76+
* @see {@link AssociateSbomWithPackageVersionCommandOutput} for command's `response` shape.
77+
* @see {@link IoTClientResolvedConfig | config} for IoTClient's `config` shape.
78+
*
79+
* @throws {@link ConflictException} (client fault)
80+
* <p>A resource with the same name already exists.</p>
81+
*
82+
* @throws {@link InternalServerException} (server fault)
83+
* <p>Internal error from the service that indicates an unexpected error or that the service
84+
* is unavailable.</p>
85+
*
86+
* @throws {@link ResourceNotFoundException} (client fault)
87+
* <p>The specified resource does not exist.</p>
88+
*
89+
* @throws {@link ServiceQuotaExceededException} (client fault)
90+
* <p>A limit has been exceeded.</p>
91+
*
92+
* @throws {@link ThrottlingException} (client fault)
93+
* <p>The rate exceeds the limit.</p>
94+
*
95+
* @throws {@link ValidationException} (client fault)
96+
* <p>The request is not valid.</p>
97+
*
98+
* @throws {@link IoTServiceException}
99+
* <p>Base exception class for all service exceptions from IoT service.</p>
100+
*
101+
* @public
102+
*/
103+
export class AssociateSbomWithPackageVersionCommand extends $Command
104+
.classBuilder<
105+
AssociateSbomWithPackageVersionCommandInput,
106+
AssociateSbomWithPackageVersionCommandOutput,
107+
IoTClientResolvedConfig,
108+
ServiceInputTypes,
109+
ServiceOutputTypes
110+
>()
111+
.ep(commonParams)
112+
.m(function (this: any, Command: any, cs: any, config: IoTClientResolvedConfig, o: any) {
113+
return [
114+
getSerdePlugin(config, this.serialize, this.deserialize),
115+
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
116+
];
117+
})
118+
.s("AWSIotService", "AssociateSbomWithPackageVersion", {})
119+
.n("IoTClient", "AssociateSbomWithPackageVersionCommand")
120+
.f(void 0, void 0)
121+
.ser(se_AssociateSbomWithPackageVersionCommand)
122+
.de(de_AssociateSbomWithPackageVersionCommand)
123+
.build() {}

clients/client-iot/src/commands/CreatePackageVersionCommand.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,14 @@ export interface CreatePackageVersionCommandOutput extends CreatePackageVersionR
4848
* attributes: { // ResourceAttributes
4949
* "<keys>": "STRING_VALUE",
5050
* },
51+
* artifact: { // PackageVersionArtifact
52+
* s3Location: { // S3Location
53+
* bucket: "STRING_VALUE",
54+
* key: "STRING_VALUE",
55+
* version: "STRING_VALUE",
56+
* },
57+
* },
58+
* recipe: "STRING_VALUE",
5159
* tags: { // TagMap
5260
* "<keys>": "STRING_VALUE",
5361
* },

0 commit comments

Comments
 (0)