// 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;

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 = "McmEnumsProto";
option java_package = "com.google.ads.admanager.v1";
option php_namespace = "Google\\Ads\\AdManager\\V1";
option ruby_package = "Google::Ads::AdManager::V1";

// Wrapper for
// [DelegationType][google.ads.admanager.v1.DelegationTypeEnum.DelegationType]
message DelegationTypeEnum {
  // The delegation type of the MCM child publisher.
  enum DelegationType {
    // No value specified
    DELEGATION_TYPE_UNSPECIFIED = 0;

    // Indicates the parent network gets complete access to the child network's
    // account.
    MANAGE_ACCOUNT = 1;

    // Indicates a subset of the ad requests from the child are delegated to the
    // parent, determined by the tag on the child network's web pages. The
    // parent network does not have access to the child network, as a subset of
    // the inventory could be owned and operated by the child network.
    MANAGE_INVENTORY = 2;
  }
}

// Wrapper for
// [McmReadinessStatus][google.ads.admanager.v1.McmReadinessStatusEnum.McmReadinessStatus]
message McmReadinessStatusEnum {
  // Status of the MCM child publisher's Ad Manager network onboarding readiness
  // status
  enum McmReadinessStatus {
    // No value specified
    MCM_READINESS_STATUS_UNSPECIFIED = 0;

    // Indicates the invitation to the child is declined or withdrawn.
    INACTIVE = 1;

    // Indicates the MCM setup has not yet completed. It could be child not yet
    // accepted the invitation, Google found noncompliance settings or child has
    // not yet completed identity or address verifications.
    NOT_READY = 2;

    // Indicates MCM setup has completed. Including the child publisher accepted
    // the invite, Google found it to be compliant with its policies, i.e. no
    // policy violations were found, related verifications have completed and
    // the child publisher can be served ads.
    READY = 3;
  }
}

// Wrapper for
// [DelegationInvitationStatus][google.ads.admanager.v1.DelegationInvitationStatusEnum.DelegationInvitationStatus]
message DelegationInvitationStatusEnum {
  // Status of the association between networks. When a parent network requests
  // access, it is marked as pending. Once the child network accepts the
  // agreement, it is marked as accepted.
  enum DelegationInvitationStatus {
    // No value specified
    DELEGATION_INVITATION_STATUS_UNSPECIFIED = 0;

    // Indicates the association request from the parent network is accepted by
    // the child network.
    ACCEPTED = 1;

    // Indicates the invite was sent to the child publisher more than 90 days
    // ago, due to which it has been deactivated.
    EXPIRED = 2;

    // Indicates the child publisher has not acted on the invite from the
    // parent.
    PENDING = 3;

    // Indicates the child publisher has declined the invite.
    REJECTED = 4;

    // Indicates the parent network withdrew the invite.
    WITHDRAWN = 5;

    // Indicates the invitation was disapproved by Google.
    DEACTIVATED_BY_AD_MANAGER = 6;
  }
}

// Wrapper for
// [DelegationAccountStatus][google.ads.admanager.v1.DelegationAccountStatusEnum.DelegationAccountStatus]
message DelegationAccountStatusEnum {
  // Status of the MCM child publisher's Ad Manager account with respect to
  // delegated serving. In order for the child network to be served ads for
  // MCM, it must have accepted the invite from the parent network, and must
  // have passed Google's policy compliance verifications.
  enum DelegationAccountStatus {
    // No value specified
    DELEGATION_ACCOUNT_STATUS_UNSPECIFIED = 0;

    // Indicates the child publisher has not acted on the invite from the
    // parent.
    INVITED = 1;

    // Indicates the child publisher has declined the invite.
    DECLINED = 2;

    // Indicates the child publisher accepted the invite, and Google found it to
    // be compliant with its policies, i.e. no policy violations were found,
    // and the child publisher can be served ads.
    APPROVED = 3;

    // Indicates the child publisher has closed their own account.
    CLOSED_BY_PUBLISHER = 4;

    // Indicates the child publisher accepted the invite, but was disapproved by
    // Google for invalid activity.
    CLOSED_INVALID_ACTIVITY = 5;

    // Indicates the child publisher accepted the invite, but was disapproved by
    // Google for violating its policies.
    CLOSED_POLICY_VIOLATION = 6;

    // Indicates the child publisher accepted the invite, but was disapproved by
    // a Googler.
    DEACTIVATED_BY_AD_MANAGER = 7;

    // Indicates the child publisher accepted the invite, but was disapproved by
    // Google for being a duplicate of another account.
    DISAPPROVED_DUPLICATE_ACCOUNT = 8;

    // Indicates the child publisher accepted the invite, but was disapproved as
    // ineligible by Google.
    DISAPPROVED_INELIGIBLE = 9;

    // Indicates the child publisher has accepted the invite, and is awaiting
    // Google's policy compliance verifications.
    PENDING_GOOGLE_APPROVAL = 10;

    // Indicates the invite was sent to the child publisher more than 90 days
    // ago, due to which it has been deactivated.
    EXPIRED = 11;

    // Indicates either the child publisher disconnected from the parent
    // network, or the parent network withdrew the invite.
    INACTIVE = 12;
  }
}

// Wrapper for
// [DelegationApprovalStatus][google.ads.admanager.v1.DelegationApprovalStatusEnum.DelegationApprovalStatus]
message DelegationApprovalStatusEnum {
  // Status of the MCM child publisher's Ad Manager network with respect to
  // delegated serving. It is only valid when the invitation is accepted by the
  // child network. If the child has not yet accepted the parent's invite, this
  // will be null.
  enum DelegationApprovalStatus {
    // No value specified
    DELEGATION_APPROVAL_STATUS_UNSPECIFIED = 0;

    // Indicates the child publisher accepted the invite, and Google found it to
    // be compliant with its policies, i.e. no policy violations were found,
    // and the child publisher can be served ads.
    APPROVED = 1;

    // Indicates the child publisher has closed their own account.
    CLOSED_BY_PUBLISHER = 2;

    // Indicates the child publisher accepted the invite, but was disapproved by
    // Google for invalid activity.
    CLOSED_INVALID_ACTIVITY = 3;

    // Indicates the child publisher accepted the invite, but was disapproved by
    // Google for violating its policies.
    CLOSED_POLICY_VIOLATION = 4;

    // Indicates the child publisher accepted the invite, but was disapproved by
    // a Googler.
    DEACTIVATED_BY_AD_MANAGER = 5;

    // Indicates the child publisher accepted the invite, but was disapproved by
    // Google for being a duplicate of another account.
    DISAPPROVED_DUPLICATE_ACCOUNT = 6;

    // Indicates the child publisher accepted the invite, but was disapproved as
    // ineligible by Google.
    DISAPPROVED_INELIGIBLE = 7;

    // Indicates the child publisher has accepted the invite, and is awaiting
    // Google's policy compliance verifications.
    PENDING_GOOGLE_APPROVAL = 8;
  }
}

// Wrapper for
// [ChildPublisherIdentityVerificationStatus][google.ads.admanager.v1.ChildPublisherIdentityVerificationStatusEnum.ChildPublisherIdentityVerificationStatus]
message ChildPublisherIdentityVerificationStatusEnum {
  // The status of the Mcm child identity verification.
  enum ChildPublisherIdentityVerificationStatus {
    // No value specified
    CHILD_PUBLISHER_IDENTITY_VERIFICATION_STATUS_UNSPECIFIED = 0;

    // Indicates publisher is exempt from identify verification.
    EXEMPT = 1;

    // Indicates publisher hasn't completed identity verification before the
    // expiration date.
    EXPIRED = 2;

    // Indicates publisher failed identity verification.
    FAILED = 3;

    // Indicates publisher is pending identity verification.
    PENDING = 4;

    // Indicates publisher is not eligible for identity verification.
    NOT_ELIGIBLE = 5;

    // Indicates publisher has completed identity verification.
    VERIFIED = 6;
  }
}

// Wrapper for
// [ChildPublisherAddressVerificationStatus][google.ads.admanager.v1.ChildPublisherAddressVerificationStatusEnum.ChildPublisherAddressVerificationStatus]
message ChildPublisherAddressVerificationStatusEnum {
  // The status of the Mcm child address verification.
  enum ChildPublisherAddressVerificationStatus {
    // No value specified
    CHILD_PUBLISHER_ADDRESS_VERIFICATION_STATUS_UNSPECIFIED = 0;

    // Indicates publisher is exempt from address verification.
    EXEMPT = 1;

    // Indicates publisher hasn't completed address verification before the
    // expiration date.
    EXPIRED = 2;

    // Indicates publisher failed address verification.
    FAILED = 3;

    // Indicates publisher's address pin has been mailed and must be verified.
    PENDING = 4;

    // Indicates publisher is not eligible for address verification.
    NOT_ELIGIBLE = 5;

    // Indicates publisher's address is verified.
    VERIFIED = 6;
  }
}

// Wrapper for
// [ChildPublisherOnboardingTask][google.ads.admanager.v1.ChildPublisherOnboardingTaskEnum.ChildPublisherOnboardingTask]
message ChildPublisherOnboardingTaskEnum {
  // The pending tasks that must be completed by the child publisher before
  // Google's policy complicance (i.e.,
  // [PENDING_GOOGLE_APPROVAL][google.ads.admanager.v1.DelegationApprovalStatusEnum.DelegationApprovalStatus.PENDING_GOOGLE_APPROVAL])
  // can be verified.
  enum ChildPublisherOnboardingTask {
    // No value specified
    CHILD_PUBLISHER_ONBOARDING_TASK_UNSPECIFIED = 0;

    // Indicates the child publisher is required to create a payments billing
    // profile.
    BILLING_PROFILE_CREATION = 1;

    // Indicates the child publisher is required to verify their phone number.
    PHONE_PIN_VERIFICATION = 2;

    // Indicates the child publisher is required to setup their Ad Manager
    // account.
    AD_MANAGER_ACCOUNT_SETUP = 4;
  }
}

// Wrapper for
// [McmEarningsProductType][google.ads.admanager.v1.McmEarningsProductTypeEnum.McmEarningsProductType]
message McmEarningsProductTypeEnum {
  // The syndication product type of the child's earnings in MCM.
  enum McmEarningsProductType {
    // No value specified
    MCM_EARNINGS_PRODUCT_TYPE_UNSPECIFIED = 0;

    // Indicates the child network's earnings from Google Ad Exchange Content.
    AD_EXCHANGE_CONTENT = 1;

    // Indicates the child network's earnings from Google Ad Exchange Content
    // made by a host.
    AD_EXCHANGE_CONTENT_HOST = 2;

    // Indicates the child network's earnings from Google Ad Exchange Games.
    AD_EXCHANGE_GAMES = 3;

    // Indicates the child network's earnings from Google Ad Exchange Games
    // made by a host.
    AD_EXCHANGE_GAMES_HOST = 4;

    // Indicates the child network's earnings from Google Ad Exchange Content
    // Applications.
    AD_EXCHANGE_MOBILE_CONTENT_APP = 5;

    // Indicates the child network's earnings from Google Ad Exchange Content
    // Applications made by a host.
    AD_EXCHANGE_MOBILE_CONTENT_APP_HOST = 6;

    // Indicates the child network's earnings from Google Ad Exchange Video.
    AD_EXCHANGE_VIDEO = 7;

    // Indicates the child network's earnings from Google Ad Exchange Video
    // made by a host.
    AD_EXCHANGE_VIDEO_HOST = 8;

    // Indicates the child network's earnings from Ad Exchange Reservations
    // deals (known externally as Programmatic Reservations).
    AD_EXCHANGE_RESERVATIONS = 9;

    // Indicates the child network's earnings from Ad Exchange Preferred deals.
    AD_EXCHANGE_PREFERRED_DEALS = 10;

    // Indicates the child network's earnings from Monteverdi Offerwall.
    OFFERWALL = 11;

    // Indicates the child network's earnings from Agency Direct.
    BUYER_DIRECT = 12;
  }
}
