Chapter 37. NetworkGraphService


37.1. GetExternalNetworkEntities

GET /v1/networkgraph/cluster/{clusterId}/externalentities

37.1.1. Description

37.1.2. Parameters

37.1.2.1. Path Parameters

NameDescriptionRequiredDefaultPattern

clusterId

 

X

null

 

37.1.2.2. Query Parameters

NameDescriptionRequiredDefaultPattern

query

 

-

null

 

37.1.3. Return Type

V1GetExternalNetworkEntitiesResponse

37.1.4. Content Type

  • application/json

37.1.5. Responses

Table 37.1. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

V1GetExternalNetworkEntitiesResponse

0

An unexpected error response.

RuntimeError

37.1.6. Samples

37.1.7. Common object reference

37.1.7.1. DeploymentListenPort

Field NameRequiredNullableTypeDescriptionFormat

port

  

Long

 

int64

l4protocol

  

StorageL4Protocol

 

L4_PROTOCOL_UNKNOWN, L4_PROTOCOL_TCP, L4_PROTOCOL_UDP, L4_PROTOCOL_ICMP, L4_PROTOCOL_RAW, L4_PROTOCOL_SCTP, L4_PROTOCOL_ANY,

37.1.7.2. NetworkEntityInfoExternalSource

Update normalizeDupNameExtSrcs(…​) in central/networkgraph/aggregator/aggregator.go whenever this message is updated.

Field NameRequiredNullableTypeDescriptionFormat

name

  

String

  

cidr

  

String

  

default

  

Boolean

default indicates whether the external source is user-generated or system-generated.

 

37.1.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".

37.1.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"
}
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

37.1.7.4. RuntimeError

Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

37.1.7.5. StorageL4Protocol

Enum Values

L4_PROTOCOL_UNKNOWN

L4_PROTOCOL_TCP

L4_PROTOCOL_UDP

L4_PROTOCOL_ICMP

L4_PROTOCOL_RAW

L4_PROTOCOL_SCTP

L4_PROTOCOL_ANY

37.1.7.6. StorageNetworkEntity

Field NameRequiredNullableTypeDescriptionFormat

info

  

StorageNetworkEntityInfo

  

scope

  

StorageNetworkEntityScope

  

37.1.7.7. StorageNetworkEntityInfo

Field NameRequiredNullableTypeDescriptionFormat

type

  

StorageNetworkEntityInfoType

 

UNKNOWN_TYPE, DEPLOYMENT, INTERNET, LISTEN_ENDPOINT, EXTERNAL_SOURCE, INTERNAL_ENTITIES,

id

  

String

  

deployment

  

StorageNetworkEntityInfoDeployment

  

externalSource

  

NetworkEntityInfoExternalSource

  

37.1.7.8. StorageNetworkEntityInfoDeployment

Field NameRequiredNullableTypeDescriptionFormat

name

  

String

  

namespace

  

String

  

cluster

  

String

  

listenPorts

  

List of DeploymentListenPort

  

37.1.7.9. StorageNetworkEntityInfoType

  • INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node
Enum Values

UNKNOWN_TYPE

DEPLOYMENT

INTERNET

LISTEN_ENDPOINT

EXTERNAL_SOURCE

INTERNAL_ENTITIES

37.1.7.10. StorageNetworkEntityScope

Field NameRequiredNullableTypeDescriptionFormat

clusterId

  

String

  

37.1.7.11. V1GetExternalNetworkEntitiesResponse

Field NameRequiredNullableTypeDescriptionFormat

entities

  

List of StorageNetworkEntity

  

37.2. CreateExternalNetworkEntity

POST /v1/networkgraph/cluster/{clusterId}/externalentities

37.2.1. Description

37.2.2. Parameters

37.2.2.1. Path Parameters

NameDescriptionRequiredDefaultPattern

clusterId

 

X

null

 

37.2.2.2. Body Parameter

NameDescriptionRequiredDefaultPattern

body

V1CreateNetworkEntityRequest

X

  

37.2.3. Return Type

StorageNetworkEntity

37.2.4. Content Type

  • application/json

37.2.5. Responses

Table 37.2. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

StorageNetworkEntity

0

An unexpected error response.

RuntimeError

37.2.6. Samples

37.2.7. Common object reference

37.2.7.1. DeploymentListenPort

Field NameRequiredNullableTypeDescriptionFormat

port

  

Long

 

int64

l4protocol

  

StorageL4Protocol

 

L4_PROTOCOL_UNKNOWN, L4_PROTOCOL_TCP, L4_PROTOCOL_UDP, L4_PROTOCOL_ICMP, L4_PROTOCOL_RAW, L4_PROTOCOL_SCTP, L4_PROTOCOL_ANY,

37.2.7.2. NetworkEntityInfoExternalSource

Update normalizeDupNameExtSrcs(…​) in central/networkgraph/aggregator/aggregator.go whenever this message is updated.

Field NameRequiredNullableTypeDescriptionFormat

name

  

String

  

cidr

  

String

  

default

  

Boolean

default indicates whether the external source is user-generated or system-generated.

 

37.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".

37.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"
}
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

37.2.7.4. RuntimeError

Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

37.2.7.5. StorageL4Protocol

Enum Values

L4_PROTOCOL_UNKNOWN

L4_PROTOCOL_TCP

L4_PROTOCOL_UDP

L4_PROTOCOL_ICMP

L4_PROTOCOL_RAW

L4_PROTOCOL_SCTP

L4_PROTOCOL_ANY

37.2.7.6. StorageNetworkEntity

Field NameRequiredNullableTypeDescriptionFormat

info

  

StorageNetworkEntityInfo

  

scope

  

StorageNetworkEntityScope

  

37.2.7.7. StorageNetworkEntityInfo

Field NameRequiredNullableTypeDescriptionFormat

type

  

StorageNetworkEntityInfoType

 

UNKNOWN_TYPE, DEPLOYMENT, INTERNET, LISTEN_ENDPOINT, EXTERNAL_SOURCE, INTERNAL_ENTITIES,

id

  

String

  

deployment

  

StorageNetworkEntityInfoDeployment

  

externalSource

  

NetworkEntityInfoExternalSource

  

37.2.7.8. StorageNetworkEntityInfoDeployment

Field NameRequiredNullableTypeDescriptionFormat

name

  

String

  

namespace

  

String

  

cluster

  

String

  

listenPorts

  

List of DeploymentListenPort

  

37.2.7.9. StorageNetworkEntityInfoType

  • INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node
Enum Values

UNKNOWN_TYPE

DEPLOYMENT

INTERNET

LISTEN_ENDPOINT

EXTERNAL_SOURCE

INTERNAL_ENTITIES

37.2.7.10. StorageNetworkEntityScope

Field NameRequiredNullableTypeDescriptionFormat

clusterId

  

String

  

37.2.7.11. V1CreateNetworkEntityRequest

Field NameRequiredNullableTypeDescriptionFormat

clusterId

  

String

  

entity

  

NetworkEntityInfoExternalSource

  

37.3. GetNetworkGraph

GET /v1/networkgraph/cluster/{clusterId}

37.3.1. Description

37.3.2. Parameters

37.3.2.1. Path Parameters

NameDescriptionRequiredDefaultPattern

clusterId

 

X

null

 

37.3.2.2. Query Parameters

NameDescriptionRequiredDefaultPattern

query

 

-

null

 

since

 

-

null

 

includePorts

 

-

null

 

scope.query

 

-

null

 

includePolicies

 

-

null

 

37.3.3. Return Type

V1NetworkGraph

37.3.4. Content Type

  • application/json

37.3.5. Responses

Table 37.3. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

V1NetworkGraph

0

An unexpected error response.

RuntimeError

37.3.6. Samples

37.3.7. Common object reference

37.3.7.1. DeploymentListenPort

Field NameRequiredNullableTypeDescriptionFormat

port

  

Long

 

int64

l4protocol

  

StorageL4Protocol

 

L4_PROTOCOL_UNKNOWN, L4_PROTOCOL_TCP, L4_PROTOCOL_UDP, L4_PROTOCOL_ICMP, L4_PROTOCOL_RAW, L4_PROTOCOL_SCTP, L4_PROTOCOL_ANY,

37.3.7.2. NetworkEntityInfoExternalSource

Update normalizeDupNameExtSrcs(…​) in central/networkgraph/aggregator/aggregator.go whenever this message is updated.

Field NameRequiredNullableTypeDescriptionFormat

name

  

String

  

cidr

  

String

  

default

  

Boolean

default indicates whether the external source is user-generated or system-generated.

 

37.3.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".

37.3.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"
}
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

37.3.7.4. RuntimeError

Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

37.3.7.5. StorageL4Protocol

Enum Values

L4_PROTOCOL_UNKNOWN

L4_PROTOCOL_TCP

L4_PROTOCOL_UDP

L4_PROTOCOL_ICMP

L4_PROTOCOL_RAW

L4_PROTOCOL_SCTP

L4_PROTOCOL_ANY

37.3.7.6. StorageNetworkEntityInfo

Field NameRequiredNullableTypeDescriptionFormat

type

  

StorageNetworkEntityInfoType

 

UNKNOWN_TYPE, DEPLOYMENT, INTERNET, LISTEN_ENDPOINT, EXTERNAL_SOURCE, INTERNAL_ENTITIES,

id

  

String

  

deployment

  

StorageNetworkEntityInfoDeployment

  

externalSource

  

NetworkEntityInfoExternalSource

  

37.3.7.7. StorageNetworkEntityInfoDeployment

Field NameRequiredNullableTypeDescriptionFormat

name

  

String

  

namespace

  

String

  

cluster

  

String

  

listenPorts

  

List of DeploymentListenPort

  

37.3.7.8. StorageNetworkEntityInfoType

  • INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node
Enum Values

UNKNOWN_TYPE

DEPLOYMENT

INTERNET

LISTEN_ENDPOINT

EXTERNAL_SOURCE

INTERNAL_ENTITIES

37.3.7.9. V1NetworkEdgeProperties

Field NameRequiredNullableTypeDescriptionFormat

port

  

Long

 

int64

protocol

  

StorageL4Protocol

 

L4_PROTOCOL_UNKNOWN, L4_PROTOCOL_TCP, L4_PROTOCOL_UDP, L4_PROTOCOL_ICMP, L4_PROTOCOL_RAW, L4_PROTOCOL_SCTP, L4_PROTOCOL_ANY,

lastActiveTimestamp

  

Date

 

date-time

37.3.7.10. V1NetworkEdgePropertiesBundle

Field NameRequiredNullableTypeDescriptionFormat

properties

  

List of V1NetworkEdgeProperties

  

37.3.7.11. V1NetworkGraph

Field NameRequiredNullableTypeDescriptionFormat

epoch

  

Long

 

int64

nodes

  

List of V1NetworkNode

  

37.3.7.12. V1NetworkNode

Field NameRequiredNullableTypeDescriptionFormat

entity

  

StorageNetworkEntityInfo

  

internetAccess

  

Boolean

  

policyIds

  

List of string

  

nonIsolatedIngress

  

Boolean

  

nonIsolatedEgress

  

Boolean

  

queryMatch

  

Boolean

  

outEdges

  

Map of V1NetworkEdgePropertiesBundle

  

37.4. GetNetworkGraphConfig

GET /v1/networkgraph/config

37.4.1. Description

37.4.2. Parameters

37.4.3. Return Type

StorageNetworkGraphConfig

37.4.4. Content Type

  • application/json

37.4.5. Responses

Table 37.4. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

StorageNetworkGraphConfig

0

An unexpected error response.

RuntimeError

37.4.6. Samples

37.4.7. Common object reference

37.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".

37.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"
}
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

37.4.7.2. RuntimeError

Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

37.4.7.3. StorageNetworkGraphConfig

Field NameRequiredNullableTypeDescriptionFormat

id

  

String

  

hideDefaultExternalSrcs

  

Boolean

  

37.5. PutNetworkGraphConfig

PUT /v1/networkgraph/config

37.5.1. Description

37.5.2. Parameters

37.5.2.1. Body Parameter

NameDescriptionRequiredDefaultPattern

body

V1PutNetworkGraphConfigRequest

X

  

37.5.3. Return Type

StorageNetworkGraphConfig

37.5.4. Content Type

  • application/json

37.5.5. Responses

Table 37.5. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

StorageNetworkGraphConfig

0

An unexpected error response.

RuntimeError

37.5.6. Samples

37.5.7. Common object reference

37.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".

37.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"
}
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

37.5.7.2. RuntimeError

Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

37.5.7.3. StorageNetworkGraphConfig

Field NameRequiredNullableTypeDescriptionFormat

id

  

String

  

hideDefaultExternalSrcs

  

Boolean

  

37.5.7.4. V1PutNetworkGraphConfigRequest

Field NameRequiredNullableTypeDescriptionFormat

config

  

StorageNetworkGraphConfig

  

37.6. DeleteExternalNetworkEntity

DELETE /v1/networkgraph/externalentities/{id}

37.6.1. Description

37.6.2. Parameters

37.6.2.1. Path Parameters

NameDescriptionRequiredDefaultPattern

id

 

X

null

 

37.6.3. Return Type

Object

37.6.4. Content Type

  • application/json

37.6.5. Responses

Table 37.6. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

Object

0

An unexpected error response.

RuntimeError

37.6.6. Samples

37.6.7. Common object reference

37.6.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".

37.6.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"
}
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

37.6.7.2. RuntimeError

Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

37.7. PatchExternalNetworkEntity

PATCH /v1/networkgraph/externalentities/{id}

37.7.1. Description

37.7.2. Parameters

37.7.2.1. Path Parameters

NameDescriptionRequiredDefaultPattern

id

 

X

null

 

37.7.2.2. Body Parameter

NameDescriptionRequiredDefaultPattern

body

V1PatchNetworkEntityRequest

X

  

37.7.3. Return Type

StorageNetworkEntity

37.7.4. Content Type

  • application/json

37.7.5. Responses

Table 37.7. HTTP Response Codes
CodeMessageDatatype

200

A successful response.

StorageNetworkEntity

0

An unexpected error response.

RuntimeError

37.7.6. Samples

37.7.7. Common object reference

37.7.7.1. DeploymentListenPort

Field NameRequiredNullableTypeDescriptionFormat

port

  

Long

 

int64

l4protocol

  

StorageL4Protocol

 

L4_PROTOCOL_UNKNOWN, L4_PROTOCOL_TCP, L4_PROTOCOL_UDP, L4_PROTOCOL_ICMP, L4_PROTOCOL_RAW, L4_PROTOCOL_SCTP, L4_PROTOCOL_ANY,

37.7.7.2. NetworkEntityInfoExternalSource

Update normalizeDupNameExtSrcs(…​) in central/networkgraph/aggregator/aggregator.go whenever this message is updated.

Field NameRequiredNullableTypeDescriptionFormat

name

  

String

  

cidr

  

String

  

default

  

Boolean

default indicates whether the external source is user-generated or system-generated.

 

37.7.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".

37.7.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"
}
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

37.7.7.4. RuntimeError

Field NameRequiredNullableTypeDescriptionFormat

error

  

String

  

code

  

Integer

 

int32

message

  

String

  

details

  

List of ProtobufAny

  

37.7.7.5. StorageL4Protocol

Enum Values

L4_PROTOCOL_UNKNOWN

L4_PROTOCOL_TCP

L4_PROTOCOL_UDP

L4_PROTOCOL_ICMP

L4_PROTOCOL_RAW

L4_PROTOCOL_SCTP

L4_PROTOCOL_ANY

37.7.7.6. StorageNetworkEntity

Field NameRequiredNullableTypeDescriptionFormat

info

  

StorageNetworkEntityInfo

  

scope

  

StorageNetworkEntityScope

  

37.7.7.7. StorageNetworkEntityInfo

Field NameRequiredNullableTypeDescriptionFormat

type

  

StorageNetworkEntityInfoType

 

UNKNOWN_TYPE, DEPLOYMENT, INTERNET, LISTEN_ENDPOINT, EXTERNAL_SOURCE, INTERNAL_ENTITIES,

id

  

String

  

deployment

  

StorageNetworkEntityInfoDeployment

  

externalSource

  

NetworkEntityInfoExternalSource

  

37.7.7.8. StorageNetworkEntityInfoDeployment

Field NameRequiredNullableTypeDescriptionFormat

name

  

String

  

namespace

  

String

  

cluster

  

String

  

listenPorts

  

List of DeploymentListenPort

  

37.7.7.9. StorageNetworkEntityInfoType

  • INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node
Enum Values

UNKNOWN_TYPE

DEPLOYMENT

INTERNET

LISTEN_ENDPOINT

EXTERNAL_SOURCE

INTERNAL_ENTITIES

37.7.7.10. StorageNetworkEntityScope

Field NameRequiredNullableTypeDescriptionFormat

clusterId

  

String

  

37.7.7.11. V1PatchNetworkEntityRequest

Field NameRequiredNullableTypeDescriptionFormat

id

  

String

  

name

  

String

  
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.

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.

© 2024 Red Hat, Inc.