All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.smithy.snowdevicemanagement.smithy Maven / Gradle / Ivy

There is a newer version: 2023.23.30
Show newest version
$version: "2.0"

namespace com.amazonaws.snowdevicemanagement

use aws.api#arn
use aws.api#service
use aws.auth#sigv4
use aws.protocols#restJson1

/// 

Amazon Web Services Snow Device Management documentation.

@service( sdkId: "Snow Device Management" arnNamespace: "snow-device-management" cloudFormationName: "SnowDeviceManagement" cloudTrailEventSource: "snow-device-management.amazonaws.com" endpointPrefix: "snow-device-management" ) @sigv4( name: "snow-device-management" ) @restJson1 @cors @title("AWS Snow Device Management") service SnowDeviceManagement { version: "2021-08-04" operations: [ ListTagsForResource TagResource UntagResource ] resources: [ ManagedDevice Task ] } resource Execution { identifiers: { managedDeviceId: ManagedDeviceId taskId: TaskId } read: DescribeExecution list: ListExecutions } @arn( template: "managed-device/{managedDeviceId}" absolute: false noAccount: false noRegion: false ) resource ManagedDevice { identifiers: { managedDeviceId: ManagedDeviceId } read: DescribeDevice list: ListDevices operations: [ DescribeDeviceEc2Instances ListDeviceResources ] } @arn( template: "task/{taskId}" absolute: false noAccount: false noRegion: false ) resource Task { identifiers: { taskId: TaskId } create: CreateTask read: DescribeTask list: ListTasks operations: [ CancelTask ] resources: [ Execution ] } ///

Sends a cancel request for a specified task. You can cancel a task only if it's still in a /// QUEUED state. Tasks that are already running can't be cancelled.

/// ///

A task might still run if it's processed from the queue before the /// CancelTask operation changes the task's state.

///
@http( method: "POST" uri: "/task/{taskId}/cancel" code: 200 ) operation CancelTask { input: CancelTaskInput output: CancelTaskOutput errors: [ AccessDeniedException InternalServerException ResourceNotFoundException ThrottlingException ValidationException ] } ///

Instructs one or more devices to start a task, such as unlocking or rebooting.

@http( method: "POST" uri: "/task" code: 200 ) operation CreateTask { input: CreateTaskInput output: CreateTaskOutput errors: [ AccessDeniedException InternalServerException ResourceNotFoundException ServiceQuotaExceededException ThrottlingException ValidationException ] } ///

Checks device-specific information, such as the device type, software version, IP /// addresses, and lock status.

@http( method: "POST" uri: "/managed-device/{managedDeviceId}/describe" code: 200 ) @readonly operation DescribeDevice { input: DescribeDeviceInput output: DescribeDeviceOutput errors: [ AccessDeniedException InternalServerException ResourceNotFoundException ThrottlingException ValidationException ] } ///

Checks the current state of the Amazon EC2 instances. The output is similar to /// describeDevice, but the results are sourced from the device cache in the /// Amazon Web Services Cloud and include a subset of the available fields.

@http( method: "POST" uri: "/managed-device/{managedDeviceId}/resources/ec2/describe" code: 200 ) @readonly operation DescribeDeviceEc2Instances { input: DescribeDeviceEc2Input output: DescribeDeviceEc2Output errors: [ AccessDeniedException InternalServerException ResourceNotFoundException ThrottlingException ValidationException ] } ///

Checks the status of a remote task running on one or more target devices.

@http( method: "POST" uri: "/task/{taskId}/execution/{managedDeviceId}" code: 200 ) @readonly operation DescribeExecution { input: DescribeExecutionInput output: DescribeExecutionOutput errors: [ AccessDeniedException InternalServerException ResourceNotFoundException ThrottlingException ValidationException ] } ///

Checks the metadata for a given task on a device.

@http( method: "POST" uri: "/task/{taskId}" code: 200 ) @readonly operation DescribeTask { input: DescribeTaskInput output: DescribeTaskOutput errors: [ AccessDeniedException InternalServerException ResourceNotFoundException ThrottlingException ValidationException ] } ///

Returns a list of the Amazon Web Services resources available for a device. Currently, Amazon EC2 instances are the only supported resource type.

@http( method: "GET" uri: "/managed-device/{managedDeviceId}/resources" code: 200 ) @paginated( inputToken: "nextToken" outputToken: "nextToken" items: "resources" pageSize: "maxResults" ) @readonly operation ListDeviceResources { input: ListDeviceResourcesInput output: ListDeviceResourcesOutput errors: [ AccessDeniedException InternalServerException ResourceNotFoundException ThrottlingException ValidationException ] } ///

Returns a list of all devices on your Amazon Web Services account that have Amazon Web Services Snow Device Management /// enabled in the Amazon Web Services Region where the command is run.

@http( method: "GET" uri: "/managed-devices" code: 200 ) @paginated( inputToken: "nextToken" outputToken: "nextToken" items: "devices" pageSize: "maxResults" ) @readonly operation ListDevices { input: ListDevicesInput output: ListDevicesOutput errors: [ AccessDeniedException InternalServerException ThrottlingException ValidationException ] } ///

Returns the status of tasks for one or more target devices.

@http( method: "GET" uri: "/executions" code: 200 ) @paginated( inputToken: "nextToken" outputToken: "nextToken" items: "executions" pageSize: "maxResults" ) @readonly operation ListExecutions { input: ListExecutionsInput output: ListExecutionsOutput errors: [ AccessDeniedException InternalServerException ResourceNotFoundException ThrottlingException ValidationException ] } ///

Returns a list of tags for a managed device or task.

@http( method: "GET" uri: "/tags/{resourceArn}" code: 200 ) @readonly operation ListTagsForResource { input: ListTagsForResourceInput output: ListTagsForResourceOutput errors: [ InternalServerException ResourceNotFoundException ValidationException ] } ///

Returns a list of tasks that can be filtered by state.

@http( method: "GET" uri: "/tasks" code: 200 ) @paginated( inputToken: "nextToken" outputToken: "nextToken" items: "tasks" pageSize: "maxResults" ) @readonly operation ListTasks { input: ListTasksInput output: ListTasksOutput errors: [ AccessDeniedException InternalServerException ThrottlingException ValidationException ] } ///

Adds or replaces tags on a device or task.

@http( method: "POST" uri: "/tags/{resourceArn}" code: 200 ) operation TagResource { input: TagResourceInput output: Unit errors: [ InternalServerException ResourceNotFoundException ValidationException ] } ///

Removes a tag from a device or task.

@http( method: "DELETE" uri: "/tags/{resourceArn}" code: 200 ) @idempotent operation UntagResource { input: UntagResourceInput output: Unit errors: [ InternalServerException ResourceNotFoundException ValidationException ] } ///

You don't have sufficient access to perform this action.

@error("client") @httpError(403) structure AccessDeniedException { @required message: String } structure CancelTaskInput { ///

The ID of the task that you are attempting to cancel. You can retrieve a task ID by using /// the ListTasks operation.

@httpLabel @required taskId: TaskId } structure CancelTaskOutput { ///

The ID of the task that you are attempting to cancel.

taskId: String } ///

The physical capacity of the Amazon Web Services Snow Family device.

structure Capacity { ///

The name of the type of capacity, such as memory.

@length( min: 0 max: 100 ) name: String ///

The unit of measure for the type of capacity.

@length( min: 0 max: 20 ) unit: String ///

The total capacity on the device.

total: Long ///

The amount of capacity used on the device.

used: Long ///

The amount of capacity available for use on the device.

available: Long } ///

The options for how a device's CPU is configured.

structure CpuOptions { ///

The number of cores that the CPU can use.

coreCount: Integer ///

The number of threads per core in the CPU.

threadsPerCore: Integer } structure CreateTaskInput { ///

A list of managed device IDs.

@required targets: TargetList ///

The task to be performed. Only one task is executed on a device at a time.

@required command: Command ///

A description of the task and its targets.

description: TaskDescriptionString ///

Optional metadata that you assign to a resource. You can use tags to categorize a resource /// in different ways, such as by purpose, owner, or environment.

tags: TagMap ///

A token ensuring that the action is called only once with the specified details.

@idempotencyToken clientToken: IdempotencyToken } structure CreateTaskOutput { ///

The ID of the task that you created.

taskId: String ///

The Amazon Resource Name (ARN) of the task that you created.

taskArn: String } structure DescribeDeviceEc2Input { ///

The ID of the managed device.

@httpLabel @required managedDeviceId: ManagedDeviceId ///

A list of instance IDs associated with the managed device.

@required instanceIds: InstanceIdsList } structure DescribeDeviceEc2Output { ///

A list of structures containing information about each instance.

instances: InstanceSummaryList } structure DescribeDeviceInput { ///

The ID of the device that you are checking the information of.

@httpLabel @required managedDeviceId: ManagedDeviceId } structure DescribeDeviceOutput { ///

When the device last contacted the Amazon Web Services Cloud. Indicates that the device is /// online.

lastReachedOutAt: Timestamp ///

When the device last pushed an update to the Amazon Web Services Cloud. Indicates when the device cache /// was refreshed.

lastUpdatedAt: Timestamp ///

Optional metadata that you assign to a resource. You can use tags to categorize a resource /// in different ways, such as by purpose, owner, or environment.

tags: TagMap ///

The ID of the device that you checked the information for.

managedDeviceId: ManagedDeviceId ///

The Amazon Resource Name (ARN) of the device.

managedDeviceArn: String ///

The type of Amazon Web Services Snow Family device.

deviceType: String ///

The ID of the job used when ordering the device.

associatedWithJob: String ///

The current state of the device.

deviceState: UnlockState ///

The network interfaces available on the device.

physicalNetworkInterfaces: PhysicalNetworkInterfaceList ///

The hardware specifications of the device.

deviceCapacities: CapacityList ///

The software installed on the device.

software: SoftwareInformation } structure DescribeExecutionInput { ///

The ID of the task that the action is describing.

@httpLabel @required taskId: TaskId ///

The ID of the managed device.

@httpLabel @required managedDeviceId: ManagedDeviceId } structure DescribeExecutionOutput { ///

The ID of the task being executed on the device.

taskId: TaskId ///

The ID of the execution.

executionId: ExecutionId ///

The ID of the managed device that the task is being executed on.

managedDeviceId: ManagedDeviceId ///

The current state of the execution.

state: ExecutionState ///

When the execution began.

startedAt: Timestamp ///

When the status of the execution was last updated.

lastUpdatedAt: Timestamp } structure DescribeTaskInput { ///

The ID of the task to be described.

@httpLabel @required taskId: TaskId } structure DescribeTaskOutput { ///

The ID of the task.

taskId: String ///

The Amazon Resource Name (ARN) of the task.

taskArn: String ///

The managed devices that the task was sent to.

targets: TargetList ///

The current state of the task.

state: TaskState ///

When the CreateTask operation was called.

createdAt: Timestamp ///

When the state of the task was last updated.

lastUpdatedAt: Timestamp ///

When the task was completed.

completedAt: Timestamp ///

The description provided of the task and managed devices.

description: TaskDescriptionString ///

Optional metadata that you assign to a resource. You can use tags to categorize a resource /// in different ways, such as by purpose, owner, or environment.

tags: TagMap } ///

Identifying information about the device.

structure DeviceSummary { ///

The ID of the device.

managedDeviceId: ManagedDeviceId ///

The Amazon Resource Name (ARN) of the device.

managedDeviceArn: String ///

The ID of the job used to order the device.

associatedWithJob: String ///

Optional metadata that you assign to a resource. You can use tags to categorize a resource /// in different ways, such as by purpose, owner, or environment.

tags: TagMap } ///

Describes a parameter used to set up an Amazon Elastic Block Store (Amazon EBS) volume /// in a block device mapping.

structure EbsInstanceBlockDevice { ///

When the attachment was initiated.

attachTime: Timestamp ///

A value that indicates whether the volume is deleted on instance termination.

deleteOnTermination: Boolean ///

The attachment state.

status: AttachmentStatus ///

The ID of the Amazon EBS volume.

volumeId: String } ///

The summary of a task execution on a specified device.

structure ExecutionSummary { ///

The ID of the task.

taskId: TaskId ///

The ID of the execution.

executionId: ExecutionId ///

The ID of the managed device that the task is being executed on.

managedDeviceId: ManagedDeviceId ///

The state of the execution.

state: ExecutionState } ///

The description of an /// instance. /// Currently, Amazon EC2 instances are the only supported instance type.

structure Instance { ///

The ID of the AMI used to launch the instance.

imageId: String ///

The Amazon Machine Image (AMI) launch index, which you can use to find this instance in /// the launch group.

amiLaunchIndex: Integer ///

The ID of the instance.

instanceId: String state: InstanceState ///

The instance type.

instanceType: String ///

The private IPv4 address assigned to the instance.

privateIpAddress: String ///

The public IPv4 address assigned to the instance.

publicIpAddress: String ///

When the instance was created.

createdAt: Timestamp ///

When the instance was last updated.

updatedAt: Timestamp ///

Any block device mapping entries for the instance.

blockDeviceMappings: InstanceBlockDeviceMappingList ///

The security groups for the instance.

securityGroups: SecurityGroupIdentifierList ///

The CPU options for the instance.

cpuOptions: CpuOptions ///

The device name of the root device volume (for example, /dev/sda1).

rootDeviceName: String } ///

The description of a block device mapping.

structure InstanceBlockDeviceMapping { ///

The block device name.

deviceName: String ///

The parameters used to automatically set up Amazon Elastic Block Store (Amazon EBS) /// volumes when the instance is launched.

ebs: EbsInstanceBlockDevice } ///

The description of the current state of an instance.

structure InstanceState { ///

The state of the instance as a 16-bit unsigned integer.

///

The high byte is all of the bits between 2^8 and (2^16)-1, which equals decimal values /// between 256 and 65,535. These numerical values are used for internal purposes and should be /// ignored.

///

The low byte is all of the bits between 2^0 and (2^8)-1, which equals decimal values /// between 0 and 255.

///

The valid values for the instance state code are all in the range of the low byte. These /// values are:

///
    ///
  • ///

    /// 0 : pending ///

    ///
  • ///
  • ///

    /// 16 : running ///

    ///
  • ///
  • ///

    /// 32 : shutting-down ///

    ///
  • ///
  • ///

    /// 48 : terminated ///

    ///
  • ///
  • ///

    /// 64 : stopping ///

    ///
  • ///
  • ///

    /// 80 : stopped ///

    ///
  • ///
///

You can ignore the high byte value by zeroing out all of the bits above 2^8 or 256 in /// decimal.

code: Integer ///

The current /// state /// of the instance.

name: InstanceStateName } ///

The details about the instance.

structure InstanceSummary { ///

A structure containing details about the instance.

instance: Instance ///

When the instance summary was last updated.

lastUpdatedAt: Timestamp } ///

An unexpected error occurred while processing the request.

@error("server") @httpError(500) @retryable structure InternalServerException { @required message: String } structure ListDeviceResourcesInput { ///

The ID of the managed device that you are listing the resources of.

@httpLabel @required managedDeviceId: ManagedDeviceId ///

A structure used to filter the results by type of resource.

@httpQuery("type") @length( min: 1 max: 50 ) type: String ///

The maximum number of resources per page.

@httpQuery("maxResults") maxResults: MaxResults ///

A pagination token to continue to the next page of results.

@httpQuery("nextToken") nextToken: NextToken } structure ListDeviceResourcesOutput { ///

A structure defining the resource's type, Amazon Resource Name (ARN), and ID.

resources: ResourceSummaryList ///

A pagination token to continue to the next page of results.

nextToken: NextToken } structure ListDevicesInput { ///

The ID of the job used to order the device.

@httpQuery("jobId") jobId: JobId ///

The maximum number of devices to list per page.

@httpQuery("maxResults") maxResults: MaxResults ///

A pagination token to continue to the next page of results.

@httpQuery("nextToken") nextToken: NextToken } structure ListDevicesOutput { ///

A list of device structures that contain information about the device.

devices: DeviceSummaryList ///

A pagination token to continue to the next page of devices.

nextToken: NextToken } structure ListExecutionsInput { ///

The ID of the task.

@httpQuery("taskId") @required taskId: TaskId ///

A structure used to filter the tasks by their current state.

@httpQuery("state") state: ExecutionState ///

The maximum number of tasks to list per page.

@httpQuery("maxResults") maxResults: MaxResults ///

A pagination token to continue to the next page of tasks.

@httpQuery("nextToken") nextToken: NextToken } structure ListExecutionsOutput { ///

A list of executions. Each execution contains the task ID, the device that the task is /// executing on, the execution ID, and the status of the execution.

executions: ExecutionSummaryList ///

A pagination token to continue to the next page of executions.

nextToken: NextToken } structure ListTagsForResourceInput { ///

The Amazon Resource Name (ARN) of the device or task.

@httpLabel @required resourceArn: String } structure ListTagsForResourceOutput { ///

The list of tags for the device or task.

tags: TagMap } structure ListTasksInput { ///

A structure used to filter the list of tasks.

@httpQuery("state") state: TaskState ///

The maximum number of tasks per page.

@httpQuery("maxResults") maxResults: MaxResults ///

A pagination token to continue to the next page of tasks.

@httpQuery("nextToken") nextToken: NextToken } structure ListTasksOutput { ///

A list of task structures containing details about each task.

tasks: TaskSummaryList ///

A pagination token to continue to the next page of tasks.

nextToken: NextToken } ///

The details about the physical network interface for the device.

structure PhysicalNetworkInterface { ///

The physical network interface ID.

physicalNetworkInterfaceId: String ///

The /// physical /// connector type.

physicalConnectorType: PhysicalConnectorType ///

A value that describes whether the IP address is dynamic or persistent.

ipAddressAssignment: IpAddressAssignment ///

The IP address of the device.

ipAddress: String ///

The netmask used to divide the IP address into subnets.

netmask: String ///

The default gateway of the device.

defaultGateway: String ///

The MAC address of the device.

macAddress: String } ///

A structure used to reboot the device.

structure Reboot {} ///

The request references a resource that doesn't exist.

@error("client") @httpError(404) structure ResourceNotFoundException { @required message: String } ///

A summary of a resource available on the device.

structure ResourceSummary { ///

The resource type.

@required resourceType: String ///

The Amazon Resource Name (ARN) of the resource.

arn: String ///

The ID of the resource.

id: String } ///

Information about the device's security group.

structure SecurityGroupIdentifier { ///

The security group ID.

groupId: String ///

The security group name.

groupName: String } ///

The request would cause a service quota to be exceeded.

@error("client") @httpError(402) structure ServiceQuotaExceededException { @required message: String } ///

Information about the software on the device.

structure SoftwareInformation { ///

The version of the software currently installed on the device.

installedVersion: String ///

The version of the software being installed on the device.

installingVersion: String ///

The state of the software that is installed or that is being installed on the /// device.

installState: String } structure TagResourceInput { ///

The Amazon Resource Name (ARN) of the device or task.

@httpLabel @required resourceArn: String ///

Optional metadata that you assign to a resource. You can use tags to categorize a resource /// in different ways, such as by purpose, owner, or environment.

@required tags: TagMap } ///

Information about the task assigned to one or many devices.

structure TaskSummary { ///

The task ID.

@required taskId: TaskId ///

The Amazon Resource Name (ARN) of the task.

taskArn: String ///

The state of the task assigned to one or many devices.

state: TaskState ///

Optional metadata that you assign to a resource. You can use tags to categorize a resource /// in different ways, such as by purpose, owner, or environment.

tags: TagMap } ///

The request was denied due to request throttling.

@error("client") @httpError(429) @retryable( throttling: true ) structure ThrottlingException { @required message: String } ///

A structure used to unlock a device.

structure Unlock {} structure UntagResourceInput { ///

The Amazon Resource Name (ARN) of the device or task.

@httpLabel @required resourceArn: String ///

Optional metadata that you assign to a resource. You can use tags to categorize a resource /// in different ways, such as by purpose, owner, or environment.

@httpQuery("tagKeys") @required tagKeys: TagKeys } ///

The input fails to satisfy the constraints specified by an Amazon Web Services service.

@error("client") @httpError(400) structure ValidationException { @required message: String } ///

The command given to the device to execute.

union Command { ///

Unlocks the device.

unlock: Unlock ///

Reboots the device.

reboot: Reboot } @length( min: 0 max: 100 ) list CapacityList { member: Capacity } list DeviceSummaryList { member: DeviceSummary } list ExecutionSummaryList { member: ExecutionSummary } list InstanceBlockDeviceMappingList { member: InstanceBlockDeviceMapping } list InstanceIdsList { member: String } list InstanceSummaryList { member: InstanceSummary } list PhysicalNetworkInterfaceList { member: PhysicalNetworkInterface } list ResourceSummaryList { member: ResourceSummary } list SecurityGroupIdentifierList { member: SecurityGroupIdentifier } list TagKeys { member: String } @length( min: 1 max: 10 ) list TargetList { member: String } list TaskSummaryList { member: TaskSummary } map TagMap { key: String value: String } @enum([ { value: "ATTACHING" name: "ATTACHING" } { value: "ATTACHED" name: "ATTACHED" } { value: "DETACHING" name: "DETACHING" } { value: "DETACHED" name: "DETACHED" } ]) string AttachmentStatus @length( min: 1 max: 64 ) string ExecutionId @enum([ { value: "QUEUED" name: "QUEUED" } { value: "IN_PROGRESS" name: "IN_PROGRESS" } { value: "CANCELED" name: "CANCELED" } { value: "FAILED" name: "FAILED" } { value: "SUCCEEDED" name: "SUCCEEDED" } { value: "REJECTED" name: "REJECTED" } { value: "TIMED_OUT" name: "TIMED_OUT" } ]) string ExecutionState @length( min: 1 max: 64 ) @pattern("[!-~]+") string IdempotencyToken @enum([ { value: "PENDING" name: "PENDING" } { value: "RUNNING" name: "RUNNING" } { value: "SHUTTING_DOWN" name: "SHUTTING_DOWN" } { value: "TERMINATED" name: "TERMINATED" } { value: "STOPPING" name: "STOPPING" } { value: "STOPPED" name: "STOPPED" } ]) string InstanceStateName @enum([ { value: "DHCP" name: "DHCP" } { value: "STATIC" name: "STATIC" } ]) string IpAddressAssignment @length( min: 1 max: 64 ) string JobId @length( min: 1 max: 64 ) string ManagedDeviceId @range( min: 1 max: 100 ) integer MaxResults @length( min: 1 max: 1024 ) @pattern("[a-zA-Z0-9+/=]*") string NextToken @enum([ { value: "RJ45" name: "RJ45" } { value: "SFP_PLUS" name: "SFP_PLUS" } { value: "QSFP" name: "QSFP" } { value: "RJ45_2" name: "RJ45_2" } { value: "WIFI" name: "WIFI" } ]) string PhysicalConnectorType @length( min: 1 max: 128 ) @pattern("[A-Za-z0-9 _.,!#]*") string TaskDescriptionString @length( min: 1 max: 64 ) string TaskId @enum([ { value: "IN_PROGRESS" name: "IN_PROGRESS" } { value: "CANCELED" name: "CANCELED" } { value: "COMPLETED" name: "COMPLETED" } ]) string TaskState @enum([ { value: "UNLOCKED" name: "UNLOCKED" } { value: "LOCKED" name: "LOCKED" } { value: "UNLOCKING" name: "UNLOCKING" } ]) string UnlockState




© 2015 - 2025 Weber Informatics LLC | Privacy Policy