UNPKG

aws-iot-device-sdk-v2

Version:
1,430 lines (962 loc) 26.7 kB
/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ /* This file is generated */ /** * @packageDocumentation * @module greengrasscoreipc */ import {eventstream} from "aws-crt"; /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum DetailedDeploymentStatus { SUCCESSFUL = "SUCCESSFUL", FAILED_NO_STATE_CHANGE = "FAILED_NO_STATE_CHANGE", FAILED_ROLLBACK_NOT_REQUESTED = "FAILED_ROLLBACK_NOT_REQUESTED", FAILED_ROLLBACK_COMPLETE = "FAILED_ROLLBACK_COMPLETE", REJECTED = "REJECTED" } export interface UserProperty { key?: string, value?: string } export interface SystemResourceLimits { /** * (Optional) The maximum amount of RAM (in kilobytes) that this component's processes can use on the core device. */ memory?: number, /** * (Optional) The maximum amount of CPU time that this component's processes can use on the core device. */ cpus?: number } export interface DeploymentStatusDetails { /** * The detailed deployment status of the local deployment. */ detailedDeploymentStatus: DetailedDeploymentStatus, /** * (Optional) The list of local deployment errors */ deploymentErrorStack?: string[], /** * (Optional) The list of local deployment error types */ deploymentErrorTypes?: string[], /** * (Optional) The cause of local deployment failure */ deploymentFailureCause?: string } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum DeploymentStatus { QUEUED = "QUEUED", IN_PROGRESS = "IN_PROGRESS", SUCCEEDED = "SUCCEEDED", FAILED = "FAILED", CANCELED = "CANCELED" } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum LifecycleState { RUNNING = "RUNNING", ERRORED = "ERRORED", NEW = "NEW", FINISHED = "FINISHED", INSTALLED = "INSTALLED", BROKEN = "BROKEN", STARTING = "STARTING", STOPPING = "STOPPING" } /** * Contextual information about the message. * NOTE The context is ignored if used in PublishMessage. */ export interface MessageContext { /** * The topic where the message was published. */ topic?: string } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum MetricUnitType { BYTES = "BYTES", BYTES_PER_SECOND = "BYTES_PER_SECOND", COUNT = "COUNT", COUNT_PER_SECOND = "COUNT_PER_SECOND", MEGABYTES = "MEGABYTES", SECONDS = "SECONDS" } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum PayloadFormat { BYTES = "0", UTF8 = "1" } export interface RunWithInfo { /** * (Optional) The POSIX system user and, optionally, group to use to run this component on Linux core devices. */ posixUser?: string, /** * (Optional) The Windows user to use to run this component on Windows core devices. */ windowsUser?: string, /** * (Optional) The system resource limits to apply to this component's processes. */ systemResourceLimits?: SystemResourceLimits } export interface LocalDeployment { /** * The ID of the local deployment. */ deploymentId: string, /** * The status of the local deployment. */ status: DeploymentStatus, /** * (Optional) The timestamp at which the local deployment was created in MM/dd/yyyy hh:mm:ss format */ createdOn?: string, /** * (Optional) The status details of the local deployment. */ deploymentStatusDetails?: DeploymentStatusDetails } export interface PostComponentUpdateEvent { /** * The ID of the AWS IoT Greengrass deployment that updated the component. */ deploymentId: string } export interface PreComponentUpdateEvent { /** * The ID of the AWS IoT Greengrass deployment that updates the component. */ deploymentId: string, /** * Whether or not Greengrass needs to restart to apply the update. */ isGgcRestarting: boolean } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum ConfigurationValidityStatus { ACCEPTED = "ACCEPTED", REJECTED = "REJECTED" } export interface ComponentDetails { /** * The name of the component. */ componentName: string, /** * The version of the component. */ version: string, /** * The state of the component. */ state: LifecycleState, /** * The component's configuration as a JSON object. */ configuration?: any } export interface CertificateUpdate { /** * The private key in pem format. */ privateKey?: string, /** * The public key in pem format. */ publicKey?: string, /** * The certificate in pem format. */ certificate?: string, /** * List of CA certificates in pem format. */ caCertificates?: string[] } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum CertificateType { SERVER = "SERVER" } export interface BinaryMessage { /** * The binary message as a blob. */ message?: eventstream.Payload, /** * The context of the message, such as the topic where the message was published. */ context?: MessageContext } export interface JsonMessage { /** * The JSON message as an object. */ message?: any, /** * The context of the message, such as the topic where the message was published. */ context?: MessageContext } export interface MQTTCredential { /** * The client ID to used to connect. */ clientId?: string, /** * The client certificate in pem format. */ certificatePem?: string, /** * The username. (unused). */ username?: string, /** * The password. (unused). */ password?: string } export interface ValidateConfigurationUpdateEvent { /** * The object that contains the new configuration. */ configuration?: any, /** * The ID of the AWS IoT Greengrass deployment that updates the component. */ deploymentId: string } export interface Metric { name: string, unit: MetricUnitType, value: number } export interface ConfigurationUpdateEvent { /** * The name of the component. */ componentName: string, /** * The key path to the configuration value that updated. */ keyPath: string[] } export interface MQTTMessage { /** * The topic to which the message was published. */ topicName: string, /** * (Optional) The message payload as a blob. */ payload?: eventstream.Payload, /** * (Optional) The value of the retain flag. */ retain?: boolean, /** * (Optional) MQTT user properties associated with the message. */ userProperties?: UserProperty[], /** * (Optional) Message expiry interval in seconds. */ messageExpiryIntervalSeconds?: number, /** * (Optional) Correlation data blob for request/response. */ correlationData?: eventstream.Payload, /** * (Optional) Response topic for request/response. */ responseTopic?: string, /** * (Optional) Message payload format. */ payloadFormat?: PayloadFormat, /** * (Optional) Message content type. */ contentType?: string } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum FailureHandlingPolicy { ROLLBACK = "ROLLBACK", DO_NOTHING = "DO_NOTHING" } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum RequestStatus { SUCCEEDED = "SUCCEEDED", FAILED = "FAILED" } export interface ComponentUpdatePolicyEvents { /** * An event that indicates that the Greengrass wants to update a component. */ preUpdateEvent?: PreComponentUpdateEvent, /** * An event that indicates that the nucleus updated a component. */ postUpdateEvent?: PostComponentUpdateEvent } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum ReportedLifecycleState { RUNNING = "RUNNING", ERRORED = "ERRORED" } export interface SecretValue { /** * The decrypted part of the protected secret information that you provided to Secrets Manager as a string. */ secretString?: string, /** * (Optional) The decrypted part of the protected secret information that you provided to Secrets Manager as binary data in the form of a byte array. */ secretBinary?: eventstream.Payload } export interface ConfigurationValidityReport { /** * The validity status. */ status: ConfigurationValidityStatus, /** * The ID of the AWS IoT Greengrass deployment that requested the configuration update. */ deploymentId: string, /** * (Optional) A message that reports why the configuration isn't valid. */ message?: string } export interface ClientDeviceCredential { /** * The client device's X.509 device certificate. */ clientDeviceCertificate?: string } export interface CertificateUpdateEvent { /** * The information about the new certificate. */ certificateUpdate?: CertificateUpdate } export interface CertificateOptions { /** * The types of certificate updates to subscribe to. */ certificateType: CertificateType } export interface PublishMessage { /** * (Optional) A JSON message. */ jsonMessage?: JsonMessage, /** * (Optional) A binary message. */ binaryMessage?: BinaryMessage } export interface CredentialDocument { /** * The client device's MQTT credentials. Specify the client ID and certificate that the client device uses to connect. */ mqttCredential?: MQTTCredential } export interface SubscriptionResponseMessage { /** * (Optional) A JSON message. */ jsonMessage?: JsonMessage, /** * (Optional) A binary message. */ binaryMessage?: BinaryMessage } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum ReceiveMode { RECEIVE_ALL_MESSAGES = "RECEIVE_ALL_MESSAGES", RECEIVE_MESSAGES_FROM_OTHERS = "RECEIVE_MESSAGES_FROM_OTHERS" } export interface ValidateConfigurationUpdateEvents { /** * The configuration update event. */ validateConfigurationUpdateEvent?: ValidateConfigurationUpdateEvent } export interface ConfigurationUpdateEvents { /** * The configuration update event. */ configurationUpdateEvent?: ConfigurationUpdateEvent } /** * To preserve backwards compatibility, no validation is performed on enum-valued fields. */ export enum QOS { AT_MOST_ONCE = "0", AT_LEAST_ONCE = "1" } export interface IoTCoreMessage { /** * The MQTT message. */ message?: MQTTMessage } export interface InvalidArgumentsError { message?: string } export interface InvalidArtifactsDirectoryPathError { message?: string } export interface InvalidRecipeDirectoryPathError { message?: string } export interface ServiceError { message?: string, context?: any } export interface CreateLocalDeploymentResponse { /** * The ID of the local deployment that the request created. */ deploymentId?: string } export interface CreateLocalDeploymentRequest { /** * The thing group name the deployment is targeting. If the group name is not specified, "LOCAL_DEPLOYMENT" will be used. */ groupName?: string, /** * Map of component name to version. Components will be added to the group's existing root components. */ rootComponentVersionsToAdd?: Map<string, string>, /** * List of components that need to be removed from the group, for example if new artifacts were loaded in this request but recipe version did not change. */ rootComponentsToRemove?: string[], /** * Map of component names to configuration. */ componentToConfiguration?: Map<string, any>, /** * Map of component names to component run as info. */ componentToRunWithInfo?: Map<string, RunWithInfo>, /** * All recipes files in this directory will be copied over to the Greengrass package store. */ recipeDirectoryPath?: string, /** * All artifact files in this directory will be copied over to the Greengrass package store. */ artifactsDirectoryPath?: string, /** * Deployment failure handling policy. */ failureHandlingPolicy?: FailureHandlingPolicy } export interface ResourceNotFoundError { message?: string, resourceType?: string, resourceName?: string } export interface UnauthorizedError { message?: string } export interface PauseComponentResponse { } export interface PauseComponentRequest { /** * The name of the component to pause, which must be a generic component. */ componentName: string } export interface ComponentNotFoundError { message?: string } export interface StopComponentResponse { /** * The status of the stop request. */ stopStatus: RequestStatus, /** * A message about why the component failed to stop, if the request failed. */ message?: string } export interface StopComponentRequest { /** * The name of the component. */ componentName: string } export interface ListLocalDeploymentsResponse { /** * The list of local deployments. */ localDeployments?: LocalDeployment[] } export interface ListLocalDeploymentsRequest { } export interface SubscribeToComponentUpdatesResponse { } export interface SubscribeToComponentUpdatesRequest { } export interface ListNamedShadowsForThingResponse { /** * The list of shadow names. */ results: string[], /** * (Optional) The date and time that the response was generated. */ timestamp: Date, /** * (Optional) The token value to use in paged requests to retrieve the next page in the sequence. This token isn't present when there are no more shadow names to return. */ nextToken?: string } export interface ListNamedShadowsForThingRequest { /** * The name of the thing. */ thingName: string, /** * (Optional) The token to retrieve the next set of results. This value is returned on paged results and is used in the call that returns the next page. */ nextToken?: string, /** * (Optional) The number of shadow names to return in each call. Value must be between 1 and 100. Default is 25. */ pageSize?: number } export interface CancelLocalDeploymentResponse { message?: string } export interface CancelLocalDeploymentRequest { /** * (Optional) The ID of the local deployment to cancel. */ deploymentId?: string } export interface UpdateStateResponse { } export interface UpdateStateRequest { /** * The state to set this component to. */ state: ReportedLifecycleState } export interface GetSecretValueResponse { /** * The ID of the secret. */ secretId: string, /** * The ID of this version of the secret. */ versionId: string, /** * The list of staging labels attached to this version of the secret. */ versionStage: string[], /** * The value of this version of the secret. */ secretValue: SecretValue } export interface GetSecretValueRequest { /** * The name of the secret to get. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. */ secretId: string, /** * (Optional) The ID of the version to get. If you don't specify versionId or versionStage, this operation defaults to the version with the AWSCURRENT label. */ versionId?: string, /** * (Optional) The staging label of the version to get. If you don't specify versionId or versionStage, this operation defaults to the version with the AWSCURRENT label. */ versionStage?: string, /** * (Optional) Whether to fetch the latest secret from cloud when the request is handled. Defaults to false. */ refresh?: boolean } export interface GetLocalDeploymentStatusResponse { /** * The local deployment. */ deployment: LocalDeployment } export interface GetLocalDeploymentStatusRequest { /** * The ID of the local deployment to get. */ deploymentId: string } export interface RestartComponentResponse { /** * The status of the restart request. */ restartStatus: RequestStatus, /** * A message about why the component failed to restart, if the request failed. */ message?: string } export interface RestartComponentRequest { /** * The name of the component. */ componentName: string } export interface InvalidTokenError { message?: string } export interface ValidateAuthorizationTokenResponse { isValid: boolean } export interface ValidateAuthorizationTokenRequest { token: string } export interface FailedUpdateConditionCheckError { message?: string } export interface ConflictError { message?: string } export interface UpdateConfigurationResponse { } export interface UpdateConfigurationRequest { /** * (Optional) The key path to the container node (the object) to update. Specify a list where each entry is the key for a single level in the configuration object. Defaults to the root of the configuration object. */ keyPath?: string[], /** * The current Unix epoch time in milliseconds. This operation uses this timestamp to resolve concurrent updates to the key. If the key in the component configuration has a greater timestamp than the timestamp in the request, then the request fails. */ timestamp: Date, /** * The configuration object to merge at the location that you specify in keyPath. */ valueToMerge: any } export interface UpdateThingShadowResponse { /** * The response state document as a JSON encoded blob. */ payload: eventstream.Payload } export interface UpdateThingShadowRequest { /** * The name of the thing. */ thingName: string, /** * The name of the shadow. To specify the thing's classic shadow, set this parameter to an empty string (""). */ shadowName?: string, /** * The request state document as a JSON encoded blob. */ payload: eventstream.Payload } export interface SendConfigurationValidityReportResponse { } export interface SendConfigurationValidityReportRequest { /** * The report that tells Greengrass whether or not the configuration update is valid. */ configurationValidityReport: ConfigurationValidityReport } export interface GetThingShadowResponse { /** * The response state document as a JSON encoded blob. */ payload: eventstream.Payload } export interface GetThingShadowRequest { /** * The name of the thing. */ thingName: string, /** * The name of the shadow. To specify the thing's classic shadow, set this parameter to an empty string (""). */ shadowName?: string } export interface CreateDebugPasswordResponse { password: string, username: string, passwordExpiration: Date, certificateSHA256Hash?: string, certificateSHA1Hash?: string } export interface CreateDebugPasswordRequest { } export interface ListComponentsResponse { /** * The list of components. */ components?: ComponentDetails[] } export interface ListComponentsRequest { } export interface InvalidClientDeviceAuthTokenError { message?: string } export interface AuthorizeClientDeviceActionResponse { /** * Whether the client device is authorized to perform the operation on the resource. */ isAuthorized: boolean } export interface AuthorizeClientDeviceActionRequest { /** * The session token for the client device from GetClientDeviceAuthToken. */ clientDeviceAuthToken: string, /** * The operation to authorize. */ operation: string, /** * The resource the client device performs the operation on. */ resource: string } export interface VerifyClientDeviceIdentityResponse { /** * Whether the client device's identity is valid. */ isValidClientDevice: boolean } export interface VerifyClientDeviceIdentityRequest { /** * The client device's credentials. */ credential: ClientDeviceCredential } export interface SubscribeToCertificateUpdatesResponse { } export interface SubscribeToCertificateUpdatesRequest { certificateOptions: CertificateOptions } export interface PublishToTopicResponse { } export interface PublishToTopicRequest { /** * The topic to publish the message. */ topic: string, /** * The message to publish. */ publishMessage: PublishMessage } export interface InvalidCredentialError { message?: string } export interface GetClientDeviceAuthTokenResponse { /** * The session token for the client device. You can use this session token in subsequent requests to authorize this client device's actions. */ clientDeviceAuthToken: string } export interface GetClientDeviceAuthTokenRequest { /** * The client device's credentials. */ credential: CredentialDocument } export interface GetComponentDetailsResponse { /** * The component's details. */ componentDetails: ComponentDetails } export interface GetComponentDetailsRequest { /** * The name of the component to get. */ componentName: string } export interface SubscribeToTopicResponse { topicName?: string } export interface SubscribeToTopicRequest { /** * The topic to subscribe to. Supports MQTT-style wildcards. */ topic: string, /** * (Optional) The behavior that specifies whether the component receives messages from itself. */ receiveMode?: ReceiveMode } export interface GetConfigurationResponse { /** * The name of the component. */ componentName?: string, /** * The requested configuration as an object. */ value?: any } export interface GetConfigurationRequest { /** * (Optional) The name of the component. Defaults to the name of the component that makes the request. */ componentName?: string, /** * The key path to the configuration value. Specify a list where each entry is the key for a single level in the configuration object. */ keyPath: string[] } export interface SubscribeToValidateConfigurationUpdatesResponse { } export interface SubscribeToValidateConfigurationUpdatesRequest { } export interface DeferComponentUpdateResponse { } export interface DeferComponentUpdateRequest { /** * The ID of the AWS IoT Greengrass deployment to defer. */ deploymentId: string, /** * (Optional) The name of the component for which to defer updates. Defaults to the name of the component that makes the request. */ message?: string, /** * The amount of time in milliseconds for which to defer the update. Greengrass waits for this amount of time and then sends another PreComponentUpdateEvent */ recheckAfterMs?: number } export interface PutComponentMetricResponse { } export interface PutComponentMetricRequest { metrics: Metric[] } export interface DeleteThingShadowResponse { /** * An empty response state document. */ payload: eventstream.Payload } export interface DeleteThingShadowRequest { /** * The name of the thing. */ thingName: string, /** * The name of the shadow. To specify the thing's classic shadow, set this parameter to an empty string (""). */ shadowName?: string } export interface SubscribeToConfigurationUpdateResponse { } export interface SubscribeToConfigurationUpdateRequest { /** * (Optional) The name of the component. Defaults to the name of the component that makes the request. */ componentName?: string, /** * The key path to the configuration value for which to subscribe. Specify a list where each entry is the key for a single level in the configuration object. */ keyPath: string[] } export interface PublishToIoTCoreResponse { } export interface PublishToIoTCoreRequest { /** * The topic to which to publish the message. */ topicName: string, /** * The MQTT QoS to use. */ qos: QOS, /** * (Optional) The message payload as a blob. */ payload?: eventstream.Payload, /** * (Optional) Whether to set MQTT retain option to true when publishing. */ retain?: boolean, /** * (Optional) MQTT user properties associated with the message. */ userProperties?: UserProperty[], /** * (Optional) Message expiry interval in seconds. */ messageExpiryIntervalSeconds?: number, /** * (Optional) Correlation data blob for request/response. */ correlationData?: eventstream.Payload, /** * (Optional) Response topic for request/response. */ responseTopic?: string, /** * (Optional) Message payload format. */ payloadFormat?: PayloadFormat, /** * (Optional) Message content type. */ contentType?: string } export interface ResumeComponentResponse { } export interface ResumeComponentRequest { /** * The name of the component to resume. */ componentName: string } export interface SubscribeToIoTCoreResponse { } export interface SubscribeToIoTCoreRequest { /** * The topic to which to subscribe. Supports MQTT wildcards. */ topicName: string, /** * The MQTT QoS to use. */ qos: QOS }