// Copyright 2026 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/delivery_enums.proto";
import "google/ads/admanager/v1/line_item_enums.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.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 = "LineItemTemplateMessagesProto";
option java_package = "com.google.ads.admanager.v1";
option php_namespace = "Google\\Ads\\AdManager\\V1";
option ruby_package = "Google::Ads::AdManager::V1";

// The LineItemTemplate resource.
message LineItemTemplate {
  option (google.api.resource) = {
    type: "admanager.googleapis.com/LineItemTemplate"
    pattern: "networks/{network_code}/lineItemTemplates/{line_item_template}"
    plural: "lineItemTemplates"
    singular: "lineItemTemplate"
  };

  // Identifier. The resource name of the LineItemTemplate.
  // Format:
  // `networks/{network_code}/lineItemTemplates/{line_item_template_id}`
  string name = 1 [(google.api.field_behavior) = IDENTIFIER];

  // Required. Display name of the LineItemTemplate. This attribute has a
  // maximum length of 255 characters.
  optional string display_name = 2 [(google.api.field_behavior) = REQUIRED];

  // Output only. Whether or not the LineItemTemplate represents the default
  // choices for creating a [LineItem][google.ads.admanager.v1.LineItem]. Only
  // one default LineItemTemplate is allowed per
  // [Network][google.ads.admanager.v1.Network].
  optional bool default_template = 3
      [(google.api.field_behavior) = OUTPUT_ONLY];

  // Optional. The default value for
  // [same_advertiser_exception_enabled][google.ads.admanager.v1.LineItem.same_advertiser_exception_enabled]
  // of a new [LineItem][google.ads.admanager.v1.LineItem].
  optional bool same_advertiser_exception_enabled = 4
      [(google.api.field_behavior) = OPTIONAL];

  // Optional. The default
  // [display_name][google.ads.admanager.v1.LineItem.display_name] of a new
  // [LineItem][google.ads.admanager.v1.LineItem]. This attribute has a maximum
  // length of 127 characters.
  optional string line_item_display_name = 5
      [(google.api.field_behavior) = OPTIONAL];

  // Required. The default
  // [line_item_type][google.ads.admanager.v1.LineItem.line_item_type] of a new
  // [LineItem][google.ads.admanager.v1.LineItem].
  optional LineItemTypeEnum.LineItemType line_item_type = 6
      [(google.api.field_behavior) = REQUIRED];

  // Optional. The default [notes][google.ads.admanager.v1.LineItem.notes] of a
  // new [LineItem][google.ads.admanager.v1.LineItem]. This attribute has a
  // maximum length of 65,535 characters.
  optional string notes = 7 [(google.api.field_behavior) = OPTIONAL];

  // Required. The default
  // [delivery_rate_type][google.ads.admanager.v1.LineItem.delivery_rate_type]
  // of a new [LineItem][google.ads.admanager.v1.LineItem].
  optional LineItemDeliveryRateTypeEnum.LineItemDeliveryRateType
      delivery_rate_type = 8 [(google.api.field_behavior) = REQUIRED];

  // Required. The default
  // [roadblocking_type][google.ads.admanager.v1.LineItem.roadblocking_type] of
  // a new [LineItem][google.ads.admanager.v1.LineItem].
  optional RoadblockingTypeEnum.RoadblockingType roadblocking_type = 9
      [(google.api.field_behavior) = REQUIRED];

  // Required. The default
  // [creative_rotation_type][google.ads.admanager.v1.LineItem.creative_rotation_type]
  // of a new [LineItem][google.ads.admanager.v1.LineItem].
  optional CreativeRotationTypeEnum.CreativeRotationType
      creative_rotation_type = 10 [(google.api.field_behavior) = REQUIRED];
}
