@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
TypeScript
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