@aws-sdk/client-iot
Version:
AWS SDK for JavaScript Iot Client for Node.js, Browser and React Native
1,894 lines • 176 kB
TypeScript
import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client";
import { IoTServiceException as __BaseException } from "./IoTServiceException";
import { AbortConfig, Action, ActiveViolation, AggregationType, AlertTarget, AlertTargetType, AuditCheckConfiguration, AuditCheckDetails, AuditFinding, AuditFrequency, AuditMitigationActionExecutionMetadata, AuditMitigationActionsExecutionStatus, AuditMitigationActionsTaskMetadata, AuditMitigationActionsTaskStatus, AuditMitigationActionsTaskTarget, AuditNotificationTarget, AuditNotificationType, AuditSuppression, AuditTaskMetadata, AuditTaskStatus, AuditTaskType, AuthorizerConfig, AuthorizerDescription, AuthorizerStatus, AuthorizerSummary, AutoRegistrationStatus, AwsJobExecutionsRolloutConfig, AwsJobPresignedUrlConfig, Behavior, BillingGroupProperties, CertificateProviderOperation, CustomMetricType, DayOfWeek, DimensionType, DimensionValueOperator, FleetMetricUnit, JobExecutionsRetryConfig, JobExecutionsRolloutConfig, LogLevel, MaintenanceWindow, MetricsExportConfig, MetricToRetain, MetricValue, MitigationActionParams, OTAUpdateFile, OTAUpdateStatus, PackageVersionStatus, Policy, PresignedUrlConfig, Protocol, ProvisioningHook, ResourceIdentifier, SchedulingConfig, ServerCertificateConfig, ServiceType, StreamFile, TargetSelection, TaskStatisticsForAuditCheck, TemplateType, ThingGroupProperties, ThingTypeProperties, TimeoutConfig, TlsConfig, TopicRuleDestination, VerificationState } from "./models_0";
/**
* @public
*/
export interface DeleteCustomMetricRequest {
/**
* <p>
* The name of the custom metric.
* </p>
* @public
*/
metricName: string | undefined;
}
/**
* @public
*/
export interface DeleteCustomMetricResponse {
}
/**
* @public
*/
export interface DeleteDimensionRequest {
/**
* <p>The unique identifier for the dimension that you want to delete.</p>
* @public
*/
name: string | undefined;
}
/**
* @public
*/
export interface DeleteDimensionResponse {
}
/**
* @public
*/
export interface DeleteDomainConfigurationRequest {
/**
* <p>The name of the domain configuration to be deleted.</p>
* @public
*/
domainConfigurationName: string | undefined;
}
/**
* @public
*/
export interface DeleteDomainConfigurationResponse {
}
/**
* @public
*/
export interface DeleteDynamicThingGroupRequest {
/**
* <p>The name of the dynamic thing group to delete.</p>
* @public
*/
thingGroupName: string | undefined;
/**
* <p>The expected version of the dynamic thing group to delete.</p>
* @public
*/
expectedVersion?: number;
}
/**
* @public
*/
export interface DeleteDynamicThingGroupResponse {
}
/**
* @public
*/
export interface DeleteFleetMetricRequest {
/**
* <p>The name of the fleet metric to delete.</p>
* @public
*/
metricName: string | undefined;
/**
* <p>The expected version of the fleet metric to delete.</p>
* @public
*/
expectedVersion?: number;
}
/**
* @public
*/
export interface DeleteJobRequest {
/**
* <p>The ID of the job to be deleted.</p>
* <p>After a job deletion is completed, you may reuse this jobId when you create a new job.
* However, this is not recommended, and you must ensure that your devices are not using the
* jobId to refer to the deleted job.</p>
* @public
*/
jobId: string | undefined;
/**
* <p>(Optional) When true, you can delete a job which is "IN_PROGRESS". Otherwise, you can
* only delete a job which is in a terminal state ("COMPLETED" or "CANCELED") or an exception
* will occur. The default is false.</p>
* <note>
* <p>Deleting a job which is "IN_PROGRESS", will cause a device which is executing
* the job to be unable to access job information or update the job execution status.
* Use caution and ensure that each device executing a job which is deleted is able to recover to
* a valid state.</p>
* </note>
* @public
*/
force?: boolean;
/**
* <p>The namespace used to indicate that a job is a customer-managed job.</p>
* <p>When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that
* contain the value in the following format.</p>
* <p>
* <code>$aws/things/<i>THING_NAME</i>/jobs/<i>JOB_ID</i>/notify-namespace-<i>NAMESPACE_ID</i>/</code>
* </p>
* <note>
* <p>The <code>namespaceId</code> feature is only supported by IoT Greengrass at
* this time. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html">Setting
* up IoT Greengrass core devices.</a>
* </p>
* </note>
* @public
*/
namespaceId?: string;
}
/**
* @public
*/
export interface DeleteJobExecutionRequest {
/**
* <p>The ID of the job whose execution on a particular device will be deleted.</p>
* @public
*/
jobId: string | undefined;
/**
* <p>The name of the thing whose job execution will be deleted.</p>
* @public
*/
thingName: string | undefined;
/**
* <p>The ID of the job execution to be deleted. The <code>executionNumber</code> refers to the
* execution of a particular job on a particular device.</p>
* <p>Note that once a job execution is deleted, the <code>executionNumber</code> may be reused
* by IoT, so be sure you get and use the correct value here.</p>
* @public
*/
executionNumber: number | undefined;
/**
* <p>(Optional) When true, you can delete a job execution which is "IN_PROGRESS". Otherwise,
* you can only delete a job execution which is in a terminal state ("SUCCEEDED", "FAILED",
* "REJECTED", "REMOVED" or "CANCELED") or an exception will occur. The default is false.</p>
* <note>
* <p>Deleting a job execution which is "IN_PROGRESS", will cause the device
* to be unable to access job information or update the job execution status.
* Use caution and ensure that the device is able to recover to a valid state.</p>
* </note>
* @public
*/
force?: boolean;
/**
* <p>The namespace used to indicate that a job is a customer-managed job.</p>
* <p>When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that
* contain the value in the following format.</p>
* <p>
* <code>$aws/things/<i>THING_NAME</i>/jobs/<i>JOB_ID</i>/notify-namespace-<i>NAMESPACE_ID</i>/</code>
* </p>
* <note>
* <p>The <code>namespaceId</code> feature is only supported by IoT Greengrass at
* this time. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html">Setting
* up IoT Greengrass core devices.</a>
* </p>
* </note>
* @public
*/
namespaceId?: string;
}
/**
* @public
*/
export interface DeleteJobTemplateRequest {
/**
* <p>The unique identifier of the job template to delete.</p>
* @public
*/
jobTemplateId: string | undefined;
}
/**
* @public
*/
export interface DeleteMitigationActionRequest {
/**
* <p>The name of the mitigation action that you want to delete.</p>
* @public
*/
actionName: string | undefined;
}
/**
* @public
*/
export interface DeleteMitigationActionResponse {
}
/**
* @public
*/
export interface DeleteOTAUpdateRequest {
/**
* <p>The ID of the OTA update to delete.</p>
* @public
*/
otaUpdateId: string | undefined;
/**
* <p>When true, the stream created by the OTAUpdate process is deleted when the OTA update is deleted.
* Ignored if the stream specified in the OTAUpdate is supplied by the user.</p>
* @public
*/
deleteStream?: boolean;
/**
* <p>When true, deletes the IoT job created by the OTAUpdate process even if it is "IN_PROGRESS". Otherwise, if the
* job is not in a terminal state ("COMPLETED" or "CANCELED") an exception will occur. The default is false.</p>
* @public
*/
forceDeleteAWSJob?: boolean;
}
/**
* @public
*/
export interface DeleteOTAUpdateResponse {
}
/**
* @public
*/
export interface DeletePackageRequest {
/**
* <p>The name of the target software package.</p>
* @public
*/
packageName: string | undefined;
/**
* <p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request.
* Don't reuse this client token if a new idempotent request is required.</p>
* @public
*/
clientToken?: string;
}
/**
* @public
*/
export interface DeletePackageResponse {
}
/**
* @public
*/
export interface DeletePackageVersionRequest {
/**
* <p>The name of the associated software package.</p>
* @public
*/
packageName: string | undefined;
/**
* <p>The name of the target package version.</p>
* @public
*/
versionName: string | undefined;
/**
* <p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request.
* Don't reuse this client token if a new idempotent request is required.</p>
* @public
*/
clientToken?: string;
}
/**
* @public
*/
export interface DeletePackageVersionResponse {
}
/**
* <p>The input for the DeletePolicy operation.</p>
* @public
*/
export interface DeletePolicyRequest {
/**
* <p>The name of the policy to delete.</p>
* @public
*/
policyName: string | undefined;
}
/**
* <p>The input for the DeletePolicyVersion operation.</p>
* @public
*/
export interface DeletePolicyVersionRequest {
/**
* <p>The name of the policy.</p>
* @public
*/
policyName: string | undefined;
/**
* <p>The policy version ID.</p>
* @public
*/
policyVersionId: string | undefined;
}
/**
* @public
*/
export interface DeleteProvisioningTemplateRequest {
/**
* <p>The name of the fleet provision template to delete.</p>
* @public
*/
templateName: string | undefined;
}
/**
* @public
*/
export interface DeleteProvisioningTemplateResponse {
}
/**
* @public
*/
export interface DeleteProvisioningTemplateVersionRequest {
/**
* <p>The name of the provisioning template version to delete.</p>
* @public
*/
templateName: string | undefined;
/**
* <p>The provisioning template version ID to delete.</p>
* @public
*/
versionId: number | undefined;
}
/**
* @public
*/
export interface DeleteProvisioningTemplateVersionResponse {
}
/**
* <p>The input for the DeleteRegistrationCode operation.</p>
* @public
*/
export interface DeleteRegistrationCodeRequest {
}
/**
* <p>The output for the DeleteRegistrationCode operation.</p>
* @public
*/
export interface DeleteRegistrationCodeResponse {
}
/**
* @public
*/
export interface DeleteRoleAliasRequest {
/**
* <p>The role alias to delete.</p>
* @public
*/
roleAlias: string | undefined;
}
/**
* @public
*/
export interface DeleteRoleAliasResponse {
}
/**
* @public
*/
export interface DeleteScheduledAuditRequest {
/**
* <p>The name of the scheduled audit you want to delete.</p>
* @public
*/
scheduledAuditName: string | undefined;
}
/**
* @public
*/
export interface DeleteScheduledAuditResponse {
}
/**
* @public
*/
export interface DeleteSecurityProfileRequest {
/**
* <p>The name of the security profile to be deleted.</p>
* @public
*/
securityProfileName: string | undefined;
/**
* <p>The expected version of the security profile. A new version is generated whenever
* the security profile is updated. If you specify a value that is different from the actual
* version, a <code>VersionConflictException</code> is thrown.</p>
* @public
*/
expectedVersion?: number;
}
/**
* @public
*/
export interface DeleteSecurityProfileResponse {
}
/**
* @public
*/
export interface DeleteStreamRequest {
/**
* <p>The stream ID.</p>
* @public
*/
streamId: string | undefined;
}
/**
* @public
*/
export interface DeleteStreamResponse {
}
/**
* <p>The input for the DeleteThing operation.</p>
* @public
*/
export interface DeleteThingRequest {
/**
* <p>The name of the thing to delete.</p>
* @public
*/
thingName: string | undefined;
/**
* <p>The expected version of the thing record in the registry. If the version of the
* record in the registry does not match the expected version specified in the request, the
* <code>DeleteThing</code> request is rejected with a
* <code>VersionConflictException</code>.</p>
* @public
*/
expectedVersion?: number;
}
/**
* <p>The output of the DeleteThing operation.</p>
* @public
*/
export interface DeleteThingResponse {
}
/**
* @public
*/
export interface DeleteThingGroupRequest {
/**
* <p>The name of the thing group to delete.</p>
* @public
*/
thingGroupName: string | undefined;
/**
* <p>The expected version of the thing group to delete.</p>
* @public
*/
expectedVersion?: number;
}
/**
* @public
*/
export interface DeleteThingGroupResponse {
}
/**
* <p>The input for the DeleteThingType operation.</p>
* @public
*/
export interface DeleteThingTypeRequest {
/**
* <p>The name of the thing type.</p>
* @public
*/
thingTypeName: string | undefined;
}
/**
* <p>The output for the DeleteThingType operation.</p>
* @public
*/
export interface DeleteThingTypeResponse {
}
/**
* <p>The input for the DeleteTopicRule operation.</p>
* @public
*/
export interface DeleteTopicRuleRequest {
/**
* <p>The name of the rule.</p>
* @public
*/
ruleName: string | undefined;
}
/**
* @public
*/
export interface DeleteTopicRuleDestinationRequest {
/**
* <p>The ARN of the topic rule destination to delete.</p>
* @public
*/
arn: string | undefined;
}
/**
* @public
*/
export interface DeleteTopicRuleDestinationResponse {
}
/**
* @public
* @enum
*/
export declare const LogTargetType: {
readonly CLIENT_ID: "CLIENT_ID";
readonly DEFAULT: "DEFAULT";
readonly PRINCIPAL_ID: "PRINCIPAL_ID";
readonly SOURCE_IP: "SOURCE_IP";
readonly THING_GROUP: "THING_GROUP";
};
/**
* @public
*/
export type LogTargetType = (typeof LogTargetType)[keyof typeof LogTargetType];
/**
* @public
*/
export interface DeleteV2LoggingLevelRequest {
/**
* <p>The type of resource for which you are configuring logging. Must be
* <code>THING_Group</code>.</p>
* @public
*/
targetType: LogTargetType | undefined;
/**
* <p>The name of the resource for which you are configuring logging.</p>
* @public
*/
targetName: string | undefined;
}
/**
* <p>The input for the DeprecateThingType operation.</p>
* @public
*/
export interface DeprecateThingTypeRequest {
/**
* <p>The name of the thing type to deprecate.</p>
* @public
*/
thingTypeName: string | undefined;
/**
* <p>Whether to undeprecate a deprecated thing type. If <b>true</b>, the thing type will not be deprecated anymore and you can
* associate it with things.</p>
* @public
*/
undoDeprecate?: boolean;
}
/**
* <p>The output for the DeprecateThingType operation.</p>
* @public
*/
export interface DeprecateThingTypeResponse {
}
/**
* @public
*/
export interface DescribeAccountAuditConfigurationRequest {
}
/**
* @public
*/
export interface DescribeAccountAuditConfigurationResponse {
/**
* <p>The ARN of the role that grants permission to IoT to access information
* about your devices, policies, certificates, and other items as required when
* performing an audit.</p>
* <p>On the first call to <code>UpdateAccountAuditConfiguration</code>,
* this parameter is required.</p>
* @public
*/
roleArn?: string;
/**
* <p>Information about the targets to which audit notifications are sent for
* this account.</p>
* @public
*/
auditNotificationTargetConfigurations?: Partial<Record<AuditNotificationType, AuditNotificationTarget>>;
/**
* <p>Which audit checks are enabled and disabled for this account.</p>
* @public
*/
auditCheckConfigurations?: Record<string, AuditCheckConfiguration>;
}
/**
* @public
*/
export interface DescribeAuditFindingRequest {
/**
* <p>A unique identifier for a single audit finding. You can use this identifier to apply mitigation actions to the finding.</p>
* @public
*/
findingId: string | undefined;
}
/**
* @public
*/
export interface DescribeAuditFindingResponse {
/**
* <p>The findings (results) of the audit.</p>
* @public
*/
finding?: AuditFinding;
}
/**
* @public
*/
export interface DescribeAuditMitigationActionsTaskRequest {
/**
* <p>The unique identifier for the audit mitigation task.</p>
* @public
*/
taskId: string | undefined;
}
/**
* <p>Describes which changes should be applied as part of a mitigation action.</p>
* @public
*/
export interface MitigationAction {
/**
* <p>A user-friendly name for the mitigation action.</p>
* @public
*/
name?: string;
/**
* <p>A unique identifier for the mitigation action.</p>
* @public
*/
id?: string;
/**
* <p>The IAM role ARN used to apply this mitigation action.</p>
* @public
*/
roleArn?: string;
/**
* <p>The set of parameters for this mitigation action. The parameters vary, depending on the kind of action you apply.</p>
* @public
*/
actionParams?: MitigationActionParams;
}
/**
* @public
*/
export interface DescribeAuditMitigationActionsTaskResponse {
/**
* <p>The current status of the task.</p>
* @public
*/
taskStatus?: AuditMitigationActionsTaskStatus;
/**
* <p>The date and time when the task was started.</p>
* @public
*/
startTime?: Date;
/**
* <p>The date and time when the task was completed or canceled.</p>
* @public
*/
endTime?: Date;
/**
* <p>Aggregate counts of the results when the mitigation tasks were applied to the findings for this audit mitigation actions task.</p>
* @public
*/
taskStatistics?: Record<string, TaskStatisticsForAuditCheck>;
/**
* <p>Identifies the findings to which the mitigation actions are applied. This can be by audit checks, by audit task, or a set of findings.</p>
* @public
*/
target?: AuditMitigationActionsTaskTarget;
/**
* <p>Specifies the mitigation actions that should be applied to specific audit checks.</p>
* @public
*/
auditCheckToActionsMapping?: Record<string, string[]>;
/**
* <p>Specifies the mitigation actions and their parameters that are applied as part of this task.</p>
* @public
*/
actionsDefinition?: MitigationAction[];
}
/**
* @public
*/
export interface DescribeAuditSuppressionRequest {
/**
* <p>An audit check name. Checks must be enabled
* for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list
* of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code>
* to select which checks are enabled.)</p>
* @public
*/
checkName: string | undefined;
/**
* <p>Information that identifies the noncompliant resource.</p>
* @public
*/
resourceIdentifier: ResourceIdentifier | undefined;
}
/**
* @public
*/
export interface DescribeAuditSuppressionResponse {
/**
* <p>An audit check name. Checks must be enabled
* for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list
* of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code>
* to select which checks are enabled.)</p>
* @public
*/
checkName?: string;
/**
* <p>Information that identifies the noncompliant resource.</p>
* @public
*/
resourceIdentifier?: ResourceIdentifier;
/**
* <p>
* The epoch timestamp in seconds at which this suppression expires.
* </p>
* @public
*/
expirationDate?: Date;
/**
* <p>
* Indicates whether a suppression should exist indefinitely or not.
* </p>
* @public
*/
suppressIndefinitely?: boolean;
/**
* <p>
* The description of the audit suppression.
* </p>
* @public
*/
description?: string;
}
/**
* @public
*/
export interface DescribeAuditTaskRequest {
/**
* <p>The ID of the audit whose information you want to get.</p>
* @public
*/
taskId: string | undefined;
}
/**
* <p>Statistics for the checks performed during the audit.</p>
* @public
*/
export interface TaskStatistics {
/**
* <p>The number of checks in this audit.</p>
* @public
*/
totalChecks?: number;
/**
* <p>The number of checks in progress.</p>
* @public
*/
inProgressChecks?: number;
/**
* <p>The number of checks waiting for data collection.</p>
* @public
*/
waitingForDataCollectionChecks?: number;
/**
* <p>The number of checks that found compliant resources.</p>
* @public
*/
compliantChecks?: number;
/**
* <p>The number of checks that found noncompliant resources.</p>
* @public
*/
nonCompliantChecks?: number;
/**
* <p>The number of checks.</p>
* @public
*/
failedChecks?: number;
/**
* <p>The number of checks that did not run because the audit was canceled.</p>
* @public
*/
canceledChecks?: number;
}
/**
* @public
*/
export interface DescribeAuditTaskResponse {
/**
* <p>The status of the audit: one of "IN_PROGRESS", "COMPLETED",
* "FAILED", or "CANCELED".</p>
* @public
*/
taskStatus?: AuditTaskStatus;
/**
* <p>The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".</p>
* @public
*/
taskType?: AuditTaskType;
/**
* <p>The time the audit started.</p>
* @public
*/
taskStartTime?: Date;
/**
* <p>Statistical information about the audit.</p>
* @public
*/
taskStatistics?: TaskStatistics;
/**
* <p>The name of the scheduled audit (only if the audit was a scheduled audit).</p>
* @public
*/
scheduledAuditName?: string;
/**
* <p>Detailed information about each check performed during this audit.</p>
* @public
*/
auditDetails?: Record<string, AuditCheckDetails>;
}
/**
* @public
*/
export interface DescribeAuthorizerRequest {
/**
* <p>The name of the authorizer to describe.</p>
* @public
*/
authorizerName: string | undefined;
}
/**
* @public
*/
export interface DescribeAuthorizerResponse {
/**
* <p>The authorizer description.</p>
* @public
*/
authorizerDescription?: AuthorizerDescription;
}
/**
* @public
*/
export interface DescribeBillingGroupRequest {
/**
* <p>The name of the billing group.</p>
* @public
*/
billingGroupName: string | undefined;
}
/**
* <p>Additional information about the billing group.</p>
* @public
*/
export interface BillingGroupMetadata {
/**
* <p>The date the billing group was created.</p>
* @public
*/
creationDate?: Date;
}
/**
* @public
*/
export interface DescribeBillingGroupResponse {
/**
* <p>The name of the billing group.</p>
* @public
*/
billingGroupName?: string;
/**
* <p>The ID of the billing group.</p>
* @public
*/
billingGroupId?: string;
/**
* <p>The ARN of the billing group.</p>
* @public
*/
billingGroupArn?: string;
/**
* <p>The version of the billing group.</p>
* @public
*/
version?: number;
/**
* <p>The properties of the billing group.</p>
* @public
*/
billingGroupProperties?: BillingGroupProperties;
/**
* <p>Additional information about the billing group.</p>
* @public
*/
billingGroupMetadata?: BillingGroupMetadata;
}
/**
* <p>The input for the DescribeCACertificate operation.</p>
* @public
*/
export interface DescribeCACertificateRequest {
/**
* <p>The CA certificate identifier.</p>
* @public
*/
certificateId: string | undefined;
}
/**
* @public
* @enum
*/
export declare const CertificateMode: {
readonly DEFAULT: "DEFAULT";
readonly SNI_ONLY: "SNI_ONLY";
};
/**
* @public
*/
export type CertificateMode = (typeof CertificateMode)[keyof typeof CertificateMode];
/**
* @public
* @enum
*/
export declare const CACertificateStatus: {
readonly ACTIVE: "ACTIVE";
readonly INACTIVE: "INACTIVE";
};
/**
* @public
*/
export type CACertificateStatus = (typeof CACertificateStatus)[keyof typeof CACertificateStatus];
/**
* <p>When the certificate is valid.</p>
* @public
*/
export interface CertificateValidity {
/**
* <p>The certificate is not valid before this date.</p>
* @public
*/
notBefore?: Date;
/**
* <p>The certificate is not valid after this date.</p>
* @public
*/
notAfter?: Date;
}
/**
* <p>Describes a CA certificate.</p>
* @public
*/
export interface CACertificateDescription {
/**
* <p>The CA certificate ARN.</p>
* @public
*/
certificateArn?: string;
/**
* <p>The CA certificate ID.</p>
* @public
*/
certificateId?: string;
/**
* <p>The status of a CA certificate.</p>
* @public
*/
status?: CACertificateStatus;
/**
* <p>The CA certificate data, in PEM format.</p>
* @public
*/
certificatePem?: string;
/**
* <p>The owner of the CA certificate.</p>
* @public
*/
ownedBy?: string;
/**
* <p>The date the CA certificate was created.</p>
* @public
*/
creationDate?: Date;
/**
* <p>Whether the CA certificate configured for auto registration of device certificates.
* Valid values are "ENABLE" and "DISABLE"</p>
* @public
*/
autoRegistrationStatus?: AutoRegistrationStatus;
/**
* <p>The date the CA certificate was last modified.</p>
* @public
*/
lastModifiedDate?: Date;
/**
* <p>The customer version of the CA certificate.</p>
* @public
*/
customerVersion?: number;
/**
* <p>The generation ID of the CA certificate.</p>
* @public
*/
generationId?: string;
/**
* <p>When the CA certificate is valid.</p>
* @public
*/
validity?: CertificateValidity;
/**
* <p>The mode of the CA. </p>
* <p>All the device certificates that are registered using this CA will be registered
* in the same mode as the CA. For more information about certificate mode for device certificates, see <a href="https://docs.aws.amazon.com/iot/latest/apireference/API_CertificateDescription.html#iot-Type-CertificateDescription-certificateMode">certificate mode</a>.</p>
* @public
*/
certificateMode?: CertificateMode;
}
/**
* <p>The registration configuration.</p>
* @public
*/
export interface RegistrationConfig {
/**
* <p>The template body.</p>
* @public
*/
templateBody?: string;
/**
* <p>The ARN of the role.</p>
* @public
*/
roleArn?: string;
/**
* <p>The name of the provisioning template.</p>
* @public
*/
templateName?: string;
}
/**
* <p>The output from the DescribeCACertificate operation.</p>
* @public
*/
export interface DescribeCACertificateResponse {
/**
* <p>The CA certificate description.</p>
* @public
*/
certificateDescription?: CACertificateDescription;
/**
* <p>Information about the registration configuration.</p>
* @public
*/
registrationConfig?: RegistrationConfig;
}
/**
* <p>The input for the DescribeCertificate operation.</p>
* @public
*/
export interface DescribeCertificateRequest {
/**
* <p>The ID of the certificate. (The last part of the certificate ARN contains the
* certificate ID.)</p>
* @public
*/
certificateId: string | undefined;
}
/**
* @public
* @enum
*/
export declare const CertificateStatus: {
readonly ACTIVE: "ACTIVE";
readonly INACTIVE: "INACTIVE";
readonly PENDING_ACTIVATION: "PENDING_ACTIVATION";
readonly PENDING_TRANSFER: "PENDING_TRANSFER";
readonly REGISTER_INACTIVE: "REGISTER_INACTIVE";
readonly REVOKED: "REVOKED";
};
/**
* @public
*/
export type CertificateStatus = (typeof CertificateStatus)[keyof typeof CertificateStatus];
/**
* <p>Data used to transfer a certificate to an Amazon Web Services account.</p>
* @public
*/
export interface TransferData {
/**
* <p>The transfer message.</p>
* @public
*/
transferMessage?: string;
/**
* <p>The reason why the transfer was rejected.</p>
* @public
*/
rejectReason?: string;
/**
* <p>The date the transfer took place.</p>
* @public
*/
transferDate?: Date;
/**
* <p>The date the transfer was accepted.</p>
* @public
*/
acceptDate?: Date;
/**
* <p>The date the transfer was rejected.</p>
* @public
*/
rejectDate?: Date;
}
/**
* <p>Describes a certificate.</p>
* @public
*/
export interface CertificateDescription {
/**
* <p>The ARN of the certificate.</p>
* @public
*/
certificateArn?: string;
/**
* <p>The ID of the certificate.</p>
* @public
*/
certificateId?: string;
/**
* <p>The certificate ID of the CA certificate used to sign this certificate.</p>
* @public
*/
caCertificateId?: string;
/**
* <p>The status of the certificate.</p>
* @public
*/
status?: CertificateStatus;
/**
* <p>The certificate data, in PEM format.</p>
* @public
*/
certificatePem?: string;
/**
* <p>The ID of the Amazon Web Services account that owns the certificate.</p>
* @public
*/
ownedBy?: string;
/**
* <p>The ID of the Amazon Web Services account of the previous owner of the certificate.</p>
* @public
*/
previousOwnedBy?: string;
/**
* <p>The date and time the certificate was created.</p>
* @public
*/
creationDate?: Date;
/**
* <p>The date and time the certificate was last modified.</p>
* @public
*/
lastModifiedDate?: Date;
/**
* <p>The customer version of the certificate.</p>
* @public
*/
customerVersion?: number;
/**
* <p>The transfer data.</p>
* @public
*/
transferData?: TransferData;
/**
* <p>The generation ID of the certificate.</p>
* @public
*/
generationId?: string;
/**
* <p>When the certificate is valid.</p>
* @public
*/
validity?: CertificateValidity;
/**
* <p>The mode of the certificate.</p>
* <p>
* <code>DEFAULT</code>: A certificate in <code>DEFAULT</code> mode is either generated by
* Amazon Web Services IoT Core or registered with an issuer certificate authority (CA) in <code>DEFAULT</code> mode. Devices with
* certificates in <code>DEFAULT</code> mode aren't required to send the Server Name
* Indication (SNI) extension when connecting to Amazon Web Services IoT Core. However, to use features such as
* custom domains and VPC endpoints, we recommend that you use the SNI extension when
* connecting to Amazon Web Services IoT Core.</p>
* <p>
* <code>SNI_ONLY</code>: A certificate in <code>SNI_ONLY</code> mode is registered without an issuer CA. Devices with certificates
* in <code>SNI_ONLY</code> mode must send the SNI extension when connecting to Amazon Web Services IoT Core. </p>
* <p>For more information about the value for SNI extension, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html">Transport security in IoT</a>.</p>
* @public
*/
certificateMode?: CertificateMode;
}
/**
* <p>The output of the DescribeCertificate operation.</p>
* @public
*/
export interface DescribeCertificateResponse {
/**
* <p>The description of the certificate.</p>
* @public
*/
certificateDescription?: CertificateDescription;
}
/**
* @public
*/
export interface DescribeCertificateProviderRequest {
/**
* <p>The name of the certificate provider.</p>
* @public
*/
certificateProviderName: string | undefined;
}
/**
* @public
*/
export interface DescribeCertificateProviderResponse {
/**
* <p>The name of the certificate provider.</p>
* @public
*/
certificateProviderName?: string;
/**
* <p>The ARN of the certificate provider.</p>
* @public
*/
certificateProviderArn?: string;
/**
* <p>The Lambda function ARN that's associated with the certificate provider.</p>
* @public
*/
lambdaFunctionArn?: string;
/**
* <p>A list of the operations that the certificate provider will use to generate certificates.
* Valid value: <code>CreateCertificateFromCsr</code>.</p>
* @public
*/
accountDefaultForOperations?: CertificateProviderOperation[];
/**
* <p>The date-time string that indicates when the certificate provider was created.</p>
* @public
*/
creationDate?: Date;
/**
* <p>The date-time string that indicates when the certificate provider was last updated.</p>
* @public
*/
lastModifiedDate?: Date;
}
/**
* @public
*/
export interface DescribeCustomMetricRequest {
/**
* <p>
* The name of the custom metric.
* </p>
* @public
*/
metricName: string | undefined;
}
/**
* @public
*/
export interface DescribeCustomMetricResponse {
/**
* <p>
* The name of the custom metric.
* </p>
* @public
*/
metricName?: string;
/**
* <p>
* The Amazon Resource Number (ARN) of the custom metric.
* </p>
* @public
*/
metricArn?: string;
/**
* <p> The type of the custom metric. </p>
* <important>
* <p>The type <code>number</code> only takes a single metric value as an input, but while submitting the metrics value in the DeviceMetrics report, it must be passed as an array with a single value.</p>
* </important>
* @public
*/
metricType?: CustomMetricType;
/**
* <p>
* Field represents a friendly name in the console for the custom metric; doesn't have to be unique. Don't use this name as the metric identifier in the device metric report. Can be updated.
* </p>
* @public
*/
displayName?: string;
/**
* <p>
* The creation date of the custom metric in milliseconds since epoch.
* </p>
* @public
*/
creationDate?: Date;
/**
* <p>
* The time the custom metric was last modified in milliseconds since epoch.
* </p>
* @public
*/
lastModifiedDate?: Date;
}
/**
* @public
*/
export interface DescribeDefaultAuthorizerRequest {
}
/**
* @public
*/
export interface DescribeDefaultAuthorizerResponse {
/**
* <p>The default authorizer's description.</p>
* @public
*/
authorizerDescription?: AuthorizerDescription;
}
/**
* @public
*/
export interface DescribeDetectMitigationActionsTaskRequest {
/**
* <p>
* The unique identifier of the task.
* </p>
* @public
*/
taskId: string | undefined;
}
/**
* <p>
* The target of a mitigation action task.
* </p>
* @public
*/
export interface DetectMitigationActionsTaskTarget {
/**
* <p>
* The unique identifiers of the violations.
* </p>
* @public
*/
violationIds?: string[];
/**
* <p>
* The name of the security profile.
* </p>
* @public
*/
securityProfileName?: string;
/**
* <p>
* The name of the behavior.
* </p>
* @public
*/
behaviorName?: string;
}
/**
* <p>
* The statistics of a mitigation action task.
* </p>
* @public
*/
export interface DetectMitigationActionsTaskStatistics {
/**
* <p>
* The actions that were performed.
* </p>
* @public
*/
actionsExecuted?: number;
/**
* <p>
* The actions that were skipped.
* </p>
* @public
*/
actionsSkipped?: number;
/**
* <p>
* The actions that failed.
* </p>
* @public
*/
actionsFailed?: number;
}
/**
* @public
* @enum
*/
export declare const DetectMitigationActionsTaskStatus: {
readonly CANCELED: "CANCELED";
readonly FAILED: "FAILED";
readonly IN_PROGRESS: "IN_PROGRESS";
readonly SUCCESSFUL: "SUCCESSFUL";
};
/**
* @public
*/
export type DetectMitigationActionsTaskStatus = (typeof DetectMitigationActionsTaskStatus)[keyof typeof DetectMitigationActionsTaskStatus];
/**
* <p>
* Specifies the time period of which violation events occurred between.
* </p>
* @public
*/
export interface ViolationEventOccurrenceRange {
/**
* <p>
* The start date and time of a time period in which violation events occurred.
* </p>
* @public
*/
startTime: Date | undefined;
/**
* <p>
* The end date and time of a time period in which violation events occurred.
* </p>
* @public
*/
endTime: Date | undefined;
}
/**
* <p>
* The summary of the mitigation action tasks.
* </p>
* @public
*/
export interface DetectMitigationActionsTaskSummary {
/**
* <p>
* The unique identifier of the task.
* </p>
* @public
*/
taskId?: string;
/**
* <p>
* The status of the task.
* </p>
* @public
*/
taskStatus?: DetectMitigationActionsTaskStatus;
/**
* <p>
* The date the task started.
* </p>
* @public
*/
taskStartTime?: Date;
/**
* <p>
* The date the task ended.
* </p>
* @public
*/
taskEndTime?: Date;
/**
* <p>
* Specifies the ML Detect findings to which the mitigation actions are applied.
* </p>
* @public
*/
target?: DetectMitigationActionsTaskTarget;
/**
* <p>
* Specifies the time period of which violation events occurred between.
* </p>
* @public
*/
violationEventOccurrenceRange?: ViolationEventOccurrenceRange;
/**
* <p>
* Includes only active violations.
* </p>
* @public
*/
onlyActiveViolationsIncluded?: boolean;
/**
* <p>
* Includes suppressed alerts.
* </p>
* @public
*/
suppressedAlertsIncluded?: boolean;
/**
* <p>
* The definition of the actions.
* </p>
* @public
*/
actionsDefinition?: MitigationAction[];
/**
* <p>
* The statistics of a mitigation action task.
* </p>
* @public
*/
taskStatistics?: DetectMitigationActionsTaskStatistics;
}
/**
* @public
*/
export interface DescribeDetectMitigationActionsTaskResponse {
/**
* <p>
* The description of a task.
* </p>
* @public
*/
taskSummary?: DetectMitigationActionsTaskSummary;
}
/**
* @public
*/
export interface DescribeDimensionRequest {
/**
* <p>The unique identifier for the dimension.</p>
* @public
*/
name: string | undefined;
}
/**
* @public
*/
export interface DescribeDimensionResponse {
/**
* <p>The unique identifier for the dimension.</p>
* @public
*/
name?: string;
/**
* <p>The Amazon Resource Name
* (ARN)
* for
* the dimension.</p>
* @public
*/
arn?: string;
/**
* <p>The type of the dimension.</p>
* @public
*/
type?: DimensionType;
/**
* <p>The value or list of values used to scope the dimension. For example, for topic filters, this is the pattern used to match the MQTT topic name.</p>
* @public
*/
stringValues?: string[];
/**
* <p>The date the dimension was created.</p>
* @public
*/
creationDate?: Date;
/**
* <p>The date the dimension was last modified.</p>
* @public
*/
lastModifiedDate?: Date;
}
/**
* @public
*/
export interface DescribeDomainConfigurationRequest {
/**
* <p>The name of the domain configuration.</p>
* @public
*/
domainConfigurationName: string | undefined;
}
/**
* @public
* @enum
*/
export declare const DomainConfigurationStatus: {
readonly DISABLED: "DISABLED";
readonly ENABLED: "ENABLED";
};
/**
* @public
*/
export type DomainConfigurationStatus = (typeof DomainConfigurationStatus)[keyof typeof DomainConfigurationStatus];
/**
* @public
* @enum
*/
export declare const DomainType: {
readonly AWS_MANAGED: "AWS_MANAGED";
readonly CUSTOMER_MANAGED: "CUSTOMER_MANAGED";
readonly ENDPOINT: "ENDPOINT";
};
/**
* @public
*/
export type DomainType = (typeof DomainType)[keyof typeof DomainType];
/**
* @public
* @enum
*/
export declare const ServerCertificateStatus: {
readonly INVALID: "INVALID";
readonly VALID: "VALID";
};
/**
* @public
*/
export type ServerCertificateStatus = (typeof ServerCertificateStatus)[keyof typeof ServerCertificateStatus];
/**
* <p>An object that contains information about a server certificate.</p>
* @public
*/
export interface ServerCertificateSummary {
/**
* <p>The ARN of the server certificate.</p>
* @public
*/
serverCertificateArn?: string;
/**
* <p>The status of the server certificate.</p>
* @public
*/
serverCertificateStatus?: ServerCertificateStatus;
/**
* <p>Details that explain the status of the server certificate.</p>
* @public
*/
serverCertificateStatusDetail?: string;
}
/**
* @public
*/
export interface DescribeDomainConfigurationResponse {
/**
* <p>The name of the domain configuration.</p>
* @public
*/
domainConfigurationName?: string;
/**
* <p>The ARN of the domain configuration.</p>
* @public
*/
domainConfigurationArn?: string;
/**
* <p>The name of the domain.</p>
* @public
*/
domainName?: string;
/**
* <p>A list containing summary information about the server certificate included in the domain configuration.</p>
* @public
*/
serverCertificates?: ServerCertificateSummary[];
/**
* <p>An object that specifies the authorization service for a domain.</p>
* @public
*/
authorizerConfig?: AuthorizerConfig;
/**
* <p>A Boolean value that specifies the current state of the domain configuration.</p>
* @public
*/
domainConfigurationStatus?: DomainConfigurationStatus;
/**
* <p>The type of service delivered by the endpoint.</p>
* @public
*/
serviceType?: ServiceType;
/**
* <p>The type of the domain.</p>
* @public
*/
domainType?: DomainType;
/**
* <p>The date and time the domain configuration's status was last changed.</p>
* @public
*/
lastStatusChangeDate?: Date;
/**
* <p>An object that specifies the TLS configuration for a domain.</p>
* @public
*/
tlsConfig?: TlsConfig;
/**
* <p>The server certificate configuration.</p>
* @public
*/
serverCertificateConfig?: ServerCertificateConfig;
}
/**
* <p>The input for the DescribeEndpoint operation.</p>
* @public
*/
export interface DescribeEndpointRequest {
/**
* <p>The endpoint type. Valid endpoint types include:</p>
* <ul>
* <li>
* <p>
* <code>iot:Data</code> - Returns a VeriSign signed data endpoint.</p>
* </li>
* </ul>
* <ul>
* <li>
* <p>
* <code>iot:Data-ATS</code> - Returns an ATS signed data endpoint.</p>
* </li>
* </ul>
* <ul>
* <li>
* <p>
* <code>iot:CredentialProvider</code> - Returns an IoT credentials provider API
* endpoint.</p>
* </li>
* </ul>
* <ul>
* <li>
* <p>
* <code>iot:Jobs</code> - Returns an IoT device management Jobs API
* endpoint.</p>
* </li>
* </ul>
* <p>We strongly recommend that customers use the newer <code>iot:Data-ATS</code> endpoint type to avoid
* issues related to the widespread distrust of Symantec certificate authorities. ATS Signed Certificates
* are more secure and are trusted by most popular browsers.</p>
* @public
*/
endpointType?: string;
}
/**
* <p>The output from the DescribeEndpoint operation.</p>
* @public
*/
export interface DescribeEndpointResponse {
/**
* <p>The endpoint. The format of the endpoint is as follows:
* <i>identifier</i>.iot.<i>region</i>.amazonaws.com.</p>
* @public
*/
endpointAddress?: string;
}
/**
* @public
*/
export interface DescribeEventConfigurationsRequest {
}
/**
* @public
* @enum
*/
export declare const EventType: {
readonly CA_CERTIFICATE: "CA_CERTIFICATE";
readonly CERTIFICATE: "CERTIFICATE";
readonly JOB: "JOB";
readonly JOB_EXECUTION: "JOB_EXECUTION";
readonly POLICY: "POLICY";
readonly THING: "THING";
readonly THING_GROUP: "THING_GROUP";
readonly THING_GROUP_HIERARCHY: "THING_GROUP_HIERARCHY";
readonly THING_GROUP_MEMBERSHIP: "THING_GROUP_MEMBERSHIP";
readonly THING_TYPE: "THING_TYPE";
readonly THING_TYPE_ASSOCIATION: "THING_TYPE_ASSOCIATION";
};
/**
* @public
*/
export type EventType = (typeof EventType)[keyof typeof EventType];
/**
* <p>Configuration.</p>
* @public
*/
export interface Configuration {
/**
* <p>True to enable the configuration.</p>
* @public
*/
Enabled?: boolean;
}
/**
* @public
*/
export interface DescribeEventConfigurationsResponse {
/**
* <p>The event configurations.</p>
* @public
*/
eventConfigurations?: Partial<Record<EventType, Configuration>>;
/**
* <p>The creation date of the event configuration.</p>
* @public
*/
creationDate?: Date;
/**
* <p>The date the event configurations were last modified.</p>
* @public
*/
lastModifiedDate?: Date;
}
/**
* @public
*/
export interface DescribeFleetMetricRequest {
/**
* <p>The name of the fleet metric to describe.</p>
* @public
*/
metricName: string | undefined;
}
/**
* @public
*/
export interface DescribeFleetMetricResponse {
/**
* <p>The name of the fleet metric to describe.</p>
* @public
*/
metricName?: string;
/**
* <p>The search query string.</p>
* @public
*/
queryString?: string;
/**
* <p>The type of the aggregation query.</p>
* @public
*/
aggregationType?: AggregationType;
/**
* <p>The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1 day)] and must be multiple of 60.</p>
* @public
*/
period?: number;
/**
* <p>The field to aggregate.</p>
* @public
*/
aggregationField?: string;
/**
* <p>The fleet metric description.</p>
* @public
*/
description?: string;
/**
* <p>The query version.</p>
* @public
*/
queryVersion?: string;
/**
* <p>The name of the index to search.</p>
* @public
*/
indexName?: string;
/**
* <p>The date when the fleet metric is created.</p>
* @public
*/
creationDate?: Date;
/**
* <p>The date when the fleet metric is last modified.</p>
* @public
*/
lastModifiedDate?: Date;
/**
* <p>Used to support unit transformation such as milliseconds to seconds. The unit must be
* supported by <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html">CW metric</a>.</p>
* @public
*/
unit?: FleetMetricUnit;
/**
* <p>The version of the fleet metric.</