Updated on 2026-07-22 GMT+08:00

Creating a Version for a Specified Identity Policy

Function

This API is used to create a version for a specified identity policy.

Authorization Information

Each account root user has all the permissions required to call all APIs, but IAM users must be assigned the following required identity policy-based permissions. For details about the required permissions, see Permissions Policies and Supported Actions.

Action

Access Level

Resource Type (*: required)

Condition Key

Alias

Dependencies

iam:policies:createVersionV5

Permission_management

policy *

-

-

-

URI

POST /v5/policies/{policy_id}/versions

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

policy_id

Yes

String

Definition:

Identity policy ID.

Constraints:

The value can contain 1 to 64 characters. Only letters, digits, and hyphens (-) are allowed.

Range:

N/A

Default Value:

N/A

Request Parameters

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

policy_document

Yes

String

Definition:

JSON format of the policy document of a custom or a preset identity policy.

Constraints:

Characters =, <, >, (, ), and | are special characters in the grammar and are not included in policies.

The question mark (?) indicates an element is optional. For example, sid_block?.

The vertical bar (|) indicates options, and the parenthesis define the range of options. For example, ("Allow" | "Deny").

When an element allows multiple values, use duplicate values, (,), and (...). For example, [ <policy_statement>, <policy_statement>, ... ].

The following recursive grammar describes the syntax of identity policies:

policy = {
  <version_block>,
  <statement_block>
}

<version_block> = "Version" : ("5.0")

<statement_block> = "Statement" : [ <policy_statement>, <policy_statement>, ... ]

<policy_statement> = {
  <sid_block?>,
  <effect_block>,
  <action_block>,
  <resource_block?>,
  <condition_block?>
}

<sid_block> = "Sid" : <sid_string>

<effect_block> = "Effect" : ("Allow" | "Deny")

<action_block> = ("Action" | "NotAction") : [ <action_string>, <action_string>, ... ]

<resource_block> = ("Resource" | "NotResource") : [ <resource_string>, <resource_string>, ... ]

<condition_block> = "Condition" : { <condition_map> }

<condition_map> = {
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  ...
}

<condition_value_list> = ( <condition_value> | [ <condition_value>, <condition_value>, ... ] )

<condition_value> = "string"

Range:

N/A

Default Value:

N/A

set_as_default

No

Boolean

Definition:

Whether to set the version as the default version.

Constraints:

N/A

Range:

The value can be true or false.

Default Value:

The default value is false.

Response Parameters

Status code: 201

Table 3 Response body parameters

Parameter

Type

Description

policy_version

policy_version object

Definition:

Identity policy version.

Range:

N/A

Table 4 policy_version

Parameter

Type

Description

document

String

Definition:

JSON format of the policy document of a custom or a preset identity policy.

Range:

N/A

version_id

String

Definition:

Identity policy version.

Range:

N/A

is_default

Boolean

Definition:

Indicates whether the version is the default version.

Range:

N/A

created_at

String

Definition:

Time when an identity policy version is created.

Range:

N/A

Status code: 400

Table 5 Response body parameters

Parameter

Type

Description

error_code

String

Definition :

Error code. For details, see Error Code.

Range:

The format is PAP5.XXXX, for example, PAP5.0012.

error_msg

String

Definition :

Error message. For details, see Error Message.

Range:

N/A.

request_id

String

Definition:

Unique identifier of an API request, which is used to locate API calling exceptions.

Range:

N/A

Status code: 403

Table 6 Response body parameters

Parameter

Type

Description

error_code

String

Definition :

Error code. For details, see Error Code.

Range:

The format is PAP5.XXXX, for example, PAP5.0012.

error_msg

String

Definition :

Error message. For details, see Error Message.

Range:

N/A.

request_id

String

Definition:

Unique identifier of an API request, which is used to locate API calling exceptions.

Range:

N/A

encoded_authorization_message

String

Definition :

Encrypted details returned when the authentication fails, which are used to locate authentication problems. The STS5 decryption API can be used for decryption. For details, see API link.

Range:

N/A.

Status code: 404

Table 7 Response body parameters

Parameter

Type

Description

error_code

String

Definition :

Error code. For details, see Error Code.

Range:

The format is PAP5.XXXX, for example, PAP5.0012.

error_msg

String

Definition :

Error message. For details, see Error Message.

Range:

N/A.

request_id

String

Definition:

Unique identifier of an API request, which is used to locate API calling exceptions.

Range:

N/A

Status code: 409

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Definition :

Error code. For details, see Error Code.

Range:

The format is PAP5.XXXX, for example, PAP5.0012.

error_msg

String

Definition :

Error message. For details, see Error Message.

Range:

N/A.

request_id

String

Definition:

Unique identifier of an API request, which is used to locate API calling exceptions.

Range:

N/A

Example Requests

Creating a version for a specified identity policy and setting it as the default version

POST https://{endpoint}/v5/policies/{policy_id}/versions

{
  "policy_document" : "{\"Version\":\"5.0\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"*\"]}]}",
  "set_as_default" : true
}

Example Responses

Status code: 201

Successful

{
  "policy_version" : {
    "document" : "{\"Version\":\"5.0\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"*\"]}]}",
    "version_id" : "v2",
    "is_default" : true,
    "created_at" : "2023-09-25T08:00:51.537Z"
  }
}

Status Codes

Status Code

Description

201

Successful

400

Bad request

403

Forbidden

404

Not found

409

Conflict

Error Codes

See Error Codes.