Chapter 14. ComplianceService


14.1. GetAggregatedResults

GET /v1/compliance/aggregatedresults

14.1.1. Description

14.1.2. Parameters

14.1.2.1. Query Parameters

Expand
NameDescriptionRequiredDefaultPattern

groupBy

String

-

null

 

unit

 

-

UNKNOWN

 

where.query

 

-

null

 

where.pagination.limit

 

-

null

 

where.pagination.offset

 

-

null

 

where.pagination.sortOption.field

 

-

null

 

where.pagination.sortOption.reversed

 

-

null

 

where.pagination.sortOption.aggregateBy.aggrFunc

 

-

UNSET

 

where.pagination.sortOption.aggregateBy.distinct

 

-

null

 

14.1.3. Return Type

StorageComplianceAggregationResponse

14.1.4. Content Type

  • application/json

14.1.5. Responses

Expand
Table 14.1. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

StorageComplianceAggregationResponse

0

An unexpected error response.

RuntimeError

14.1.6. Samples

14.1.7. Common object reference

14.1.7.1. ComplianceAggregationAggregationKey

Next available tag: 3
Expand
Field NameRequiredNullableTypeDescriptionFormat

scope

  

StorageComplianceAggregationScope

 

UNKNOWN, STANDARD, CLUSTER, CATEGORY, CONTROL, NAMESPACE, NODE, DEPLOYMENT, CHECK,

id

  

String

  

14.1.7.2. ProtobufAny

Any contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.

Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.

Example 1: Pack and unpack a message in C++.

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

Example 2: Pack and unpack a message in 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 {
  ...
}

The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".

14.1.7.2.1. JSON representation

The JSON representation of an Any value uses the regular representation of the deserialized, embedded message, with an additional field @type which contains the type URL. Example:

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

If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field value which holds the custom JSON in addition to the @type field. Example (for message [google.protobuf.Duration][]):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
Expand
Field NameRequiredNullableTypeDescriptionFormat

typeUrl

  

String

A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL’s path must represent the fully qualified name of the type (as in path/google.protobuf.Duration). The name should be in a canonical form (e.g., leading \".\" is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme http, https, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, https is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than http, https (or the empty scheme) might be used with implementation specific semantics.

 

value

  

byte[]

Must be a valid serialized protocol buffer of the above specified type.

byte

14.1.7.3. RuntimeError

Expand
Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

14.1.7.4. StorageComplianceAggregationResponse

Next available tag: 3
Expand
Field NameRequiredNullableTypeDescriptionFormat

results

  

List of StorageComplianceAggregationResult

  

sources

  

List of StorageComplianceAggregationSource

  

errorMessage

  

String

  

14.1.7.5. StorageComplianceAggregationResult

Next available tag: 5
Expand
Field NameRequiredNullableTypeDescriptionFormat

aggregationKeys

  

List of ComplianceAggregationAggregationKey

  

unit

  

StorageComplianceAggregationScope

 

UNKNOWN, STANDARD, CLUSTER, CATEGORY, CONTROL, NAMESPACE, NODE, DEPLOYMENT, CHECK,

numPassing

  

Integer

 

int32

numFailing

  

Integer

 

int32

numSkipped

  

Integer

 

int32

14.1.7.6. StorageComplianceAggregationScope

Expand
Enum Values

UNKNOWN

STANDARD

CLUSTER

CATEGORY

CONTROL

NAMESPACE

NODE

DEPLOYMENT

CHECK

14.1.7.7. StorageComplianceAggregationSource

Next available tag: 5
Expand
Field NameRequiredNullableTypeDescriptionFormat

clusterId

  

String

  

standardId

  

String

  

successfulRun

  

StorageComplianceRunMetadata

  

failedRuns

  

List of StorageComplianceRunMetadata

  

14.1.7.8. StorageComplianceRunMetadata

Next available tag: 5
Expand

14.2. GetRunResults

GET /v1/compliance/runresults

14.2.1. Description

14.2.2. Parameters

14.2.2.1. Query Parameters

Expand
NameDescriptionRequiredDefaultPattern

clusterId

 

-

null

 

standardId

 

-

null

 

runId

Specifies the run ID for which to return results. If empty, the most recent run is returned. CAVEAT: Setting this field circumvents the results cache on the server-side, which may lead to significantly increased memory pressure and decreased performance.

-

null

 

14.2.3. Return Type

V1GetComplianceRunResultsResponse

14.2.4. Content Type

  • application/json

14.2.5. Responses

Expand
Table 14.2. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

V1GetComplianceRunResultsResponse

0

An unexpected error response.

RuntimeError

14.2.6. Samples

14.2.7. Common object reference

14.2.7.1. ComplianceResultValueEvidence

Expand
Field NameRequiredNullableTypeDescriptionFormat

state

  

StorageComplianceState

 

COMPLIANCE_STATE_UNKNOWN, COMPLIANCE_STATE_SKIP, COMPLIANCE_STATE_NOTE, COMPLIANCE_STATE_SUCCESS, COMPLIANCE_STATE_FAILURE, COMPLIANCE_STATE_ERROR,

message

  

String

  

messageId

  

Integer

 

int32

14.2.7.2. ComplianceRunResultsEntityResults

Expand
Field NameRequiredNullableTypeDescriptionFormat

controlResults

  

Map of StorageComplianceResultValue

  

14.2.7.3. ProtobufAny

Any contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.

Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.

Example 1: Pack and unpack a message in C++.

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

Example 2: Pack and unpack a message in 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 {
  ...
}

The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".

14.2.7.3.1. JSON representation

The JSON representation of an Any value uses the regular representation of the deserialized, embedded message, with an additional field @type which contains the type URL. Example:

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

If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field value which holds the custom JSON in addition to the @type field. Example (for message [google.protobuf.Duration][]):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
Expand
Field NameRequiredNullableTypeDescriptionFormat

typeUrl

  

String

A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL’s path must represent the fully qualified name of the type (as in path/google.protobuf.Duration). The name should be in a canonical form (e.g., leading \".\" is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme http, https, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, https is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than http, https (or the empty scheme) might be used with implementation specific semantics.

 

value

  

byte[]

Must be a valid serialized protocol buffer of the above specified type.

byte

14.2.7.4. RuntimeError

Expand
Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

14.2.7.5. StorageComplianceDomain

Next available tag: 5
Expand
Field NameRequiredNullableTypeDescriptionFormat

id

  

String

  

cluster

  

StorageComplianceDomainCluster

  

nodes

  

Map of StorageComplianceDomainNode

  

deployments

  

Map of StorageComplianceDomainDeployment

  

14.2.7.6. StorageComplianceDomainCluster

These must mirror the tags _exactly_ in cluster.proto for backwards compatibility
Expand
Field NameRequiredNullableTypeDescriptionFormat

id

  

String

  

name

  

String

  

14.2.7.7. StorageComplianceDomainDeployment

This must mirror the tags _exactly_ in deployment.proto for backwards compatibility
Expand
Field NameRequiredNullableTypeDescriptionFormat

id

  

String

  

name

  

String

  

type

  

String

  

namespace

  

String

  

namespaceId

  

String

  

clusterId

  

String

  

clusterName

  

String

  

14.2.7.8. StorageComplianceDomainNode

These must mirror the tags _exactly_ in node.proto for backwards compatibility
Expand
Field NameRequiredNullableTypeDescriptionFormat

id

  

String

  

name

  

String

  

clusterId

  

String

  

clusterName

  

String

  

14.2.7.9. StorageComplianceResultValue

Expand
Field NameRequiredNullableTypeDescriptionFormat

evidence

  

List of ComplianceResultValueEvidence

  

overallState

  

StorageComplianceState

 

COMPLIANCE_STATE_UNKNOWN, COMPLIANCE_STATE_SKIP, COMPLIANCE_STATE_NOTE, COMPLIANCE_STATE_SUCCESS, COMPLIANCE_STATE_FAILURE, COMPLIANCE_STATE_ERROR,

14.2.7.10. StorageComplianceRunMetadata

Next available tag: 5
Expand

14.2.7.11. StorageComplianceRunResults

Next available tag: 6
Expand
Field NameRequiredNullableTypeDescriptionFormat

domain

  

StorageComplianceDomain

  

runMetadata

  

StorageComplianceRunMetadata

  

clusterResults

  

ComplianceRunResultsEntityResults

  

nodeResults

  

Map of ComplianceRunResultsEntityResults

  

deploymentResults

  

Map of ComplianceRunResultsEntityResults

  

machineConfigResults

  

Map of ComplianceRunResultsEntityResults

  

14.2.7.12. StorageComplianceState

Expand
Enum Values

COMPLIANCE_STATE_UNKNOWN

COMPLIANCE_STATE_SKIP

COMPLIANCE_STATE_NOTE

COMPLIANCE_STATE_SUCCESS

COMPLIANCE_STATE_FAILURE

COMPLIANCE_STATE_ERROR

14.2.7.13. V1GetComplianceRunResultsResponse

Expand
Field NameRequiredNullableTypeDescriptionFormat

results

  

StorageComplianceRunResults

  

failedRuns

  

List of StorageComplianceRunMetadata

  

14.3. GetStandards

GET /v1/compliance/standards

14.3.1. Description

14.3.2. Parameters

14.3.3. Return Type

V1GetComplianceStandardsResponse

14.3.4. Content Type

  • application/json

14.3.5. Responses

Expand
Table 14.3. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

V1GetComplianceStandardsResponse

0

An unexpected error response.

RuntimeError

14.3.6. Samples

14.3.7. Common object reference

14.3.7.1. ProtobufAny

Any contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.

Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.

Example 1: Pack and unpack a message in C++.

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

Example 2: Pack and unpack a message in 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 {
  ...
}

The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".

14.3.7.1.1. JSON representation

The JSON representation of an Any value uses the regular representation of the deserialized, embedded message, with an additional field @type which contains the type URL. Example:

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

If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field value which holds the custom JSON in addition to the @type field. Example (for message [google.protobuf.Duration][]):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
Expand
Field NameRequiredNullableTypeDescriptionFormat

typeUrl

  

String

A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL’s path must represent the fully qualified name of the type (as in path/google.protobuf.Duration). The name should be in a canonical form (e.g., leading \".\" is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme http, https, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, https is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than http, https (or the empty scheme) might be used with implementation specific semantics.

 

value

  

byte[]

Must be a valid serialized protocol buffer of the above specified type.

byte

14.3.7.2. RuntimeError

Expand
Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

14.3.7.3. V1ComplianceStandardMetadata

Expand

14.3.7.4. V1ComplianceStandardMetadataScope

Expand
Enum Values

UNSET

CLUSTER

NAMESPACE

DEPLOYMENT

NODE

14.3.7.5. V1GetComplianceStandardsResponse

Expand
Field NameRequiredNullableTypeDescriptionFormat

standards

  

List of V1ComplianceStandardMetadata

  

14.4. GetStandard

GET /v1/compliance/standards/{id}

14.4.1. Description

14.4.2. Parameters

14.4.2.1. Path Parameters

Expand
NameDescriptionRequiredDefaultPattern

id

 

X

null

 

14.4.3. Return Type

V1GetComplianceStandardResponse

14.4.4. Content Type

  • application/json

14.4.5. Responses

Expand
Table 14.4. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

V1GetComplianceStandardResponse

0

An unexpected error response.

RuntimeError

14.4.6. Samples

14.4.7. Common object reference

14.4.7.1. ProtobufAny

Any contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.

Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.

Example 1: Pack and unpack a message in C++.

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

Example 2: Pack and unpack a message in 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 {
  ...
}

The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".

14.4.7.1.1. JSON representation

The JSON representation of an Any value uses the regular representation of the deserialized, embedded message, with an additional field @type which contains the type URL. Example:

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

If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field value which holds the custom JSON in addition to the @type field. Example (for message [google.protobuf.Duration][]):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
Expand
Field NameRequiredNullableTypeDescriptionFormat

typeUrl

  

String

A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL’s path must represent the fully qualified name of the type (as in path/google.protobuf.Duration). The name should be in a canonical form (e.g., leading \".\" is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme http, https, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, https is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than http, https (or the empty scheme) might be used with implementation specific semantics.

 

value

  

byte[]

Must be a valid serialized protocol buffer of the above specified type.

byte

14.4.7.2. RuntimeError

Expand
Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

14.4.7.3. V1ComplianceControl

Expand
Field NameRequiredNullableTypeDescriptionFormat

id

  

String

  

standardId

  

String

  

groupId

  

String

  

name

  

String

  

description

  

String

  

implemented

  

Boolean

  

interpretationText

  

String

  

14.4.7.4. V1ComplianceControlGroup

Expand
Field NameRequiredNullableTypeDescriptionFormat

id

  

String

  

standardId

  

String

  

name

  

String

  

description

  

String

  

numImplementedChecks

  

Integer

 

int32

14.4.7.5. V1ComplianceStandard

Expand
Field NameRequiredNullableTypeDescriptionFormat

metadata

  

V1ComplianceStandardMetadata

  

groups

  

List of V1ComplianceControlGroup

  

controls

  

List of V1ComplianceControl

  

14.4.7.6. V1ComplianceStandardMetadata

Expand

14.4.7.7. V1ComplianceStandardMetadataScope

Expand
Enum Values

UNSET

CLUSTER

NAMESPACE

DEPLOYMENT

NODE

14.4.7.8. V1GetComplianceStandardResponse

Expand
Field NameRequiredNullableTypeDescriptionFormat

standard

  

V1ComplianceStandard

  

14.5. UpdateComplianceStandardConfig

PATCH /v1/compliance/standards/{id}

14.5.1. Description

14.5.2. Parameters

14.5.2.1. Path Parameters

Expand
NameDescriptionRequiredDefaultPattern

id

 

X

null

 

14.5.2.2. Body Parameter

Expand
NameDescriptionRequiredDefaultPattern

body

V1UpdateComplianceRequest

X

  

14.5.3. Return Type

Object

14.5.4. Content Type

  • application/json

14.5.5. Responses

Expand
Table 14.5. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

Object

0

An unexpected error response.

RuntimeError

14.5.6. Samples

14.5.7. Common object reference

14.5.7.1. ProtobufAny

Any contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.

Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.

Example 1: Pack and unpack a message in C++.

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

Example 2: Pack and unpack a message in 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 {
  ...
}

The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".

14.5.7.1.1. JSON representation

The JSON representation of an Any value uses the regular representation of the deserialized, embedded message, with an additional field @type which contains the type URL. Example:

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

If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field value which holds the custom JSON in addition to the @type field. Example (for message [google.protobuf.Duration][]):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
Expand
Field NameRequiredNullableTypeDescriptionFormat

typeUrl

  

String

A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL’s path must represent the fully qualified name of the type (as in path/google.protobuf.Duration). The name should be in a canonical form (e.g., leading \".\" is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme http, https, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, https is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than http, https (or the empty scheme) might be used with implementation specific semantics.

 

value

  

byte[]

Must be a valid serialized protocol buffer of the above specified type.

byte

14.5.7.2. RuntimeError

Expand
Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

14.5.7.3. V1UpdateComplianceRequest

Expand
Field NameRequiredNullableTypeDescriptionFormat

id

  

String

  

hideScanResults

  

Boolean

  
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2026 Red Hat
Back to top