Files
doc-exports/docs/iam/api-ref/en-us_topic_0079578164.html
weihongmin1 46d24ba358 IAM API 0401 Version
Reviewed-by: Belejkanic, Lukas <lukas.belejkanic@t-systems.com>
Co-authored-by: weihongmin1 <weihongmin1@huawei.com>
Co-committed-by: weihongmin1 <weihongmin1@huawei.com>
2026-01-14 14:13:49 +00:00

42 KiB

Querying the List of Permissions of an Agency on a Project

Function

This API is used to query the list of permissions of an agency on a project.

URI

  • URI format

    GET /v3.0/OS-AGENCY/projects/{project_id}/agencies/{agency_id}/roles

  • URI parameters

    Parameter

    Mandatory

    Type

    Description

    project_id

    Yes

    String

    ID of a project under the current domain.

    agency_id

    Yes

    String

    ID of an agency.

Request Parameters

  • Parameters in the request header

    Parameter

    Mandatory

    Type

    Description

    Content-Type

    Yes

    String

    Fill application/json;charset=utf8 in this field.

    X-Auth-Token

    Yes

    String

    Authenticated token with the Security Administrator permission.

  • Example request
    curl -i -k -H "X-Auth-Token:$token" -H 'Content-Type:application/json;charset=utf8' -X GET https://sample.domain.com/v3.0/OS-AGENCY/projects/0945241c5ebc4660bac540d48f2a2c14/agencies/37f90258b820472bbc8a0f4f0bfd720d/roles

Response Parameters

  • Parameters in the response body

    Parameter

    Mandatory

    Type

    Description

    roles

    Yes

    Array

    List of roles.

  • roles

    Parameter

    Type

    Description

    domain_id

    String

    ID of the account to which the permission belongs.

    flag

    String

    The return value fine_grained indicates that the permission is a system-defined policy.

    catalog

    String

    Service catalog of the permission.

    name

    String

    Permission name. This parameter is carried in the token of a user, allowing the system to determine whether the user has permissions to access a specific cloud service.

    description

    String

    Permission description.

    links

    Object

    Permission resource link.

    id

    String

    Permission ID.

    display_name

    String

    Display name of the permission.

    type

    String

    Display mode of the permission.

    • AX: Account level.
    • XA: Project level.
    • AA: Both the account level and project level.
    • XX: Neither the account level nor project level.
    • The display mode of a custom policy can only be AX or XA. A custom policy must be displayed at either of the two levels.

    policy

    Object

    Content of the permission.

    updated_time

    String

    Time when the permission was last updated.

    created_time

    String

    Time when the permission was created.

  • roles.links
  • roles.policy

    Parameter

    Type

    Description

    Depends

    Array of objects

    Dependency permissions.

    Statement

    Array of objects

    Statement of the permission.

    Version

    String

    Policy version.

    • 1.0: System-defined role. Only a limited number of service-level roles are provided for authorization.
    • 1.1: Policy. A policy defines the permissions required to perform actions on a specific cloud resource under certain conditions.
  • roles.policy.Depends

    Parameter

    Type

    Description

    catalog

    String

    Service catalog of the permission.

    display_name

    String

    Display name of the permission.

  • roles.policy.Statement

    Parameter

    Type

    Description

    Action

    Array of strings

    Specific operation permissions on a resource.

    NOTE:
    • Format: Service name:Resource type:Action, for example, vpc:ports:create
    • Service name: indicates the service name, such as ecs, evs, or vpc. Only lowercase letters are allowed. Resource types and actions are not case-sensitive. You can use an asterisk (*) to represent all actions.
    • In the case of a custom policy for agencies, this parameter value should be "Action": ["iam:tokens:assume"].

    Effect

    String

    Effect of the permission. The value can be Allow or Deny. If both Allow and Deny statements are found in a policy, the authentication starts from the Deny statements.

    The options are as follows:

    • Allow
    • Deny

    Condition

    Object

    Conditions for the permission to take effect.

    NOTE:

    Take the condition in the sample request as an example, the values of the condition key (obs:prefix) and string (public) must be equal (StringEquals).

     "Condition": {
                  "StringEquals": {
                    "obs:prefix": [
                      "public"
                    ]
                  }
                }

    Resource

    Object

    Cloud resource.

    NOTE:
    • Five-segment format that can contain asterisks (*): ::::, for example, obs::🪣*.
    • The region segment can be * or a region accessible to the user. The service must exist and the specified resource must belong to the service.
    • In the case of a custom policy for agencies, the type of this parameter is Object, and the value should be "Resource": {"uri": ["/iam/agencies/agencyTest"]}.
  • Example response (successful request)
    {
      "roles": [
        {
          "catalog": "BASE",
          "display_name": "Tenant Guest",
          "name": "readonly",
          "policy": {
            "Version": "1.0",
            "Statement": [
              {
                "Action": [
                  "::Get",
                  "::List"
                ],
                "Effect": "Allow"
              },
              {
                "Action": [
                  "identity:*"
                ],
                "Effect": "Deny"
              }
            ]
          },
          "domain_id": null,
          "type": "AA",
          "id": "b32d99a7778d4fd9aa5bc616c3dc4e5f",
          "description": "Tenant Guest"
        }
      ]
    }
  • Example response (request failed)
    {
      "error": {
        "message": "You are not authorized to perform the requested action: identity:list_domain_grants",
        "code": 403,
        "title": "Forbidden"
      }
    }

Status Codes

Status Code

Description

200

The request is successful.

401

Authentication failed.

403

Access denied.

404

The requested resource cannot be found.

500

Internal server error.