Copied!

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

Generated from protobuf message google.api.ResourceDescriptor

CloneableInstantiable
Methods
public __construct( $data = NULL)
 

Constructor.

  • param array $data { Optional. Data for populating the Message object.
    @type string $type
          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][a-zA-Z0-9]+/. 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.
    @type array<string>|\Google\Protobuf\Internal\RepeatedField $pattern
          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.
    @type string $name_field
          Optional. The field on the resource that designates the resource name
          field. If omitted, this is assumed to be "name".
    @type int $history
          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
                };
              }
    @type string $plural
          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](https://google.aip.dev/122#nested-collections), 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
    @type string $singular
          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.
    @type array<int>|\Google\Protobuf\Internal\RepeatedField $style
          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.
    
    }
public Google\Protobuf\Internal\Message::__debugInfo()
public Google\Protobuf\Internal\Message::byteSize()
 
  • ignore
public Google\Protobuf\Internal\Message::clear()
 

Clear all containing fields.

  • return null
public Google\Protobuf\Internal\Message::discardUnknownFields()
 

Clear all unknown fields previously parsed.

  • return null
public 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 }; }

Generated from protobuf field .google.api.ResourceDescriptor.History history = 4;

  • return int
public getNameField()
 

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

Generated from protobuf field string name_field = 3;

  • return string
public getPattern()
 

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.

Generated from protobuf field repeated string pattern = 2;

  • return \Google\Protobuf\Internal\RepeatedField
public 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

Generated from protobuf field string plural = 5;

  • return string
public 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.

Generated from protobuf field string singular = 6;

  • return string
public getStyle()
 

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.

Generated from protobuf field repeated .google.api.ResourceDescriptor.Style style = 10;

  • return \Google\Protobuf\Internal\RepeatedField
public 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][a-zA-Z0-9]+/. 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.

Generated from protobuf field string type = 1;

  • return string
public Google\Protobuf\Internal\Message::jsonByteSize( $options = 0)
 
  • ignore
public Google\Protobuf\Internal\Message::mergeFrom( $msg)
 

Merges the contents of the specified message into current message.

This method merges the contents of the specified message into the current message. Singular fields that are set in the specified message overwrite the corresponding fields in the current message. Repeated fields are appended. Map fields key-value pairs are overwritten. Singular/Oneof sub-messages are recursively merged. All overwritten sub-messages are deep-copied.

  • param object $msg Protobuf message to be merged from.
  • return null
public Google\Protobuf\Internal\Message::mergeFromJsonString( $data, $ignore_unknown = false)
 

Parses a json string to protobuf message.

This function takes a string in the json wire format, matching the encoding output by serializeToJsonString(). See mergeFrom() for merging behavior, if the field is already set in the specified message.

  • param string $data Json protobuf data.
  • param bool $ignore_unknown
  • return null
  • throws \Exception Invalid data.
public Google\Protobuf\Internal\Message::mergeFromString( $data)
 

Parses a protocol buffer contained in a string.

This function takes a string in the (non-human-readable) binary wire format, matching the encoding output by serializeToString(). See mergeFrom() for merging behavior, if the field is already set in the specified message.

  • param string $data Binary protobuf data.
  • return null
  • throws \Exception Invalid data.
public Google\Protobuf\Internal\Message::parseFromJsonStream( $input, $ignore_unknown)
 
  • ignore
public Google\Protobuf\Internal\Message::parseFromStream( $input)
 
  • ignore
public Google\Protobuf\Internal\Message::serializeToJsonStream( $output)
 
  • ignore
public Google\Protobuf\Internal\Message::serializeToJsonString( $options = 0)
 

Serialize the message to json string.

  • return string Serialized json protobuf data.
public Google\Protobuf\Internal\Message::serializeToStream( $output)
 
  • ignore
public Google\Protobuf\Internal\Message::serializeToString()
 

Serialize the message to string.

  • return string Serialized binary protobuf data.
public setHistory( $var)
 

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 }; }

Generated from protobuf field .google.api.ResourceDescriptor.History history = 4;

  • param int $var
  • return $this
public setNameField( $var)
 

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

Generated from protobuf field string name_field = 3;

  • param string $var
  • return $this
public setPattern( $var)
 

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.

Generated from protobuf field repeated string pattern = 2;

  • param string[]|\Google\Protobuf\Internal\RepeatedField $var
  • return $this
public setPlural( $var)
 

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

Generated from protobuf field string plural = 5;

  • param string $var
  • return $this
public setSingular( $var)
 

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.

Generated from protobuf field string singular = 6;

  • param string $var
  • return $this
public setStyle( $var)
 

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.

Generated from protobuf field repeated .google.api.ResourceDescriptor.Style style = 10;

  • param int[]|\Google\Protobuf\Internal\RepeatedField $var
  • return $this
public setType( $var)
 

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][a-zA-Z0-9]+/. 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.

Generated from protobuf field string type = 1;

  • param string $var
  • return $this
Properties
protected $history = 0
 

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 }; }

Generated from protobuf field .google.api.ResourceDescriptor.History history = 4;

protected $name_field = ''
 

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

Generated from protobuf field string name_field = 3;

protected $plural = ''
 

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

Generated from protobuf field string plural = 5;

protected $singular = ''
 

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.

Generated from protobuf field string singular = 6;

protected $type = ''
 

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][a-zA-Z0-9]+/. 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.

Generated from protobuf field string type = 1;

Methods
protected Google\Protobuf\Internal\Message::hasOneof( $number)
protected Google\Protobuf\Internal\Message::mergeFromArray(array $array)
 

Populates the message from a user-supplied PHP array. Array keys correspond to Message properties and nested message properties.

Example:

$message->mergeFromArray([
    'name' => 'This is a message name',
    'interval' => [
         'startTime' => time() - 60,
         'endTime' => time(),
    ]
]);

This method will trigger an error if it is passed data that cannot be converted to the correct type. For example, a StringValue field must receive data that is either a string or a StringValue object.

  • param array $array An array containing message properties and values.
  • return null
protected Google\Protobuf\Internal\Message::mergeFromJsonArray( $array, $ignore_unknown)
protected Google\Protobuf\Internal\Message::readOneof( $number)
protected Google\Protobuf\Internal\Message::readWrapperValue( $member)
protected Google\Protobuf\Internal\Message::whichOneof( $oneof_name)
protected Google\Protobuf\Internal\Message::writeOneof( $number, $value)
protected Google\Protobuf\Internal\Message::writeWrapperValue( $member, $value)
Properties
private $pattern = NULL
 

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.

Generated from protobuf field repeated string pattern = 2;

private $style = NULL
 

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.

Generated from protobuf field repeated .google.api.ResourceDescriptor.Style style = 10;

© 2025 Bruce Wells
Search Namespaces \ Classes
Configuration