UNPKG

@aws-sdk/client-iot

Version:

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

1,894 lines 176 kB
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.</