UNPKG

@aws-sdk/client-iot

Version:

AWS SDK for JavaScript Iot Client for Node.js, Browser and React Native

1,756 lines (1,755 loc) 190 kB
import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client"; import { IoTServiceException as __BaseException } from "./IoTServiceException"; import { AbortConfig, Action, ActiveViolation, AggregationType, AlertTarget, AlertTargetType, ApplicationProtocol, AuditCheckConfiguration, AuditCheckDetails, AuditFinding, AuditFrequency, AuditMitigationActionExecutionMetadata, AuditMitigationActionsExecutionStatus, AuditMitigationActionsTaskMetadata, AuditMitigationActionsTaskStatus, AuditMitigationActionsTaskTarget, AuditNotificationTarget, AuditNotificationType, AuditSuppression, AuditTaskMetadata, AuditTaskStatus, AuditTaskType, AuthenticationType, AuthorizerConfig, AuthorizerDescription, AuthorizerStatus, AuthorizerSummary, AutoRegistrationStatus, AwsJobExecutionsRolloutConfig, AwsJobPresignedUrlConfig, Behavior, BillingGroupProperties, CertificateProviderOperation, ClientCertificateConfig, CommandNamespace, CommandParameter, CommandParameterValue, CommandPayload, CustomMetricType, DayOfWeek, DimensionType, FleetMetricUnit, HttpUrlDestinationProperties, JobExecutionsRetryConfig, JobExecutionsRolloutConfig, LogLevel, MaintenanceWindow, MetricsExportConfig, MetricToRetain, MitigationActionParams, OTAUpdateFile, OTAUpdateStatus, PackageVersionArtifact, PackageVersionStatus, Policy, PresignedUrlConfig, Protocol, ProvisioningHook, ResourceIdentifier, Sbom, SbomValidationStatus, SchedulingConfig, ServerCertificateConfig, ServiceType, StreamFile, TargetSelection, TaskStatisticsForAuditCheck, TemplateType, ThingGroupProperties, ThingTypeProperties, TimeoutConfig, TlsConfig, TopicRuleDestinationStatus, VerificationState } from "./models_0"; /** * <p>The properties of a virtual private cloud (VPC) destination.</p> * @public */ export interface VpcDestinationProperties { /** * <p>The subnet IDs of the VPC destination.</p> * @public */ subnetIds?: string[] | undefined; /** * <p>The security groups of the VPC destination.</p> * @public */ securityGroups?: string[] | undefined; /** * <p>The ID of the VPC.</p> * @public */ vpcId?: string | undefined; /** * <p>The ARN of a role that has permission to create and attach to elastic network interfaces (ENIs).</p> * @public */ roleArn?: string | undefined; } /** * <p>A topic rule destination.</p> * @public */ export interface TopicRuleDestination { /** * <p>The topic rule destination URL.</p> * @public */ arn?: string | undefined; /** * <p>The status of the topic rule destination. Valid values are:</p> * <dl> * <dt>IN_PROGRESS</dt> * <dd> * <p>A topic rule destination was created but has not been confirmed. You can set * <code>status</code> to <code>IN_PROGRESS</code> by calling * <code>UpdateTopicRuleDestination</code>. Calling * <code>UpdateTopicRuleDestination</code> causes a new confirmation challenge to * be sent to your confirmation endpoint.</p> * </dd> * <dt>ENABLED</dt> * <dd> * <p>Confirmation was completed, and traffic to this destination is allowed. You can * set <code>status</code> to <code>DISABLED</code> by calling * <code>UpdateTopicRuleDestination</code>.</p> * </dd> * <dt>DISABLED</dt> * <dd> * <p>Confirmation was completed, and traffic to this destination is not allowed. You * can set <code>status</code> to <code>ENABLED</code> by calling * <code>UpdateTopicRuleDestination</code>.</p> * </dd> * <dt>ERROR</dt> * <dd> * <p>Confirmation could not be completed, for example if the confirmation timed out. * You can call <code>GetTopicRuleDestination</code> for details about the error. You * can set <code>status</code> to <code>IN_PROGRESS</code> by calling * <code>UpdateTopicRuleDestination</code>. Calling * <code>UpdateTopicRuleDestination</code> causes a new confirmation challenge to * be sent to your confirmation endpoint.</p> * </dd> * </dl> * @public */ status?: TopicRuleDestinationStatus | undefined; /** * <p>The date and time when the topic rule destination was created.</p> * @public */ createdAt?: Date | undefined; /** * <p>The date and time when the topic rule destination was last updated.</p> * @public */ lastUpdatedAt?: Date | undefined; /** * <p>Additional details or reason why the topic rule destination is in the current * status.</p> * @public */ statusReason?: string | undefined; /** * <p>Properties of the HTTP URL.</p> * @public */ httpUrlProperties?: HttpUrlDestinationProperties | undefined; /** * <p>Properties of the virtual private cloud (VPC) connection.</p> * @public */ vpcProperties?: VpcDestinationProperties | undefined; } /** * @public */ export interface CreateTopicRuleDestinationResponse { /** * <p>The topic rule destination.</p> * @public */ topicRuleDestination?: TopicRuleDestination | undefined; } /** * @public */ export interface DeleteAccountAuditConfigurationRequest { /** * <p>If true, all scheduled audits are deleted.</p> * @public */ deleteScheduledAudits?: boolean | undefined; } /** * @public */ export interface DeleteAccountAuditConfigurationResponse { } /** * @public */ export interface DeleteAuditSuppressionRequest { /** * <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 DeleteAuditSuppressionResponse { } /** * @public */ export interface DeleteAuthorizerRequest { /** * <p>The name of the authorizer to delete.</p> * @public */ authorizerName: string | undefined; } /** * @public */ export interface DeleteAuthorizerResponse { } /** * <p>You can't delete the resource because it is attached to one or more * resources.</p> * @public */ export declare class DeleteConflictException extends __BaseException { readonly name: "DeleteConflictException"; readonly $fault: "client"; /** * @internal */ constructor(opts: __ExceptionOptionType<DeleteConflictException, __BaseException>); } /** * @public */ export interface DeleteBillingGroupRequest { /** * <p>The name of the billing group.</p> * @public */ billingGroupName: string | undefined; /** * <p>The expected version of the billing group. If the version of the billing group does * not match the expected version specified in the request, the * <code>DeleteBillingGroup</code> request is rejected with a * <code>VersionConflictException</code>.</p> * @public */ expectedVersion?: number | undefined; } /** * @public */ export interface DeleteBillingGroupResponse { } /** * <p>The certificate operation is not allowed.</p> * @public */ export declare class CertificateStateException extends __BaseException { readonly name: "CertificateStateException"; readonly $fault: "client"; /** * @internal */ constructor(opts: __ExceptionOptionType<CertificateStateException, __BaseException>); } /** * <p>Input for the DeleteCACertificate operation.</p> * @public */ export interface DeleteCACertificateRequest { /** * <p>The ID of the certificate to delete. (The last part of the certificate ARN contains * the certificate ID.)</p> * @public */ certificateId: string | undefined; } /** * <p>The output for the DeleteCACertificate operation.</p> * @public */ export interface DeleteCACertificateResponse { } /** * <p>The input for the DeleteCertificate operation.</p> * @public */ export interface DeleteCertificateRequest { /** * <p>The ID of the certificate. (The last part of the certificate ARN contains the * certificate ID.)</p> * @public */ certificateId: string | undefined; /** * <p>Forces the deletion of a certificate if it is inactive and is not attached to an IoT * thing.</p> * @public */ forceDelete?: boolean | undefined; } /** * @public */ export interface DeleteCertificateProviderRequest { /** * <p>The name of the certificate provider.</p> * @public */ certificateProviderName: string | undefined; } /** * @public */ export interface DeleteCertificateProviderResponse { } /** * @public */ export interface DeleteCommandRequest { /** * <p>The unique identifier of the command to be deleted.</p> * @public */ commandId: string | undefined; } /** * @public */ export interface DeleteCommandResponse { /** * <p>The status code for the command deletion request. The status code is in the 200 range * for a successful request.</p> * <ul> * <li> * <p>If the command hasn't been deprecated, or has been deprecated for a duration that * is shorter than the maximum time out duration of 12 hours, when calling the * <code>DeleteCommand</code> request, the deletion will be scheduled and a 202 status code * will be returned. While the command is being deleted, it will be in a * <code>pendingDeletion</code> state. Once the time out duration has been reached, * the command will be permanently removed from your account.</p> * </li> * <li> * <p>If the command has been deprecated for a duration that is longer than the * maximum time out duration of 12 hours, when calling the <code>DeleteCommand</code> request, * the command will be deleted immediately and a 204 status code will be returned.</p> * </li> * </ul> * @public */ statusCode?: number | undefined; } /** * @public */ export interface DeleteCommandExecutionRequest { /** * <p>The unique identifier of the command execution that you want to delete from your * account.</p> * @public */ executionId: string | undefined; /** * <p>The Amazon Resource Number (ARN) of the target device for which you want to delete * command executions.</p> * @public */ targetArn: string | undefined; } /** * @public */ export interface DeleteCommandExecutionResponse { } /** * @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 | undefined; } /** * @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 | undefined; } /** * @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 | undefined; /** * <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 | undefined; } /** * @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 | undefined; /** * <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 | undefined; } /** * @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 | undefined; /** * <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 | undefined; } /** * @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 | undefined; } /** * @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 | undefined; } /** * @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 | undefined; } /** * @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 | undefined; } /** * <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 | undefined; } /** * @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 | undefined; } /** * <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 | undefined; /** * <p>Information about the targets to which audit notifications are sent for * this account.</p> * @public */ auditNotificationTargetConfigurations?: Partial<Record<AuditNotificationType, AuditNotificationTarget>> | undefined; /** * <p>Which audit checks are enabled and disabled for this account.</p> * @public */ auditCheckConfigurations?: Record<string, AuditCheckConfiguration> | undefined; } /** * @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 | undefined; } /** * @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 | undefined; /** * <p>A unique identifier for the mitigation action.</p> * @public */ id?: string | undefined; /** * <p>The IAM role ARN used to apply this mitigation action.</p> * @public */ roleArn?: string | undefined; /** * <p>The set of parameters for this mitigation action. The parameters vary, depending on the kind of action you apply.</p> * @public */ actionParams?: MitigationActionParams | undefined; } /** * @public */ export interface DescribeAuditMitigationActionsTaskResponse { /** * <p>The current status of the task.</p> * @public */ taskStatus?: AuditMitigationActionsTaskStatus | undefined; /** * <p>The date and time when the task was started.</p> * @public */ startTime?: Date | undefined; /** * <p>The date and time when the task was completed or canceled.</p> * @public */ endTime?: Date | undefined; /** * <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> | undefined; /** * <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 | undefined; /** * <p>Specifies the mitigation actions that should be applied to specific audit checks.</p> * @public */ auditCheckToActionsMapping?: Record<string, string[]> | undefined; /** * <p>Specifies the mitigation actions and their parameters that are applied as part of this task.</p> * @public */ actionsDefinition?: MitigationAction[] | undefined; } /** * @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 | undefined; /** * <p>Information that identifies the noncompliant resource.</p> * @public */ resourceIdentifier?: ResourceIdentifier | undefined; /** * <p> * The epoch timestamp in seconds at which this suppression expires. * </p> * @public */ expirationDate?: Date | undefined; /** * <p> * Indicates whether a suppression should exist indefinitely or not. * </p> * @public */ suppressIndefinitely?: boolean | undefined; /** * <p> * The description of the audit suppression. * </p> * @public */ description?: string | undefined; } /** * @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 | undefined; /** * <p>The number of checks in progress.</p> * @public */ inProgressChecks?: number | undefined; /** * <p>The number of checks waiting for data collection.</p> * @public */ waitingForDataCollectionChecks?: number | undefined; /** * <p>The number of checks that found compliant resources.</p> * @public */ compliantChecks?: number | undefined; /** * <p>The number of checks that found noncompliant resources.</p> * @public */ nonCompliantChecks?: number | undefined; /** * <p>The number of checks.</p> * @public */ failedChecks?: number | undefined; /** * <p>The number of checks that did not run because the audit was canceled.</p> * @public */ canceledChecks?: number | undefined; } /** * @public */ export interface DescribeAuditTaskResponse { /** * <p>The status of the audit: one of "IN_PROGRESS", "COMPLETED", * "FAILED", or "CANCELED".</p> * @public */ taskStatus?: AuditTaskStatus | undefined; /** * <p>The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".</p> * @public */ taskType?: AuditTaskType | undefined; /** * <p>The time the audit started.</p> * @public */ taskStartTime?: Date | undefined; /** * <p>Statistical information about the audit.</p> * @public */ taskStatistics?: TaskStatistics | undefined; /** * <p>The name of the scheduled audit (only if the audit was a scheduled audit).</p> * @public */ scheduledAuditName?: string | undefined; /** * <p>Detailed information about each check performed during this audit.</p> * @public */ auditDetails?: Record<string, AuditCheckDetails> | undefined; } /** * @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 | undefined; } /** * @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 | undefined; } /** * @public */ export interface DescribeBillingGroupResponse { /** * <p>The name of the billing group.</p> * @public */ billingGroupName?: string | undefined; /** * <p>The ID of the billing group.</p> * @public */ billingGroupId?: string | undefined; /** * <p>The ARN of the billing group.</p> * @public */ billingGroupArn?: string | undefined; /** * <p>The version of the billing group.</p> * @public */ version?: number | undefined; /** * <p>The properties of the billing group.</p> * @public */ billingGroupProperties?: BillingGroupProperties | undefined; /** * <p>Additional information about the billing group.</p> * @public */ billingGroupMetadata?: BillingGroupMetadata | undefined; } /** * <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 | undefined; /** * <p>The certificate is not valid after this date.</p> * @public */ notAfter?: Date | undefined; } /** * <p>Describes a CA certificate.</p> * @public */ export interface CACertificateDescription { /** * <p>The CA certificate ARN.</p> * @public */ certificateArn?: string | undefined; /** * <p>The CA certificate ID.</p> * @public */ certificateId?: string | undefined; /** * <p>The status of a CA certificate.</p> * @public */ status?: CACertificateStatus | undefined; /** * <p>The CA certificate data, in PEM format.</p> * @public */ certificatePem?: string | undefined; /** * <p>The owner of the CA certificate.</p> * @public */ ownedBy?: string | undefined; /** * <p>The date the CA certificate was created.</p> * @public */ creationDate?: Date | undefined; /** * <p>Whether the CA certificate configured for auto registration of device certificates. * Valid values are "ENABLE" and "DISABLE"</p> * @public */ autoRegistrationStatus?: AutoRegistrationStatus | undefined; /** * <p>The date the CA certificate was last modified.</p> * @public */ lastModifiedDate?: Date | undefined; /** * <p>The customer version of the CA certificate.</p> * @public */ customerVersion?: number | undefined; /** * <p>The generation ID of the CA certificate.</p> * @public */ generationId?: string | undefined; /** * <p>When the CA certificate is valid.</p> * @public */ validity?: CertificateValidity | undefined; /** * <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 | undefined; } /** * <p>The registration configuration.</p> * @public */ export interface RegistrationConfig { /** * <p>The template body.</p> * @public */ templateBody?: string | undefined; /** * <p>The ARN of the role.</p> * @public */ roleArn?: string | undefined; /** * <p>The name of the provisioning template.</p> * @public */ templateName?: string | undefined; } /** * <p>The output from the DescribeCACertificate operation.</p> * @public */ export interface DescribeCACertificateResponse { /** * <p>The CA certificate description.</p> * @public */ certificateDescription?: CACertificateDescription | undefined; /** * <p>Information about the registration configuration.</p> * @public */ registrationConfig?: RegistrationConfig | undefined; } /** * <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 | undefined; /** * <p>The reason why the transfer was rejected.</p> * @public */ rejectReason?: string | undefined; /** * <p>The date the transfer took place.</p> * @public */ transferDate?: Date | undefined; /** * <p>The date the transfer was accepted.</p> * @public */ acceptDate?: Date | undefined; /** * <p>The date the transfer was rejected.</p> * @public */ rejectDate?: Date | undefined; } /** * <p>Describes a certificate.</p> * @public */ export interface CertificateDescription { /** * <p>The ARN of the certificate.</p> * @public */ certificateArn?: string | undefined; /** * <p>The ID of the certificate.</p> * @public */ certificateId?: string | undefined; /** * <p>The certificate ID of the CA certificate used to sign this certificate.</p> * @public */ caCertificateId?: string | undefined; /** * <p>The status of the certificate.</p> * @public */ status?: CertificateStatus | undefined; /** * <p>The certificate data, in PEM format.</p> * @public */ certificatePem?: string | undefined; /** * <p>The ID of the Amazon Web Services account that owns the certificate.</p> * @public */ ownedBy?: string | undefined; /** * <p>The ID of the Amazon Web Services account of the previous owner of the certificate.</p> * @public */ previousOwnedBy?: string | undefined; /** * <p>The date and time the certificate was created.</p> * @public */ creationDate?: Date | undefined; /** * <p>The date and time the certificate was last modified.</p> * @public */ lastModifiedDate?: Date | undefined; /** * <p>The customer version of the certificate.</p> * @public */ customerVersion?: number | undefined; /** * <p>The transfer data.</p> * @public */ transferData?: TransferData | undefined; /** * <p>The generation ID of the certificate.</p> * @public */ generationId?: string | undefined; /** * <p>When the certificate is valid.</p> * @public */ validity?: CertificateValidity | undefined; /** * <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 | undefined; } /** * <p>The output of the DescribeCertificate operation.</p> * @public */ export interface DescribeCertificateResponse { /** * <p>The description of the certificate.</p> * @public */ certificateDescription?: CertificateDescription | undefined; } /** * @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 | undefined; /** * <p>The ARN of the certificate provider.</p> * @public */ certificateProviderArn?: string | undefined; /** * <p>The Lambda function ARN that's associated with the certificate provider.</p> * @public */ lambdaFunctionArn?: string | undefined; /** * <p>A list of the operations that the certificate provider will use to generate certificates. * Valid value: <code>CreateCertificateFromCsr</code>.</p> * @public */ accountDefaultForOperations?: CertificateProviderOperation[] | undefined; /** * <p>The date-time string that indicates when the certificate provider was created.</p> * @public */ creationDate?: Date | undefined; /** * <p>The date-time string that indicates when the certificate provider was last updated.</p> * @public */ lastModifiedDate?: Date | undefined; } /** * @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 | undefined; /** * <p> * The Amazon Resource Number (ARN) of the custom metric. * </p> * @public */ metricArn?: string | undefined; /** * <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 | undefined; /** * <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 | undefined; /** * <p> * The creation date of the custom metric in milliseconds since epoch. * </p> * @public */ creationDate?: Date | undefined; /** * <p> * The time the custom metric was last modified in milliseconds since epoch. * </p> * @public */ lastModifiedDate?: Date | undefined; } /** * @public */ export interface DescribeDefaultAuthorizerRequest { } /** * @public */ export interface DescribeDefaultAuthorizerResponse { /** * <p>The default authorizer's description.</p> * @public */ authorizerDescription?: AuthorizerDescription | undefined; } /** * @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[] | undefined; /** * <p> * The name of the security profile. * </p> * @public */ securityProfileName?: string | undefined; /** * <p> * The name of the behavior. * </p> * @public */ behaviorName?: string | undefined; } /** * <p> * The statistics of a mitigation action task. * </p> * @public */ export interface DetectMitigationActionsTaskStatistics { /** * <p> * The actions that were performed. * </p> * @public */ actionsExecuted?: number | undefined; /** * <p> * The actions that were skipped. * </p> * @public */ actionsSkipped?: number | undefined; /** * <p> * The actions that failed. * </p> * @public */ actionsFailed?: number | undefined; } /** * @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