×

POST /v1/computeeffectiveaccessscope

ComputeEffectiveAccessScope

描述

根据请求中的规则返回有效的访问范围。不持久化任何内容;由于集群和命名空间可能发生变化,因此不是幂等的。由于潜在的大负载,选择 POST 方法。在保持响应精简和详细之间存在优势。如果只包含选定集群和命名空间的 ID,则响应延迟和处理时间较低,但调用方应将其响应与自身的世界观叠加,这容易出现一致性问题。列出所有集群和命名空间及其相关元数据对调用方来说很方便,但会使用次要数据膨胀消息。我们让调用方决定他们想要获得的详细程度:- 最小值,仅列出包含子树的根及其 ID。集群可以是 INCLUDED(其命名空间包含在内但不列出)或 PARTIAL(至少一个命名空间被明确包含)。命名空间只能是 INCLUDED。- 标准 [默认值],列出所有已知集群和命名空间及其 ID 和名称。集群可以是 INCLUDED(所有命名空间都明确列为 INCLUDED),PARTIAL(所有命名空间都明确列出,有些为 INCLUDED,有些为 EXCLUDED)和 EXCLUDED(所有命名空间都明确列为 EXCLUDED)。命名空间可以是 INCLUDED 或 EXCLUDED。- 高,每个集群和命名空间都带有元数据。

参数

主体参数

名称 描述 必需 默认值 模式

accessScope

ComputeEffectiveAccessScopeRequestPayload

X

查询参数

名称 描述 必需 默认值 模式

detail

-

STANDARD

内容类型

  • application/json

响应

表 1. HTTP 响应代码
代码 消息 数据类型

200

成功的响应。

StorageEffectiveAccessScope

0

意外的错误响应。

GooglerpcStatus

示例

通用对象引用

ComputeEffectiveAccessScopeRequestPayload

字段名称 必需 可为空 类型 描述 格式

simpleRules

SimpleAccessScopeRules

GooglerpcStatus

字段名称 必需 可为空 类型 描述 格式

code

整数

int32

message

字符串

details

ProtobufAny 列表

ProtobufAny

Any包含任意序列化的协议缓冲区消息以及描述序列化消息类型的URL。

Protobuf库提供支持,以实用函数或Any类型的附加生成方法的形式打包/解包Any值。

示例1:在C++中打包和解包消息。

Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
  ...
}

示例2:在Java中打包和解包消息。

Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
  foo = any.unpack(Foo.class);
}
// or ...
if (any.isSameTypeAs(Foo.getDefaultInstance())) {
  foo = any.unpack(Foo.getDefaultInstance());
}
Example 3: Pack and unpack a message in Python.
foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
  any.Unpack(foo)
  ...
Example 4: Pack and unpack a message in Go
foo := &pb.Foo{...}
any, err := anypb.New(foo)
if err != nil {
  ...
}
...
foo := &pb.Foo{}
if err := any.UnmarshalTo(foo); err != nil {
  ...
}

Protobuf库提供的打包方法默认使用'type.googleapis.com/full.type.name'作为类型URL,解包方法仅使用类型URL中最后一个'/'后的完全限定类型名称,例如"foo.bar.com/x/y.z"将产生类型名称"y.z"。

JSON表示

Any值的JSON表示使用反序列化的嵌入式消息的常规表示,并添加一个包含类型URL的附加字段@type。示例

package google.profile;
message Person {
  string first_name = 1;
  string last_name = 2;
}
{
  "@type": "type.googleapis.com/google.profile.Person",
  "firstName": <string>,
  "lastName": <string>
}

如果嵌入式消息类型是众所周知的并且具有自定义JSON表示,则该表示将被嵌入,并添加一个value字段,该字段除了@type字段外还包含自定义JSON。示例(对于消息[google.protobuf.Duration][])

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
字段名称 必需 可为空 类型 描述 格式

@type

字符串

唯一标识序列化协议缓冲区消息类型的URL/资源名称。此字符串必须包含至少一个“/”字符。URL路径的最后一个段必须表示类型的完全限定名称(如path/google.protobuf.Duration)。名称应采用规范形式(例如,不接受前导“.”)。实际上,团队通常将其预期在Any上下文中使用的所有类型预编译到二进制文件中。但是,对于使用方案httphttps或无方案的URL,可以选择设置一个类型服务器,将类型URL映射到消息定义,如下所示:* 如果未提供方案,则假定为https。* 对URL的HTTP GET请求必须产生二进制格式的[google.protobuf.Type][]值,或者产生错误。* 应用程序允许根据URL缓存查找结果,或将其预编译到二进制文件中以避免任何查找。因此,需要在类型更改时保留二进制兼容性。(使用版本化的类型名称来管理重大更改。)注意:此功能当前在官方protobuf版本中不可用,并且不用于以type.googleapis.com开头的类型URL。截至2023年5月,没有广泛使用的类型服务器实现,也没有计划实现一个。除了httphttps(或空方案)之外的其他方案可能与特定于实现的语义一起使用。

SimpleAccessScopeRules

任何重复字段的每个元素都是一个单独的规则。规则通过逻辑OR连接:如果存在允许资源x的规则,则x在访问范围内。

字段名称 必需 可为空 类型 描述 格式

includedClusters

string列表

includedNamespaces

SimpleAccessScopeRulesNamespace列表

clusterLabelSelectors

StorageSetBasedLabelSelector列表

namespaceLabelSelectors

StorageSetBasedLabelSelector列表

SimpleAccessScopeRulesNamespace

字段名称 必需 可为空 类型 描述 格式

clusterName

字符串

必须设置这两个字段。

namespaceName

字符串

StorageEffectiveAccessScope

EffectiveAccessScope描述了给定当前状态哪些集群和命名空间“在范围内”。基本上,如果AccessScope应用于当前已知的集群和命名空间,则结果是EffectiveAccessScope。

EffectiveAccessScope表示一个树,其节点标记为包含和排除。如果包含一个节点,则其所有子节点都包含。

字段名称 必需 可为空 类型 描述 格式

clusters

StorageEffectiveAccessScopeCluster列表

StorageEffectiveAccessScopeCluster

字段名称 必需 可为空 类型 描述 格式

id

字符串

name

字符串

state

StorageEffectiveAccessScopeState

UNKNOWN,INCLUDED,EXCLUDED,PARTIAL,

labels

string映射

namespaces

StorageEffectiveAccessScopeNamespace列表

StorageEffectiveAccessScopeNamespace

字段名称 必需 可为空 类型 描述 格式

id

字符串

name

字符串

state

StorageEffectiveAccessScopeState

UNKNOWN,INCLUDED,EXCLUDED,PARTIAL,

labels

string映射

StorageEffectiveAccessScopeState

枚举值

UNKNOWN

INCLUDED

EXCLUDED

PARTIAL

StorageSetBasedLabelSelector

SetBasedLabelSelector只允许基于集合的标签要求。

下一个可用标签:3

字段名称 必需 可为空 类型 描述 格式

requirements

StorageSetBasedLabelSelectorRequirement列表

StorageSetBasedLabelSelectorOperator

枚举值

UNKNOWN

IN

NOT_IN

EXISTS

NOT_EXISTS

StorageSetBasedLabelSelectorRequirement

Next available tag: 4
字段名称 必需 可为空 类型 描述 格式

key

字符串

op

StorageSetBasedLabelSelectorOperator

UNKNOWN,IN,NOT_IN,EXISTS,NOT_EXISTS,

values

string列表