• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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