Class AllUpdatesRule.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<BuilderT>
com.google.protobuf.GeneratedMessage.Builder<AllUpdatesRule.Builder>
com.google.cloud.billing.budgets.v1beta1.AllUpdatesRule.Builder
All Implemented Interfaces:
AllUpdatesRuleOrBuilder, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Cloneable
Enclosing class:
AllUpdatesRule

public static final class AllUpdatesRule.Builder extends com.google.protobuf.GeneratedMessage.Builder<AllUpdatesRule.Builder> implements AllUpdatesRuleOrBuilder
 AllUpdatesRule defines notifications that are sent based on budget spend
 and thresholds.
 
Protobuf type google.cloud.billing.budgets.v1beta1.AllUpdatesRule
  • Method Details

    • getDescriptor

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

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage.Builder<AllUpdatesRule.Builder>
    • clear

      public AllUpdatesRule.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.GeneratedMessage.Builder<AllUpdatesRule.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<AllUpdatesRule.Builder>
    • getDefaultInstanceForType

      public AllUpdatesRule getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
    • build

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

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

      public AllUpdatesRule.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<AllUpdatesRule.Builder>
    • mergeFrom

      public AllUpdatesRule.Builder mergeFrom(AllUpdatesRule other)
    • isInitialized

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

      public AllUpdatesRule.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws 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<AllUpdatesRule.Builder>
      Throws:
      IOException
    • getPubsubTopic

      public String getPubsubTopic()
       Optional. The name of the Pub/Sub topic where budget related messages will
       be published, in the form `projects/{project_id}/topics/{topic_id}`.
       Updates are sent at regular intervals to the topic. The topic needs to be
       created before the budget is created; see
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications
       for more details.
       Caller is expected to have
       `pubsub.topics.setIamPolicy` permission on the topic when it's set for a
       budget, otherwise, the API call will fail with PERMISSION_DENIED. See
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task
       for more details on Pub/Sub roles and permissions.
       
      string pubsub_topic = 1 [(.google.api.field_behavior) = OPTIONAL];
      Specified by:
      getPubsubTopic in interface AllUpdatesRuleOrBuilder
      Returns:
      The pubsubTopic.
    • getPubsubTopicBytes

      public com.google.protobuf.ByteString getPubsubTopicBytes()
       Optional. The name of the Pub/Sub topic where budget related messages will
       be published, in the form `projects/{project_id}/topics/{topic_id}`.
       Updates are sent at regular intervals to the topic. The topic needs to be
       created before the budget is created; see
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications
       for more details.
       Caller is expected to have
       `pubsub.topics.setIamPolicy` permission on the topic when it's set for a
       budget, otherwise, the API call will fail with PERMISSION_DENIED. See
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task
       for more details on Pub/Sub roles and permissions.
       
      string pubsub_topic = 1 [(.google.api.field_behavior) = OPTIONAL];
      Specified by:
      getPubsubTopicBytes in interface AllUpdatesRuleOrBuilder
      Returns:
      The bytes for pubsubTopic.
    • setPubsubTopic

      public AllUpdatesRule.Builder setPubsubTopic(String value)
       Optional. The name of the Pub/Sub topic where budget related messages will
       be published, in the form `projects/{project_id}/topics/{topic_id}`.
       Updates are sent at regular intervals to the topic. The topic needs to be
       created before the budget is created; see
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications
       for more details.
       Caller is expected to have
       `pubsub.topics.setIamPolicy` permission on the topic when it's set for a
       budget, otherwise, the API call will fail with PERMISSION_DENIED. See
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task
       for more details on Pub/Sub roles and permissions.
       
      string pubsub_topic = 1 [(.google.api.field_behavior) = OPTIONAL];
      Parameters:
      value - The pubsubTopic to set.
      Returns:
      This builder for chaining.
    • clearPubsubTopic

      public AllUpdatesRule.Builder clearPubsubTopic()
       Optional. The name of the Pub/Sub topic where budget related messages will
       be published, in the form `projects/{project_id}/topics/{topic_id}`.
       Updates are sent at regular intervals to the topic. The topic needs to be
       created before the budget is created; see
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications
       for more details.
       Caller is expected to have
       `pubsub.topics.setIamPolicy` permission on the topic when it's set for a
       budget, otherwise, the API call will fail with PERMISSION_DENIED. See
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task
       for more details on Pub/Sub roles and permissions.
       
      string pubsub_topic = 1 [(.google.api.field_behavior) = OPTIONAL];
      Returns:
      This builder for chaining.
    • setPubsubTopicBytes

      public AllUpdatesRule.Builder setPubsubTopicBytes(com.google.protobuf.ByteString value)
       Optional. The name of the Pub/Sub topic where budget related messages will
       be published, in the form `projects/{project_id}/topics/{topic_id}`.
       Updates are sent at regular intervals to the topic. The topic needs to be
       created before the budget is created; see
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications
       for more details.
       Caller is expected to have
       `pubsub.topics.setIamPolicy` permission on the topic when it's set for a
       budget, otherwise, the API call will fail with PERMISSION_DENIED. See
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task
       for more details on Pub/Sub roles and permissions.
       
      string pubsub_topic = 1 [(.google.api.field_behavior) = OPTIONAL];
      Parameters:
      value - The bytes for pubsubTopic to set.
      Returns:
      This builder for chaining.
    • getSchemaVersion

      public String getSchemaVersion()
       Optional. Required when
       [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic]
       is set. The schema version of the notification sent to
       [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic].
       Only "1.0" is accepted. It represents the JSON schema as defined in
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
       
      string schema_version = 2 [(.google.api.field_behavior) = OPTIONAL];
      Specified by:
      getSchemaVersion in interface AllUpdatesRuleOrBuilder
      Returns:
      The schemaVersion.
    • getSchemaVersionBytes

      public com.google.protobuf.ByteString getSchemaVersionBytes()
       Optional. Required when
       [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic]
       is set. The schema version of the notification sent to
       [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic].
       Only "1.0" is accepted. It represents the JSON schema as defined in
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
       
      string schema_version = 2 [(.google.api.field_behavior) = OPTIONAL];
      Specified by:
      getSchemaVersionBytes in interface AllUpdatesRuleOrBuilder
      Returns:
      The bytes for schemaVersion.
    • setSchemaVersion

      public AllUpdatesRule.Builder setSchemaVersion(String value)
       Optional. Required when
       [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic]
       is set. The schema version of the notification sent to
       [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic].
       Only "1.0" is accepted. It represents the JSON schema as defined in
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
       
      string schema_version = 2 [(.google.api.field_behavior) = OPTIONAL];
      Parameters:
      value - The schemaVersion to set.
      Returns:
      This builder for chaining.
    • clearSchemaVersion

      public AllUpdatesRule.Builder clearSchemaVersion()
       Optional. Required when
       [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic]
       is set. The schema version of the notification sent to
       [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic].
       Only "1.0" is accepted. It represents the JSON schema as defined in
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
       
      string schema_version = 2 [(.google.api.field_behavior) = OPTIONAL];
      Returns:
      This builder for chaining.
    • setSchemaVersionBytes

      public AllUpdatesRule.Builder setSchemaVersionBytes(com.google.protobuf.ByteString value)
       Optional. Required when
       [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic]
       is set. The schema version of the notification sent to
       [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic].
       Only "1.0" is accepted. It represents the JSON schema as defined in
       https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
       
      string schema_version = 2 [(.google.api.field_behavior) = OPTIONAL];
      Parameters:
      value - The bytes for schemaVersion to set.
      Returns:
      This builder for chaining.
    • getMonitoringNotificationChannelsList

      public com.google.protobuf.ProtocolStringList getMonitoringNotificationChannelsList()
       Optional. Targets to send notifications to when a threshold is exceeded.
       This is in addition to default recipients who have billing account IAM
       roles. The value is the full REST resource name of a monitoring
       notification channel with the form
       `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5
       channels are allowed. See
       https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients
       for more details.
       
      repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
      Specified by:
      getMonitoringNotificationChannelsList in interface AllUpdatesRuleOrBuilder
      Returns:
      A list containing the monitoringNotificationChannels.
    • getMonitoringNotificationChannelsCount

      public int getMonitoringNotificationChannelsCount()
       Optional. Targets to send notifications to when a threshold is exceeded.
       This is in addition to default recipients who have billing account IAM
       roles. The value is the full REST resource name of a monitoring
       notification channel with the form
       `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5
       channels are allowed. See
       https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients
       for more details.
       
      repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
      Specified by:
      getMonitoringNotificationChannelsCount in interface AllUpdatesRuleOrBuilder
      Returns:
      The count of monitoringNotificationChannels.
    • getMonitoringNotificationChannels

      public String getMonitoringNotificationChannels(int index)
       Optional. Targets to send notifications to when a threshold is exceeded.
       This is in addition to default recipients who have billing account IAM
       roles. The value is the full REST resource name of a monitoring
       notification channel with the form
       `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5
       channels are allowed. See
       https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients
       for more details.
       
      repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
      Specified by:
      getMonitoringNotificationChannels in interface AllUpdatesRuleOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The monitoringNotificationChannels at the given index.
    • getMonitoringNotificationChannelsBytes

      public com.google.protobuf.ByteString getMonitoringNotificationChannelsBytes(int index)
       Optional. Targets to send notifications to when a threshold is exceeded.
       This is in addition to default recipients who have billing account IAM
       roles. The value is the full REST resource name of a monitoring
       notification channel with the form
       `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5
       channels are allowed. See
       https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients
       for more details.
       
      repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
      Specified by:
      getMonitoringNotificationChannelsBytes in interface AllUpdatesRuleOrBuilder
      Parameters:
      index - The index of the value to return.
      Returns:
      The bytes of the monitoringNotificationChannels at the given index.
    • setMonitoringNotificationChannels

      public AllUpdatesRule.Builder setMonitoringNotificationChannels(int index, String value)
       Optional. Targets to send notifications to when a threshold is exceeded.
       This is in addition to default recipients who have billing account IAM
       roles. The value is the full REST resource name of a monitoring
       notification channel with the form
       `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5
       channels are allowed. See
       https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients
       for more details.
       
      repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
      Parameters:
      index - The index to set the value at.
      value - The monitoringNotificationChannels to set.
      Returns:
      This builder for chaining.
    • addMonitoringNotificationChannels

      public AllUpdatesRule.Builder addMonitoringNotificationChannels(String value)
       Optional. Targets to send notifications to when a threshold is exceeded.
       This is in addition to default recipients who have billing account IAM
       roles. The value is the full REST resource name of a monitoring
       notification channel with the form
       `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5
       channels are allowed. See
       https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients
       for more details.
       
      repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
      Parameters:
      value - The monitoringNotificationChannels to add.
      Returns:
      This builder for chaining.
    • addAllMonitoringNotificationChannels

      public AllUpdatesRule.Builder addAllMonitoringNotificationChannels(Iterable<String> values)
       Optional. Targets to send notifications to when a threshold is exceeded.
       This is in addition to default recipients who have billing account IAM
       roles. The value is the full REST resource name of a monitoring
       notification channel with the form
       `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5
       channels are allowed. See
       https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients
       for more details.
       
      repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
      Parameters:
      values - The monitoringNotificationChannels to add.
      Returns:
      This builder for chaining.
    • clearMonitoringNotificationChannels

      public AllUpdatesRule.Builder clearMonitoringNotificationChannels()
       Optional. Targets to send notifications to when a threshold is exceeded.
       This is in addition to default recipients who have billing account IAM
       roles. The value is the full REST resource name of a monitoring
       notification channel with the form
       `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5
       channels are allowed. See
       https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients
       for more details.
       
      repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
      Returns:
      This builder for chaining.
    • addMonitoringNotificationChannelsBytes

      public AllUpdatesRule.Builder addMonitoringNotificationChannelsBytes(com.google.protobuf.ByteString value)
       Optional. Targets to send notifications to when a threshold is exceeded.
       This is in addition to default recipients who have billing account IAM
       roles. The value is the full REST resource name of a monitoring
       notification channel with the form
       `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5
       channels are allowed. See
       https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients
       for more details.
       
      repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
      Parameters:
      value - The bytes of the monitoringNotificationChannels to add.
      Returns:
      This builder for chaining.
    • getDisableDefaultIamRecipients

      public boolean getDisableDefaultIamRecipients()
       Optional. When set to true, disables default notifications sent when a
       threshold is exceeded. Default notifications are sent to those with Billing
       Account Administrator and Billing Account User IAM roles for the target
       account.
       
      bool disable_default_iam_recipients = 4 [(.google.api.field_behavior) = OPTIONAL];
      Specified by:
      getDisableDefaultIamRecipients in interface AllUpdatesRuleOrBuilder
      Returns:
      The disableDefaultIamRecipients.
    • setDisableDefaultIamRecipients

      public AllUpdatesRule.Builder setDisableDefaultIamRecipients(boolean value)
       Optional. When set to true, disables default notifications sent when a
       threshold is exceeded. Default notifications are sent to those with Billing
       Account Administrator and Billing Account User IAM roles for the target
       account.
       
      bool disable_default_iam_recipients = 4 [(.google.api.field_behavior) = OPTIONAL];
      Parameters:
      value - The disableDefaultIamRecipients to set.
      Returns:
      This builder for chaining.
    • clearDisableDefaultIamRecipients

      public AllUpdatesRule.Builder clearDisableDefaultIamRecipients()
       Optional. When set to true, disables default notifications sent when a
       threshold is exceeded. Default notifications are sent to those with Billing
       Account Administrator and Billing Account User IAM roles for the target
       account.
       
      bool disable_default_iam_recipients = 4 [(.google.api.field_behavior) = OPTIONAL];
      Returns:
      This builder for chaining.
    • getEnableProjectLevelRecipients

      public boolean getEnableProjectLevelRecipients()
       Optional. When set to true, and when the budget has a single project
       configured, notifications will be sent to project level recipients of that
       project. This field will be ignored if the budget has multiple or no
       project configured.
      
       Currently, project level recipients are the users with `Owner` role on a
       cloud project.
       
      bool enable_project_level_recipients = 5 [(.google.api.field_behavior) = OPTIONAL];
      Specified by:
      getEnableProjectLevelRecipients in interface AllUpdatesRuleOrBuilder
      Returns:
      The enableProjectLevelRecipients.
    • setEnableProjectLevelRecipients

      public AllUpdatesRule.Builder setEnableProjectLevelRecipients(boolean value)
       Optional. When set to true, and when the budget has a single project
       configured, notifications will be sent to project level recipients of that
       project. This field will be ignored if the budget has multiple or no
       project configured.
      
       Currently, project level recipients are the users with `Owner` role on a
       cloud project.
       
      bool enable_project_level_recipients = 5 [(.google.api.field_behavior) = OPTIONAL];
      Parameters:
      value - The enableProjectLevelRecipients to set.
      Returns:
      This builder for chaining.
    • clearEnableProjectLevelRecipients

      public AllUpdatesRule.Builder clearEnableProjectLevelRecipients()
       Optional. When set to true, and when the budget has a single project
       configured, notifications will be sent to project level recipients of that
       project. This field will be ignored if the budget has multiple or no
       project configured.
      
       Currently, project level recipients are the users with `Owner` role on a
       cloud project.
       
      bool enable_project_level_recipients = 5 [(.google.api.field_behavior) = OPTIONAL];
      Returns:
      This builder for chaining.