From 005626cec3292a4e3f5da9c17b11ab3c8d03b558 Mon Sep 17 00:00:00 2001
From: awstools
Date: Fri, 15 Nov 2024 19:12:00 +0000
Subject: [PATCH] feat(client-iot): This release allows AWS IoT Core users to
enrich MQTT messages with propagating attributes, to associate a thing to a
connection, and to enable Online Certificate Status Protocol (OCSP) stapling
for TLS X.509 server certificates through private endpoints.
---
clients/client-iot/README.md | 24 +
clients/client-iot/src/IoT.ts | 66 +++
clients/client-iot/src/IoTClient.ts | 15 +
.../commands/AttachThingPrincipalCommand.ts | 1 +
.../CreateDomainConfigurationCommand.ts | 2 +
.../src/commands/CreateThingTypeCommand.ts | 9 +
.../src/commands/DeleteAuthorizerCommand.ts | 2 +-
.../DescribeDomainConfigurationCommand.ts | 2 +
.../src/commands/DescribeThingTypeCommand.ts | 9 +
.../src/commands/ListJobTemplatesCommand.ts | 3 +-
.../ListManagedJobTemplatesCommand.ts | 3 +-
.../commands/ListPrincipalThingsV2Command.ts | 121 +++++
.../commands/ListThingPrincipalsV2Command.ts | 121 +++++
.../src/commands/ListThingTypesCommand.ts | 9 +
.../UpdateDomainConfigurationCommand.ts | 2 +
.../src/commands/UpdateThingTypeCommand.ts | 123 +++++
clients/client-iot/src/commands/index.ts | 3 +
clients/client-iot/src/models/models_0.ts | 140 ++++--
clients/client-iot/src/models/models_1.ts | 117 ++---
clients/client-iot/src/models/models_2.ts | 301 +++++++++++-
.../ListPrincipalThingsV2Paginator.ts | 24 +
.../ListThingPrincipalsV2Paginator.ts | 24 +
clients/client-iot/src/pagination/index.ts | 2 +
.../client-iot/src/protocols/Aws_restJson1.ts | 166 ++++++-
codegen/sdk-codegen/aws-models/iot.json | 449 +++++++++++++++++-
25 files changed, 1610 insertions(+), 128 deletions(-)
create mode 100644 clients/client-iot/src/commands/ListPrincipalThingsV2Command.ts
create mode 100644 clients/client-iot/src/commands/ListThingPrincipalsV2Command.ts
create mode 100644 clients/client-iot/src/commands/UpdateThingTypeCommand.ts
create mode 100644 clients/client-iot/src/pagination/ListPrincipalThingsV2Paginator.ts
create mode 100644 clients/client-iot/src/pagination/ListThingPrincipalsV2Paginator.ts
diff --git a/clients/client-iot/README.md b/clients/client-iot/README.md
index 8dd09ed15f5d5..4ffb949a242b2 100644
--- a/clients/client-iot/README.md
+++ b/clients/client-iot/README.md
@@ -1650,6 +1650,14 @@ ListPrincipalThings
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/ListPrincipalThingsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListPrincipalThingsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListPrincipalThingsCommandOutput/)
+
+
+
+ListPrincipalThingsV2
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/ListPrincipalThingsV2Command/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListPrincipalThingsV2CommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListPrincipalThingsV2CommandOutput/)
+
@@ -1770,6 +1778,14 @@ ListThingPrincipals
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/ListThingPrincipalsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListThingPrincipalsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListThingPrincipalsCommandOutput/)
+
+
+
+ListThingPrincipalsV2
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/ListThingPrincipalsV2Command/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListThingPrincipalsV2CommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/ListThingPrincipalsV2CommandOutput/)
+
@@ -2266,6 +2282,14 @@ UpdateThingGroupsForThing
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/UpdateThingGroupsForThingCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/UpdateThingGroupsForThingCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/UpdateThingGroupsForThingCommandOutput/)
+
+
+
+UpdateThingType
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iot/command/UpdateThingTypeCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/UpdateThingTypeCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-iot/Interface/UpdateThingTypeCommandOutput/)
+
diff --git a/clients/client-iot/src/IoT.ts b/clients/client-iot/src/IoT.ts
index 8c29fe8a93ea8..8233d2fbea619 100644
--- a/clients/client-iot/src/IoT.ts
+++ b/clients/client-iot/src/IoT.ts
@@ -857,6 +857,11 @@ import {
ListPrincipalThingsCommandInput,
ListPrincipalThingsCommandOutput,
} from "./commands/ListPrincipalThingsCommand";
+import {
+ ListPrincipalThingsV2Command,
+ ListPrincipalThingsV2CommandInput,
+ ListPrincipalThingsV2CommandOutput,
+} from "./commands/ListPrincipalThingsV2Command";
import {
ListProvisioningTemplatesCommand,
ListProvisioningTemplatesCommandInput,
@@ -928,6 +933,11 @@ import {
ListThingPrincipalsCommandInput,
ListThingPrincipalsCommandOutput,
} from "./commands/ListThingPrincipalsCommand";
+import {
+ ListThingPrincipalsV2Command,
+ ListThingPrincipalsV2CommandInput,
+ ListThingPrincipalsV2CommandOutput,
+} from "./commands/ListThingPrincipalsV2Command";
import {
ListThingRegistrationTaskReportsCommand,
ListThingRegistrationTaskReportsCommandInput,
@@ -1218,6 +1228,11 @@ import {
UpdateThingGroupsForThingCommandInput,
UpdateThingGroupsForThingCommandOutput,
} from "./commands/UpdateThingGroupsForThingCommand";
+import {
+ UpdateThingTypeCommand,
+ UpdateThingTypeCommandInput,
+ UpdateThingTypeCommandOutput,
+} from "./commands/UpdateThingTypeCommand";
import {
UpdateTopicRuleDestinationCommand,
UpdateTopicRuleDestinationCommandInput,
@@ -1410,6 +1425,7 @@ const commands = {
ListPolicyVersionsCommand,
ListPrincipalPoliciesCommand,
ListPrincipalThingsCommand,
+ ListPrincipalThingsV2Command,
ListProvisioningTemplatesCommand,
ListProvisioningTemplateVersionsCommand,
ListRelatedResourcesForAuditFindingCommand,
@@ -1425,6 +1441,7 @@ const commands = {
ListThingGroupsCommand,
ListThingGroupsForThingCommand,
ListThingPrincipalsCommand,
+ ListThingPrincipalsV2Command,
ListThingRegistrationTaskReportsCommand,
ListThingRegistrationTasksCommand,
ListThingsCommand,
@@ -1487,6 +1504,7 @@ const commands = {
UpdateThingCommand,
UpdateThingGroupCommand,
UpdateThingGroupsForThingCommand,
+ UpdateThingTypeCommand,
UpdateTopicRuleDestinationCommand,
ValidateSecurityProfileBehaviorsCommand,
};
@@ -4364,6 +4382,23 @@ export interface IoT {
cb: (err: any, data?: ListPrincipalThingsCommandOutput) => void
): void;
+ /**
+ * @see {@link ListPrincipalThingsV2Command}
+ */
+ listPrincipalThingsV2(
+ args: ListPrincipalThingsV2CommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ listPrincipalThingsV2(
+ args: ListPrincipalThingsV2CommandInput,
+ cb: (err: any, data?: ListPrincipalThingsV2CommandOutput) => void
+ ): void;
+ listPrincipalThingsV2(
+ args: ListPrincipalThingsV2CommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: ListPrincipalThingsV2CommandOutput) => void
+ ): void;
+
/**
* @see {@link ListProvisioningTemplatesCommand}
*/
@@ -4613,6 +4648,23 @@ export interface IoT {
cb: (err: any, data?: ListThingPrincipalsCommandOutput) => void
): void;
+ /**
+ * @see {@link ListThingPrincipalsV2Command}
+ */
+ listThingPrincipalsV2(
+ args: ListThingPrincipalsV2CommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ listThingPrincipalsV2(
+ args: ListThingPrincipalsV2CommandInput,
+ cb: (err: any, data?: ListThingPrincipalsV2CommandOutput) => void
+ ): void;
+ listThingPrincipalsV2(
+ args: ListThingPrincipalsV2CommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: ListThingPrincipalsV2CommandOutput) => void
+ ): void;
+
/**
* @see {@link ListThingRegistrationTaskReportsCommand}
*/
@@ -5615,6 +5667,20 @@ export interface IoT {
cb: (err: any, data?: UpdateThingGroupsForThingCommandOutput) => void
): void;
+ /**
+ * @see {@link UpdateThingTypeCommand}
+ */
+ updateThingType(
+ args: UpdateThingTypeCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ updateThingType(args: UpdateThingTypeCommandInput, cb: (err: any, data?: UpdateThingTypeCommandOutput) => void): void;
+ updateThingType(
+ args: UpdateThingTypeCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: UpdateThingTypeCommandOutput) => void
+ ): void;
+
/**
* @see {@link UpdateTopicRuleDestinationCommand}
*/
diff --git a/clients/client-iot/src/IoTClient.ts b/clients/client-iot/src/IoTClient.ts
index 3f6ea19b1f5bf..42003a8ca7564 100644
--- a/clients/client-iot/src/IoTClient.ts
+++ b/clients/client-iot/src/IoTClient.ts
@@ -532,6 +532,10 @@ import {
ListPrincipalThingsCommandInput,
ListPrincipalThingsCommandOutput,
} from "./commands/ListPrincipalThingsCommand";
+import {
+ ListPrincipalThingsV2CommandInput,
+ ListPrincipalThingsV2CommandOutput,
+} from "./commands/ListPrincipalThingsV2Command";
import {
ListProvisioningTemplatesCommandInput,
ListProvisioningTemplatesCommandOutput,
@@ -583,6 +587,10 @@ import {
ListThingPrincipalsCommandInput,
ListThingPrincipalsCommandOutput,
} from "./commands/ListThingPrincipalsCommand";
+import {
+ ListThingPrincipalsV2CommandInput,
+ ListThingPrincipalsV2CommandOutput,
+} from "./commands/ListThingPrincipalsV2Command";
import {
ListThingRegistrationTaskReportsCommandInput,
ListThingRegistrationTaskReportsCommandOutput,
@@ -762,6 +770,7 @@ import {
UpdateThingGroupsForThingCommandInput,
UpdateThingGroupsForThingCommandOutput,
} from "./commands/UpdateThingGroupsForThingCommand";
+import { UpdateThingTypeCommandInput, UpdateThingTypeCommandOutput } from "./commands/UpdateThingTypeCommand";
import {
UpdateTopicRuleDestinationCommandInput,
UpdateTopicRuleDestinationCommandOutput,
@@ -964,6 +973,7 @@ export type ServiceInputTypes =
| ListPolicyVersionsCommandInput
| ListPrincipalPoliciesCommandInput
| ListPrincipalThingsCommandInput
+ | ListPrincipalThingsV2CommandInput
| ListProvisioningTemplateVersionsCommandInput
| ListProvisioningTemplatesCommandInput
| ListRelatedResourcesForAuditFindingCommandInput
@@ -979,6 +989,7 @@ export type ServiceInputTypes =
| ListThingGroupsCommandInput
| ListThingGroupsForThingCommandInput
| ListThingPrincipalsCommandInput
+ | ListThingPrincipalsV2CommandInput
| ListThingRegistrationTaskReportsCommandInput
| ListThingRegistrationTasksCommandInput
| ListThingTypesCommandInput
@@ -1041,6 +1052,7 @@ export type ServiceInputTypes =
| UpdateThingCommandInput
| UpdateThingGroupCommandInput
| UpdateThingGroupsForThingCommandInput
+ | UpdateThingTypeCommandInput
| UpdateTopicRuleDestinationCommandInput
| ValidateSecurityProfileBehaviorsCommandInput;
@@ -1227,6 +1239,7 @@ export type ServiceOutputTypes =
| ListPolicyVersionsCommandOutput
| ListPrincipalPoliciesCommandOutput
| ListPrincipalThingsCommandOutput
+ | ListPrincipalThingsV2CommandOutput
| ListProvisioningTemplateVersionsCommandOutput
| ListProvisioningTemplatesCommandOutput
| ListRelatedResourcesForAuditFindingCommandOutput
@@ -1242,6 +1255,7 @@ export type ServiceOutputTypes =
| ListThingGroupsCommandOutput
| ListThingGroupsForThingCommandOutput
| ListThingPrincipalsCommandOutput
+ | ListThingPrincipalsV2CommandOutput
| ListThingRegistrationTaskReportsCommandOutput
| ListThingRegistrationTasksCommandOutput
| ListThingTypesCommandOutput
@@ -1304,6 +1318,7 @@ export type ServiceOutputTypes =
| UpdateThingCommandOutput
| UpdateThingGroupCommandOutput
| UpdateThingGroupsForThingCommandOutput
+ | UpdateThingTypeCommandOutput
| UpdateTopicRuleDestinationCommandOutput
| ValidateSecurityProfileBehaviorsCommandOutput;
diff --git a/clients/client-iot/src/commands/AttachThingPrincipalCommand.ts b/clients/client-iot/src/commands/AttachThingPrincipalCommand.ts
index bb0fc4acbcb74..fac4ab27f9797 100644
--- a/clients/client-iot/src/commands/AttachThingPrincipalCommand.ts
+++ b/clients/client-iot/src/commands/AttachThingPrincipalCommand.ts
@@ -40,6 +40,7 @@ export interface AttachThingPrincipalCommandOutput extends AttachThingPrincipalR
* const input = { // AttachThingPrincipalRequest
* thingName: "STRING_VALUE", // required
* principal: "STRING_VALUE", // required
+ * thingPrincipalType: "EXCLUSIVE_THING" || "NON_EXCLUSIVE_THING",
* };
* const command = new AttachThingPrincipalCommand(input);
* const response = await client.send(command);
diff --git a/clients/client-iot/src/commands/CreateDomainConfigurationCommand.ts b/clients/client-iot/src/commands/CreateDomainConfigurationCommand.ts
index b6c70c7d1c483..c5eaf3fbf8f75 100644
--- a/clients/client-iot/src/commands/CreateDomainConfigurationCommand.ts
+++ b/clients/client-iot/src/commands/CreateDomainConfigurationCommand.ts
@@ -59,6 +59,8 @@ export interface CreateDomainConfigurationCommandOutput extends CreateDomainConf
* },
* serverCertificateConfig: { // ServerCertificateConfig
* enableOCSPCheck: true || false,
+ * ocspLambdaArn: "STRING_VALUE",
+ * ocspAuthorizedResponderArn: "STRING_VALUE",
* },
* authenticationType: "CUSTOM_AUTH_X509" || "CUSTOM_AUTH" || "AWS_X509" || "AWS_SIGV4" || "DEFAULT",
* applicationProtocol: "SECURE_MQTT" || "MQTT_WSS" || "HTTPS" || "DEFAULT",
diff --git a/clients/client-iot/src/commands/CreateThingTypeCommand.ts b/clients/client-iot/src/commands/CreateThingTypeCommand.ts
index 02c9dc4f95d42..9f1042dd311f2 100644
--- a/clients/client-iot/src/commands/CreateThingTypeCommand.ts
+++ b/clients/client-iot/src/commands/CreateThingTypeCommand.ts
@@ -46,6 +46,15 @@ export interface CreateThingTypeCommandOutput extends CreateThingTypeResponse, _
* searchableAttributes: [ // SearchableAttributes
* "STRING_VALUE",
* ],
+ * mqtt5Configuration: { // Mqtt5Configuration
+ * propagatingAttributes: [ // PropagatingAttributeList
+ * { // PropagatingAttribute
+ * userPropertyKey: "STRING_VALUE",
+ * thingAttribute: "STRING_VALUE",
+ * connectionAttribute: "STRING_VALUE",
+ * },
+ * ],
+ * },
* },
* tags: [ // TagList
* { // Tag
diff --git a/clients/client-iot/src/commands/DeleteAuthorizerCommand.ts b/clients/client-iot/src/commands/DeleteAuthorizerCommand.ts
index 8768e087edf2c..5f1c10eda39aa 100644
--- a/clients/client-iot/src/commands/DeleteAuthorizerCommand.ts
+++ b/clients/client-iot/src/commands/DeleteAuthorizerCommand.ts
@@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
import { commonParams } from "../endpoint/EndpointParameters";
import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient";
-import { DeleteAuthorizerRequest, DeleteAuthorizerResponse } from "../models/models_0";
+import { DeleteAuthorizerRequest, DeleteAuthorizerResponse } from "../models/models_1";
import { de_DeleteAuthorizerCommand, se_DeleteAuthorizerCommand } from "../protocols/Aws_restJson1";
/**
diff --git a/clients/client-iot/src/commands/DescribeDomainConfigurationCommand.ts b/clients/client-iot/src/commands/DescribeDomainConfigurationCommand.ts
index eb6f9258e8154..4a8ae1894c076 100644
--- a/clients/client-iot/src/commands/DescribeDomainConfigurationCommand.ts
+++ b/clients/client-iot/src/commands/DescribeDomainConfigurationCommand.ts
@@ -70,6 +70,8 @@ export interface DescribeDomainConfigurationCommandOutput
* // },
* // serverCertificateConfig: { // ServerCertificateConfig
* // enableOCSPCheck: true || false,
+ * // ocspLambdaArn: "STRING_VALUE",
+ * // ocspAuthorizedResponderArn: "STRING_VALUE",
* // },
* // authenticationType: "CUSTOM_AUTH_X509" || "CUSTOM_AUTH" || "AWS_X509" || "AWS_SIGV4" || "DEFAULT",
* // applicationProtocol: "SECURE_MQTT" || "MQTT_WSS" || "HTTPS" || "DEFAULT",
diff --git a/clients/client-iot/src/commands/DescribeThingTypeCommand.ts b/clients/client-iot/src/commands/DescribeThingTypeCommand.ts
index 82c673bf5f055..516a9347266de 100644
--- a/clients/client-iot/src/commands/DescribeThingTypeCommand.ts
+++ b/clients/client-iot/src/commands/DescribeThingTypeCommand.ts
@@ -50,6 +50,15 @@ export interface DescribeThingTypeCommandOutput extends DescribeThingTypeRespons
* // searchableAttributes: [ // SearchableAttributes
* // "STRING_VALUE",
* // ],
+ * // mqtt5Configuration: { // Mqtt5Configuration
+ * // propagatingAttributes: [ // PropagatingAttributeList
+ * // { // PropagatingAttribute
+ * // userPropertyKey: "STRING_VALUE",
+ * // thingAttribute: "STRING_VALUE",
+ * // connectionAttribute: "STRING_VALUE",
+ * // },
+ * // ],
+ * // },
* // },
* // thingTypeMetadata: { // ThingTypeMetadata
* // deprecated: true || false,
diff --git a/clients/client-iot/src/commands/ListJobTemplatesCommand.ts b/clients/client-iot/src/commands/ListJobTemplatesCommand.ts
index f86d5c575e33c..b77f70660b670 100644
--- a/clients/client-iot/src/commands/ListJobTemplatesCommand.ts
+++ b/clients/client-iot/src/commands/ListJobTemplatesCommand.ts
@@ -6,7 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
import { commonParams } from "../endpoint/EndpointParameters";
import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient";
-import { ListJobTemplatesRequest, ListJobTemplatesResponse } from "../models/models_1";
+import { ListJobTemplatesRequest } from "../models/models_1";
+import { ListJobTemplatesResponse } from "../models/models_2";
import { de_ListJobTemplatesCommand, se_ListJobTemplatesCommand } from "../protocols/Aws_restJson1";
/**
diff --git a/clients/client-iot/src/commands/ListManagedJobTemplatesCommand.ts b/clients/client-iot/src/commands/ListManagedJobTemplatesCommand.ts
index 2fa6cbbfcea2e..2fa123cd19cac 100644
--- a/clients/client-iot/src/commands/ListManagedJobTemplatesCommand.ts
+++ b/clients/client-iot/src/commands/ListManagedJobTemplatesCommand.ts
@@ -6,8 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
import { commonParams } from "../endpoint/EndpointParameters";
import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient";
-import { ListManagedJobTemplatesRequest } from "../models/models_1";
-import { ListManagedJobTemplatesResponse } from "../models/models_2";
+import { ListManagedJobTemplatesRequest, ListManagedJobTemplatesResponse } from "../models/models_2";
import { de_ListManagedJobTemplatesCommand, se_ListManagedJobTemplatesCommand } from "../protocols/Aws_restJson1";
/**
diff --git a/clients/client-iot/src/commands/ListPrincipalThingsV2Command.ts b/clients/client-iot/src/commands/ListPrincipalThingsV2Command.ts
new file mode 100644
index 0000000000000..849354c664ed6
--- /dev/null
+++ b/clients/client-iot/src/commands/ListPrincipalThingsV2Command.ts
@@ -0,0 +1,121 @@
+// 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 { ListPrincipalThingsV2Request, ListPrincipalThingsV2Response } from "../models/models_2";
+import { de_ListPrincipalThingsV2Command, se_ListPrincipalThingsV2Command } from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export type { __MetadataBearer };
+export { $Command };
+/**
+ * @public
+ *
+ * The input for {@link ListPrincipalThingsV2Command}.
+ */
+export interface ListPrincipalThingsV2CommandInput extends ListPrincipalThingsV2Request {}
+/**
+ * @public
+ *
+ * The output of {@link ListPrincipalThingsV2Command}.
+ */
+export interface ListPrincipalThingsV2CommandOutput extends ListPrincipalThingsV2Response, __MetadataBearer {}
+
+/**
+ * Lists the things associated with the specified principal. A principal can be an X.509
+ * certificate or an Amazon Cognito ID.
+ * Requires permission to access the ListPrincipalThings action.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { IoTClient, ListPrincipalThingsV2Command } from "@aws-sdk/client-iot"; // ES Modules import
+ * // const { IoTClient, ListPrincipalThingsV2Command } = require("@aws-sdk/client-iot"); // CommonJS import
+ * const client = new IoTClient(config);
+ * const input = { // ListPrincipalThingsV2Request
+ * nextToken: "STRING_VALUE",
+ * maxResults: Number("int"),
+ * principal: "STRING_VALUE", // required
+ * thingPrincipalType: "EXCLUSIVE_THING" || "NON_EXCLUSIVE_THING",
+ * };
+ * const command = new ListPrincipalThingsV2Command(input);
+ * const response = await client.send(command);
+ * // { // ListPrincipalThingsV2Response
+ * // principalThingObjects: [ // PrincipalThingObjects
+ * // { // PrincipalThingObject
+ * // thingName: "STRING_VALUE", // required
+ * // thingPrincipalType: "EXCLUSIVE_THING" || "NON_EXCLUSIVE_THING",
+ * // },
+ * // ],
+ * // nextToken: "STRING_VALUE",
+ * // };
+ *
+ * ```
+ *
+ * @param ListPrincipalThingsV2CommandInput - {@link ListPrincipalThingsV2CommandInput}
+ * @returns {@link ListPrincipalThingsV2CommandOutput}
+ * @see {@link ListPrincipalThingsV2CommandInput} for command's `input` shape.
+ * @see {@link ListPrincipalThingsV2CommandOutput} for command's `response` shape.
+ * @see {@link IoTClientResolvedConfig | config} for IoTClient's `config` shape.
+ *
+ * @throws {@link InternalFailureException} (server fault)
+ * An unexpected error has occurred.
+ *
+ * @throws {@link InvalidRequestException} (client fault)
+ * The request is not valid.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource does not exist.
+ *
+ * @throws {@link ServiceUnavailableException} (server fault)
+ * The service is temporarily unavailable.
+ *
+ * @throws {@link ThrottlingException} (client fault)
+ * The rate exceeds the limit.
+ *
+ * @throws {@link UnauthorizedException} (client fault)
+ * You are not authorized to perform this operation.
+ *
+ * @throws {@link IoTServiceException}
+ * Base exception class for all service exceptions from IoT service.
+ *
+ * @public
+ */
+export class ListPrincipalThingsV2Command extends $Command
+ .classBuilder<
+ ListPrincipalThingsV2CommandInput,
+ ListPrincipalThingsV2CommandOutput,
+ 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", "ListPrincipalThingsV2", {})
+ .n("IoTClient", "ListPrincipalThingsV2Command")
+ .f(void 0, void 0)
+ .ser(se_ListPrincipalThingsV2Command)
+ .de(de_ListPrincipalThingsV2Command)
+ .build() {
+ /** @internal type navigation helper, not in runtime. */
+ protected declare static __types: {
+ api: {
+ input: ListPrincipalThingsV2Request;
+ output: ListPrincipalThingsV2Response;
+ };
+ sdk: {
+ input: ListPrincipalThingsV2CommandInput;
+ output: ListPrincipalThingsV2CommandOutput;
+ };
+ };
+}
diff --git a/clients/client-iot/src/commands/ListThingPrincipalsV2Command.ts b/clients/client-iot/src/commands/ListThingPrincipalsV2Command.ts
new file mode 100644
index 0000000000000..1ba49e406209f
--- /dev/null
+++ b/clients/client-iot/src/commands/ListThingPrincipalsV2Command.ts
@@ -0,0 +1,121 @@
+// 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 { ListThingPrincipalsV2Request, ListThingPrincipalsV2Response } from "../models/models_2";
+import { de_ListThingPrincipalsV2Command, se_ListThingPrincipalsV2Command } from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export type { __MetadataBearer };
+export { $Command };
+/**
+ * @public
+ *
+ * The input for {@link ListThingPrincipalsV2Command}.
+ */
+export interface ListThingPrincipalsV2CommandInput extends ListThingPrincipalsV2Request {}
+/**
+ * @public
+ *
+ * The output of {@link ListThingPrincipalsV2Command}.
+ */
+export interface ListThingPrincipalsV2CommandOutput extends ListThingPrincipalsV2Response, __MetadataBearer {}
+
+/**
+ * Lists the principals associated with the specified thing. A principal can be an X.509
+ * certificate or an Amazon Cognito ID.
+ * Requires permission to access the ListThingPrincipals action.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { IoTClient, ListThingPrincipalsV2Command } from "@aws-sdk/client-iot"; // ES Modules import
+ * // const { IoTClient, ListThingPrincipalsV2Command } = require("@aws-sdk/client-iot"); // CommonJS import
+ * const client = new IoTClient(config);
+ * const input = { // ListThingPrincipalsV2Request
+ * nextToken: "STRING_VALUE",
+ * maxResults: Number("int"),
+ * thingName: "STRING_VALUE", // required
+ * thingPrincipalType: "EXCLUSIVE_THING" || "NON_EXCLUSIVE_THING",
+ * };
+ * const command = new ListThingPrincipalsV2Command(input);
+ * const response = await client.send(command);
+ * // { // ListThingPrincipalsV2Response
+ * // thingPrincipalObjects: [ // ThingPrincipalObjects
+ * // { // ThingPrincipalObject
+ * // principal: "STRING_VALUE", // required
+ * // thingPrincipalType: "EXCLUSIVE_THING" || "NON_EXCLUSIVE_THING",
+ * // },
+ * // ],
+ * // nextToken: "STRING_VALUE",
+ * // };
+ *
+ * ```
+ *
+ * @param ListThingPrincipalsV2CommandInput - {@link ListThingPrincipalsV2CommandInput}
+ * @returns {@link ListThingPrincipalsV2CommandOutput}
+ * @see {@link ListThingPrincipalsV2CommandInput} for command's `input` shape.
+ * @see {@link ListThingPrincipalsV2CommandOutput} for command's `response` shape.
+ * @see {@link IoTClientResolvedConfig | config} for IoTClient's `config` shape.
+ *
+ * @throws {@link InternalFailureException} (server fault)
+ * An unexpected error has occurred.
+ *
+ * @throws {@link InvalidRequestException} (client fault)
+ * The request is not valid.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource does not exist.
+ *
+ * @throws {@link ServiceUnavailableException} (server fault)
+ * The service is temporarily unavailable.
+ *
+ * @throws {@link ThrottlingException} (client fault)
+ * The rate exceeds the limit.
+ *
+ * @throws {@link UnauthorizedException} (client fault)
+ * You are not authorized to perform this operation.
+ *
+ * @throws {@link IoTServiceException}
+ * Base exception class for all service exceptions from IoT service.
+ *
+ * @public
+ */
+export class ListThingPrincipalsV2Command extends $Command
+ .classBuilder<
+ ListThingPrincipalsV2CommandInput,
+ ListThingPrincipalsV2CommandOutput,
+ 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", "ListThingPrincipalsV2", {})
+ .n("IoTClient", "ListThingPrincipalsV2Command")
+ .f(void 0, void 0)
+ .ser(se_ListThingPrincipalsV2Command)
+ .de(de_ListThingPrincipalsV2Command)
+ .build() {
+ /** @internal type navigation helper, not in runtime. */
+ protected declare static __types: {
+ api: {
+ input: ListThingPrincipalsV2Request;
+ output: ListThingPrincipalsV2Response;
+ };
+ sdk: {
+ input: ListThingPrincipalsV2CommandInput;
+ output: ListThingPrincipalsV2CommandOutput;
+ };
+ };
+}
diff --git a/clients/client-iot/src/commands/ListThingTypesCommand.ts b/clients/client-iot/src/commands/ListThingTypesCommand.ts
index 25c994e2415d2..df67309e38aa5 100644
--- a/clients/client-iot/src/commands/ListThingTypesCommand.ts
+++ b/clients/client-iot/src/commands/ListThingTypesCommand.ts
@@ -53,6 +53,15 @@ export interface ListThingTypesCommandOutput extends ListThingTypesResponse, __M
* // searchableAttributes: [ // SearchableAttributes
* // "STRING_VALUE",
* // ],
+ * // mqtt5Configuration: { // Mqtt5Configuration
+ * // propagatingAttributes: [ // PropagatingAttributeList
+ * // { // PropagatingAttribute
+ * // userPropertyKey: "STRING_VALUE",
+ * // thingAttribute: "STRING_VALUE",
+ * // connectionAttribute: "STRING_VALUE",
+ * // },
+ * // ],
+ * // },
* // },
* // thingTypeMetadata: { // ThingTypeMetadata
* // deprecated: true || false,
diff --git a/clients/client-iot/src/commands/UpdateDomainConfigurationCommand.ts b/clients/client-iot/src/commands/UpdateDomainConfigurationCommand.ts
index 8fdb6688abebb..162ec847b0d07 100644
--- a/clients/client-iot/src/commands/UpdateDomainConfigurationCommand.ts
+++ b/clients/client-iot/src/commands/UpdateDomainConfigurationCommand.ts
@@ -50,6 +50,8 @@ export interface UpdateDomainConfigurationCommandOutput extends UpdateDomainConf
* },
* serverCertificateConfig: { // ServerCertificateConfig
* enableOCSPCheck: true || false,
+ * ocspLambdaArn: "STRING_VALUE",
+ * ocspAuthorizedResponderArn: "STRING_VALUE",
* },
* authenticationType: "CUSTOM_AUTH_X509" || "CUSTOM_AUTH" || "AWS_X509" || "AWS_SIGV4" || "DEFAULT",
* applicationProtocol: "SECURE_MQTT" || "MQTT_WSS" || "HTTPS" || "DEFAULT",
diff --git a/clients/client-iot/src/commands/UpdateThingTypeCommand.ts b/clients/client-iot/src/commands/UpdateThingTypeCommand.ts
new file mode 100644
index 0000000000000..c29e052cd71f7
--- /dev/null
+++ b/clients/client-iot/src/commands/UpdateThingTypeCommand.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 { UpdateThingTypeRequest, UpdateThingTypeResponse } from "../models/models_2";
+import { de_UpdateThingTypeCommand, se_UpdateThingTypeCommand } from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export type { __MetadataBearer };
+export { $Command };
+/**
+ * @public
+ *
+ * The input for {@link UpdateThingTypeCommand}.
+ */
+export interface UpdateThingTypeCommandInput extends UpdateThingTypeRequest {}
+/**
+ * @public
+ *
+ * The output of {@link UpdateThingTypeCommand}.
+ */
+export interface UpdateThingTypeCommandOutput extends UpdateThingTypeResponse, __MetadataBearer {}
+
+/**
+ * Updates a thing type.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { IoTClient, UpdateThingTypeCommand } from "@aws-sdk/client-iot"; // ES Modules import
+ * // const { IoTClient, UpdateThingTypeCommand } = require("@aws-sdk/client-iot"); // CommonJS import
+ * const client = new IoTClient(config);
+ * const input = { // UpdateThingTypeRequest
+ * thingTypeName: "STRING_VALUE", // required
+ * thingTypeProperties: { // ThingTypeProperties
+ * thingTypeDescription: "STRING_VALUE",
+ * searchableAttributes: [ // SearchableAttributes
+ * "STRING_VALUE",
+ * ],
+ * mqtt5Configuration: { // Mqtt5Configuration
+ * propagatingAttributes: [ // PropagatingAttributeList
+ * { // PropagatingAttribute
+ * userPropertyKey: "STRING_VALUE",
+ * thingAttribute: "STRING_VALUE",
+ * connectionAttribute: "STRING_VALUE",
+ * },
+ * ],
+ * },
+ * },
+ * };
+ * const command = new UpdateThingTypeCommand(input);
+ * const response = await client.send(command);
+ * // {};
+ *
+ * ```
+ *
+ * @param UpdateThingTypeCommandInput - {@link UpdateThingTypeCommandInput}
+ * @returns {@link UpdateThingTypeCommandOutput}
+ * @see {@link UpdateThingTypeCommandInput} for command's `input` shape.
+ * @see {@link UpdateThingTypeCommandOutput} for command's `response` shape.
+ * @see {@link IoTClientResolvedConfig | config} for IoTClient's `config` shape.
+ *
+ * @throws {@link InternalFailureException} (server fault)
+ * An unexpected error has occurred.
+ *
+ * @throws {@link InvalidRequestException} (client fault)
+ * The request is not valid.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource does not exist.
+ *
+ * @throws {@link ServiceUnavailableException} (server fault)
+ * The service is temporarily unavailable.
+ *
+ * @throws {@link ThrottlingException} (client fault)
+ * The rate exceeds the limit.
+ *
+ * @throws {@link UnauthorizedException} (client fault)
+ * You are not authorized to perform this operation.
+ *
+ * @throws {@link IoTServiceException}
+ * Base exception class for all service exceptions from IoT service.
+ *
+ * @public
+ */
+export class UpdateThingTypeCommand extends $Command
+ .classBuilder<
+ UpdateThingTypeCommandInput,
+ UpdateThingTypeCommandOutput,
+ 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", "UpdateThingType", {})
+ .n("IoTClient", "UpdateThingTypeCommand")
+ .f(void 0, void 0)
+ .ser(se_UpdateThingTypeCommand)
+ .de(de_UpdateThingTypeCommand)
+ .build() {
+ /** @internal type navigation helper, not in runtime. */
+ protected declare static __types: {
+ api: {
+ input: UpdateThingTypeRequest;
+ output: {};
+ };
+ sdk: {
+ input: UpdateThingTypeCommandInput;
+ output: UpdateThingTypeCommandOutput;
+ };
+ };
+}
diff --git a/clients/client-iot/src/commands/index.ts b/clients/client-iot/src/commands/index.ts
index 959eb509086a0..502a121a9b869 100644
--- a/clients/client-iot/src/commands/index.ts
+++ b/clients/client-iot/src/commands/index.ts
@@ -178,6 +178,7 @@ export * from "./ListPolicyPrincipalsCommand";
export * from "./ListPolicyVersionsCommand";
export * from "./ListPrincipalPoliciesCommand";
export * from "./ListPrincipalThingsCommand";
+export * from "./ListPrincipalThingsV2Command";
export * from "./ListProvisioningTemplateVersionsCommand";
export * from "./ListProvisioningTemplatesCommand";
export * from "./ListRelatedResourcesForAuditFindingCommand";
@@ -193,6 +194,7 @@ export * from "./ListTargetsForSecurityProfileCommand";
export * from "./ListThingGroupsCommand";
export * from "./ListThingGroupsForThingCommand";
export * from "./ListThingPrincipalsCommand";
+export * from "./ListThingPrincipalsV2Command";
export * from "./ListThingRegistrationTaskReportsCommand";
export * from "./ListThingRegistrationTasksCommand";
export * from "./ListThingTypesCommand";
@@ -255,5 +257,6 @@ export * from "./UpdateStreamCommand";
export * from "./UpdateThingCommand";
export * from "./UpdateThingGroupCommand";
export * from "./UpdateThingGroupsForThingCommand";
+export * from "./UpdateThingTypeCommand";
export * from "./UpdateTopicRuleDestinationCommand";
export * from "./ValidateSecurityProfileBehaviorsCommand";
diff --git a/clients/client-iot/src/models/models_0.ts b/clients/client-iot/src/models/models_0.ts
index e280b78e55bad..71f863d41ffd0 100644
--- a/clients/client-iot/src/models/models_0.ts
+++ b/clients/client-iot/src/models/models_0.ts
@@ -2680,6 +2680,20 @@ export class VersionConflictException extends __BaseException {
}
}
+/**
+ * @public
+ * @enum
+ */
+export const ThingPrincipalType = {
+ EXCLUSIVE_THING: "EXCLUSIVE_THING",
+ NON_EXCLUSIVE_THING: "NON_EXCLUSIVE_THING",
+} as const;
+
+/**
+ * @public
+ */
+export type ThingPrincipalType = (typeof ThingPrincipalType)[keyof typeof ThingPrincipalType];
+
/**
* The input for the AttachThingPrincipal operation.
* @public
@@ -2697,6 +2711,26 @@ export interface AttachThingPrincipalRequest {
* @public
*/
principal: string | undefined;
+
+ /**
+ * The type of the relation you want to specify when you attach a principal to a thing.
+ *
+ *
+ * @public
+ */
+ thingPrincipalType?: ThingPrincipalType | undefined;
}
/**
@@ -4501,11 +4535,34 @@ 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
- * configuration from Amazon Web Services IoT Core Developer Guide.
+ * For more information, see
+ * Server certificate configuration for OCSP stapling from Amazon Web Services IoT Core Developer Guide.
* @public
*/
enableOCSPCheck?: boolean | undefined;
+
+ /**
+ * The Amazon Resource Name (ARN) for a Lambda function that acts as a Request for Comments
+ * (RFC) 6960-compliant Online Certificate Status Protocol (OCSP) responder, supporting basic
+ * OCSP responses. The Lambda function accepts a JSON string that's Base64-encoded.
+ * Therefore, you must convert your OCSP response, which is typically in the Distinguished
+ * Encoding Rules (DER) format, into a JSON string that's Base64-encoded. The Lambda
+ * function's response is also a Base64-encoded JSON string and the response payload must not
+ * exceed 8 kilobytes (KiB) in size. The Lambda function must be in the same Amazon Web Services region and
+ * account as the domain configuration.
+ * @public
+ */
+ ocspLambdaArn?: string | undefined;
+
+ /**
+ * The Amazon Resource Name (ARN) for an X.509 certificate stored in Amazon Web Services Certificate Manager (ACM).
+ * If provided, Amazon Web Services IoT Core will use this certificate to validate the signature of the received OCSP response.
+ * The OCSP responder must sign responses using either this authorized responder certificate or the issuing certificate,
+ * depending on whether the ARN is provided or not. The certificate must be in the same Amazon Web Services region and account as the domain configuration.
+ *
+ * @public
+ */
+ ocspAuthorizedResponderArn?: string | undefined;
}
/**
@@ -7367,6 +7424,42 @@ export interface CreateThingGroupResponse {
thingGroupId?: string | undefined;
}
+/**
+ * An object that represents the connection attribute, thing attribute, and the user property key.
+ * @public
+ */
+export interface PropagatingAttribute {
+ /**
+ * The key of the user property key-value pair.
+ * @public
+ */
+ userPropertyKey?: string | undefined;
+
+ /**
+ * The user-defined thing attribute that is propagating for MQTT 5 message enrichment.
+ * @public
+ */
+ thingAttribute?: string | undefined;
+
+ /**
+ * The attribute associated with the connection between a device and Amazon Web Services IoT Core.
+ * @public
+ */
+ connectionAttribute?: string | undefined;
+}
+
+/**
+ * The configuration to add user-defined properties to enrich MQTT 5 messages.
+ * @public
+ */
+export interface Mqtt5Configuration {
+ /**
+ * An object that represents the propagating thing attributes and the connection attributes.
+ * @public
+ */
+ propagatingAttributes?: PropagatingAttribute[] | undefined;
+}
+
/**
* The ThingTypeProperties contains information about the thing type including: a thing type description,
* and a list of searchable thing attribute names.
@@ -7384,6 +7477,12 @@ export interface ThingTypeProperties {
* @public
*/
searchableAttributes?: string[] | undefined;
+
+ /**
+ * The configuration to add user-defined properties to enrich MQTT 5 messages.
+ * @public
+ */
+ mqtt5Configuration?: Mqtt5Configuration | undefined;
}
/**
@@ -7793,43 +7892,6 @@ export interface DeleteAuditSuppressionRequest {
*/
export interface DeleteAuditSuppressionResponse {}
-/**
- * @public
- */
-export interface DeleteAuthorizerRequest {
- /**
- * The name of the authorizer to delete.
- * @public
- */
- authorizerName: string | undefined;
-}
-
-/**
- * @public
- */
-export interface DeleteAuthorizerResponse {}
-
-/**
- * You can't delete the resource because it is attached to one or more
- * resources.
- * @public
- */
-export class DeleteConflictException extends __BaseException {
- readonly name: "DeleteConflictException" = "DeleteConflictException";
- readonly $fault: "client" = "client";
- /**
- * @internal
- */
- constructor(opts: __ExceptionOptionType) {
- super({
- name: "DeleteConflictException",
- $fault: "client",
- ...opts,
- });
- Object.setPrototypeOf(this, DeleteConflictException.prototype);
- }
-}
-
/**
* @internal
*/
diff --git a/clients/client-iot/src/models/models_1.ts b/clients/client-iot/src/models/models_1.ts
index 3d62939f0e802..4287524a9c6a7 100644
--- a/clients/client-iot/src/models/models_1.ts
+++ b/clients/client-iot/src/models/models_1.ts
@@ -75,6 +75,43 @@ import {
VerificationState,
} from "./models_0";
+/**
+ * @public
+ */
+export interface DeleteAuthorizerRequest {
+ /**
+ * The name of the authorizer to delete.
+ * @public
+ */
+ authorizerName: string | undefined;
+}
+
+/**
+ * @public
+ */
+export interface DeleteAuthorizerResponse {}
+
+/**
+ * You can't delete the resource because it is attached to one or more
+ * resources.
+ * @public
+ */
+export class DeleteConflictException extends __BaseException {
+ readonly name: "DeleteConflictException" = "DeleteConflictException";
+ readonly $fault: "client" = "client";
+ /**
+ * @internal
+ */
+ constructor(opts: __ExceptionOptionType) {
+ super({
+ name: "DeleteConflictException",
+ $fault: "client",
+ ...opts,
+ });
+ Object.setPrototypeOf(this, DeleteConflictException.prototype);
+ }
+}
+
/**
* @public
*/
@@ -4046,7 +4083,7 @@ export interface DescribeThingTypeResponse {
/**
* The ThingTypeProperties contains information about the thing type including
- * description, and a list of searchable thing attribute names.
+ * description, a list of searchable thing attribute names, and MQTT5 configuration.
* @public
*/
thingTypeProperties?: ThingTypeProperties | undefined;
@@ -7411,84 +7448,6 @@ export interface JobTemplateSummary {
createdAt?: Date | undefined;
}
-/**
- * @public
- */
-export interface ListJobTemplatesResponse {
- /**
- * A list of objects that contain information about the job templates.
- * @public
- */
- jobTemplates?: JobTemplateSummary[] | undefined;
-
- /**
- * The token for the next set of results, or null if there are no
- * additional results.
- * @public
- */
- nextToken?: string | undefined;
-}
-
-/**
- * @public
- */
-export interface ListManagedJobTemplatesRequest {
- /**
- * An optional parameter for template name. If specified, only the versions of the
- * managed job templates that have the specified template name will be returned.
- * @public
- */
- templateName?: string | undefined;
-
- /**
- * Maximum number of entries that can be returned.
- * @public
- */
- maxResults?: number | undefined;
-
- /**
- * The token to retrieve the next set of results.
- * @public
- */
- nextToken?: string | undefined;
-}
-
-/**
- * An object that contains information about the managed template.
- * @public
- */
-export interface ManagedJobTemplateSummary {
- /**
- * The Amazon Resource Name (ARN) for a managed template.
- * @public
- */
- templateArn?: string | undefined;
-
- /**
- * The unique Name for a managed template.
- * @public
- */
- templateName?: string | undefined;
-
- /**
- * The description for a managed template.
- * @public
- */
- description?: string | undefined;
-
- /**
- * A list of environments that are supported with the managed job template.
- * @public
- */
- environments?: string[] | undefined;
-
- /**
- * The version for a managed template.
- * @public
- */
- templateVersion?: string | undefined;
-}
-
/**
* @internal
*/
diff --git a/clients/client-iot/src/models/models_2.ts b/clients/client-iot/src/models/models_2.ts
index cde47a5a38a5d..c9d4d0e245ef7 100644
--- a/clients/client-iot/src/models/models_2.ts
+++ b/clients/client-iot/src/models/models_2.ts
@@ -50,6 +50,7 @@ import {
Tag,
TemplateType,
ThingGroupProperties,
+ ThingPrincipalType,
ThingTypeProperties,
TimeoutConfig,
TlsConfig,
@@ -69,8 +70,8 @@ import {
DomainConfigurationStatus,
EventType,
GroupNameAndArn,
+ JobTemplateSummary,
LogTargetType,
- ManagedJobTemplateSummary,
MitigationActionType,
RegistrationConfig,
Status,
@@ -81,6 +82,84 @@ import {
ViolationEventOccurrenceRange,
} from "./models_1";
+/**
+ * @public
+ */
+export interface ListJobTemplatesResponse {
+ /**
+ * A list of objects that contain information about the job templates.
+ * @public
+ */
+ jobTemplates?: JobTemplateSummary[] | undefined;
+
+ /**
+ * The token for the next set of results, or null if there are no
+ * additional results.
+ * @public
+ */
+ nextToken?: string | undefined;
+}
+
+/**
+ * @public
+ */
+export interface ListManagedJobTemplatesRequest {
+ /**
+ * An optional parameter for template name. If specified, only the versions of the
+ * managed job templates that have the specified template name will be returned.
+ * @public
+ */
+ templateName?: string | undefined;
+
+ /**
+ * Maximum number of entries that can be returned.
+ * @public
+ */
+ maxResults?: number | undefined;
+
+ /**
+ * The token to retrieve the next set of results.
+ * @public
+ */
+ nextToken?: string | undefined;
+}
+
+/**
+ * An object that contains information about the managed template.
+ * @public
+ */
+export interface ManagedJobTemplateSummary {
+ /**
+ * The Amazon Resource Name (ARN) for a managed template.
+ * @public
+ */
+ templateArn?: string | undefined;
+
+ /**
+ * The unique Name for a managed template.
+ * @public
+ */
+ templateName?: string | undefined;
+
+ /**
+ * The description for a managed template.
+ * @public
+ */
+ description?: string | undefined;
+
+ /**
+ * A list of environments that are supported with the managed job template.
+ * @public
+ */
+ environments?: string[] | undefined;
+
+ /**
+ * The version for a managed template.
+ * @public
+ */
+ templateVersion?: string | undefined;
+}
+
/**
* @public
*/
@@ -782,6 +861,104 @@ export interface ListPrincipalThingsResponse {
nextToken?: string | undefined;
}
+/**
+ * @public
+ */
+export interface ListPrincipalThingsV2Request {
+ /**
+ * To retrieve the next set of results, the nextToken
+ * value from a previous response; otherwise null to receive
+ * the first set of results.
+ * @public
+ */
+ nextToken?: string | undefined;
+
+ /**
+ * The maximum number of results to return in this operation.
+ * @public
+ */
+ maxResults?: number | undefined;
+
+ /**
+ * The principal. A principal can be an X.509 certificate or an Amazon Cognito ID.
+ * @public
+ */
+ principal: string | undefined;
+
+ /**
+ * The type of the relation you want to filter in the response. If no value is provided in
+ * this field, the response will list all things, including both the
+ * EXCLUSIVE_THING
and NON_EXCLUSIVE_THING
attachment
+ * types.
+ *
+ *
+ * @public
+ */
+ thingPrincipalType?: ThingPrincipalType | undefined;
+}
+
+/**
+ * An object that represents the thing and the type of relation it has with the principal.
+ * @public
+ */
+export interface PrincipalThingObject {
+ /**
+ * The name of the thing.
+ * @public
+ */
+ thingName: string | undefined;
+
+ /**
+ * The type of the relation you want to specify when you attach a principal to a thing.
+ * The value defaults to NON_EXCLUSIVE_THING
.
+ *
+ *
+ * @public
+ */
+ thingPrincipalType?: ThingPrincipalType | undefined;
+}
+
+/**
+ * @public
+ */
+export interface ListPrincipalThingsV2Response {
+ /**
+ * A list of thingPrincipalObject
that represents the principal and the type of relation it has with the thing.
+ * @public
+ */
+ principalThingObjects?: PrincipalThingObject[] | undefined;
+
+ /**
+ * The token to use to get the next set of results, or null if there are no additional results.
+ * @public
+ */
+ nextToken?: string | undefined;
+}
+
/**
* @public
*/
@@ -1674,6 +1851,105 @@ export interface ListThingPrincipalsResponse {
nextToken?: string | undefined;
}
+/**
+ * @public
+ */
+export interface ListThingPrincipalsV2Request {
+ /**
+ * To retrieve the next set of results, the nextToken
+ * value from a previous response; otherwise null to receive
+ * the first set of results.
+ * @public
+ */
+ nextToken?: string | undefined;
+
+ /**
+ * The maximum number of results to return in this operation.
+ * @public
+ */
+ maxResults?: number | undefined;
+
+ /**
+ * The name of the thing.
+ * @public
+ */
+ thingName: string | undefined;
+
+ /**
+ * The type of the relation you want to filter in the response. If no value is provided in
+ * this field, the response will list all principals, including both the
+ * EXCLUSIVE_THING
and NON_EXCLUSIVE_THING
attachment
+ * types.
+ *
+ *
+ * @public
+ */
+ thingPrincipalType?: ThingPrincipalType | undefined;
+}
+
+/**
+ * An object that represents the principal and the type of relation it has with the thing.
+ * @public
+ */
+export interface ThingPrincipalObject {
+ /**
+ * The principal of the thing principal object.
+ * @public
+ */
+ principal: string | undefined;
+
+ /**
+ * The type of the relation you want to specify when you attach a principal to a thing.
+ * The value defaults to NON_EXCLUSIVE_THING
.
+ *
+ *
+ * @public
+ */
+ thingPrincipalType?: ThingPrincipalType | undefined;
+}
+
+/**
+ * @public
+ */
+export interface ListThingPrincipalsV2Response {
+ /**
+ * A list of thingPrincipalObject
that represents the principal and the type of relation it has
+ * with the thing.
+ * @public
+ */
+ thingPrincipalObjects?: ThingPrincipalObject[] | undefined;
+
+ /**
+ * The token to use to get the next set of results, or null if there are no additional results.
+ * @public
+ */
+ nextToken?: string | undefined;
+}
+
/**
* @public
* @enum
@@ -5288,6 +5564,29 @@ export interface UpdateThingGroupsForThingRequest {
*/
export interface UpdateThingGroupsForThingResponse {}
+/**
+ * @public
+ */
+export interface UpdateThingTypeRequest {
+ /**
+ * The name of a thing type.
+ * @public
+ */
+ thingTypeName: string | undefined;
+
+ /**
+ * The ThingTypeProperties contains information about the thing type including: a thing type description,
+ * and a list of searchable thing attribute names.
+ * @public
+ */
+ thingTypeProperties?: ThingTypeProperties | undefined;
+}
+
+/**
+ * @public
+ */
+export interface UpdateThingTypeResponse {}
+
/**
* @public
*/
diff --git a/clients/client-iot/src/pagination/ListPrincipalThingsV2Paginator.ts b/clients/client-iot/src/pagination/ListPrincipalThingsV2Paginator.ts
new file mode 100644
index 0000000000000..b7861768e1e40
--- /dev/null
+++ b/clients/client-iot/src/pagination/ListPrincipalThingsV2Paginator.ts
@@ -0,0 +1,24 @@
+// smithy-typescript generated code
+import { createPaginator } from "@smithy/core";
+import { Paginator } from "@smithy/types";
+
+import {
+ ListPrincipalThingsV2Command,
+ ListPrincipalThingsV2CommandInput,
+ ListPrincipalThingsV2CommandOutput,
+} from "../commands/ListPrincipalThingsV2Command";
+import { IoTClient } from "../IoTClient";
+import { IoTPaginationConfiguration } from "./Interfaces";
+
+/**
+ * @public
+ */
+export const paginateListPrincipalThingsV2: (
+ config: IoTPaginationConfiguration,
+ input: ListPrincipalThingsV2CommandInput,
+ ...rest: any[]
+) => Paginator = createPaginator<
+ IoTPaginationConfiguration,
+ ListPrincipalThingsV2CommandInput,
+ ListPrincipalThingsV2CommandOutput
+>(IoTClient, ListPrincipalThingsV2Command, "nextToken", "nextToken", "maxResults");
diff --git a/clients/client-iot/src/pagination/ListThingPrincipalsV2Paginator.ts b/clients/client-iot/src/pagination/ListThingPrincipalsV2Paginator.ts
new file mode 100644
index 0000000000000..c66b2f46e4f67
--- /dev/null
+++ b/clients/client-iot/src/pagination/ListThingPrincipalsV2Paginator.ts
@@ -0,0 +1,24 @@
+// smithy-typescript generated code
+import { createPaginator } from "@smithy/core";
+import { Paginator } from "@smithy/types";
+
+import {
+ ListThingPrincipalsV2Command,
+ ListThingPrincipalsV2CommandInput,
+ ListThingPrincipalsV2CommandOutput,
+} from "../commands/ListThingPrincipalsV2Command";
+import { IoTClient } from "../IoTClient";
+import { IoTPaginationConfiguration } from "./Interfaces";
+
+/**
+ * @public
+ */
+export const paginateListThingPrincipalsV2: (
+ config: IoTPaginationConfiguration,
+ input: ListThingPrincipalsV2CommandInput,
+ ...rest: any[]
+) => Paginator = createPaginator<
+ IoTPaginationConfiguration,
+ ListThingPrincipalsV2CommandInput,
+ ListThingPrincipalsV2CommandOutput
+>(IoTClient, ListThingPrincipalsV2Command, "nextToken", "nextToken", "maxResults");
diff --git a/clients/client-iot/src/pagination/index.ts b/clients/client-iot/src/pagination/index.ts
index 4fc9c40e63cd1..bfe48901573cf 100644
--- a/clients/client-iot/src/pagination/index.ts
+++ b/clients/client-iot/src/pagination/index.ts
@@ -35,6 +35,7 @@ export * from "./ListPoliciesPaginator";
export * from "./ListPolicyPrincipalsPaginator";
export * from "./ListPrincipalPoliciesPaginator";
export * from "./ListPrincipalThingsPaginator";
+export * from "./ListPrincipalThingsV2Paginator";
export * from "./ListProvisioningTemplateVersionsPaginator";
export * from "./ListProvisioningTemplatesPaginator";
export * from "./ListRelatedResourcesForAuditFindingPaginator";
@@ -50,6 +51,7 @@ export * from "./ListTargetsForSecurityProfilePaginator";
export * from "./ListThingGroupsForThingPaginator";
export * from "./ListThingGroupsPaginator";
export * from "./ListThingPrincipalsPaginator";
+export * from "./ListThingPrincipalsV2Paginator";
export * from "./ListThingRegistrationTaskReportsPaginator";
export * from "./ListThingRegistrationTasksPaginator";
export * from "./ListThingTypesPaginator";
diff --git a/clients/client-iot/src/protocols/Aws_restJson1.ts b/clients/client-iot/src/protocols/Aws_restJson1.ts
index 34487adeb8713..7b5bf93ebb555 100644
--- a/clients/client-iot/src/protocols/Aws_restJson1.ts
+++ b/clients/client-iot/src/protocols/Aws_restJson1.ts
@@ -504,6 +504,10 @@ import {
ListPrincipalThingsCommandInput,
ListPrincipalThingsCommandOutput,
} from "../commands/ListPrincipalThingsCommand";
+import {
+ ListPrincipalThingsV2CommandInput,
+ ListPrincipalThingsV2CommandOutput,
+} from "../commands/ListPrincipalThingsV2Command";
import {
ListProvisioningTemplatesCommandInput,
ListProvisioningTemplatesCommandOutput,
@@ -555,6 +559,10 @@ import {
ListThingPrincipalsCommandInput,
ListThingPrincipalsCommandOutput,
} from "../commands/ListThingPrincipalsCommand";
+import {
+ ListThingPrincipalsV2CommandInput,
+ ListThingPrincipalsV2CommandOutput,
+} from "../commands/ListThingPrincipalsV2Command";
import {
ListThingRegistrationTaskReportsCommandInput,
ListThingRegistrationTaskReportsCommandOutput,
@@ -734,6 +742,7 @@ import {
UpdateThingGroupsForThingCommandInput,
UpdateThingGroupsForThingCommandOutput,
} from "../commands/UpdateThingGroupsForThingCommand";
+import { UpdateThingTypeCommandInput, UpdateThingTypeCommandOutput } from "../commands/UpdateThingTypeCommand";
import {
UpdateTopicRuleDestinationCommandInput,
UpdateTopicRuleDestinationCommandOutput,
@@ -790,7 +799,6 @@ import {
ConflictException,
ConflictingResourceUpdateException,
CustomCodeSigning,
- DeleteConflictException,
Destination,
DynamoDBAction,
DynamoDBv2Action,
@@ -832,12 +840,14 @@ import {
MetricToRetain,
MetricValue,
MitigationActionParams,
+ Mqtt5Configuration,
MqttHeaders,
OpenSearchAction,
OTAUpdateFile,
PackageVersionArtifact,
PolicyVersionIdentifier,
PresignedUrlConfig,
+ PropagatingAttribute,
Protocol,
ProvisioningHook,
PublishFindingToSnsParams,
@@ -901,6 +911,7 @@ import {
CertificateStateException,
CertificateValidity,
Configuration,
+ DeleteConflictException,
DetectMitigationActionExecution,
DetectMitigationActionsTaskSummary,
DetectMitigationActionsTaskTarget,
@@ -1156,8 +1167,11 @@ export const se_AttachThingPrincipalCommand = async (
});
b.bp("/things/{thingName}/principals");
b.p("thingName", () => input.thingName!, "{thingName}", false);
+ const query: any = map({
+ [_tPT]: [, input[_tPT]!],
+ });
let body: any;
- b.m("PUT").h(headers).b(body);
+ b.m("PUT").h(headers).q(query).b(body);
return b.build();
};
@@ -4576,6 +4590,28 @@ export const se_ListPrincipalThingsCommand = async (
return b.build();
};
+/**
+ * serializeAws_restJson1ListPrincipalThingsV2Command
+ */
+export const se_ListPrincipalThingsV2Command = async (
+ input: ListPrincipalThingsV2CommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const b = rb(input, context);
+ const headers: any = map({}, isSerializableHeaderValue, {
+ [_xap]: input[_p]!,
+ });
+ b.bp("/principals/things-v2");
+ const query: any = map({
+ [_nT]: [, input[_nT]!],
+ [_mR]: [() => input.maxResults !== void 0, () => input[_mR]!.toString()],
+ [_tPT]: [, input[_tPT]!],
+ });
+ let body: any;
+ b.m("GET").h(headers).q(query).b(body);
+ return b.build();
+};
+
/**
* serializeAws_restJson1ListProvisioningTemplatesCommand
*/
@@ -4879,6 +4915,27 @@ export const se_ListThingPrincipalsCommand = async (
return b.build();
};
+/**
+ * serializeAws_restJson1ListThingPrincipalsV2Command
+ */
+export const se_ListThingPrincipalsV2Command = async (
+ input: ListThingPrincipalsV2CommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const b = rb(input, context);
+ const headers: any = {};
+ b.bp("/things/{thingName}/principals-v2");
+ b.p("thingName", () => input.thingName!, "{thingName}", false);
+ const query: any = map({
+ [_nT]: [, input[_nT]!],
+ [_mR]: [() => input.maxResults !== void 0, () => input[_mR]!.toString()],
+ [_tPT]: [, input[_tPT]!],
+ });
+ let body: any;
+ b.m("GET").h(headers).q(query).b(body);
+ return b.build();
+};
+
/**
* serializeAws_restJson1ListThingRegistrationTaskReportsCommand
*/
@@ -6398,6 +6455,29 @@ export const se_UpdateThingGroupsForThingCommand = async (
return b.build();
};
+/**
+ * serializeAws_restJson1UpdateThingTypeCommand
+ */
+export const se_UpdateThingTypeCommand = async (
+ input: UpdateThingTypeCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const b = rb(input, context);
+ const headers: any = {
+ "content-type": "application/json",
+ };
+ b.bp("/thing-types/{thingTypeName}");
+ b.p("thingTypeName", () => input.thingTypeName!, "{thingTypeName}", false);
+ let body: any;
+ body = JSON.stringify(
+ take(input, {
+ thingTypeProperties: (_) => _json(_),
+ })
+ );
+ b.m("PATCH").h(headers).b(body);
+ return b.build();
+};
+
/**
* serializeAws_restJson1UpdateTopicRuleDestinationCommand
*/
@@ -10260,6 +10340,28 @@ export const de_ListPrincipalThingsCommand = async (
return contents;
};
+/**
+ * deserializeAws_restJson1ListPrincipalThingsV2Command
+ */
+export const de_ListPrincipalThingsV2Command = 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,
+ principalThingObjects: _json,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
/**
* deserializeAws_restJson1ListProvisioningTemplatesCommand
*/
@@ -10590,6 +10692,28 @@ export const de_ListThingPrincipalsCommand = async (
return contents;
};
+/**
+ * deserializeAws_restJson1ListThingPrincipalsV2Command
+ */
+export const de_ListThingPrincipalsV2Command = 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,
+ thingPrincipalObjects: _json,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
/**
* deserializeAws_restJson1ListThingRegistrationTaskReportsCommand
*/
@@ -11838,6 +11962,23 @@ export const de_UpdateThingGroupsForThingCommand = async (
return contents;
};
+/**
+ * deserializeAws_restJson1UpdateThingTypeCommand
+ */
+export const de_UpdateThingTypeCommand = 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_restJson1UpdateTopicRuleDestinationCommand
*/
@@ -13017,6 +13158,8 @@ const se_MetricValue = (input: MetricValue, context: __SerdeContext): any => {
// se_MitigationActionParams omitted.
+// se_Mqtt5Configuration omitted.
+
/**
* serializeAws_restJson1MqttContext
*/
@@ -13095,6 +13238,10 @@ const se_PercentList = (input: number[], context: __SerdeContext): any => {
// se_PresignedUrlConfig omitted.
+// se_PropagatingAttribute omitted.
+
+// se_PropagatingAttributeList omitted.
+
// se_Protocols omitted.
// se_ProvisioningHook omitted.
@@ -14237,6 +14384,8 @@ const de_MitigationActionIdentifierList = (output: any, context: __SerdeContext)
// de_MitigationActionParams omitted.
+// de_Mqtt5Configuration omitted.
+
// de_MqttHeaders omitted.
// de_NamedShadowNamesFilter omitted.
@@ -14470,8 +14619,16 @@ const de_PolicyVersions = (output: any, context: __SerdeContext): PolicyVersion[
// de_Principals omitted.
+// de_PrincipalThingObject omitted.
+
+// de_PrincipalThingObjects omitted.
+
// de_ProcessingTargetNameList omitted.
+// de_PropagatingAttribute omitted.
+
+// de_PropagatingAttributeList omitted.
+
// de_Protocols omitted.
// de_ProvisioningHook omitted.
@@ -14750,6 +14907,10 @@ const de_ThingGroupMetadata = (output: any, context: __SerdeContext): ThingGroup
// de_ThingNameList omitted.
+// de_ThingPrincipalObject omitted.
+
+// de_ThingPrincipalObjects omitted.
+
/**
* deserializeAws_restJson1ThingTypeDefinition
*/
@@ -15025,6 +15186,7 @@ const _tI = "taskId";
const _tN = "targetName";
const _tNe = "templateName";
const _tNh = "thingName";
+const _tPT = "thingPrincipalType";
const _tS = "taskStatus";
const _tSa = "targetSelection";
const _tT = "targetType";
diff --git a/codegen/sdk-codegen/aws-models/iot.json b/codegen/sdk-codegen/aws-models/iot.json
index 5d7a0df3451b1..c77591b02dd4e 100644
--- a/codegen/sdk-codegen/aws-models/iot.json
+++ b/codegen/sdk-codegen/aws-models/iot.json
@@ -570,6 +570,9 @@
{
"target": "com.amazonaws.iot#ListPrincipalThings"
},
+ {
+ "target": "com.amazonaws.iot#ListPrincipalThingsV2"
+ },
{
"target": "com.amazonaws.iot#ListProvisioningTemplates"
},
@@ -615,6 +618,9 @@
{
"target": "com.amazonaws.iot#ListThingPrincipals"
},
+ {
+ "target": "com.amazonaws.iot#ListThingPrincipalsV2"
+ },
{
"target": "com.amazonaws.iot#ListThingRegistrationTaskReports"
},
@@ -801,6 +807,9 @@
{
"target": "com.amazonaws.iot#UpdateThingGroupsForThing"
},
+ {
+ "target": "com.amazonaws.iot#UpdateThingType"
+ },
{
"target": "com.amazonaws.iot#UpdateTopicRuleDestination"
},
@@ -3217,6 +3226,13 @@
"smithy.api#httpHeader": "x-amzn-principal",
"smithy.api#required": {}
}
+ },
+ "thingPrincipalType": {
+ "target": "com.amazonaws.iot#ThingPrincipalType",
+ "traits": {
+ "smithy.api#documentation": "The type of the relation you want to specify when you attach a principal to a thing.
\n \n ",
+ "smithy.api#httpQuery": "thingPrincipalType"
+ }
}
},
"traits": {
@@ -3273,7 +3289,7 @@
"min": 0,
"max": 800
},
- "smithy.api#pattern": "^[a-zA-Z0-9_.,@/:#-]*$"
+ "smithy.api#pattern": "^[a-zA-Z0-9_.,@/:#=\\[\\]-]*$"
}
},
"com.amazonaws.iot#Attributes": {
@@ -6397,6 +6413,16 @@
"smithy.api#httpError": 409
}
},
+ "com.amazonaws.iot#ConnectionAttributeName": {
+ "type": "string",
+ "traits": {
+ "smithy.api#length": {
+ "min": 0,
+ "max": 128
+ },
+ "smithy.api#pattern": "^[a-zA-Z0-9:.]+$"
+ }
+ },
"com.amazonaws.iot#ConnectivityTimestamp": {
"type": "long"
},
@@ -15240,7 +15266,7 @@
"thingTypeProperties": {
"target": "com.amazonaws.iot#ThingTypeProperties",
"traits": {
- "smithy.api#documentation": "The ThingTypeProperties contains information about the thing type including\n\t\t\tdescription, and a list of searchable thing attribute names.
"
+ "smithy.api#documentation": "The ThingTypeProperties contains information about the thing type including\n\t\t\tdescription, a list of searchable thing attribute names, and MQTT5 configuration.
"
}
},
"thingTypeMetadata": {
@@ -23771,6 +23797,106 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.iot#ListPrincipalThingsV2": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.iot#ListPrincipalThingsV2Request"
+ },
+ "output": {
+ "target": "com.amazonaws.iot#ListPrincipalThingsV2Response"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.iot#InternalFailureException"
+ },
+ {
+ "target": "com.amazonaws.iot#InvalidRequestException"
+ },
+ {
+ "target": "com.amazonaws.iot#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.iot#ServiceUnavailableException"
+ },
+ {
+ "target": "com.amazonaws.iot#ThrottlingException"
+ },
+ {
+ "target": "com.amazonaws.iot#UnauthorizedException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Lists the things associated with the specified principal. A principal can be an X.509\n\t\t\tcertificate or an Amazon Cognito ID.
\n Requires permission to access the ListPrincipalThings action.
",
+ "smithy.api#http": {
+ "method": "GET",
+ "uri": "/principals/things-v2",
+ "code": 200
+ },
+ "smithy.api#paginated": {
+ "inputToken": "nextToken",
+ "outputToken": "nextToken",
+ "items": "principalThingObjects",
+ "pageSize": "maxResults"
+ }
+ }
+ },
+ "com.amazonaws.iot#ListPrincipalThingsV2Request": {
+ "type": "structure",
+ "members": {
+ "nextToken": {
+ "target": "com.amazonaws.iot#NextToken",
+ "traits": {
+ "smithy.api#documentation": "To retrieve the next set of results, the nextToken
\n\t\t\t\tvalue from a previous response; otherwise null to receive\n\t\t\t\tthe first set of results.
",
+ "smithy.api#httpQuery": "nextToken"
+ }
+ },
+ "maxResults": {
+ "target": "com.amazonaws.iot#RegistryMaxResults",
+ "traits": {
+ "smithy.api#documentation": "The maximum number of results to return in this operation.
",
+ "smithy.api#httpQuery": "maxResults"
+ }
+ },
+ "principal": {
+ "target": "com.amazonaws.iot#Principal",
+ "traits": {
+ "smithy.api#documentation": "The principal. A principal can be an X.509 certificate or an Amazon Cognito ID.
",
+ "smithy.api#httpHeader": "x-amzn-principal",
+ "smithy.api#required": {}
+ }
+ },
+ "thingPrincipalType": {
+ "target": "com.amazonaws.iot#ThingPrincipalType",
+ "traits": {
+ "smithy.api#documentation": "The type of the relation you want to filter in the response. If no value is provided in\n\t\t\tthis field, the response will list all things, including both the\n\t\t\t\tEXCLUSIVE_THING
and NON_EXCLUSIVE_THING
attachment\n\t\t\ttypes.
\n \n ",
+ "smithy.api#httpQuery": "thingPrincipalType"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.iot#ListPrincipalThingsV2Response": {
+ "type": "structure",
+ "members": {
+ "principalThingObjects": {
+ "target": "com.amazonaws.iot#PrincipalThingObjects",
+ "traits": {
+ "smithy.api#documentation": "A list of thingPrincipalObject
that represents the principal and the type of relation it has with the thing.
"
+ }
+ },
+ "nextToken": {
+ "target": "com.amazonaws.iot#NextToken",
+ "traits": {
+ "smithy.api#documentation": "The token to use to get the next set of results, or null if there are no additional results.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.iot#ListProvisioningTemplateVersions": {
"type": "operation",
"input": {
@@ -25126,6 +25252,106 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.iot#ListThingPrincipalsV2": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.iot#ListThingPrincipalsV2Request"
+ },
+ "output": {
+ "target": "com.amazonaws.iot#ListThingPrincipalsV2Response"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.iot#InternalFailureException"
+ },
+ {
+ "target": "com.amazonaws.iot#InvalidRequestException"
+ },
+ {
+ "target": "com.amazonaws.iot#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.iot#ServiceUnavailableException"
+ },
+ {
+ "target": "com.amazonaws.iot#ThrottlingException"
+ },
+ {
+ "target": "com.amazonaws.iot#UnauthorizedException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Lists the principals associated with the specified thing. A principal can be an X.509\n\t\t\tcertificate or an Amazon Cognito ID.
\n Requires permission to access the ListThingPrincipals action.
",
+ "smithy.api#http": {
+ "method": "GET",
+ "uri": "/things/{thingName}/principals-v2",
+ "code": 200
+ },
+ "smithy.api#paginated": {
+ "inputToken": "nextToken",
+ "outputToken": "nextToken",
+ "items": "thingPrincipalObjects",
+ "pageSize": "maxResults"
+ }
+ }
+ },
+ "com.amazonaws.iot#ListThingPrincipalsV2Request": {
+ "type": "structure",
+ "members": {
+ "nextToken": {
+ "target": "com.amazonaws.iot#NextToken",
+ "traits": {
+ "smithy.api#documentation": "To retrieve the next set of results, the nextToken
\n\t\t\t\tvalue from a previous response; otherwise null to receive\n\t\t\t\tthe first set of results.
",
+ "smithy.api#httpQuery": "nextToken"
+ }
+ },
+ "maxResults": {
+ "target": "com.amazonaws.iot#RegistryMaxResults",
+ "traits": {
+ "smithy.api#documentation": "The maximum number of results to return in this operation.
",
+ "smithy.api#httpQuery": "maxResults"
+ }
+ },
+ "thingName": {
+ "target": "com.amazonaws.iot#ThingName",
+ "traits": {
+ "smithy.api#documentation": "The name of the thing.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "thingPrincipalType": {
+ "target": "com.amazonaws.iot#ThingPrincipalType",
+ "traits": {
+ "smithy.api#documentation": "The type of the relation you want to filter in the response. If no value is provided in\n\t\t\tthis field, the response will list all principals, including both the\n\t\t\t\tEXCLUSIVE_THING
and NON_EXCLUSIVE_THING
attachment\n\t\t\ttypes.
\n \n ",
+ "smithy.api#httpQuery": "thingPrincipalType"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.iot#ListThingPrincipalsV2Response": {
+ "type": "structure",
+ "members": {
+ "thingPrincipalObjects": {
+ "target": "com.amazonaws.iot#ThingPrincipalObjects",
+ "traits": {
+ "smithy.api#documentation": "A list of thingPrincipalObject
that represents the principal and the type of relation it has \n\t\t\t\twith the thing.
"
+ }
+ },
+ "nextToken": {
+ "target": "com.amazonaws.iot#NextToken",
+ "traits": {
+ "smithy.api#documentation": "The token to use to get the next set of results, or null if there are no additional results.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.iot#ListThingRegistrationTaskReports": {
"type": "operation",
"input": {
@@ -26906,6 +27132,20 @@
}
}
},
+ "com.amazonaws.iot#Mqtt5Configuration": {
+ "type": "structure",
+ "members": {
+ "propagatingAttributes": {
+ "target": "com.amazonaws.iot#PropagatingAttributeList",
+ "traits": {
+ "smithy.api#documentation": "An object that represents the propagating thing attributes and the connection attributes.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "The configuration to add user-defined properties to enrich MQTT 5 messages.
"
+ }
+ },
"com.amazonaws.iot#MqttClientId": {
"type": "string",
"traits": {
@@ -27123,6 +27363,15 @@
}
}
},
+ "com.amazonaws.iot#OCSPLambdaArn": {
+ "type": "string",
+ "traits": {
+ "smithy.api#length": {
+ "min": 0,
+ "max": 140
+ }
+ }
+ },
"com.amazonaws.iot#OTAUpdateArn": {
"type": "string"
},
@@ -28015,6 +28264,33 @@
"smithy.api#pattern": "^[a-zA-Z0-9]+$"
}
},
+ "com.amazonaws.iot#PrincipalThingObject": {
+ "type": "structure",
+ "members": {
+ "thingName": {
+ "target": "com.amazonaws.iot#ThingName",
+ "traits": {
+ "smithy.api#documentation": "The name of the thing.
",
+ "smithy.api#required": {}
+ }
+ },
+ "thingPrincipalType": {
+ "target": "com.amazonaws.iot#ThingPrincipalType",
+ "traits": {
+ "smithy.api#documentation": "The type of the relation you want to specify when you attach a principal to a thing.\n\t\t\t\tThe value defaults to NON_EXCLUSIVE_THING
.
\n \n "
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "An object that represents the thing and the type of relation it has with the principal.
"
+ }
+ },
+ "com.amazonaws.iot#PrincipalThingObjects": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.iot#PrincipalThingObject"
+ }
+ },
"com.amazonaws.iot#Principals": {
"type": "list",
"member": {
@@ -28039,6 +28315,38 @@
"target": "com.amazonaws.iot#ProcessingTargetName"
}
},
+ "com.amazonaws.iot#PropagatingAttribute": {
+ "type": "structure",
+ "members": {
+ "userPropertyKey": {
+ "target": "com.amazonaws.iot#UserPropertyKeyName",
+ "traits": {
+ "smithy.api#documentation": "The key of the user property key-value pair.
"
+ }
+ },
+ "thingAttribute": {
+ "target": "com.amazonaws.iot#AttributeName",
+ "traits": {
+ "smithy.api#documentation": "The user-defined thing attribute that is propagating for MQTT 5 message enrichment.
"
+ }
+ },
+ "connectionAttribute": {
+ "target": "com.amazonaws.iot#ConnectionAttributeName",
+ "traits": {
+ "smithy.api#documentation": "The attribute associated with the connection between a device and Amazon Web Services IoT Core.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "An object that represents the connection attribute, thing attribute, and the user property key.
"
+ }
+ },
+ "com.amazonaws.iot#PropagatingAttributeList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.iot#PropagatingAttribute"
+ }
+ },
"com.amazonaws.iot#Protocol": {
"type": "enum",
"members": {
@@ -30388,7 +30696,19 @@
"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 \n Server certificate configuration for OCSP stapling from Amazon Web Services IoT Core Developer Guide.
"
+ }
+ },
+ "ocspLambdaArn": {
+ "target": "com.amazonaws.iot#OCSPLambdaArn",
+ "traits": {
+ "smithy.api#documentation": "The Amazon Resource Name (ARN) for a Lambda function that acts as a Request for Comments\n (RFC) 6960-compliant Online Certificate Status Protocol (OCSP) responder, supporting basic\n OCSP responses. The Lambda function accepts a JSON string that's Base64-encoded.\n Therefore, you must convert your OCSP response, which is typically in the Distinguished\n Encoding Rules (DER) format, into a JSON string that's Base64-encoded. The Lambda\n function's response is also a Base64-encoded JSON string and the response payload must not\n exceed 8 kilobytes (KiB) in size. The Lambda function must be in the same Amazon Web Services region and\n account as the domain configuration.
"
+ }
+ },
+ "ocspAuthorizedResponderArn": {
+ "target": "com.amazonaws.iot#AcmCertificateArn",
+ "traits": {
+ "smithy.api#documentation": "The Amazon Resource Name (ARN) for an X.509 certificate stored in Amazon Web Services Certificate Manager (ACM). \n If provided, Amazon Web Services IoT Core will use this certificate to validate the signature of the received OCSP response. \n The OCSP responder must sign responses using either this authorized responder certificate or the issuing certificate, \n depending on whether the ARN is provided or not. The certificate must be in the same Amazon Web Services region and account as the domain configuration.\n
"
}
}
},
@@ -32869,6 +33189,50 @@
"target": "com.amazonaws.iot#ThingName"
}
},
+ "com.amazonaws.iot#ThingPrincipalObject": {
+ "type": "structure",
+ "members": {
+ "principal": {
+ "target": "com.amazonaws.iot#Principal",
+ "traits": {
+ "smithy.api#documentation": "The principal of the thing principal object.
",
+ "smithy.api#required": {}
+ }
+ },
+ "thingPrincipalType": {
+ "target": "com.amazonaws.iot#ThingPrincipalType",
+ "traits": {
+ "smithy.api#documentation": "The type of the relation you want to specify when you attach a principal to a thing.\n\t\t\t\tThe value defaults to NON_EXCLUSIVE_THING
.
\n \n "
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "An object that represents the principal and the type of relation it has with the thing.
"
+ }
+ },
+ "com.amazonaws.iot#ThingPrincipalObjects": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.iot#ThingPrincipalObject"
+ }
+ },
+ "com.amazonaws.iot#ThingPrincipalType": {
+ "type": "enum",
+ "members": {
+ "EXCLUSIVE_THING": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "EXCLUSIVE_THING"
+ }
+ },
+ "NON_EXCLUSIVE_THING": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "NON_EXCLUSIVE_THING"
+ }
+ }
+ }
+ },
"com.amazonaws.iot#ThingTypeArn": {
"type": "string"
},
@@ -32974,6 +33338,12 @@
"traits": {
"smithy.api#documentation": "A list of searchable thing attribute names.
"
}
+ },
+ "mqtt5Configuration": {
+ "target": "com.amazonaws.iot#Mqtt5Configuration",
+ "traits": {
+ "smithy.api#documentation": "The configuration to add user-defined properties to enrich MQTT 5 messages.
"
+ }
}
},
"traits": {
@@ -36251,6 +36621,69 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.iot#UpdateThingType": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.iot#UpdateThingTypeRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.iot#UpdateThingTypeResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.iot#InternalFailureException"
+ },
+ {
+ "target": "com.amazonaws.iot#InvalidRequestException"
+ },
+ {
+ "target": "com.amazonaws.iot#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.iot#ServiceUnavailableException"
+ },
+ {
+ "target": "com.amazonaws.iot#ThrottlingException"
+ },
+ {
+ "target": "com.amazonaws.iot#UnauthorizedException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Updates a thing type.
",
+ "smithy.api#http": {
+ "method": "PATCH",
+ "uri": "/thing-types/{thingTypeName}",
+ "code": 200
+ }
+ }
+ },
+ "com.amazonaws.iot#UpdateThingTypeRequest": {
+ "type": "structure",
+ "members": {
+ "thingTypeName": {
+ "target": "com.amazonaws.iot#ThingTypeName",
+ "traits": {
+ "smithy.api#documentation": "The name of a thing type.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "thingTypeProperties": {
+ "target": "com.amazonaws.iot#ThingTypeProperties"
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.iot#UpdateThingTypeResponse": {
+ "type": "structure",
+ "members": {},
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.iot#UpdateTopicRuleDestination": {
"type": "operation",
"input": {
@@ -36369,6 +36802,16 @@
}
}
},
+ "com.amazonaws.iot#UserPropertyKeyName": {
+ "type": "string",
+ "traits": {
+ "smithy.api#length": {
+ "min": 0,
+ "max": 128
+ },
+ "smithy.api#pattern": "^[a-zA-Z0-9:$.]+$"
+ }
+ },
"com.amazonaws.iot#UserPropertyValue": {
"type": "string",
"traits": {