更新时间:2025-01-07 GMT+08:00

更新主题策略

功能介绍

  • 接口名称

    UpdateTopicAttribute

  • 功能描述

    更新主题的策略信息。

URI

  • URI格式

    PUT /v2/{project_id}/notifications/topics/{topic_urn}/attributes/{name}

  • 参数说明

    名称

    是否必选

    参数类型

    说明

    project_id

    String

    项目ID。

    获取项目ID请参考获取项目ID

    topic_urn

    String

    Topic的唯一的资源标识,可通过查询主题列表获取该标识。

    name

    String

    主题策略名称。

    只支持特定的策略名称,请参见Topic属性表

请求消息

  • 参数说明

    名称

    是否必选

    参数类型

    说明

    value

    String

    Topic的属性值。

    • 当请求参数name为access_policy时,value为Topic属性值,最大支持30KB。
    • 当请求参数name为introduction时,value为Topic简介,最大长度120B。

    详情请参考表1

    表1 Topic的属性值

    名称

    说明

    约束

    Version

    访问策略规范版本。

    目前只支持“2016-09-07”。

    Id

    策略的唯一标识。

    不能为空。

    Statement

    访问策略是通过Statement语句来定义的。一个访问策略可包含一条或多条Statement语句。通过Statement语句向其他用户或云服务授权对主题的操作。

    一个策略至少一条Statement语句。Statement语句的包含的元素,请参见表2

    表2 Statement语句元素说明

    元素名称

    说明

    约束

    Sid

    Statement语句的ID。

    Statement语句ID必须是唯一的,例如statement01、statement02。

    Effect

    Statement语句的效果。

    “Allow”或者“Deny”。

    Principal

    NotPrincipal

    • Principal:Statement语句作用的对象。
    • NotPrincipal:Statement语句排除作用的对象。

      目前支持“CSP”和“Service”两类对象

      • “CSP”对象指的是其他用户,可以作用于多个用户。
      • “Service”对象指的是云服务,可以作用于多个云服务。

    Principal元素和NotPrincipal元素两者任选其一。

    选定后,

    • “CSP”对象填写内容的格式为格式为urn:csp:iam::domainId:root,其中domainId为其他用户的“账号ID”。
    • “Service”对象填写内容的格式为小写的云服务名称缩写。

    Action

    NotAction

    • Action:Statement语句作用的操作。
    • NotAction:Statement语句排除作用的操作。

      允许使用通配符来表示一类操作,例如:SMN:Update*、SMN:Delete*。如果只填写“*”,表示Statement语句作用的操作为该资源支持的所有操作。

    Action元素和NotAction元素两者任选其一。

    目前支持的操作有:

    • SMN:UpdateTopic
    • SMN:DeleteTopic
    • SMN:QueryTopicDetail
    • SMN:ListTopicAttributes
    • SMN:UpdateTopicAttribute
    • SMN:DeleteTopicAttributes
    • SMN:DeleteTopicAttributeByName
    • SMN:ListSubscriptionsByTopic
    • SMN:Subscribe
    • SMN:Unsubscribe
    • SMN:Publish

    Resource

    Statement语句作用的主题。

    Resource和NotResource两者任选其一。

    选定后,填写内容为主题URN。

    NotResource

    Statement语句排除作用的主题。

    Resource和NotResource两者任选其一。

    选定后,填写内容为主题URN。

  • 请求样例
    PUT https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/{topic_urn}/attributes/access_policy
    {
       "value": "{
             \"Version\": \"2016-09-07\", 
             \"Id\": \"__default_policy_ID\", 
             \"Statement\": [
                {
                  \"Sid\": \"__user_pub_0\",
                  \"Effect\": \"Allow\",
                  \"Principal\": {
                    \"CSP\": [
                            \"urn:csp:iam::{domainID}:root\"
                           ]
                     },
                  \"Action\": [\"SMN:Publish\",\"SMN:QueryTopicDetail\"],
                  \"Resource\": \"{topic_urn}\"
                  },
                  {
                  \"Sid\": \"__service_pub_0\", 
                  \"Effect\": \"Allow\",
                  \"Principal\": {
                     \"Service\": [\"obs\"]
                     },
                  \"Action\": [\"SMN:Publish\",\"SMN:QueryTopicDetail\"],
                  \"Resource\": \"{topic_urn}\"
                  }
                 ]
              }"
      }

    在使用以上样例时,斜体的{project_id}、{domainID}{topic_urn}需替换为实际值。

    其中,domainID是用户的账号ID,获取方法为:登录消息通知服务控制台,单击右上角用户名下的“我的凭证”,查看“账号ID”。

响应消息

  • 要素说明

    名称

    参数类型

    说明

    request_id

    String

    请求的唯一标识ID。

  • 响应样例
    {
        "request_id":"6837531fd3f54550927b930180a706bf"
    }

返回值

请参考返回值

错误码

请参考错误码