Class ResourceDescriptor (2.44.0)

public final class ResourceDescriptor extends GeneratedMessageV3 implements ResourceDescriptorOrBuilder

A simple descriptor of a resource type.

ResourceDescriptor annotates a resource message (either by means of a protobuf annotation or use in the service config), and associates the resource's schema, the resource type, and the pattern of the resource name.

Example:

 message Topic {
   // Indicates this message defines a resource schema.
   // Declares the resource type in the format of {service}/{kind}.
   // For Kubernetes resources, the format is {api group}/{kind}.
   option (google.api.resource) = {
     type: "pubsub.googleapis.com/Topic"
     pattern: "projects/{project}/topics/{topic}"
   };
 }

The ResourceDescriptor Yaml config will look like:

 resources:
 - type: "pubsub.googleapis.com/Topic"
   pattern: "projects/{project}/topics/{topic}"

Sometimes, resources have multiple patterns, typically because they can live under multiple parents.

Example:

 message LogEntry {
   option (google.api.resource) = {
     type: "logging.googleapis.com/LogEntry"
     pattern: "projects/{project}/logs/{log}"
     pattern: "folders/{folder}/logs/{log}"
     pattern: "organizations/{organization}/logs/{log}"
     pattern: "billingAccounts/{billing_account}/logs/{log}"
   };
 }

The ResourceDescriptor Yaml config will look like:

 resources:
 - type: 'logging.googleapis.com/LogEntry'
   pattern: "projects/{project}/logs/{log}"
   pattern: "folders/{folder}/logs/{log}"
   pattern: "organizations/{organization}/logs/{log}"
   pattern: "billingAccounts/{billing_account}/logs/{log}"

Protobuf type google.api.ResourceDescriptor

Static Fields

HISTORY_FIELD_NUMBER

public static final int HISTORY_FIELD_NUMBER
Field Value
Type Description
int

NAME_FIELD_FIELD_NUMBER

public static final int NAME_FIELD_FIELD_NUMBER
Field Value
Type Description
int

PATTERN_FIELD_NUMBER

public static final int PATTERN_FIELD_NUMBER
Field Value
Type Description
int

PLURAL_FIELD_NUMBER

public static final int PLURAL_FIELD_NUMBER
Field Value
Type Description
int

SINGULAR_FIELD_NUMBER

public static final int SINGULAR_FIELD_NUMBER
Field Value
Type Description
int

STYLE_FIELD_NUMBER

public static final int STYLE_FIELD_NUMBER
Field Value
Type Description
int

TYPE_FIELD_NUMBER

public static final int TYPE_FIELD_NUMBER
Field Value
Type Description
int

Static Methods

getDefaultInstance()

public static ResourceDescriptor getDefaultInstance()
Returns
Type Description
ResourceDescriptor

getDescriptor()

public static final Descriptors.Descriptor getDescriptor()
Returns
Type Description
Descriptor

newBuilder()

public static ResourceDescriptor.Builder newBuilder()
Returns
Type Description
ResourceDescriptor.Builder

newBuilder(ResourceDescriptor prototype)

public static ResourceDescriptor.Builder newBuilder(ResourceDescriptor prototype)
Parameter
Name Description
prototype ResourceDescriptor
Returns
Type Description
ResourceDescriptor.Builder

parseDelimitedFrom(InputStream input)

public static ResourceDescriptor parseDelimitedFrom(InputStream input)
Parameter
Name Description
input InputStream
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
IOException

parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static ResourceDescriptor parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input InputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
IOException

parseFrom(byte[] data)

public static ResourceDescriptor parseFrom(byte[] data)
Parameter
Name Description
data byte[]
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)

public static ResourceDescriptor parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data byte[]
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteString data)

public static ResourceDescriptor parseFrom(ByteString data)
Parameter
Name Description
data ByteString
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)

public static ResourceDescriptor parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data ByteString
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(CodedInputStream input)

public static ResourceDescriptor parseFrom(CodedInputStream input)
Parameter
Name Description
input CodedInputStream
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
IOException

parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

public static ResourceDescriptor parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input CodedInputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
IOException

parseFrom(InputStream input)

public static ResourceDescriptor parseFrom(InputStream input)
Parameter
Name Description
input InputStream
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
IOException

parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static ResourceDescriptor parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input InputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
IOException

parseFrom(ByteBuffer data)

public static ResourceDescriptor parseFrom(ByteBuffer data)
Parameter
Name Description
data ByteBuffer
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)

public static ResourceDescriptor parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data ByteBuffer
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ResourceDescriptor
Exceptions
Type Description
InvalidProtocolBufferException

parser()

public static Parser<ResourceDescriptor> parser()
Returns
Type Description
Parser<ResourceDescriptor>

Methods

equals(Object obj)

public boolean equals(Object obj)
Parameter
Name Description
obj Object
Returns
Type Description
boolean
Overrides

getDefaultInstanceForType()

public ResourceDescriptor getDefaultInstanceForType()
Returns
Type Description
ResourceDescriptor

getHistory()

public ResourceDescriptor.History getHistory()

Optional. The historical or future-looking state of the resource pattern.

Example:

 // The InspectTemplate message originally only supported resource
 // names with organization, and project was added later.
 message InspectTemplate {
   option (google.api.resource) = {
     type: "dlp.googleapis.com/InspectTemplate"
     pattern:
     "organizations/{organization}/inspectTemplates/{inspect_template}"
     pattern: "projects/{project}/inspectTemplates/{inspect_template}"
     history: ORIGINALLY_SINGLE_PATTERN
   };
 }

.google.api.ResourceDescriptor.History history = 4;

Returns
Type Description
ResourceDescriptor.History

The history.

getHistoryValue()

public int getHistoryValue()

Optional. The historical or future-looking state of the resource pattern.

Example:

 // The InspectTemplate message originally only supported resource
 // names with organization, and project was added later.
 message InspectTemplate {
   option (google.api.resource) = {
     type: "dlp.googleapis.com/InspectTemplate"
     pattern:
     "organizations/{organization}/inspectTemplates/{inspect_template}"
     pattern: "projects/{project}/inspectTemplates/{inspect_template}"
     history: ORIGINALLY_SINGLE_PATTERN
   };
 }

.google.api.ResourceDescriptor.History history = 4;

Returns
Type Description
int

The enum numeric value on the wire for history.

getNameField()

public String getNameField()

Optional. The field on the resource that designates the resource name field. If omitted, this is assumed to be "name".

string name_field = 3;

Returns
Type Description
String

The nameField.

getNameFieldBytes()

public ByteString getNameFieldBytes()

Optional. The field on the resource that designates the resource name field. If omitted, this is assumed to be "name".

string name_field = 3;

Returns
Type Description
ByteString

The bytes for nameField.

getParserForType()

public Parser<ResourceDescriptor> getParserForType()
Returns
Type Description
Parser<ResourceDescriptor>
Overrides

getPattern(int index)

public String getPattern(int index)

Optional. The relative resource name pattern associated with this resource type. The DNS prefix of the full resource name shouldn't be specified here.

The path pattern must follow the syntax, which aligns with HTTP binding syntax:

 Template = Segment { "/" Segment } ;
 Segment = LITERAL | Variable ;
 Variable = "{" LITERAL "}" ;

Examples:

 - "projects/{project}/topics/{topic}"
 - "projects/{project}/knowledgeBases/{knowledge_base}"

The components in braces correspond to the IDs for each resource in the hierarchy. It is expected that, if multiple patterns are provided, the same component name (e.g. "project") refers to IDs of the same type of resource.

repeated string pattern = 2;

Parameter
Name Description
index int

The index of the element to return.

Returns
Type Description
String

The pattern at the given index.

getPatternBytes(int index)

public ByteString getPatternBytes(int index)

Optional. The relative resource name pattern associated with this resource type. The DNS prefix of the full resource name shouldn't be specified here.

The path pattern must follow the syntax, which aligns with HTTP binding syntax:

 Template = Segment { "/" Segment } ;
 Segment = LITERAL | Variable ;
 Variable = "{" LITERAL "}" ;

Examples:

 - "projects/{project}/topics/{topic}"
 - "projects/{project}/knowledgeBases/{knowledge_base}"

The components in braces correspond to the IDs for each resource in the hierarchy. It is expected that, if multiple patterns are provided, the same component name (e.g. "project") refers to IDs of the same type of resource.

repeated string pattern = 2;

Parameter
Name Description
index int

The index of the value to return.

Returns
Type Description
ByteString

The bytes of the pattern at the given index.

getPatternCount()

public int getPatternCount()

Optional. The relative resource name pattern associated with this resource type. The DNS prefix of the full resource name shouldn't be specified here.

The path pattern must follow the syntax, which aligns with HTTP binding syntax:

 Template = Segment { "/" Segment } ;
 Segment = LITERAL | Variable ;
 Variable = "{" LITERAL "}" ;

Examples:

 - "projects/{project}/topics/{topic}"
 - "projects/{project}/knowledgeBases/{knowledge_base}"

The components in braces correspond to the IDs for each resource in the hierarchy. It is expected that, if multiple patterns are provided, the same component name (e.g. "project") refers to IDs of the same type of resource.

repeated string pattern = 2;

Returns
Type Description
int

The count of pattern.

getPatternList()

public ProtocolStringList getPatternList()

Optional. The relative resource name pattern associated with this resource type. The DNS prefix of the full resource name shouldn't be specified here.

The path pattern must follow the syntax, which aligns with HTTP binding syntax:

 Template = Segment { "/" Segment } ;
 Segment = LITERAL | Variable ;
 Variable = "{" LITERAL "}" ;

Examples:

 - "projects/{project}/topics/{topic}"
 - "projects/{project}/knowledgeBases/{knowledge_base}"

The components in braces correspond to the IDs for each resource in the hierarchy. It is expected that, if multiple patterns are provided, the same component name (e.g. "project") refers to IDs of the same type of resource.

repeated string pattern = 2;

Returns
Type Description
ProtocolStringList

A list containing the pattern.

getPlural()

public String getPlural()

The plural name used in the resource name and permission names, such as 'projects' for the resource name of 'projects/{project}' and the permission name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception to this is for Nested Collections that have stuttering names, as defined in AIP-122, where the collection ID in the resource name pattern does not necessarily directly match the plural value.

It is the same concept of the plural field in k8s CRD spec https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/

Note: The plural form is required even for singleton resources. See https://aip.dev/156

string plural = 5;

Returns
Type Description
String

The plural.

getPluralBytes()

public ByteString getPluralBytes()

The plural name used in the resource name and permission names, such as 'projects' for the resource name of 'projects/{project}' and the permission name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception to this is for Nested Collections that have stuttering names, as defined in AIP-122, where the collection ID in the resource name pattern does not necessarily directly match the plural value.

It is the same concept of the plural field in k8s CRD spec https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/

Note: The plural form is required even for singleton resources. See https://aip.dev/156

string plural = 5;

Returns
Type Description
ByteString

The bytes for plural.

getSerializedSize()

public int getSerializedSize()
Returns
Type Description
int
Overrides

getSingular()

public String getSingular()

The same concept of the singular field in k8s CRD spec https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ Such as "project" for the resourcemanager.googleapis.com/Project type.

string singular = 6;

Returns
Type Description
String

The singular.

getSingularBytes()

public ByteString getSingularBytes()

The same concept of the singular field in k8s CRD spec https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ Such as "project" for the resourcemanager.googleapis.com/Project type.

string singular = 6;

Returns
Type Description
ByteString

The bytes for singular.

getStyle(int index)

public ResourceDescriptor.Style getStyle(int index)

Style flag(s) for this resource. These indicate that a resource is expected to conform to a given style. See the specific style flags for additional information.

repeated .google.api.ResourceDescriptor.Style style = 10;

Parameter
Name Description
index int

The index of the element to return.

Returns
Type Description
ResourceDescriptor.Style

The style at the given index.

getStyleCount()

public int getStyleCount()

Style flag(s) for this resource. These indicate that a resource is expected to conform to a given style. See the specific style flags for additional information.

repeated .google.api.ResourceDescriptor.Style style = 10;

Returns
Type Description
int

The count of style.

getStyleList()

public List<ResourceDescriptor.Style> getStyleList()

Style flag(s) for this resource. These indicate that a resource is expected to conform to a given style. See the specific style flags for additional information.

repeated .google.api.ResourceDescriptor.Style style = 10;

Returns
Type Description
List<Style>

A list containing the style.

getStyleValue(int index)

public int getStyleValue(int index)

Style flag(s) for this resource. These indicate that a resource is expected to conform to a given style. See the specific style flags for additional information.

repeated .google.api.ResourceDescriptor.Style style = 10;

Parameter
Name Description
index int

The index of the value to return.

Returns
Type Description
int

The enum numeric value on the wire of style at the given index.

getStyleValueList()

public List<Integer> getStyleValueList()

Style flag(s) for this resource. These indicate that a resource is expected to conform to a given style. See the specific style flags for additional information.

repeated .google.api.ResourceDescriptor.Style style = 10;

Returns
Type Description
List<Integer>

A list containing the enum numeric values on the wire for style.

getType()

public String getType()

The resource type. It must be in the format of {service_name}/{resource_type_kind}. The resource_type_kind must be singular and must not include version numbers.

Example: storage.googleapis.com/Bucket

The value of the resource_type_kind must follow the regular expression /A-Za-z+/. It should start with an upper case character and should use PascalCase (UpperCamelCase). The maximum number of characters allowed for the resource_type_kind is 100.

string type = 1;

Returns
Type Description
String

The type.

getTypeBytes()

public ByteString getTypeBytes()

The resource type. It must be in the format of {service_name}/{resource_type_kind}. The resource_type_kind must be singular and must not include version numbers.

Example: storage.googleapis.com/Bucket

The value of the resource_type_kind must follow the regular expression /A-Za-z+/. It should start with an upper case character and should use PascalCase (UpperCamelCase). The maximum number of characters allowed for the resource_type_kind is 100.

string type = 1;

Returns
Type Description
ByteString

The bytes for type.

hashCode()

public int hashCode()
Returns
Type Description
int
Overrides

internalGetFieldAccessorTable()

protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Returns
Type Description
FieldAccessorTable
Overrides

isInitialized()

public final boolean isInitialized()
Returns
Type Description
boolean
Overrides

newBuilderForType()

public ResourceDescriptor.Builder newBuilderForType()
Returns
Type Description
ResourceDescriptor.Builder

newBuilderForType(GeneratedMessageV3.BuilderParent parent)

protected ResourceDescriptor.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Parameter
Name Description
parent BuilderParent
Returns
Type Description
ResourceDescriptor.Builder
Overrides

newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)

protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Parameter
Name Description
unused UnusedPrivateParameter
Returns
Type Description
Object
Overrides

toBuilder()

public ResourceDescriptor.Builder toBuilder()
Returns
Type Description
ResourceDescriptor.Builder

writeTo(CodedOutputStream output)

public void writeTo(CodedOutputStream output)
Parameter
Name Description
output CodedOutputStream
Overrides
Exceptions
Type Description
IOException