Class NotificationsRule
- java.lang.Object
-
- com.google.protobuf.AbstractMessageLite
-
- com.google.protobuf.AbstractMessage
-
- com.google.protobuf.GeneratedMessageV3
-
- com.google.cloud.billing.budgets.v1.NotificationsRule
-
- All Implemented Interfaces:
NotificationsRuleOrBuilder
,com.google.protobuf.Message
,com.google.protobuf.MessageLite
,com.google.protobuf.MessageLiteOrBuilder
,com.google.protobuf.MessageOrBuilder
,Serializable
public final class NotificationsRule extends com.google.protobuf.GeneratedMessageV3 implements NotificationsRuleOrBuilder
NotificationsRule defines notifications that are sent based on budget spend and thresholds.
Protobuf typegoogle.cloud.billing.budgets.v1.NotificationsRule
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
NotificationsRule.Builder
NotificationsRule defines notifications that are sent based on budget spend and thresholds.-
Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3
com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
-
-
Field Summary
Fields Modifier and Type Field Description static int
DISABLE_DEFAULT_IAM_RECIPIENTS_FIELD_NUMBER
static int
ENABLE_PROJECT_LEVEL_RECIPIENTS_FIELD_NUMBER
static int
MONITORING_NOTIFICATION_CHANNELS_FIELD_NUMBER
static int
PUBSUB_TOPIC_FIELD_NUMBER
static int
SCHEMA_VERSION_FIELD_NUMBER
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
static NotificationsRule
getDefaultInstance()
NotificationsRule
getDefaultInstanceForType()
static com.google.protobuf.Descriptors.Descriptor
getDescriptor()
boolean
getDisableDefaultIamRecipients()
Optional.boolean
getEnableProjectLevelRecipients()
Optional.String
getMonitoringNotificationChannels(int index)
Optional.com.google.protobuf.ByteString
getMonitoringNotificationChannelsBytes(int index)
Optional.int
getMonitoringNotificationChannelsCount()
Optional.com.google.protobuf.ProtocolStringList
getMonitoringNotificationChannelsList()
Optional.com.google.protobuf.Parser<NotificationsRule>
getParserForType()
String
getPubsubTopic()
Optional.com.google.protobuf.ByteString
getPubsubTopicBytes()
Optional.String
getSchemaVersion()
Optional.com.google.protobuf.ByteString
getSchemaVersionBytes()
Optional.int
getSerializedSize()
int
hashCode()
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()
boolean
isInitialized()
static NotificationsRule.Builder
newBuilder()
static NotificationsRule.Builder
newBuilder(NotificationsRule prototype)
NotificationsRule.Builder
newBuilderForType()
protected NotificationsRule.Builder
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
protected Object
newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
static NotificationsRule
parseDelimitedFrom(InputStream input)
static NotificationsRule
parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static NotificationsRule
parseFrom(byte[] data)
static NotificationsRule
parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static NotificationsRule
parseFrom(com.google.protobuf.ByteString data)
static NotificationsRule
parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static NotificationsRule
parseFrom(com.google.protobuf.CodedInputStream input)
static NotificationsRule
parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static NotificationsRule
parseFrom(InputStream input)
static NotificationsRule
parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static NotificationsRule
parseFrom(ByteBuffer data)
static NotificationsRule
parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.protobuf.Parser<NotificationsRule>
parser()
NotificationsRule.Builder
toBuilder()
void
writeTo(com.google.protobuf.CodedOutputStream output)
-
Methods inherited from class com.google.protobuf.GeneratedMessageV3
canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
-
Methods inherited from class com.google.protobuf.AbstractMessage
findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
-
Methods inherited from class com.google.protobuf.AbstractMessageLite
addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
PUBSUB_TOPIC_FIELD_NUMBER
public static final int PUBSUB_TOPIC_FIELD_NUMBER
- See Also:
- Constant Field Values
-
SCHEMA_VERSION_FIELD_NUMBER
public static final int SCHEMA_VERSION_FIELD_NUMBER
- See Also:
- Constant Field Values
-
MONITORING_NOTIFICATION_CHANNELS_FIELD_NUMBER
public static final int MONITORING_NOTIFICATION_CHANNELS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
DISABLE_DEFAULT_IAM_RECIPIENTS_FIELD_NUMBER
public static final int DISABLE_DEFAULT_IAM_RECIPIENTS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
ENABLE_PROJECT_LEVEL_RECIPIENTS_FIELD_NUMBER
public static final int ENABLE_PROJECT_LEVEL_RECIPIENTS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
-
Method Detail
-
newInstance
protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
- Overrides:
newInstance
in classcom.google.protobuf.GeneratedMessageV3
-
getDescriptor
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
-
internalGetFieldAccessorTable
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
- Specified by:
internalGetFieldAccessorTable
in classcom.google.protobuf.GeneratedMessageV3
-
getPubsubTopic
public String getPubsubTopic()
Optional. The name of the Pub/Sub topic where budget-related messages are published, in the form `projects/{project_id}/topics/{topic_id}`. Updates are sent to the topic at regular intervals; the timing of the updates is not dependent on the [threshold rules](#thresholdrule) you've set. Note that if you want your [Pub/Sub JSON object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) to contain data for `alertThresholdExceeded`, you need at least one [alert threshold rule](#thresholdrule). When you set threshold rules, you must also enable at least one of the email notification options, either using the default IAM recipients or Cloud Monitoring email notification channels. To use Pub/Sub topics with budgets, you must do the following: 1. Create the Pub/Sub topic before connecting it to your budget. For guidance, see [Manage programmatic budget alert notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications). 2. Grant the API caller the `pubsub.topics.setIamPolicy` permission on the Pub/Sub topic. If not set, the API call fails with PERMISSION_DENIED. For additional details on Pub/Sub roles and permissions, see [Permissions required for this task](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task).
string pubsub_topic = 1 [(.google.api.field_behavior) = OPTIONAL];
- Specified by:
getPubsubTopic
in interfaceNotificationsRuleOrBuilder
- Returns:
- The pubsubTopic.
-
getPubsubTopicBytes
public com.google.protobuf.ByteString getPubsubTopicBytes()
Optional. The name of the Pub/Sub topic where budget-related messages are published, in the form `projects/{project_id}/topics/{topic_id}`. Updates are sent to the topic at regular intervals; the timing of the updates is not dependent on the [threshold rules](#thresholdrule) you've set. Note that if you want your [Pub/Sub JSON object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) to contain data for `alertThresholdExceeded`, you need at least one [alert threshold rule](#thresholdrule). When you set threshold rules, you must also enable at least one of the email notification options, either using the default IAM recipients or Cloud Monitoring email notification channels. To use Pub/Sub topics with budgets, you must do the following: 1. Create the Pub/Sub topic before connecting it to your budget. For guidance, see [Manage programmatic budget alert notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications). 2. Grant the API caller the `pubsub.topics.setIamPolicy` permission on the Pub/Sub topic. If not set, the API call fails with PERMISSION_DENIED. For additional details on Pub/Sub roles and permissions, see [Permissions required for this task](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task).
string pubsub_topic = 1 [(.google.api.field_behavior) = OPTIONAL];
- Specified by:
getPubsubTopicBytes
in interfaceNotificationsRuleOrBuilder
- Returns:
- The bytes for pubsubTopic.
-
getSchemaVersion
public String getSchemaVersion()
Optional. Required when [NotificationsRule.pubsub_topic][google.cloud.billing.budgets.v1.NotificationsRule.pubsub_topic] is set. The schema version of the notification sent to [NotificationsRule.pubsub_topic][google.cloud.billing.budgets.v1.NotificationsRule.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 interfaceNotificationsRuleOrBuilder
- Returns:
- The schemaVersion.
-
getSchemaVersionBytes
public com.google.protobuf.ByteString getSchemaVersionBytes()
Optional. Required when [NotificationsRule.pubsub_topic][google.cloud.billing.budgets.v1.NotificationsRule.pubsub_topic] is set. The schema version of the notification sent to [NotificationsRule.pubsub_topic][google.cloud.billing.budgets.v1.NotificationsRule.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 interfaceNotificationsRuleOrBuilder
- Returns:
- The bytes for schemaVersion.
-
getMonitoringNotificationChannelsList
public com.google.protobuf.ProtocolStringList getMonitoringNotificationChannelsList()
Optional. Email targets to send notifications to when a threshold is exceeded. This is in addition to the `DefaultIamRecipients` who receive alert emails based on their billing account IAM role. The value is the full REST resource name of a Cloud Monitoring email notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 email notifications are allowed. To customize budget alert email recipients with monitoring notification channels, you _must create the monitoring notification channels before you link them to a budget_. For guidance on setting up notification channels to use with budgets, see [Customize budget alert email recipients](https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients). For Cloud Billing budget alerts, you _must use email notification channels_. The other types of notification channels are _not_ supported, such as Slack, SMS, or PagerDuty. If you want to [send budget notifications to Slack](https://cloud.google.com/billing/docs/how-to/notify#send_notifications_to_slack), use a pubsubTopic and configure [programmatic notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications).
repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
- Specified by:
getMonitoringNotificationChannelsList
in interfaceNotificationsRuleOrBuilder
- Returns:
- A list containing the monitoringNotificationChannels.
-
getMonitoringNotificationChannelsCount
public int getMonitoringNotificationChannelsCount()
Optional. Email targets to send notifications to when a threshold is exceeded. This is in addition to the `DefaultIamRecipients` who receive alert emails based on their billing account IAM role. The value is the full REST resource name of a Cloud Monitoring email notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 email notifications are allowed. To customize budget alert email recipients with monitoring notification channels, you _must create the monitoring notification channels before you link them to a budget_. For guidance on setting up notification channels to use with budgets, see [Customize budget alert email recipients](https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients). For Cloud Billing budget alerts, you _must use email notification channels_. The other types of notification channels are _not_ supported, such as Slack, SMS, or PagerDuty. If you want to [send budget notifications to Slack](https://cloud.google.com/billing/docs/how-to/notify#send_notifications_to_slack), use a pubsubTopic and configure [programmatic notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications).
repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
- Specified by:
getMonitoringNotificationChannelsCount
in interfaceNotificationsRuleOrBuilder
- Returns:
- The count of monitoringNotificationChannels.
-
getMonitoringNotificationChannels
public String getMonitoringNotificationChannels(int index)
Optional. Email targets to send notifications to when a threshold is exceeded. This is in addition to the `DefaultIamRecipients` who receive alert emails based on their billing account IAM role. The value is the full REST resource name of a Cloud Monitoring email notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 email notifications are allowed. To customize budget alert email recipients with monitoring notification channels, you _must create the monitoring notification channels before you link them to a budget_. For guidance on setting up notification channels to use with budgets, see [Customize budget alert email recipients](https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients). For Cloud Billing budget alerts, you _must use email notification channels_. The other types of notification channels are _not_ supported, such as Slack, SMS, or PagerDuty. If you want to [send budget notifications to Slack](https://cloud.google.com/billing/docs/how-to/notify#send_notifications_to_slack), use a pubsubTopic and configure [programmatic notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications).
repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
- Specified by:
getMonitoringNotificationChannels
in interfaceNotificationsRuleOrBuilder
- 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. Email targets to send notifications to when a threshold is exceeded. This is in addition to the `DefaultIamRecipients` who receive alert emails based on their billing account IAM role. The value is the full REST resource name of a Cloud Monitoring email notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 email notifications are allowed. To customize budget alert email recipients with monitoring notification channels, you _must create the monitoring notification channels before you link them to a budget_. For guidance on setting up notification channels to use with budgets, see [Customize budget alert email recipients](https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients). For Cloud Billing budget alerts, you _must use email notification channels_. The other types of notification channels are _not_ supported, such as Slack, SMS, or PagerDuty. If you want to [send budget notifications to Slack](https://cloud.google.com/billing/docs/how-to/notify#send_notifications_to_slack), use a pubsubTopic and configure [programmatic notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications).
repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL];
- Specified by:
getMonitoringNotificationChannelsBytes
in interfaceNotificationsRuleOrBuilder
- Parameters:
index
- The index of the value to return.- Returns:
- The bytes of the monitoringNotificationChannels at the given index.
-
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 interfaceNotificationsRuleOrBuilder
- Returns:
- The disableDefaultIamRecipients.
-
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 interfaceNotificationsRuleOrBuilder
- Returns:
- The enableProjectLevelRecipients.
-
isInitialized
public final boolean isInitialized()
- Specified by:
isInitialized
in interfacecom.google.protobuf.MessageLiteOrBuilder
- Overrides:
isInitialized
in classcom.google.protobuf.GeneratedMessageV3
-
writeTo
public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException
- Specified by:
writeTo
in interfacecom.google.protobuf.MessageLite
- Overrides:
writeTo
in classcom.google.protobuf.GeneratedMessageV3
- Throws:
IOException
-
getSerializedSize
public int getSerializedSize()
- Specified by:
getSerializedSize
in interfacecom.google.protobuf.MessageLite
- Overrides:
getSerializedSize
in classcom.google.protobuf.GeneratedMessageV3
-
equals
public boolean equals(Object obj)
- Specified by:
equals
in interfacecom.google.protobuf.Message
- Overrides:
equals
in classcom.google.protobuf.AbstractMessage
-
hashCode
public int hashCode()
- Specified by:
hashCode
in interfacecom.google.protobuf.Message
- Overrides:
hashCode
in classcom.google.protobuf.AbstractMessage
-
parseFrom
public static NotificationsRule parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static NotificationsRule parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static NotificationsRule parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static NotificationsRule parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static NotificationsRule parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static NotificationsRule parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static NotificationsRule parseFrom(InputStream input) throws IOException
- Throws:
IOException
-
parseFrom
public static NotificationsRule parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
- Throws:
IOException
-
parseDelimitedFrom
public static NotificationsRule parseDelimitedFrom(InputStream input) throws IOException
- Throws:
IOException
-
parseDelimitedFrom
public static NotificationsRule parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
- Throws:
IOException
-
parseFrom
public static NotificationsRule parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
- Throws:
IOException
-
parseFrom
public static NotificationsRule parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
- Throws:
IOException
-
newBuilderForType
public NotificationsRule.Builder newBuilderForType()
- Specified by:
newBuilderForType
in interfacecom.google.protobuf.Message
- Specified by:
newBuilderForType
in interfacecom.google.protobuf.MessageLite
-
newBuilder
public static NotificationsRule.Builder newBuilder()
-
newBuilder
public static NotificationsRule.Builder newBuilder(NotificationsRule prototype)
-
toBuilder
public NotificationsRule.Builder toBuilder()
- Specified by:
toBuilder
in interfacecom.google.protobuf.Message
- Specified by:
toBuilder
in interfacecom.google.protobuf.MessageLite
-
newBuilderForType
protected NotificationsRule.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
- Specified by:
newBuilderForType
in classcom.google.protobuf.GeneratedMessageV3
-
getDefaultInstance
public static NotificationsRule getDefaultInstance()
-
parser
public static com.google.protobuf.Parser<NotificationsRule> parser()
-
getParserForType
public com.google.protobuf.Parser<NotificationsRule> getParserForType()
- Specified by:
getParserForType
in interfacecom.google.protobuf.Message
- Specified by:
getParserForType
in interfacecom.google.protobuf.MessageLite
- Overrides:
getParserForType
in classcom.google.protobuf.GeneratedMessageV3
-
getDefaultInstanceForType
public NotificationsRule getDefaultInstanceForType()
- Specified by:
getDefaultInstanceForType
in interfacecom.google.protobuf.MessageLiteOrBuilder
- Specified by:
getDefaultInstanceForType
in interfacecom.google.protobuf.MessageOrBuilder
-
-