Class MetricDescriptor.Builder

  • All Implemented Interfaces:
    MetricDescriptorOrBuilder, com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder<com.google.protobuf.GeneratedMessageV3>, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, java.lang.Cloneable
    Enclosing class:
    MetricDescriptor

    public static final class MetricDescriptor.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>
    implements MetricDescriptorOrBuilder
     Defines a metric type and its schema. Once a metric descriptor is created,
     deleting or altering it stops data collection and makes the metric type's
     existing data unusable.
     
    Protobuf type google.api.MetricDescriptor
    • Method Detail

      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Overrides:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>
      • clear

        public MetricDescriptor.Builder clear()
        Specified by:
        clear in interface com.google.protobuf.Message.Builder
        Specified by:
        clear in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        clear in class com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>
      • getDescriptorForType

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
        Specified by:
        getDescriptorForType in interface com.google.protobuf.Message.Builder
        Specified by:
        getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getDescriptorForType in class com.google.protobuf.GeneratedMessage.Builder<MetricDescriptor.Builder>
      • getDefaultInstanceForType

        public MetricDescriptor getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder<com.google.protobuf.GeneratedMessageV3>
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      • build

        public MetricDescriptor build()
        Specified by:
        build in interface com.google.protobuf.Message.Builder
        Specified by:
        build in interface com.google.protobuf.MessageLite.Builder
      • buildPartial

        public MetricDescriptor buildPartial()
        Specified by:
        buildPartial in interface com.google.protobuf.Message.Builder
        Specified by:
        buildPartial in interface com.google.protobuf.MessageLite.Builder
      • clone

        public MetricDescriptor.Builder clone()
        Specified by:
        clone in interface com.google.protobuf.Message.Builder
        Specified by:
        clone in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        clone in class com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>
      • setField

        public MetricDescriptor.Builder setField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                 java.lang.Object value)
        Specified by:
        setField in interface com.google.protobuf.Message.Builder
        Overrides:
        setField in class com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>
      • clearField

        public MetricDescriptor.Builder clearField​(com.google.protobuf.Descriptors.FieldDescriptor field)
        Specified by:
        clearField in interface com.google.protobuf.Message.Builder
        Overrides:
        clearField in class com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>
      • clearOneof

        public MetricDescriptor.Builder clearOneof​(com.google.protobuf.Descriptors.OneofDescriptor oneof)
        Specified by:
        clearOneof in interface com.google.protobuf.Message.Builder
        Overrides:
        clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>
      • setRepeatedField

        public MetricDescriptor.Builder setRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                         int index,
                                                         java.lang.Object value)
        Specified by:
        setRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>
      • addRepeatedField

        public MetricDescriptor.Builder addRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                         java.lang.Object value)
        Specified by:
        addRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>
      • mergeFrom

        public MetricDescriptor.Builder mergeFrom​(com.google.protobuf.Message other)
        Specified by:
        mergeFrom in interface com.google.protobuf.Message.Builder
        Overrides:
        mergeFrom in class com.google.protobuf.AbstractMessage.Builder<MetricDescriptor.Builder>
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessage.ExtendableBuilder<com.google.protobuf.GeneratedMessageV3,​MetricDescriptor.Builder>
      • mergeFrom

        public MetricDescriptor.Builder mergeFrom​(com.google.protobuf.CodedInputStream input,
                                                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                           throws java.io.IOException
        Specified by:
        mergeFrom in interface com.google.protobuf.Message.Builder
        Specified by:
        mergeFrom in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        mergeFrom in class com.google.protobuf.AbstractMessage.Builder<MetricDescriptor.Builder>
        Throws:
        java.io.IOException
      • getName

        public java.lang.String getName()
         The resource name of the metric descriptor.
         
        string name = 1;
        Specified by:
        getName in interface MetricDescriptorOrBuilder
        Returns:
        The name.
      • getNameBytes

        public com.google.protobuf.ByteString getNameBytes()
         The resource name of the metric descriptor.
         
        string name = 1;
        Specified by:
        getNameBytes in interface MetricDescriptorOrBuilder
        Returns:
        The bytes for name.
      • setName

        public MetricDescriptor.Builder setName​(java.lang.String value)
         The resource name of the metric descriptor.
         
        string name = 1;
        Parameters:
        value - The name to set.
        Returns:
        This builder for chaining.
      • clearName

        public MetricDescriptor.Builder clearName()
         The resource name of the metric descriptor.
         
        string name = 1;
        Returns:
        This builder for chaining.
      • setNameBytes

        public MetricDescriptor.Builder setNameBytes​(com.google.protobuf.ByteString value)
         The resource name of the metric descriptor.
         
        string name = 1;
        Parameters:
        value - The bytes for name to set.
        Returns:
        This builder for chaining.
      • getType

        public java.lang.String getType()
         The metric type, including its DNS name prefix. The type is not
         URL-encoded. All user-defined metric types have the DNS name
         `custom.googleapis.com` or `external.googleapis.com`. Metric types should
         use a natural hierarchical grouping. For example:
        
             "custom.googleapis.com/invoice/paid/amount"
             "external.googleapis.com/prometheus/up"
             "appengine.googleapis.com/http/server/response_latencies"
         
        string type = 8;
        Specified by:
        getType in interface MetricDescriptorOrBuilder
        Returns:
        The type.
      • getTypeBytes

        public com.google.protobuf.ByteString getTypeBytes()
         The metric type, including its DNS name prefix. The type is not
         URL-encoded. All user-defined metric types have the DNS name
         `custom.googleapis.com` or `external.googleapis.com`. Metric types should
         use a natural hierarchical grouping. For example:
        
             "custom.googleapis.com/invoice/paid/amount"
             "external.googleapis.com/prometheus/up"
             "appengine.googleapis.com/http/server/response_latencies"
         
        string type = 8;
        Specified by:
        getTypeBytes in interface MetricDescriptorOrBuilder
        Returns:
        The bytes for type.
      • setType

        public MetricDescriptor.Builder setType​(java.lang.String value)
         The metric type, including its DNS name prefix. The type is not
         URL-encoded. All user-defined metric types have the DNS name
         `custom.googleapis.com` or `external.googleapis.com`. Metric types should
         use a natural hierarchical grouping. For example:
        
             "custom.googleapis.com/invoice/paid/amount"
             "external.googleapis.com/prometheus/up"
             "appengine.googleapis.com/http/server/response_latencies"
         
        string type = 8;
        Parameters:
        value - The type to set.
        Returns:
        This builder for chaining.
      • clearType

        public MetricDescriptor.Builder clearType()
         The metric type, including its DNS name prefix. The type is not
         URL-encoded. All user-defined metric types have the DNS name
         `custom.googleapis.com` or `external.googleapis.com`. Metric types should
         use a natural hierarchical grouping. For example:
        
             "custom.googleapis.com/invoice/paid/amount"
             "external.googleapis.com/prometheus/up"
             "appengine.googleapis.com/http/server/response_latencies"
         
        string type = 8;
        Returns:
        This builder for chaining.
      • setTypeBytes

        public MetricDescriptor.Builder setTypeBytes​(com.google.protobuf.ByteString value)
         The metric type, including its DNS name prefix. The type is not
         URL-encoded. All user-defined metric types have the DNS name
         `custom.googleapis.com` or `external.googleapis.com`. Metric types should
         use a natural hierarchical grouping. For example:
        
             "custom.googleapis.com/invoice/paid/amount"
             "external.googleapis.com/prometheus/up"
             "appengine.googleapis.com/http/server/response_latencies"
         
        string type = 8;
        Parameters:
        value - The bytes for type to set.
        Returns:
        This builder for chaining.
      • getLabelsList

        public java.util.List<LabelDescriptor> getLabelsList()
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
        Specified by:
        getLabelsList in interface MetricDescriptorOrBuilder
      • getLabelsCount

        public int getLabelsCount()
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
        Specified by:
        getLabelsCount in interface MetricDescriptorOrBuilder
      • getLabels

        public LabelDescriptor getLabels​(int index)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
        Specified by:
        getLabels in interface MetricDescriptorOrBuilder
      • setLabels

        public MetricDescriptor.Builder setLabels​(int index,
                                                  LabelDescriptor value)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • setLabels

        public MetricDescriptor.Builder setLabels​(int index,
                                                  LabelDescriptor.Builder builderForValue)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • addLabels

        public MetricDescriptor.Builder addLabels​(LabelDescriptor value)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • addLabels

        public MetricDescriptor.Builder addLabels​(int index,
                                                  LabelDescriptor value)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • addLabels

        public MetricDescriptor.Builder addLabels​(LabelDescriptor.Builder builderForValue)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • addLabels

        public MetricDescriptor.Builder addLabels​(int index,
                                                  LabelDescriptor.Builder builderForValue)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • addAllLabels

        public MetricDescriptor.Builder addAllLabels​(java.lang.Iterable<? extends LabelDescriptor> values)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • clearLabels

        public MetricDescriptor.Builder clearLabels()
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • removeLabels

        public MetricDescriptor.Builder removeLabels​(int index)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • getLabelsBuilder

        public LabelDescriptor.Builder getLabelsBuilder​(int index)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • getLabelsOrBuilder

        public LabelDescriptorOrBuilder getLabelsOrBuilder​(int index)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
        Specified by:
        getLabelsOrBuilder in interface MetricDescriptorOrBuilder
      • getLabelsOrBuilderList

        public java.util.List<? extends LabelDescriptorOrBuilder> getLabelsOrBuilderList()
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
        Specified by:
        getLabelsOrBuilderList in interface MetricDescriptorOrBuilder
      • addLabelsBuilder

        public LabelDescriptor.Builder addLabelsBuilder()
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • addLabelsBuilder

        public LabelDescriptor.Builder addLabelsBuilder​(int index)
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • getLabelsBuilderList

        public java.util.List<LabelDescriptor.Builder> getLabelsBuilderList()
         The set of labels that can be used to describe a specific
         instance of this metric type. For example, the
         `appengine.googleapis.com/http/server/response_latencies` metric
         type has a label for the HTTP response code, `response_code`, so
         you can look at latencies for successful responses or just
         for responses that failed.
         
        repeated .google.api.LabelDescriptor labels = 2;
      • getMetricKindValue

        public int getMetricKindValue()
         Whether the metric records instantaneous values, changes to a value, etc.
         Some combinations of `metric_kind` and `value_type` might not be supported.
         
        .google.api.MetricDescriptor.MetricKind metric_kind = 3;
        Specified by:
        getMetricKindValue in interface MetricDescriptorOrBuilder
        Returns:
        The enum numeric value on the wire for metricKind.
      • setMetricKindValue

        public MetricDescriptor.Builder setMetricKindValue​(int value)
         Whether the metric records instantaneous values, changes to a value, etc.
         Some combinations of `metric_kind` and `value_type` might not be supported.
         
        .google.api.MetricDescriptor.MetricKind metric_kind = 3;
        Parameters:
        value - The enum numeric value on the wire for metricKind to set.
        Returns:
        This builder for chaining.
      • getMetricKind

        public MetricDescriptor.MetricKind getMetricKind()
         Whether the metric records instantaneous values, changes to a value, etc.
         Some combinations of `metric_kind` and `value_type` might not be supported.
         
        .google.api.MetricDescriptor.MetricKind metric_kind = 3;
        Specified by:
        getMetricKind in interface MetricDescriptorOrBuilder
        Returns:
        The metricKind.
      • setMetricKind

        public MetricDescriptor.Builder setMetricKind​(MetricDescriptor.MetricKind value)
         Whether the metric records instantaneous values, changes to a value, etc.
         Some combinations of `metric_kind` and `value_type` might not be supported.
         
        .google.api.MetricDescriptor.MetricKind metric_kind = 3;
        Parameters:
        value - The metricKind to set.
        Returns:
        This builder for chaining.
      • clearMetricKind

        public MetricDescriptor.Builder clearMetricKind()
         Whether the metric records instantaneous values, changes to a value, etc.
         Some combinations of `metric_kind` and `value_type` might not be supported.
         
        .google.api.MetricDescriptor.MetricKind metric_kind = 3;
        Returns:
        This builder for chaining.
      • getValueTypeValue

        public int getValueTypeValue()
         Whether the measurement is an integer, a floating-point number, etc.
         Some combinations of `metric_kind` and `value_type` might not be supported.
         
        .google.api.MetricDescriptor.ValueType value_type = 4;
        Specified by:
        getValueTypeValue in interface MetricDescriptorOrBuilder
        Returns:
        The enum numeric value on the wire for valueType.
      • setValueTypeValue

        public MetricDescriptor.Builder setValueTypeValue​(int value)
         Whether the measurement is an integer, a floating-point number, etc.
         Some combinations of `metric_kind` and `value_type` might not be supported.
         
        .google.api.MetricDescriptor.ValueType value_type = 4;
        Parameters:
        value - The enum numeric value on the wire for valueType to set.
        Returns:
        This builder for chaining.
      • getValueType

        public MetricDescriptor.ValueType getValueType()
         Whether the measurement is an integer, a floating-point number, etc.
         Some combinations of `metric_kind` and `value_type` might not be supported.
         
        .google.api.MetricDescriptor.ValueType value_type = 4;
        Specified by:
        getValueType in interface MetricDescriptorOrBuilder
        Returns:
        The valueType.
      • setValueType

        public MetricDescriptor.Builder setValueType​(MetricDescriptor.ValueType value)
         Whether the measurement is an integer, a floating-point number, etc.
         Some combinations of `metric_kind` and `value_type` might not be supported.
         
        .google.api.MetricDescriptor.ValueType value_type = 4;
        Parameters:
        value - The valueType to set.
        Returns:
        This builder for chaining.
      • clearValueType

        public MetricDescriptor.Builder clearValueType()
         Whether the measurement is an integer, a floating-point number, etc.
         Some combinations of `metric_kind` and `value_type` might not be supported.
         
        .google.api.MetricDescriptor.ValueType value_type = 4;
        Returns:
        This builder for chaining.
      • getUnit

        public java.lang.String getUnit()
         The units in which the metric value is reported. It is only applicable
         if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
         defines the representation of the stored metric values.
        
         Different systems might scale the values to be more easily displayed (so a
         value of `0.02kBy` _might_ be displayed as `20By`, and a value of
         `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is
         `kBy`, then the value of the metric is always in thousands of bytes, no
         matter how it might be displayed.
        
         If you want a custom metric to record the exact number of CPU-seconds used
         by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is
         `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005
         CPU-seconds, then the value is written as `12005`.
        
         Alternatively, if you want a custom metric to record data in a more
         granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is
         `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`),
         or use `Kis{CPU}` and write `11.723` (which is `12005/1024`).
        
         The supported units are a subset of [The Unified Code for Units of
         Measure](https://unitsofmeasure.org/ucum.html) standard:
        
         **Basic units (UNIT)**
        
         * `bit`   bit
         * `By`    byte
         * `s`     second
         * `min`   minute
         * `h`     hour
         * `d`     day
         * `1`     dimensionless
        
         **Prefixes (PREFIX)**
        
         * `k`     kilo    (10^3)
         * `M`     mega    (10^6)
         * `G`     giga    (10^9)
         * `T`     tera    (10^12)
         * `P`     peta    (10^15)
         * `E`     exa     (10^18)
         * `Z`     zetta   (10^21)
         * `Y`     yotta   (10^24)
        
         * `m`     milli   (10^-3)
         * `u`     micro   (10^-6)
         * `n`     nano    (10^-9)
         * `p`     pico    (10^-12)
         * `f`     femto   (10^-15)
         * `a`     atto    (10^-18)
         * `z`     zepto   (10^-21)
         * `y`     yocto   (10^-24)
        
         * `Ki`    kibi    (2^10)
         * `Mi`    mebi    (2^20)
         * `Gi`    gibi    (2^30)
         * `Ti`    tebi    (2^40)
         * `Pi`    pebi    (2^50)
        
         **Grammar**
        
         The grammar also includes these connectors:
        
         * `/`    division or ratio (as an infix operator). For examples,
                  `kBy/{email}` or `MiBy/10ms` (although you should almost never
                  have `/s` in a metric `unit`; rates should always be computed at
                  query time from the underlying cumulative or delta value).
         * `.`    multiplication or composition (as an infix operator). For
                  examples, `GBy.d` or `k{watt}.h`.
        
         The grammar for a unit is as follows:
        
             Expression = Component { "." Component } { "/" Component } ;
        
             Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
                       | Annotation
                       | "1"
                       ;
        
             Annotation = "{" NAME "}" ;
        
         Notes:
        
         * `Annotation` is just a comment if it follows a `UNIT`. If the annotation
            is used alone, then the unit is equivalent to `1`. For examples,
            `{request}/s == 1/s`, `By{transmitted}/s == By/s`.
         * `NAME` is a sequence of non-blank printable ASCII characters not
            containing `{` or `}`.
         * `1` represents a unitary [dimensionless
            unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such
            as in `1/s`. It is typically used when none of the basic units are
            appropriate. For example, "new users per day" can be represented as
            `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new
            users). Alternatively, "thousands of page views per day" would be
            represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric
            value of `5.3` would mean "5300 page views per day").
         * `%` represents dimensionless value of 1/100, and annotates values giving
            a percentage (so the metric values are typically in the range of 0..100,
            and a metric value `3` means "3 percent").
         * `10^2.%` indicates a metric contains a ratio, typically in the range
            0..1, that will be multiplied by 100 and displayed as a percentage
            (so a metric value `0.03` means "3 percent").
         
        string unit = 5;
        Specified by:
        getUnit in interface MetricDescriptorOrBuilder
        Returns:
        The unit.
      • getUnitBytes

        public com.google.protobuf.ByteString getUnitBytes()
         The units in which the metric value is reported. It is only applicable
         if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
         defines the representation of the stored metric values.
        
         Different systems might scale the values to be more easily displayed (so a
         value of `0.02kBy` _might_ be displayed as `20By`, and a value of
         `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is
         `kBy`, then the value of the metric is always in thousands of bytes, no
         matter how it might be displayed.
        
         If you want a custom metric to record the exact number of CPU-seconds used
         by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is
         `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005
         CPU-seconds, then the value is written as `12005`.
        
         Alternatively, if you want a custom metric to record data in a more
         granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is
         `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`),
         or use `Kis{CPU}` and write `11.723` (which is `12005/1024`).
        
         The supported units are a subset of [The Unified Code for Units of
         Measure](https://unitsofmeasure.org/ucum.html) standard:
        
         **Basic units (UNIT)**
        
         * `bit`   bit
         * `By`    byte
         * `s`     second
         * `min`   minute
         * `h`     hour
         * `d`     day
         * `1`     dimensionless
        
         **Prefixes (PREFIX)**
        
         * `k`     kilo    (10^3)
         * `M`     mega    (10^6)
         * `G`     giga    (10^9)
         * `T`     tera    (10^12)
         * `P`     peta    (10^15)
         * `E`     exa     (10^18)
         * `Z`     zetta   (10^21)
         * `Y`     yotta   (10^24)
        
         * `m`     milli   (10^-3)
         * `u`     micro   (10^-6)
         * `n`     nano    (10^-9)
         * `p`     pico    (10^-12)
         * `f`     femto   (10^-15)
         * `a`     atto    (10^-18)
         * `z`     zepto   (10^-21)
         * `y`     yocto   (10^-24)
        
         * `Ki`    kibi    (2^10)
         * `Mi`    mebi    (2^20)
         * `Gi`    gibi    (2^30)
         * `Ti`    tebi    (2^40)
         * `Pi`    pebi    (2^50)
        
         **Grammar**
        
         The grammar also includes these connectors:
        
         * `/`    division or ratio (as an infix operator). For examples,
                  `kBy/{email}` or `MiBy/10ms` (although you should almost never
                  have `/s` in a metric `unit`; rates should always be computed at
                  query time from the underlying cumulative or delta value).
         * `.`    multiplication or composition (as an infix operator). For
                  examples, `GBy.d` or `k{watt}.h`.
        
         The grammar for a unit is as follows:
        
             Expression = Component { "." Component } { "/" Component } ;
        
             Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
                       | Annotation
                       | "1"
                       ;
        
             Annotation = "{" NAME "}" ;
        
         Notes:
        
         * `Annotation` is just a comment if it follows a `UNIT`. If the annotation
            is used alone, then the unit is equivalent to `1`. For examples,
            `{request}/s == 1/s`, `By{transmitted}/s == By/s`.
         * `NAME` is a sequence of non-blank printable ASCII characters not
            containing `{` or `}`.
         * `1` represents a unitary [dimensionless
            unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such
            as in `1/s`. It is typically used when none of the basic units are
            appropriate. For example, "new users per day" can be represented as
            `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new
            users). Alternatively, "thousands of page views per day" would be
            represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric
            value of `5.3` would mean "5300 page views per day").
         * `%` represents dimensionless value of 1/100, and annotates values giving
            a percentage (so the metric values are typically in the range of 0..100,
            and a metric value `3` means "3 percent").
         * `10^2.%` indicates a metric contains a ratio, typically in the range
            0..1, that will be multiplied by 100 and displayed as a percentage
            (so a metric value `0.03` means "3 percent").
         
        string unit = 5;
        Specified by:
        getUnitBytes in interface MetricDescriptorOrBuilder
        Returns:
        The bytes for unit.
      • setUnit

        public MetricDescriptor.Builder setUnit​(java.lang.String value)
         The units in which the metric value is reported. It is only applicable
         if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
         defines the representation of the stored metric values.
        
         Different systems might scale the values to be more easily displayed (so a
         value of `0.02kBy` _might_ be displayed as `20By`, and a value of
         `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is
         `kBy`, then the value of the metric is always in thousands of bytes, no
         matter how it might be displayed.
        
         If you want a custom metric to record the exact number of CPU-seconds used
         by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is
         `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005
         CPU-seconds, then the value is written as `12005`.
        
         Alternatively, if you want a custom metric to record data in a more
         granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is
         `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`),
         or use `Kis{CPU}` and write `11.723` (which is `12005/1024`).
        
         The supported units are a subset of [The Unified Code for Units of
         Measure](https://unitsofmeasure.org/ucum.html) standard:
        
         **Basic units (UNIT)**
        
         * `bit`   bit
         * `By`    byte
         * `s`     second
         * `min`   minute
         * `h`     hour
         * `d`     day
         * `1`     dimensionless
        
         **Prefixes (PREFIX)**
        
         * `k`     kilo    (10^3)
         * `M`     mega    (10^6)
         * `G`     giga    (10^9)
         * `T`     tera    (10^12)
         * `P`     peta    (10^15)
         * `E`     exa     (10^18)
         * `Z`     zetta   (10^21)
         * `Y`     yotta   (10^24)
        
         * `m`     milli   (10^-3)
         * `u`     micro   (10^-6)
         * `n`     nano    (10^-9)
         * `p`     pico    (10^-12)
         * `f`     femto   (10^-15)
         * `a`     atto    (10^-18)
         * `z`     zepto   (10^-21)
         * `y`     yocto   (10^-24)
        
         * `Ki`    kibi    (2^10)
         * `Mi`    mebi    (2^20)
         * `Gi`    gibi    (2^30)
         * `Ti`    tebi    (2^40)
         * `Pi`    pebi    (2^50)
        
         **Grammar**
        
         The grammar also includes these connectors:
        
         * `/`    division or ratio (as an infix operator). For examples,
                  `kBy/{email}` or `MiBy/10ms` (although you should almost never
                  have `/s` in a metric `unit`; rates should always be computed at
                  query time from the underlying cumulative or delta value).
         * `.`    multiplication or composition (as an infix operator). For
                  examples, `GBy.d` or `k{watt}.h`.
        
         The grammar for a unit is as follows:
        
             Expression = Component { "." Component } { "/" Component } ;
        
             Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
                       | Annotation
                       | "1"
                       ;
        
             Annotation = "{" NAME "}" ;
        
         Notes:
        
         * `Annotation` is just a comment if it follows a `UNIT`. If the annotation
            is used alone, then the unit is equivalent to `1`. For examples,
            `{request}/s == 1/s`, `By{transmitted}/s == By/s`.
         * `NAME` is a sequence of non-blank printable ASCII characters not
            containing `{` or `}`.
         * `1` represents a unitary [dimensionless
            unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such
            as in `1/s`. It is typically used when none of the basic units are
            appropriate. For example, "new users per day" can be represented as
            `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new
            users). Alternatively, "thousands of page views per day" would be
            represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric
            value of `5.3` would mean "5300 page views per day").
         * `%` represents dimensionless value of 1/100, and annotates values giving
            a percentage (so the metric values are typically in the range of 0..100,
            and a metric value `3` means "3 percent").
         * `10^2.%` indicates a metric contains a ratio, typically in the range
            0..1, that will be multiplied by 100 and displayed as a percentage
            (so a metric value `0.03` means "3 percent").
         
        string unit = 5;
        Parameters:
        value - The unit to set.
        Returns:
        This builder for chaining.
      • clearUnit

        public MetricDescriptor.Builder clearUnit()
         The units in which the metric value is reported. It is only applicable
         if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
         defines the representation of the stored metric values.
        
         Different systems might scale the values to be more easily displayed (so a
         value of `0.02kBy` _might_ be displayed as `20By`, and a value of
         `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is
         `kBy`, then the value of the metric is always in thousands of bytes, no
         matter how it might be displayed.
        
         If you want a custom metric to record the exact number of CPU-seconds used
         by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is
         `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005
         CPU-seconds, then the value is written as `12005`.
        
         Alternatively, if you want a custom metric to record data in a more
         granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is
         `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`),
         or use `Kis{CPU}` and write `11.723` (which is `12005/1024`).
        
         The supported units are a subset of [The Unified Code for Units of
         Measure](https://unitsofmeasure.org/ucum.html) standard:
        
         **Basic units (UNIT)**
        
         * `bit`   bit
         * `By`    byte
         * `s`     second
         * `min`   minute
         * `h`     hour
         * `d`     day
         * `1`     dimensionless
        
         **Prefixes (PREFIX)**
        
         * `k`     kilo    (10^3)
         * `M`     mega    (10^6)
         * `G`     giga    (10^9)
         * `T`     tera    (10^12)
         * `P`     peta    (10^15)
         * `E`     exa     (10^18)
         * `Z`     zetta   (10^21)
         * `Y`     yotta   (10^24)
        
         * `m`     milli   (10^-3)
         * `u`     micro   (10^-6)
         * `n`     nano    (10^-9)
         * `p`     pico    (10^-12)
         * `f`     femto   (10^-15)
         * `a`     atto    (10^-18)
         * `z`     zepto   (10^-21)
         * `y`     yocto   (10^-24)
        
         * `Ki`    kibi    (2^10)
         * `Mi`    mebi    (2^20)
         * `Gi`    gibi    (2^30)
         * `Ti`    tebi    (2^40)
         * `Pi`    pebi    (2^50)
        
         **Grammar**
        
         The grammar also includes these connectors:
        
         * `/`    division or ratio (as an infix operator). For examples,
                  `kBy/{email}` or `MiBy/10ms` (although you should almost never
                  have `/s` in a metric `unit`; rates should always be computed at
                  query time from the underlying cumulative or delta value).
         * `.`    multiplication or composition (as an infix operator). For
                  examples, `GBy.d` or `k{watt}.h`.
        
         The grammar for a unit is as follows:
        
             Expression = Component { "." Component } { "/" Component } ;
        
             Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
                       | Annotation
                       | "1"
                       ;
        
             Annotation = "{" NAME "}" ;
        
         Notes:
        
         * `Annotation` is just a comment if it follows a `UNIT`. If the annotation
            is used alone, then the unit is equivalent to `1`. For examples,
            `{request}/s == 1/s`, `By{transmitted}/s == By/s`.
         * `NAME` is a sequence of non-blank printable ASCII characters not
            containing `{` or `}`.
         * `1` represents a unitary [dimensionless
            unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such
            as in `1/s`. It is typically used when none of the basic units are
            appropriate. For example, "new users per day" can be represented as
            `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new
            users). Alternatively, "thousands of page views per day" would be
            represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric
            value of `5.3` would mean "5300 page views per day").
         * `%` represents dimensionless value of 1/100, and annotates values giving
            a percentage (so the metric values are typically in the range of 0..100,
            and a metric value `3` means "3 percent").
         * `10^2.%` indicates a metric contains a ratio, typically in the range
            0..1, that will be multiplied by 100 and displayed as a percentage
            (so a metric value `0.03` means "3 percent").
         
        string unit = 5;
        Returns:
        This builder for chaining.
      • setUnitBytes

        public MetricDescriptor.Builder setUnitBytes​(com.google.protobuf.ByteString value)
         The units in which the metric value is reported. It is only applicable
         if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
         defines the representation of the stored metric values.
        
         Different systems might scale the values to be more easily displayed (so a
         value of `0.02kBy` _might_ be displayed as `20By`, and a value of
         `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is
         `kBy`, then the value of the metric is always in thousands of bytes, no
         matter how it might be displayed.
        
         If you want a custom metric to record the exact number of CPU-seconds used
         by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is
         `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005
         CPU-seconds, then the value is written as `12005`.
        
         Alternatively, if you want a custom metric to record data in a more
         granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is
         `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`),
         or use `Kis{CPU}` and write `11.723` (which is `12005/1024`).
        
         The supported units are a subset of [The Unified Code for Units of
         Measure](https://unitsofmeasure.org/ucum.html) standard:
        
         **Basic units (UNIT)**
        
         * `bit`   bit
         * `By`    byte
         * `s`     second
         * `min`   minute
         * `h`     hour
         * `d`     day
         * `1`     dimensionless
        
         **Prefixes (PREFIX)**
        
         * `k`     kilo    (10^3)
         * `M`     mega    (10^6)
         * `G`     giga    (10^9)
         * `T`     tera    (10^12)
         * `P`     peta    (10^15)
         * `E`     exa     (10^18)
         * `Z`     zetta   (10^21)
         * `Y`     yotta   (10^24)
        
         * `m`     milli   (10^-3)
         * `u`     micro   (10^-6)
         * `n`     nano    (10^-9)
         * `p`     pico    (10^-12)
         * `f`     femto   (10^-15)
         * `a`     atto    (10^-18)
         * `z`     zepto   (10^-21)
         * `y`     yocto   (10^-24)
        
         * `Ki`    kibi    (2^10)
         * `Mi`    mebi    (2^20)
         * `Gi`    gibi    (2^30)
         * `Ti`    tebi    (2^40)
         * `Pi`    pebi    (2^50)
        
         **Grammar**
        
         The grammar also includes these connectors:
        
         * `/`    division or ratio (as an infix operator). For examples,
                  `kBy/{email}` or `MiBy/10ms` (although you should almost never
                  have `/s` in a metric `unit`; rates should always be computed at
                  query time from the underlying cumulative or delta value).
         * `.`    multiplication or composition (as an infix operator). For
                  examples, `GBy.d` or `k{watt}.h`.
        
         The grammar for a unit is as follows:
        
             Expression = Component { "." Component } { "/" Component } ;
        
             Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
                       | Annotation
                       | "1"
                       ;
        
             Annotation = "{" NAME "}" ;
        
         Notes:
        
         * `Annotation` is just a comment if it follows a `UNIT`. If the annotation
            is used alone, then the unit is equivalent to `1`. For examples,
            `{request}/s == 1/s`, `By{transmitted}/s == By/s`.
         * `NAME` is a sequence of non-blank printable ASCII characters not
            containing `{` or `}`.
         * `1` represents a unitary [dimensionless
            unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such
            as in `1/s`. It is typically used when none of the basic units are
            appropriate. For example, "new users per day" can be represented as
            `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new
            users). Alternatively, "thousands of page views per day" would be
            represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric
            value of `5.3` would mean "5300 page views per day").
         * `%` represents dimensionless value of 1/100, and annotates values giving
            a percentage (so the metric values are typically in the range of 0..100,
            and a metric value `3` means "3 percent").
         * `10^2.%` indicates a metric contains a ratio, typically in the range
            0..1, that will be multiplied by 100 and displayed as a percentage
            (so a metric value `0.03` means "3 percent").
         
        string unit = 5;
        Parameters:
        value - The bytes for unit to set.
        Returns:
        This builder for chaining.
      • getDescription

        public java.lang.String getDescription()
         A detailed description of the metric, which can be used in documentation.
         
        string description = 6;
        Specified by:
        getDescription in interface MetricDescriptorOrBuilder
        Returns:
        The description.
      • getDescriptionBytes

        public com.google.protobuf.ByteString getDescriptionBytes()
         A detailed description of the metric, which can be used in documentation.
         
        string description = 6;
        Specified by:
        getDescriptionBytes in interface MetricDescriptorOrBuilder
        Returns:
        The bytes for description.
      • setDescription

        public MetricDescriptor.Builder setDescription​(java.lang.String value)
         A detailed description of the metric, which can be used in documentation.
         
        string description = 6;
        Parameters:
        value - The description to set.
        Returns:
        This builder for chaining.
      • clearDescription

        public MetricDescriptor.Builder clearDescription()
         A detailed description of the metric, which can be used in documentation.
         
        string description = 6;
        Returns:
        This builder for chaining.
      • setDescriptionBytes

        public MetricDescriptor.Builder setDescriptionBytes​(com.google.protobuf.ByteString value)
         A detailed description of the metric, which can be used in documentation.
         
        string description = 6;
        Parameters:
        value - The bytes for description to set.
        Returns:
        This builder for chaining.
      • getDisplayName

        public java.lang.String getDisplayName()
         A concise name for the metric, which can be displayed in user interfaces.
         Use sentence case without an ending period, for example "Request count".
         This field is optional but it is recommended to be set for any metrics
         associated with user-visible concepts, such as Quota.
         
        string display_name = 7;
        Specified by:
        getDisplayName in interface MetricDescriptorOrBuilder
        Returns:
        The displayName.
      • getDisplayNameBytes

        public com.google.protobuf.ByteString getDisplayNameBytes()
         A concise name for the metric, which can be displayed in user interfaces.
         Use sentence case without an ending period, for example "Request count".
         This field is optional but it is recommended to be set for any metrics
         associated with user-visible concepts, such as Quota.
         
        string display_name = 7;
        Specified by:
        getDisplayNameBytes in interface MetricDescriptorOrBuilder
        Returns:
        The bytes for displayName.
      • setDisplayName

        public MetricDescriptor.Builder setDisplayName​(java.lang.String value)
         A concise name for the metric, which can be displayed in user interfaces.
         Use sentence case without an ending period, for example "Request count".
         This field is optional but it is recommended to be set for any metrics
         associated with user-visible concepts, such as Quota.
         
        string display_name = 7;
        Parameters:
        value - The displayName to set.
        Returns:
        This builder for chaining.
      • clearDisplayName

        public MetricDescriptor.Builder clearDisplayName()
         A concise name for the metric, which can be displayed in user interfaces.
         Use sentence case without an ending period, for example "Request count".
         This field is optional but it is recommended to be set for any metrics
         associated with user-visible concepts, such as Quota.
         
        string display_name = 7;
        Returns:
        This builder for chaining.
      • setDisplayNameBytes

        public MetricDescriptor.Builder setDisplayNameBytes​(com.google.protobuf.ByteString value)
         A concise name for the metric, which can be displayed in user interfaces.
         Use sentence case without an ending period, for example "Request count".
         This field is optional but it is recommended to be set for any metrics
         associated with user-visible concepts, such as Quota.
         
        string display_name = 7;
        Parameters:
        value - The bytes for displayName to set.
        Returns:
        This builder for chaining.
      • hasMetadata

        public boolean hasMetadata()
         Optional. Metadata which can be used to guide usage of the metric.
         
        .google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10;
        Specified by:
        hasMetadata in interface MetricDescriptorOrBuilder
        Returns:
        Whether the metadata field is set.
      • clearMetadata

        public MetricDescriptor.Builder clearMetadata()
         Optional. Metadata which can be used to guide usage of the metric.
         
        .google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10;
      • getLaunchStageValue

        public int getLaunchStageValue()
         Optional. The launch stage of the metric definition.
         
        .google.api.LaunchStage launch_stage = 12;
        Specified by:
        getLaunchStageValue in interface MetricDescriptorOrBuilder
        Returns:
        The enum numeric value on the wire for launchStage.
      • setLaunchStageValue

        public MetricDescriptor.Builder setLaunchStageValue​(int value)
         Optional. The launch stage of the metric definition.
         
        .google.api.LaunchStage launch_stage = 12;
        Parameters:
        value - The enum numeric value on the wire for launchStage to set.
        Returns:
        This builder for chaining.
      • setLaunchStage

        public MetricDescriptor.Builder setLaunchStage​(LaunchStage value)
         Optional. The launch stage of the metric definition.
         
        .google.api.LaunchStage launch_stage = 12;
        Parameters:
        value - The launchStage to set.
        Returns:
        This builder for chaining.
      • clearLaunchStage

        public MetricDescriptor.Builder clearLaunchStage()
         Optional. The launch stage of the metric definition.
         
        .google.api.LaunchStage launch_stage = 12;
        Returns:
        This builder for chaining.
      • getMonitoredResourceTypesList

        public com.google.protobuf.ProtocolStringList getMonitoredResourceTypesList()
         Read-only. If present, then a [time
         series][google.monitoring.v3.TimeSeries], which is identified partially by
         a metric type and a
         [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
         is associated with this metric type can only be associated with one of the
         monitored resource types listed here.
         
        repeated string monitored_resource_types = 13;
        Specified by:
        getMonitoredResourceTypesList in interface MetricDescriptorOrBuilder
        Returns:
        A list containing the monitoredResourceTypes.
      • getMonitoredResourceTypesCount

        public int getMonitoredResourceTypesCount()
         Read-only. If present, then a [time
         series][google.monitoring.v3.TimeSeries], which is identified partially by
         a metric type and a
         [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
         is associated with this metric type can only be associated with one of the
         monitored resource types listed here.
         
        repeated string monitored_resource_types = 13;
        Specified by:
        getMonitoredResourceTypesCount in interface MetricDescriptorOrBuilder
        Returns:
        The count of monitoredResourceTypes.
      • getMonitoredResourceTypes

        public java.lang.String getMonitoredResourceTypes​(int index)
         Read-only. If present, then a [time
         series][google.monitoring.v3.TimeSeries], which is identified partially by
         a metric type and a
         [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
         is associated with this metric type can only be associated with one of the
         monitored resource types listed here.
         
        repeated string monitored_resource_types = 13;
        Specified by:
        getMonitoredResourceTypes in interface MetricDescriptorOrBuilder
        Parameters:
        index - The index of the element to return.
        Returns:
        The monitoredResourceTypes at the given index.
      • getMonitoredResourceTypesBytes

        public com.google.protobuf.ByteString getMonitoredResourceTypesBytes​(int index)
         Read-only. If present, then a [time
         series][google.monitoring.v3.TimeSeries], which is identified partially by
         a metric type and a
         [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
         is associated with this metric type can only be associated with one of the
         monitored resource types listed here.
         
        repeated string monitored_resource_types = 13;
        Specified by:
        getMonitoredResourceTypesBytes in interface MetricDescriptorOrBuilder
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the monitoredResourceTypes at the given index.
      • setMonitoredResourceTypes

        public MetricDescriptor.Builder setMonitoredResourceTypes​(int index,
                                                                  java.lang.String value)
         Read-only. If present, then a [time
         series][google.monitoring.v3.TimeSeries], which is identified partially by
         a metric type and a
         [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
         is associated with this metric type can only be associated with one of the
         monitored resource types listed here.
         
        repeated string monitored_resource_types = 13;
        Parameters:
        index - The index to set the value at.
        value - The monitoredResourceTypes to set.
        Returns:
        This builder for chaining.
      • addMonitoredResourceTypes

        public MetricDescriptor.Builder addMonitoredResourceTypes​(java.lang.String value)
         Read-only. If present, then a [time
         series][google.monitoring.v3.TimeSeries], which is identified partially by
         a metric type and a
         [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
         is associated with this metric type can only be associated with one of the
         monitored resource types listed here.
         
        repeated string monitored_resource_types = 13;
        Parameters:
        value - The monitoredResourceTypes to add.
        Returns:
        This builder for chaining.
      • addAllMonitoredResourceTypes

        public MetricDescriptor.Builder addAllMonitoredResourceTypes​(java.lang.Iterable<java.lang.String> values)
         Read-only. If present, then a [time
         series][google.monitoring.v3.TimeSeries], which is identified partially by
         a metric type and a
         [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
         is associated with this metric type can only be associated with one of the
         monitored resource types listed here.
         
        repeated string monitored_resource_types = 13;
        Parameters:
        values - The monitoredResourceTypes to add.
        Returns:
        This builder for chaining.
      • clearMonitoredResourceTypes

        public MetricDescriptor.Builder clearMonitoredResourceTypes()
         Read-only. If present, then a [time
         series][google.monitoring.v3.TimeSeries], which is identified partially by
         a metric type and a
         [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
         is associated with this metric type can only be associated with one of the
         monitored resource types listed here.
         
        repeated string monitored_resource_types = 13;
        Returns:
        This builder for chaining.
      • addMonitoredResourceTypesBytes

        public MetricDescriptor.Builder addMonitoredResourceTypesBytes​(com.google.protobuf.ByteString value)
         Read-only. If present, then a [time
         series][google.monitoring.v3.TimeSeries], which is identified partially by
         a metric type and a
         [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
         is associated with this metric type can only be associated with one of the
         monitored resource types listed here.
         
        repeated string monitored_resource_types = 13;
        Parameters:
        value - The bytes of the monitoredResourceTypes to add.
        Returns:
        This builder for chaining.
      • setUnknownFields

        public final MetricDescriptor.Builder setUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        setUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>
      • mergeUnknownFields

        public final MetricDescriptor.Builder mergeUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        mergeUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<MetricDescriptor.Builder>