1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.ads.googleads.v16.resources; 18 19import "google/ads/googleads/v16/enums/account_budget_proposal_status.proto"; 20import "google/ads/googleads/v16/enums/account_budget_proposal_type.proto"; 21import "google/ads/googleads/v16/enums/spending_limit_type.proto"; 22import "google/ads/googleads/v16/enums/time_type.proto"; 23import "google/api/field_behavior.proto"; 24import "google/api/resource.proto"; 25 26option csharp_namespace = "Google.Ads.GoogleAds.V16.Resources"; 27option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v16/resources;resources"; 28option java_multiple_files = true; 29option java_outer_classname = "AccountBudgetProposalProto"; 30option java_package = "com.google.ads.googleads.v16.resources"; 31option objc_class_prefix = "GAA"; 32option php_namespace = "Google\\Ads\\GoogleAds\\V16\\Resources"; 33option ruby_package = "Google::Ads::GoogleAds::V16::Resources"; 34 35// Proto file describing the AccountBudgetProposal resource. 36 37// An account-level budget proposal. 38// 39// All fields prefixed with 'proposed' may not necessarily be applied directly. 40// For example, proposed spending limits may be adjusted before their 41// application. This is true if the 'proposed' field has an 'approved' 42// counterpart, for example, spending limits. 43// 44// Note that the proposal type (proposal_type) changes which fields are 45// required and which must remain empty. 46message AccountBudgetProposal { 47 option (google.api.resource) = { 48 type: "googleads.googleapis.com/AccountBudgetProposal" 49 pattern: "customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}" 50 }; 51 52 // Immutable. The resource name of the proposal. 53 // AccountBudgetProposal resource names have the form: 54 // 55 // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` 56 string resource_name = 1 [ 57 (google.api.field_behavior) = IMMUTABLE, 58 (google.api.resource_reference) = { 59 type: "googleads.googleapis.com/AccountBudgetProposal" 60 } 61 ]; 62 63 // Output only. The ID of the proposal. 64 optional int64 id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; 65 66 // Immutable. The resource name of the billing setup associated with this 67 // proposal. 68 optional string billing_setup = 26 [ 69 (google.api.field_behavior) = IMMUTABLE, 70 (google.api.resource_reference) = { 71 type: "googleads.googleapis.com/BillingSetup" 72 } 73 ]; 74 75 // Immutable. The resource name of the account-level budget associated with 76 // this proposal. 77 optional string account_budget = 27 [ 78 (google.api.field_behavior) = IMMUTABLE, 79 (google.api.resource_reference) = { 80 type: "googleads.googleapis.com/AccountBudget" 81 } 82 ]; 83 84 // Immutable. The type of this proposal, for example, END to end the budget 85 // associated with this proposal. 86 google.ads.googleads.v16.enums.AccountBudgetProposalTypeEnum 87 .AccountBudgetProposalType proposal_type = 4 88 [(google.api.field_behavior) = IMMUTABLE]; 89 90 // Output only. The status of this proposal. 91 // When a new proposal is created, the status defaults to PENDING. 92 google.ads.googleads.v16.enums.AccountBudgetProposalStatusEnum 93 .AccountBudgetProposalStatus status = 15 94 [(google.api.field_behavior) = OUTPUT_ONLY]; 95 96 // Immutable. The name to assign to the account-level budget. 97 optional string proposed_name = 28 [(google.api.field_behavior) = IMMUTABLE]; 98 99 // Output only. The approved start date time in yyyy-mm-dd hh:mm:ss format. 100 optional string approved_start_date_time = 30 101 [(google.api.field_behavior) = OUTPUT_ONLY]; 102 103 // Immutable. A purchase order number is a value that enables the user to help 104 // them reference this budget in their monthly invoices. 105 optional string proposed_purchase_order_number = 35 106 [(google.api.field_behavior) = IMMUTABLE]; 107 108 // Immutable. Notes associated with this budget. 109 optional string proposed_notes = 36 [(google.api.field_behavior) = IMMUTABLE]; 110 111 // Output only. The date time when this account-level budget proposal was 112 // created, which is not the same as its approval date time, if applicable. 113 optional string creation_date_time = 37 114 [(google.api.field_behavior) = OUTPUT_ONLY]; 115 116 // Output only. The date time when this account-level budget was approved, if 117 // applicable. 118 optional string approval_date_time = 38 119 [(google.api.field_behavior) = OUTPUT_ONLY]; 120 121 // The proposed start date time of the account-level budget, which cannot be 122 // in the past. 123 oneof proposed_start_time { 124 // Immutable. The proposed start date time in yyyy-mm-dd hh:mm:ss format. 125 string proposed_start_date_time = 29 126 [(google.api.field_behavior) = IMMUTABLE]; 127 128 // Immutable. The proposed start date time as a well-defined type, for 129 // example, NOW. 130 google.ads.googleads.v16.enums.TimeTypeEnum.TimeType 131 proposed_start_time_type = 7 [(google.api.field_behavior) = IMMUTABLE]; 132 } 133 134 // The proposed end date time of the account-level budget, which cannot be in 135 // the past. 136 oneof proposed_end_time { 137 // Immutable. The proposed end date time in yyyy-mm-dd hh:mm:ss format. 138 string proposed_end_date_time = 31 139 [(google.api.field_behavior) = IMMUTABLE]; 140 141 // Immutable. The proposed end date time as a well-defined type, for 142 // example, FOREVER. 143 google.ads.googleads.v16.enums.TimeTypeEnum.TimeType 144 proposed_end_time_type = 9 [(google.api.field_behavior) = IMMUTABLE]; 145 } 146 147 // The approved end date time of the account-level budget. 148 oneof approved_end_time { 149 // Output only. The approved end date time in yyyy-mm-dd hh:mm:ss format. 150 string approved_end_date_time = 32 151 [(google.api.field_behavior) = OUTPUT_ONLY]; 152 153 // Output only. The approved end date time as a well-defined type, for 154 // example, FOREVER. 155 google.ads.googleads.v16.enums.TimeTypeEnum.TimeType 156 approved_end_time_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; 157 } 158 159 // The proposed spending limit. 160 oneof proposed_spending_limit { 161 // Immutable. The proposed spending limit in micros. One million is 162 // equivalent to one unit. 163 int64 proposed_spending_limit_micros = 33 164 [(google.api.field_behavior) = IMMUTABLE]; 165 166 // Immutable. The proposed spending limit as a well-defined type, for 167 // example, INFINITE. 168 google.ads.googleads.v16.enums.SpendingLimitTypeEnum.SpendingLimitType 169 proposed_spending_limit_type = 11 170 [(google.api.field_behavior) = IMMUTABLE]; 171 } 172 173 // The approved spending limit. 174 oneof approved_spending_limit { 175 // Output only. The approved spending limit in micros. One million is 176 // equivalent to one unit. 177 int64 approved_spending_limit_micros = 34 178 [(google.api.field_behavior) = OUTPUT_ONLY]; 179 180 // Output only. The approved spending limit as a well-defined type, for 181 // example, INFINITE. 182 google.ads.googleads.v16.enums.SpendingLimitTypeEnum.SpendingLimitType 183 approved_spending_limit_type = 24 184 [(google.api.field_behavior) = OUTPUT_ONLY]; 185 } 186} 187