All Products
Search
Document Center

ENS:RunServiceSchedule

Last Updated:Mar 27, 2026

Schedules the nearest idle resources including instances and pods for your device based on the user ID and IP address and initializes the virtual environment.

Try it now

Try this API in OpenAPI Explorer, no manual signing needed. Successful calls auto-generate SDK code matching your parameters. Download it with built-in credential security for local usage.

Test

RAM authorization

The table below describes the authorization required to call this API. You can define it in a Resource Access Management (RAM) policy. The table's columns are detailed below:

  • Action: The actions can be used in the Action element of RAM permission policy statements to grant permissions to perform the operation.

  • API: The API that you can call to perform the action.

  • Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.

  • Resource type: The type of the resource that supports authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.

    • For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding Alibaba Cloud Resource Name (ARN) in the Resource element of the policy.

    • For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the Resource element of the policy.

  • Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys applicable across all RAM-supported services.

  • Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.

Action

Access level

Resource type

Condition key

Dependent action

ens:RunServiceSchedule

update

*All Resource

*

None None

Request parameters

Parameter

Type

Required

Description

Example

AppId

string

Yes

The ID of the application.

474bdef0-d149-4695-abfb-52912d9143f0

Uuid

string

Yes

The UUID of the device.

hdm_d4f1059a8e1afc0956bd71b497faa433

ClientIp

string

Yes

The IP address of the client.

180.166.45.146

ServiceAction

string

Yes

The scheduling operation. The value must be of the enumeration type. Valid values:

Container scenario:

  • Start: selects and activates an idle cloud device.

  • Stop: stops and releases the cloud device.

  • Console: performs the scheduling operation when the device is in the scheduling state.

Bare metal instance or virtual machine scenario:

  • PreSchedule: locks a virtual machine instance for scheduling.

  • Confirm: confirms the scheduling operation.

  • Cancel: cancels the scheduling operation.

  • Console: performs the scheduling operation when the device is in the scheduling state.

Valid values:

  • Start :
  • Stop :
  • Cancel :
  • PreSchedule :
  • Console :
  • Confirm :

Start

PodConfigName

string

No

The parameter does not take effect.

android

PreLockedTimeout

integer

No

The maximum duration for locking an idle device. Unit: seconds. This parameter takes effect only if you set ServiceAction to PreSchedule. Default value: 300.

300

Directorys

string

No

The directory to which the data file is mounted. The value must be a full path and cannot be '/../'. Example: ["/data/app01", "/data/user"]. Specify the relative path of the virtual device for this parameter. For example, specify /data for this parameter when the actual path of the virtual device is /data/{input path}.

[\"/data/app01\", \"/data/user\"]

ServiceCommands

string

No

The service commands. The value must be a JSON string.

[{\"containerName\": \"android\", \"commands\":[\"cat /tmp/token.json\"] }, { \"commands\":[\"ls -l /data/data\"] }]

ScheduleStrategy

string

No

The scheduling policy of the device. The value must be a JSON string.

{\"selectLevel\": \"RegionId\", \"values\": [\"cn-chengdu-telecom-2\"] }

Response elements

Element

Type

Description

Example

object

CommandResults

object

CommandResult

array<object>

The execution results of the commands.

object

Command

string

The command.

ls -l /data

ContainerName

string

The name of the container.

android

ResultMsg

string

The execution result of the command.

success

Index

integer

The index number of the scheduled virtual device (pod).

1

InstanceId

string

The ID of the scheduled instance.

i-5qvji3mom4ec013dyygmtxlkj

InstanceIp

string

The IP address of the scheduled instance.

172.16.246.11

InstancePort

integer

The start port of the scheduled instance.

1024

RequestId

string

The ID of the request.

473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E

RequestRepeated

string

Indicates whether the request is repeated. This parameter is not returned if ServcieAction is set to Console.

false

TcpPorts

boolean

The TCP port range of the scheduled instance or container. The value is in the ${from}-$-{to} format. Example: 80-88.

"80-88"

Examples

Success response

JSON format

{
  "CommandResults": {
    "CommandResult": [
      {
        "Command": "ls -l /data",
        "ContainerName": "android",
        "ResultMsg": "success"
      }
    ]
  },
  "Index": 1,
  "InstanceId": "i-5qvji3mom4ec013dyygmtxlkj",
  "InstanceIp": "172.16.246.11",
  "InstancePort": 1024,
  "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E",
  "RequestRepeated": "false",
  "TcpPorts": true
}

Error codes

HTTP status code

Error code

Error message

Description

400 MissingParameter The input parameter that is mandatory for processing this request is not supplied.
400 NoPermission Permission denied.
400 InvalidParameter.%s The specified field %s invalid. Please check it again.
400 InvalidParameter The errorMessage is %s. Please check it again.
400 LimitExceeded.SecurityGroup The number of securityGroup exceeds the limit.
400 ens.interface.error An error occurred while calling the API.
400 CallInterface Call Interface Happen Error. An error occurred when you call the operation.

See Error Codes for a complete list.

Release notes

See Release Notes for a complete list.