1 /* 2 * Copyright 2020 Google LLC 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 // Generated by the protocol buffer compiler. DO NOT EDIT! 17 // source: google/cloud/billing/budgets/v1/budget_model.proto 18 19 package com.google.cloud.billing.budgets.v1; 20 21 public interface NotificationsRuleOrBuilder 22 extends 23 // @@protoc_insertion_point(interface_extends:google.cloud.billing.budgets.v1.NotificationsRule) 24 com.google.protobuf.MessageOrBuilder { 25 26 /** 27 * 28 * 29 * <pre> 30 * Optional. The name of the Pub/Sub topic where budget related messages will 31 * be published, in the form `projects/{project_id}/topics/{topic_id}`. 32 * Updates are sent at regular intervals to the topic. The topic needs to be 33 * created before the budget is created; see 34 * https://cloud.google.com/billing/docs/how-to/budgets#manage-notifications 35 * for more details. 36 * Caller is expected to have 37 * `pubsub.topics.setIamPolicy` permission on the topic when it's set for a 38 * budget, otherwise, the API call will fail with PERMISSION_DENIED. See 39 * https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications 40 * for more details on Pub/Sub roles and permissions. 41 * </pre> 42 * 43 * <code>string pubsub_topic = 1 [(.google.api.field_behavior) = OPTIONAL];</code> 44 * 45 * @return The pubsubTopic. 46 */ getPubsubTopic()47 java.lang.String getPubsubTopic(); 48 /** 49 * 50 * 51 * <pre> 52 * Optional. The name of the Pub/Sub topic where budget related messages will 53 * be published, in the form `projects/{project_id}/topics/{topic_id}`. 54 * Updates are sent at regular intervals to the topic. The topic needs to be 55 * created before the budget is created; see 56 * https://cloud.google.com/billing/docs/how-to/budgets#manage-notifications 57 * for more details. 58 * Caller is expected to have 59 * `pubsub.topics.setIamPolicy` permission on the topic when it's set for a 60 * budget, otherwise, the API call will fail with PERMISSION_DENIED. See 61 * https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications 62 * for more details on Pub/Sub roles and permissions. 63 * </pre> 64 * 65 * <code>string pubsub_topic = 1 [(.google.api.field_behavior) = OPTIONAL];</code> 66 * 67 * @return The bytes for pubsubTopic. 68 */ getPubsubTopicBytes()69 com.google.protobuf.ByteString getPubsubTopicBytes(); 70 71 /** 72 * 73 * 74 * <pre> 75 * Optional. Required when 76 * [NotificationsRule.pubsub_topic][google.cloud.billing.budgets.v1.NotificationsRule.pubsub_topic] 77 * is set. The schema version of the notification sent to 78 * [NotificationsRule.pubsub_topic][google.cloud.billing.budgets.v1.NotificationsRule.pubsub_topic]. 79 * Only "1.0" is accepted. It represents the JSON schema as defined in 80 * https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format. 81 * </pre> 82 * 83 * <code>string schema_version = 2 [(.google.api.field_behavior) = OPTIONAL];</code> 84 * 85 * @return The schemaVersion. 86 */ getSchemaVersion()87 java.lang.String getSchemaVersion(); 88 /** 89 * 90 * 91 * <pre> 92 * Optional. Required when 93 * [NotificationsRule.pubsub_topic][google.cloud.billing.budgets.v1.NotificationsRule.pubsub_topic] 94 * is set. The schema version of the notification sent to 95 * [NotificationsRule.pubsub_topic][google.cloud.billing.budgets.v1.NotificationsRule.pubsub_topic]. 96 * Only "1.0" is accepted. It represents the JSON schema as defined in 97 * https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format. 98 * </pre> 99 * 100 * <code>string schema_version = 2 [(.google.api.field_behavior) = OPTIONAL];</code> 101 * 102 * @return The bytes for schemaVersion. 103 */ getSchemaVersionBytes()104 com.google.protobuf.ByteString getSchemaVersionBytes(); 105 106 /** 107 * 108 * 109 * <pre> 110 * Optional. Targets to send notifications to when a threshold is exceeded. 111 * This is in addition to default recipients who have billing account IAM 112 * roles. The value is the full REST resource name of a monitoring 113 * notification channel with the form 114 * `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 115 * channels are allowed. See 116 * https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients 117 * for more details. 118 * </pre> 119 * 120 * <code> 121 * repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL]; 122 * </code> 123 * 124 * @return A list containing the monitoringNotificationChannels. 125 */ getMonitoringNotificationChannelsList()126 java.util.List<java.lang.String> getMonitoringNotificationChannelsList(); 127 /** 128 * 129 * 130 * <pre> 131 * Optional. Targets to send notifications to when a threshold is exceeded. 132 * This is in addition to default recipients who have billing account IAM 133 * roles. The value is the full REST resource name of a monitoring 134 * notification channel with the form 135 * `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 136 * channels are allowed. See 137 * https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients 138 * for more details. 139 * </pre> 140 * 141 * <code> 142 * repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL]; 143 * </code> 144 * 145 * @return The count of monitoringNotificationChannels. 146 */ getMonitoringNotificationChannelsCount()147 int getMonitoringNotificationChannelsCount(); 148 /** 149 * 150 * 151 * <pre> 152 * Optional. Targets to send notifications to when a threshold is exceeded. 153 * This is in addition to default recipients who have billing account IAM 154 * roles. The value is the full REST resource name of a monitoring 155 * notification channel with the form 156 * `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 157 * channels are allowed. See 158 * https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients 159 * for more details. 160 * </pre> 161 * 162 * <code> 163 * repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL]; 164 * </code> 165 * 166 * @param index The index of the element to return. 167 * @return The monitoringNotificationChannels at the given index. 168 */ getMonitoringNotificationChannels(int index)169 java.lang.String getMonitoringNotificationChannels(int index); 170 /** 171 * 172 * 173 * <pre> 174 * Optional. Targets to send notifications to when a threshold is exceeded. 175 * This is in addition to default recipients who have billing account IAM 176 * roles. The value is the full REST resource name of a monitoring 177 * notification channel with the form 178 * `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 179 * channels are allowed. See 180 * https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients 181 * for more details. 182 * </pre> 183 * 184 * <code> 185 * repeated string monitoring_notification_channels = 3 [(.google.api.field_behavior) = OPTIONAL]; 186 * </code> 187 * 188 * @param index The index of the value to return. 189 * @return The bytes of the monitoringNotificationChannels at the given index. 190 */ getMonitoringNotificationChannelsBytes(int index)191 com.google.protobuf.ByteString getMonitoringNotificationChannelsBytes(int index); 192 193 /** 194 * 195 * 196 * <pre> 197 * Optional. When set to true, disables default notifications sent when a 198 * threshold is exceeded. Default notifications are sent to those with Billing 199 * Account Administrator and Billing Account User IAM roles for the target 200 * account. 201 * </pre> 202 * 203 * <code>bool disable_default_iam_recipients = 4 [(.google.api.field_behavior) = OPTIONAL];</code> 204 * 205 * @return The disableDefaultIamRecipients. 206 */ getDisableDefaultIamRecipients()207 boolean getDisableDefaultIamRecipients(); 208 } 209