// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package google.ads.admanager.v1; import "google/ads/admanager/v1/applied_label.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Ads.AdManager.V1"; option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; option java_multiple_files = true; option java_outer_classname = "OrderServiceProto"; option java_package = "com.google.ads.admanager.v1"; option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; // Provides methods for handling `Order` objects. service OrderService { option (google.api.default_host) = "admanager.googleapis.com"; // API to retrieve an Order object. rpc GetOrder(GetOrderRequest) returns (Order) { option (google.api.http) = { get: "/v1/{name=networks/*/orders/*}" }; option (google.api.method_signature) = "name"; } // API to retrieve a list of `Order` objects. // // Fields used for literal matching in filter string: // * `order_id` // * `display_name` // * `external_order_id` rpc ListOrders(ListOrdersRequest) returns (ListOrdersResponse) { option (google.api.http) = { get: "/v1/{parent=networks/*}/orders" }; option (google.api.method_signature) = "parent"; } } // The `Order` resource. message Order { option (google.api.resource) = { type: "admanager.googleapis.com/Order" pattern: "networks/{network_code}/orders/{order}" plural: "orders" singular: "order" }; // The status of an Order. enum Status { // Default value. This value is unused. STATUS_UNSPECIFIED = 0; // Indicates that the Order has just been created but no approval has been // requested yet. DRAFT = 2; // Indicates that a request for approval for the Order has been made. PENDING_APPROVAL = 3; // Indicates that the Order has been approved and is ready to serve. APPROVED = 4; // Indicates that the Order has been disapproved and is not eligible to // serve. DISAPPROVED = 5; // This is a legacy state. Paused status should be checked on LineItems // within the order. PAUSED = 6; // Indicates that the Order has been canceled and cannot serve. CANCELED = 7; // Indicates that the Order has been deleted. DELETED = 8; } // Identifier. The resource name of the `Order`. // Format: `networks/{network_code}/orders/{order_id}` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Output only. Order ID. int64 order_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. The display name of the Order. This value is required to create // an order and has a maximum length of 255 characters. string display_name = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. Specifies whether or not the Order is a programmatic order. bool programmatic = 3 [(google.api.field_behavior) = OPTIONAL]; // Required. The resource name of the User responsible for trafficking the // Order. Format: "networks/{network_code}/users/{user_id}" string trafficker = 23 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } ]; // Optional. The resource names of Contacts from the advertiser of this Order. // Format: "networks/{network_code}/contacts/{contact_id}" repeated string advertiser_contacts = 5 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "admanager.googleapis.com/Contact" } ]; // Required. The resource name of the Company, which is of type // Company.Type.ADVERTISER, to which this order belongs. This attribute is // required. Format: "networks/{network_code}/companies/{company_id}" string advertiser = 6 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "admanager.googleapis.com/Company" } ]; // Optional. The resource names of Contacts from the advertising Agency of // this Order. Format: "networks/{network_code}/contacts/{contact_id}" repeated string agency_contacts = 7 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "admanager.googleapis.com/Contact" } ]; // Optional. The resource name of the Company, which is of type // Company.Type.AGENCY, with which this order is associated. Format: // "networks/{network_code}/companies/{company_id}" string agency = 8 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "admanager.googleapis.com/Company" } ]; // Optional. The resource names of Teams directly applied to this Order. // Format: "networks/{network_code}/teams/{team_id}" repeated string applied_teams = 9 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } ]; // Output only. The resource names of Teams applied to this Order including // inherited values. Format: "networks/{network_code}/teams/{team_id}" repeated string effective_teams = 28 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } ]; // Output only. The resource name of the User who created the Order on behalf // of the advertiser. This value is assigned by Google. Format: // "networks/{network_code}/users/{user_id}" string creator = 10 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } ]; // Output only. The ISO 4217 3-letter currency code for the currency used by // the Order. This value is the network's currency code. string currency_code = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The instant at which the Order and its associated line items // are eligible to begin serving. This attribute is derived from the line item // of the order that has the earliest LineItem.start_time. google.protobuf.Timestamp start_time = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The instant at which the Order and its associated line items // stop being served. This attribute is derived from the line item of the // order that has the latest LineItem.end_time. google.protobuf.Timestamp end_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. An arbitrary ID to associate to the Order, which can be used as a // key to an external system. int64 external_order_id = 13 [(google.api.field_behavior) = OPTIONAL]; // Output only. The archival status of the Order. bool archived = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The application which modified this order. This attribute is // assigned by Google. string last_modified_by_app = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The instant this Order was last modified. google.protobuf.Timestamp update_time = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Provides any additional notes that may annotate the Order. This // attribute has a maximum length of 65,535 characters. string notes = 17 [(google.api.field_behavior) = OPTIONAL]; // Optional. The purchase order number for the Order. This value has a maximum // length of 63 characters. string po_number = 18 [(google.api.field_behavior) = OPTIONAL]; // Output only. The status of the Order. Status status = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. The resource name of the User responsible for the sales of the // Order. Format: "networks/{network_code}/users/{user_id}" string salesperson = 21 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } ]; // Optional. The resource names of the secondary salespeople associated with // the order. Format: "networks/{network_code}/users/{user_id}" repeated string secondary_salespeople = 22 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } ]; // Optional. The resource names of the secondary traffickers associated with // the order. Format: "networks/{network_code}/users/{user_id}" repeated string secondary_traffickers = 24 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } ]; // Optional. The set of labels applied directly to this order. repeated AppliedLabel applied_labels = 25 [(google.api.field_behavior) = OPTIONAL]; // Output only. Contains the set of labels applied directly to the order as // well as those inherited from the company that owns the order. If a label // has been negated, only the negated label is returned. This field is // assigned by Google. repeated AppliedLabel effective_applied_labels = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request object for `GetOrder` method. message GetOrderRequest { // Required. The resource name of the Order. // Format: `networks/{network_code}/orders/{order_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "admanager.googleapis.com/Order" } ]; } // Request object for `ListOrders` method. message ListOrdersRequest { // Required. The parent, which owns this collection of Orders. // Format: `networks/{network_code}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "admanager.googleapis.com/Network" } ]; // Optional. The maximum number of `Orders` to return. The service may return // fewer than this value. If unspecified, at most 50 `Orders` will be // returned. The maximum value is 1000; values above 1000 will be coerced to // 1000. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. A page token, received from a previous `ListOrders` call. // Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to `ListOrders` must match // the call that provided the page token. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Expression to filter the response. // See syntax details at // https://developers.google.com/ad-manager/api/beta/filters string filter = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Expression to specify sorting order. // See syntax details at // https://developers.google.com/ad-manager/api/beta/filters#order string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. Number of individual resources to skip while paginating. int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; } // Response object for `ListOrdersRequest` containing matching `Order` // resources. message ListOrdersResponse { // The `Order` from the specified network. repeated Order orders = 1; // A token, which can be sent as `page_token` to retrieve the next page. // If this field is omitted, there are no subsequent pages. string next_page_token = 2; // Total number of `Orders`. // If a filter was included in the request, this reflects the total number // after the filtering is applied. // // `total_size` will not be calculated in the response unless it has been // included in a response field mask. The response field mask can be provided // to the method by using the URL parameter `$fields` or `fields`, or by using // the HTTP/gRPC header `X-Goog-FieldMask`. // // For more information, see // https://developers.google.com/ad-manager/api/beta/field-masks int32 total_size = 3; }