nav-img
Advanced

Как передается значение value при запросе ключа через API?

Через API-запрос можно передавать запрос тегов в формате «key» = «value». Подробнее о параметрах передачи API-запроса.

В общем виде такой запрос будет выглядеть:

POST https://TMS endpoint/v1.0/tags/action
{
"action": "create",
"tags": [
{
"key": "ENV1",
"value": "DEV1"
}
]
}

Параметры:

  • action — обязательный параметр string, отвечающий за операцию по созданию или удалению тегов. Может быть create или delete.

  • tags — обязательный параметр array, который задает список тегов. В тег включены значения key и value:

    • key — обязательный string параметр, задающий ключ тега. Он должен содержать до 36 символов, где могут быть только буквы, цифры, дефисы (-) и подчеркивания (_).

    • value — обязательный string параметр, задающий значение тега. Оно должно содержать до 43 символов, где могут быть только буквы, цифры, точки (.), дефисы (-) и подчеркивания (_).

Ниже приведен один из примеров реализации кода на Python.

  • Запрос токена:

    def getToken(
    username,
    password,
    domain,
    project
    ):
    url = iam + "/v3/auth/tokens"
    headers = {
    "Content-Type": "application/json;charset=utf8"
    }
    data = {
    "auth": {
    "identity": {
    "methods": ["password"],
    "password": {
    "user": {
    "name": username,
    "password": password,
    "domain": {
    "name": domain
    }
    }
    }
    },
    "scope": {
    "project": {
    "id": project
    }
    }
    }
    }
    request = requests.post(
    url,
    headers = headers,
    json = data,
    verify = False
    ).headers['X-Subject-Token']
    return request
  • Назначение тега с ключом и значением:

    def tagEcs(
    token,
    projectId,
    ecsId
    ):
    url = ecs + "/v1/" + projectId + "/cloudservers/" + ecsId + "/tags/action"
    headers = {
    "Content-Type": "application/json;charset=utf8",
    "X-Auth-Token": token
    }
    data = {
    "action": "create",
    "tags": [
    {
    "key": "test",
    "value": "test"
    },
    {
    "key": "test2",
    "value": "test2"
    }
    ]
    }
    request = requests.post(
    url,
    headers = headers,
    json = data,
    verify = False
    )
    return request