# Encoding: utf-8
#
# This is auto-generated code, changes will be overwritten.
#
# Copyright:: Copyright 2025, Google Inc. All Rights Reserved.
# License:: Licensed under the Apache License, Version 2.0.
#
# Code generated by AdsCommon library 3.0.0 on 2025-08-12 14:46:55.

require 'ad_manager_api/errors'

module AdManagerApi; module V202502; module ProposalService
  class ProposalServiceRegistry
    PROPOSALSERVICE_METHODS = {create_proposals: {input: [{name: :proposals, type: "Proposal", min_occurs: 0, max_occurs: :unbounded}], output: {name: "create_proposals_response", fields: [{name: :rval, type: "Proposal", min_occurs: 0, max_occurs: :unbounded}]}}, get_marketplace_comments_by_statement: {input: [{name: :filter_statement, type: "Statement", min_occurs: 0, max_occurs: 1}], output: {name: "get_marketplace_comments_by_statement_response", fields: [{name: :rval, type: "MarketplaceCommentPage", min_occurs: 0, max_occurs: 1}]}}, get_proposals_by_statement: {input: [{name: :filter_statement, type: "Statement", min_occurs: 0, max_occurs: 1}], output: {name: "get_proposals_by_statement_response", fields: [{name: :rval, type: "ProposalPage", min_occurs: 0, max_occurs: 1}]}}, perform_proposal_action: {input: [{name: :proposal_action, type: "ProposalAction", min_occurs: 0, max_occurs: 1}, {name: :filter_statement, type: "Statement", min_occurs: 0, max_occurs: 1}], output: {name: "perform_proposal_action_response", fields: [{name: :rval, type: "UpdateResult", min_occurs: 0, max_occurs: 1}]}}, update_proposals: {input: [{name: :proposals, type: "Proposal", min_occurs: 0, max_occurs: :unbounded}], output: {name: "update_proposals_response", fields: [{name: :rval, type: "Proposal", min_occurs: 0, max_occurs: :unbounded}]}}}
    PROPOSALSERVICE_TYPES = {ObjectValue: {fields: [], abstract: true, base: "Value"}, AdUnitTargeting: {fields: [{name: :ad_unit_id, type: "string", min_occurs: 0, max_occurs: 1}, {name: :include_descendants, type: "boolean", min_occurs: 0, max_occurs: 1}]}, ApiError: {fields: [{name: :field_path, type: "string", min_occurs: 0, max_occurs: 1}, {name: :field_path_elements, type: "FieldPathElement", min_occurs: 0, max_occurs: :unbounded}, {name: :trigger, type: "string", min_occurs: 0, max_occurs: 1}, {name: :error_string, type: "string", min_occurs: 0, max_occurs: 1}], abstract: true}, ApiException: {fields: [{name: :errors, type: "ApiError", min_occurs: 0, max_occurs: :unbounded}], base: "ApplicationException"}, TechnologyTargeting: {fields: [{name: :bandwidth_group_targeting, type: "BandwidthGroupTargeting", min_occurs: 0, max_occurs: 1}, {name: :browser_targeting, type: "BrowserTargeting", min_occurs: 0, max_occurs: 1}, {name: :browser_language_targeting, type: "BrowserLanguageTargeting", min_occurs: 0, max_occurs: 1}, {name: :device_capability_targeting, type: "DeviceCapabilityTargeting", min_occurs: 0, max_occurs: 1}, {name: :device_category_targeting, type: "DeviceCategoryTargeting", min_occurs: 0, max_occurs: 1}, {name: :device_manufacturer_targeting, type: "DeviceManufacturerTargeting", min_occurs: 0, max_occurs: 1}, {name: :mobile_carrier_targeting, type: "MobileCarrierTargeting", min_occurs: 0, max_occurs: 1}, {name: :mobile_device_targeting, type: "MobileDeviceTargeting", min_occurs: 0, max_occurs: 1}, {name: :mobile_device_submodel_targeting, type: "MobileDeviceSubmodelTargeting", min_occurs: 0, max_occurs: 1}, {name: :operating_system_targeting, type: "OperatingSystemTargeting", min_occurs: 0, max_occurs: 1}, {name: :operating_system_version_targeting, type: "OperatingSystemVersionTargeting", min_occurs: 0, max_occurs: 1}]}, ApiVersionError: {fields: [{name: :reason, type: "ApiVersionError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ApplicationException: {fields: [{name: :message, type: "string", min_occurs: 0, max_occurs: 1}]}, AppliedLabel: {fields: [{name: :label_id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :is_negated, type: "boolean", min_occurs: 0, max_occurs: 1}]}, ArchiveProposals: {fields: [], base: "ProposalAction"}, AuthenticationError: {fields: [{name: :reason, type: "AuthenticationError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, BandwidthGroup: {fields: [], base: "Technology"}, BandwidthGroupTargeting: {fields: [{name: :is_targeted, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :bandwidth_groups, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, BaseCustomFieldValue: {fields: [{name: :custom_field_id, type: "long", min_occurs: 0, max_occurs: 1}], abstract: true}, BillingError: {fields: [{name: :reason, type: "BillingError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, BooleanValue: {fields: [{name: :value, type: "boolean", min_occurs: 0, max_occurs: 1}], base: "Value"}, Browser: {fields: [{name: :major_version, type: "string", min_occurs: 0, max_occurs: 1}, {name: :minor_version, type: "string", min_occurs: 0, max_occurs: 1}], base: "Technology"}, BrowserLanguage: {fields: [], base: "Technology"}, BrowserLanguageTargeting: {fields: [{name: :is_targeted, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :browser_languages, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, BrowserTargeting: {fields: [{name: :is_targeted, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :browsers, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, BuyerRfp: {fields: [{name: :cost_per_unit, type: "Money", min_occurs: 0, max_occurs: 1}, {name: :units, type: "long", min_occurs: 0, max_occurs: 1}, {name: :budget, type: "Money", min_occurs: 0, max_occurs: 1}, {name: :currency_code, type: "string", min_occurs: 0, max_occurs: 1}, {name: :start_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :end_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :description, type: "string", min_occurs: 0, max_occurs: 1}, {name: :creative_placeholders, type: "CreativePlaceholder", min_occurs: 0, max_occurs: :unbounded}, {name: :targeting, type: "Targeting", min_occurs: 0, max_occurs: 1}, {name: :additional_terms, type: "string", min_occurs: 0, max_occurs: 1}, {name: :ad_exchange_environment, type: "AdExchangeEnvironment", min_occurs: 0, max_occurs: 1}, {name: :rfp_type, type: "RfpType", min_occurs: 0, max_occurs: 1}]}, BuyerUserListTargeting: {fields: [{name: :has_buyer_user_list_targeting, type: "boolean", min_occurs: 0, max_occurs: 1}]}, CollectionSizeError: {fields: [{name: :reason, type: "CollectionSizeError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, CommonError: {fields: [{name: :reason, type: "CommonError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ContentLabelTargeting: {fields: [{name: :excluded_content_label_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}]}, ContentTargeting: {fields: [{name: :targeted_content_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_content_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :targeted_video_content_bundle_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_video_content_bundle_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}]}, CreativePlaceholder: {fields: [{name: :size, type: "Size", min_occurs: 0, max_occurs: 1}, {name: :creative_template_id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :companions, type: "CreativePlaceholder", min_occurs: 0, max_occurs: :unbounded}, {name: :applied_labels, type: "AppliedLabel", min_occurs: 0, max_occurs: :unbounded}, {name: :effective_applied_labels, type: "AppliedLabel", min_occurs: 0, max_occurs: :unbounded}, {name: :expected_creative_count, type: "int", min_occurs: 0, max_occurs: 1}, {name: :creative_size_type, type: "CreativeSizeType", min_occurs: 0, max_occurs: 1}, {name: :targeting_name, type: "string", min_occurs: 0, max_occurs: 1}, {name: :is_amp_only, type: "boolean", min_occurs: 0, max_occurs: 1}]}, CurrencyCodeError: {fields: [{name: :reason, type: "CurrencyCodeError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, CustomCriteria: {fields: [{name: :key_id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :value_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :operator, type: "CustomCriteria.ComparisonOperator", min_occurs: 0, max_occurs: 1}], base: "CustomCriteriaLeaf"}, CustomCriteriaSet: {fields: [{name: :logical_operator, type: "CustomCriteriaSet.LogicalOperator", min_occurs: 0, max_occurs: 1}, {name: :children, type: "CustomCriteriaNode", min_occurs: 0, max_occurs: :unbounded}], base: "CustomCriteriaNode"}, CustomFieldValue: {fields: [{name: :value, type: "Value", min_occurs: 0, max_occurs: 1}], base: "BaseCustomFieldValue"}, CustomFieldValueError: {fields: [{name: :reason, type: "CustomFieldValueError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, CmsMetadataCriteria: {fields: [{name: :operator, type: "CmsMetadataCriteria.ComparisonOperator", min_occurs: 0, max_occurs: 1}, {name: :cms_metadata_value_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}], base: "CustomCriteriaLeaf"}, CustomCriteriaLeaf: {fields: [], abstract: true, base: "CustomCriteriaNode"}, CustomCriteriaNode: {fields: [], abstract: true}, AudienceSegmentCriteria: {fields: [{name: :operator, type: "AudienceSegmentCriteria.ComparisonOperator", min_occurs: 0, max_occurs: 1}, {name: :audience_segment_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}], base: "CustomCriteriaLeaf"}, Date: {fields: [{name: :year, type: "int", min_occurs: 0, max_occurs: 1}, {name: :month, type: "int", min_occurs: 0, max_occurs: 1}, {name: :day, type: "int", min_occurs: 0, max_occurs: 1}]}, DateTime: {fields: [{name: :date, type: "Date", min_occurs: 0, max_occurs: 1}, {name: :hour, type: "int", min_occurs: 0, max_occurs: 1}, {name: :minute, type: "int", min_occurs: 0, max_occurs: 1}, {name: :second, type: "int", min_occurs: 0, max_occurs: 1}, {name: :time_zone_id, type: "string", min_occurs: 0, max_occurs: 1}]}, DateTimeRange: {fields: [{name: :start_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :end_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}]}, DateTimeRangeTargeting: {fields: [{name: :targeted_date_time_ranges, type: "DateTimeRange", min_occurs: 0, max_occurs: :unbounded}]}, DateTimeValue: {fields: [{name: :value, type: "DateTime", min_occurs: 0, max_occurs: 1}], base: "Value"}, DateValue: {fields: [{name: :value, type: "Date", min_occurs: 0, max_occurs: 1}], base: "Value"}, DayPart: {fields: [{name: :day_of_week, type: "DayOfWeek", min_occurs: 0, max_occurs: 1}, {name: :start_time, type: "TimeOfDay", min_occurs: 0, max_occurs: 1}, {name: :end_time, type: "TimeOfDay", min_occurs: 0, max_occurs: 1}]}, DayPartTargeting: {fields: [{name: :day_parts, type: "DayPart", min_occurs: 0, max_occurs: :unbounded}, {name: :time_zone, type: "DeliveryTimeZone", min_occurs: 0, max_occurs: 1}]}, DealError: {fields: [{name: :reason, type: "DealError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, DeviceCapability: {fields: [], base: "Technology"}, DeviceCapabilityTargeting: {fields: [{name: :targeted_device_capabilities, type: "Technology", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_device_capabilities, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, DeviceCategory: {fields: [], base: "Technology"}, DeviceCategoryTargeting: {fields: [{name: :targeted_device_categories, type: "Technology", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_device_categories, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, DeviceManufacturer: {fields: [], base: "Technology"}, DeviceManufacturerTargeting: {fields: [{name: :is_targeted, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :device_manufacturers, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, DiscardLocalVersionEdits: {fields: [], base: "ProposalAction"}, DropDownCustomFieldValue: {fields: [{name: :custom_field_option_id, type: "long", min_occurs: 0, max_occurs: 1}], base: "BaseCustomFieldValue"}, EditProposalsForNegotiation: {fields: [], base: "ProposalAction"}, EntityChildrenLimitReachedError: {fields: [{name: :reason, type: "EntityChildrenLimitReachedError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, EntityLimitReachedError: {fields: [{name: :reason, type: "EntityLimitReachedError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ExchangeRateError: {fields: [{name: :reason, type: "ExchangeRateError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, FeatureError: {fields: [{name: :reason, type: "FeatureError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, FieldPathElement: {fields: [{name: :field, type: "string", min_occurs: 0, max_occurs: 1}, {name: :index, type: "int", min_occurs: 0, max_occurs: 1}]}, ForecastError: {fields: [{name: :reason, type: "ForecastError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, GeoTargeting: {fields: [{name: :targeted_locations, type: "Location", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_locations, type: "Location", min_occurs: 0, max_occurs: :unbounded}]}, InternalApiError: {fields: [{name: :reason, type: "InternalApiError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, InvalidUrlError: {fields: [{name: :reason, type: "InvalidUrlError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, InventorySizeTargeting: {fields: [{name: :is_targeted, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :targeted_sizes, type: "TargetedSize", min_occurs: 0, max_occurs: :unbounded}]}, InventoryTargeting: {fields: [{name: :targeted_ad_units, type: "AdUnitTargeting", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_ad_units, type: "AdUnitTargeting", min_occurs: 0, max_occurs: :unbounded}, {name: :targeted_placement_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}]}, InventoryUrl: {fields: [{name: :id, type: "long", min_occurs: 0, max_occurs: 1}]}, InventoryUrlTargeting: {fields: [{name: :targeted_urls, type: "InventoryUrl", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_urls, type: "InventoryUrl", min_occurs: 0, max_occurs: :unbounded}]}, LabelEntityAssociationError: {fields: [{name: :reason, type: "LabelEntityAssociationError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, LineItemOperationError: {fields: [{name: :reason, type: "LineItemOperationError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, Location: {fields: [{name: :id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :type, type: "string", min_occurs: 0, max_occurs: 1}, {name: :canonical_parent_id, type: "int", min_occurs: 0, max_occurs: 1}, {name: :display_name, type: "string", min_occurs: 0, max_occurs: 1}]}, MarketplaceComment: {fields: [{name: :proposal_id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :comment, type: "string", min_occurs: 0, max_occurs: 1}, {name: :creation_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :created_by_seller, type: "boolean", min_occurs: 0, max_occurs: 1}]}, MarketplaceCommentPage: {fields: [{name: :start_index, type: "int", min_occurs: 0, max_occurs: 1}, {name: :results, type: "MarketplaceComment", min_occurs: 0, max_occurs: :unbounded}]}, ProposalMarketplaceInfo: {fields: [{name: :marketplace_id, type: "string", min_occurs: 0, max_occurs: 1}, {name: :has_local_version_edits, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :negotiation_status, type: "NegotiationStatus", min_occurs: 0, max_occurs: 1}, {name: :marketplace_comment, type: "string", min_occurs: 0, max_occurs: 1}, {name: :is_new_version_from_buyer, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :buyer_account_id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :partner_client_id, type: "string", min_occurs: 0, max_occurs: 1}]}, MobileApplicationTargeting: {fields: [{name: :mobile_application_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :is_targeted, type: "boolean", min_occurs: 0, max_occurs: 1}]}, MobileCarrier: {fields: [], base: "Technology"}, MobileCarrierTargeting: {fields: [{name: :is_targeted, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :mobile_carriers, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, MobileDevice: {fields: [{name: :manufacturer_criterion_id, type: "long", min_occurs: 0, max_occurs: 1}], base: "Technology"}, MobileDeviceSubmodel: {fields: [{name: :mobile_device_criterion_id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :device_manufacturer_criterion_id, type: "long", min_occurs: 0, max_occurs: 1}], base: "Technology"}, MobileDeviceSubmodelTargeting: {fields: [{name: :targeted_mobile_device_submodels, type: "Technology", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_mobile_device_submodels, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, MobileDeviceTargeting: {fields: [{name: :targeted_mobile_devices, type: "Technology", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_mobile_devices, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, Money: {fields: [{name: :currency_code, type: "string", min_occurs: 0, max_occurs: 1}, {name: :micro_amount, type: "long", min_occurs: 0, max_occurs: 1}]}, NotNullError: {fields: [{name: :reason, type: "NotNullError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, NullError: {fields: [{name: :reason, type: "NullError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, NumberValue: {fields: [{name: :value, type: "string", min_occurs: 0, max_occurs: 1}], base: "Value"}, OperatingSystem: {fields: [], base: "Technology"}, OperatingSystemTargeting: {fields: [{name: :is_targeted, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :operating_systems, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, OperatingSystemVersion: {fields: [{name: :major_version, type: "int", min_occurs: 0, max_occurs: 1}, {name: :minor_version, type: "int", min_occurs: 0, max_occurs: 1}, {name: :micro_version, type: "int", min_occurs: 0, max_occurs: 1}], base: "Technology"}, OperatingSystemVersionTargeting: {fields: [{name: :targeted_operating_system_versions, type: "Technology", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_operating_system_versions, type: "Technology", min_occurs: 0, max_occurs: :unbounded}]}, ParseError: {fields: [{name: :reason, type: "ParseError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, PauseProposals: {fields: [{name: :reason, type: "string", min_occurs: 0, max_occurs: 1}], base: "ProposalAction"}, PermissionError: {fields: [{name: :reason, type: "PermissionError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, PrecisionError: {fields: [{name: :reason, type: "PrecisionError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ProgrammaticError: {fields: [{name: :reason, type: "ProgrammaticError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ProposalAction: {fields: [], abstract: true}, ProposalActionError: {fields: [{name: :reason, type: "ProposalActionError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ProposalCompanyAssociation: {fields: [{name: :company_id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :type, type: "ProposalCompanyAssociationType", min_occurs: 0, max_occurs: 1}, {name: :contact_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}]}, Proposal: {fields: [{name: :id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :is_programmatic, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :dfp_order_id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :name, type: "string", min_occurs: 0, max_occurs: 1}, {name: :start_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :end_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :status, type: "ProposalStatus", min_occurs: 0, max_occurs: 1}, {name: :is_archived, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :advertiser, type: "ProposalCompanyAssociation", min_occurs: 0, max_occurs: 1}, {name: :agencies, type: "ProposalCompanyAssociation", min_occurs: 0, max_occurs: :unbounded}, {name: :internal_notes, type: "string", min_occurs: 0, max_occurs: 1}, {name: :primary_salesperson, type: "SalespersonSplit", min_occurs: 0, max_occurs: 1}, {name: :sales_planner_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :primary_trafficker_id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :seller_contact_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :applied_team_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :custom_field_values, type: "BaseCustomFieldValue", min_occurs: 0, max_occurs: :unbounded}, {name: :applied_labels, type: "AppliedLabel", min_occurs: 0, max_occurs: :unbounded}, {name: :effective_applied_labels, type: "AppliedLabel", min_occurs: 0, max_occurs: :unbounded}, {name: :currency_code, type: "string", min_occurs: 0, max_occurs: 1}, {name: :is_sold, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :last_modified_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :marketplace_info, type: "ProposalMarketplaceInfo", min_occurs: 0, max_occurs: 1}, {name: :buyer_rfp, type: "BuyerRfp", min_occurs: 0, max_occurs: 1}, {name: :has_buyer_rfp, type: "boolean", min_occurs: 0, max_occurs: 1}, {name: :delivery_pausing_enabled, type: "boolean", min_occurs: 0, max_occurs: 1}]}, ProposalError: {fields: [{name: :reason, type: "ProposalError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ProposalLineItemError: {fields: [{name: :reason, type: "ProposalLineItemError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ProposalLineItemMakegoodError: {fields: [{name: :reason, type: "ProposalLineItemMakegoodError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ProposalLineItemProgrammaticError: {fields: [{name: :reason, type: "ProposalLineItemProgrammaticError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ProposalPage: {fields: [{name: :total_result_set_size, type: "int", min_occurs: 0, max_occurs: 1}, {name: :start_index, type: "int", min_occurs: 0, max_occurs: 1}, {name: :results, type: "Proposal", min_occurs: 0, max_occurs: :unbounded}]}, PublisherQueryLanguageContextError: {fields: [{name: :reason, type: "PublisherQueryLanguageContextError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, PublisherQueryLanguageSyntaxError: {fields: [{name: :reason, type: "PublisherQueryLanguageSyntaxError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, QuotaError: {fields: [{name: :reason, type: "QuotaError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, RangeError: {fields: [{name: :reason, type: "RangeError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, RequestBuyerAcceptance: {fields: [{name: :allow_overbook, type: "boolean", min_occurs: 0, max_occurs: 1}], base: "ProposalAction"}, RequestBuyerReview: {fields: [], base: "ProposalAction"}, RequestPlatformTargeting: {fields: [{name: :targeted_request_platforms, type: "RequestPlatform", min_occurs: 0, max_occurs: :unbounded}]}, RequiredCollectionError: {fields: [{name: :reason, type: "RequiredCollectionError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, RequiredError: {fields: [{name: :reason, type: "RequiredError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, RequiredNumberError: {fields: [{name: :reason, type: "RequiredNumberError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ReserveProposals: {fields: [{name: :allow_overbook, type: "boolean", min_occurs: 0, max_occurs: 1}], base: "ProposalAction"}, ResumeProposals: {fields: [], base: "ProposalAction"}, SalespersonSplit: {fields: [{name: :user_id, type: "long", min_occurs: 0, max_occurs: 1}]}, AudienceSegmentError: {fields: [{name: :reason, type: "AudienceSegmentError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, ServerError: {fields: [{name: :reason, type: "ServerError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, SetValue: {fields: [{name: :values, type: "Value", min_occurs: 0, max_occurs: :unbounded}], base: "Value"}, Size: {fields: [{name: :width, type: "int", min_occurs: 0, max_occurs: 1}, {name: :height, type: "int", min_occurs: 0, max_occurs: 1}, {name: :is_aspect_ratio, type: "boolean", min_occurs: 0, max_occurs: 1}]}, SoapRequestHeader: {fields: [{name: :network_code, type: "string", min_occurs: 0, max_occurs: 1}, {name: :application_name, type: "string", min_occurs: 0, max_occurs: 1}]}, SoapResponseHeader: {fields: [{name: :request_id, type: "string", min_occurs: 0, max_occurs: 1}, {name: :response_time, type: "long", min_occurs: 0, max_occurs: 1}]}, Statement: {fields: [{name: :query, type: "string", min_occurs: 0, max_occurs: 1}, {name: :values, type: "String_ValueMapEntry", min_occurs: 0, max_occurs: :unbounded}]}, StatementError: {fields: [{name: :reason, type: "StatementError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, StringFormatError: {fields: [{name: :reason, type: "StringFormatError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, StringLengthError: {fields: [{name: :reason, type: "StringLengthError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, String_ValueMapEntry: {fields: [{name: :key, type: "string", min_occurs: 0, max_occurs: 1}, {name: :value, type: "Value", min_occurs: 0, max_occurs: 1}]}, TargetedSize: {fields: [{name: :size, type: "Size", min_occurs: 0, max_occurs: 1}]}, Targeting: {fields: [{name: :geo_targeting, type: "GeoTargeting", min_occurs: 0, max_occurs: 1}, {name: :inventory_targeting, type: "InventoryTargeting", min_occurs: 0, max_occurs: 1}, {name: :day_part_targeting, type: "DayPartTargeting", min_occurs: 0, max_occurs: 1}, {name: :date_time_range_targeting, type: "DateTimeRangeTargeting", min_occurs: 0, max_occurs: 1}, {name: :technology_targeting, type: "TechnologyTargeting", min_occurs: 0, max_occurs: 1}, {name: :custom_targeting, type: "CustomCriteriaSet", min_occurs: 0, max_occurs: 1}, {name: :user_domain_targeting, type: "UserDomainTargeting", min_occurs: 0, max_occurs: 1}, {name: :content_targeting, type: "ContentTargeting", min_occurs: 0, max_occurs: 1}, {name: :video_position_targeting, type: "VideoPositionTargeting", min_occurs: 0, max_occurs: 1}, {name: :mobile_application_targeting, type: "MobileApplicationTargeting", min_occurs: 0, max_occurs: 1}, {name: :buyer_user_list_targeting, type: "BuyerUserListTargeting", min_occurs: 0, max_occurs: 1}, {name: :inventory_url_targeting, type: "InventoryUrlTargeting", min_occurs: 0, max_occurs: 1}, {name: :vertical_targeting, type: "VerticalTargeting", min_occurs: 0, max_occurs: 1}, {name: :content_label_targeting, type: "ContentLabelTargeting", min_occurs: 0, max_occurs: 1}, {name: :request_platform_targeting, type: "RequestPlatformTargeting", min_occurs: 0, max_occurs: 1}, {name: :inventory_size_targeting, type: "InventorySizeTargeting", min_occurs: 0, max_occurs: 1}]}, TeamError: {fields: [{name: :reason, type: "TeamError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, Technology: {fields: [{name: :id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :name, type: "string", min_occurs: 0, max_occurs: 1}]}, TerminateNegotiations: {fields: [], base: "ProposalAction"}, TextValue: {fields: [{name: :value, type: "string", min_occurs: 0, max_occurs: 1}], base: "Value"}, TimeOfDay: {fields: [{name: :hour, type: "int", min_occurs: 0, max_occurs: 1}, {name: :minute, type: "MinuteOfHour", min_occurs: 0, max_occurs: 1}]}, TimeZoneError: {fields: [{name: :reason, type: "TimeZoneError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, TypeError: {fields: [], base: "ApiError"}, UnarchiveProposals: {fields: [], base: "ProposalAction"}, UniqueError: {fields: [], base: "ApiError"}, UpdateOrderWithSellerData: {fields: [], base: "ProposalAction"}, UpdateResult: {fields: [{name: :num_changes, type: "int", min_occurs: 0, max_occurs: 1}]}, UserDomainTargeting: {fields: [{name: :domains, type: "string", min_occurs: 0, max_occurs: :unbounded}, {name: :targeted, type: "boolean", min_occurs: 0, max_occurs: 1}]}, Value: {fields: [], abstract: true}, VerticalTargeting: {fields: [{name: :targeted_vertical_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :excluded_vertical_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}]}, VideoPosition: {fields: [{name: :position_type, type: "VideoPosition.Type", min_occurs: 0, max_occurs: 1}, {name: :midroll_index, type: "int", min_occurs: 0, max_occurs: 1}]}, VideoPositionTargeting: {fields: [{name: :targeted_positions, type: "VideoPositionTarget", min_occurs: 0, max_occurs: :unbounded}]}, VideoPositionWithinPod: {fields: [{name: :index, type: "int", min_occurs: 0, max_occurs: 1}]}, VideoPositionTarget: {fields: [{name: :video_position, type: "VideoPosition", min_occurs: 0, max_occurs: 1}, {name: :video_bumper_type, type: "VideoBumperType", min_occurs: 0, max_occurs: 1}, {name: :video_position_within_pod, type: "VideoPositionWithinPod", min_occurs: 0, max_occurs: 1}, {name: :ad_spot_id, type: "long", min_occurs: 0, max_occurs: 1}]}, AdExchangeEnvironment: {type: "string", enumerations: ["DISPLAY", "VIDEO", "GAMES", "MOBILE", "MOBILE_OUTSTREAM_VIDEO", "DISPLAY_OUTSTREAM_VIDEO", "UNKNOWN"]}, "ApiVersionError.Reason": {type: "string", enumerations: ["UPDATE_TO_NEWER_VERSION", "UNKNOWN"]}, "AuthenticationError.Reason": {type: "string", enumerations: ["AMBIGUOUS_SOAP_REQUEST_HEADER", "INVALID_EMAIL", "AUTHENTICATION_FAILED", "INVALID_OAUTH_SIGNATURE", "INVALID_SERVICE", "MISSING_SOAP_REQUEST_HEADER", "MISSING_AUTHENTICATION_HTTP_HEADER", "MISSING_AUTHENTICATION", "NETWORK_API_ACCESS_DISABLED", "NO_NETWORKS_TO_ACCESS", "NETWORK_NOT_FOUND", "NETWORK_CODE_REQUIRED", "CONNECTION_ERROR", "GOOGLE_ACCOUNT_ALREADY_ASSOCIATED_WITH_NETWORK", "UNDER_INVESTIGATION", "UNKNOWN"]}, "BillingError.Reason": {type: "string", enumerations: ["UNSUPPORTED_BILLING_SCHEDULE", "UNSUPPORTED_BILLING_CAP", "MISSING_BILLING_SOURCE", "MISSING_BILLING_SCHEDULE", "MISSING_BILLING_CAP", "INVALID_BILLING_SOURCE_FOR_OFFLINE", "UPDATE_BILLING_NOT_ALLOWED", "MISSING_BILLING_BASE", "INVALID_BILLING_BASE", "UNKNOWN"]}, "CollectionSizeError.Reason": {type: "string", enumerations: ["TOO_LARGE", "UNKNOWN"]}, "CommonError.Reason": {type: "string", enumerations: ["NOT_FOUND", "ALREADY_EXISTS", "NOT_APPLICABLE", "DUPLICATE_OBJECT", "CANNOT_UPDATE", "UNSUPPORTED_OPERATION", "CONCURRENT_MODIFICATION", "UNKNOWN"]}, CreativeSizeType: {type: "string", enumerations: ["PIXEL", "ASPECT_RATIO", "INTERSTITIAL", "IGNORED", "NATIVE", "AUDIO"]}, "CurrencyCodeError.Reason": {type: "string", enumerations: ["INVALID", "UNSUPPORTED", "DEPRECATED_CURRENCY_USED"]}, "CustomCriteria.ComparisonOperator": {type: "string", enumerations: ["IS", "IS_NOT"]}, "CustomCriteriaSet.LogicalOperator": {type: "string", enumerations: ["AND", "OR"]}, "CustomFieldValueError.Reason": {type: "string", enumerations: ["CUSTOM_FIELD_NOT_FOUND", "CUSTOM_FIELD_INACTIVE", "CUSTOM_FIELD_OPTION_NOT_FOUND", "INVALID_ENTITY_TYPE", "UNKNOWN"]}, "CmsMetadataCriteria.ComparisonOperator": {type: "string", enumerations: ["EQUALS", "NOT_EQUALS"]}, "AudienceSegmentCriteria.ComparisonOperator": {type: "string", enumerations: ["IS", "IS_NOT"]}, DayOfWeek: {type: "string", enumerations: ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]}, DeliveryTimeZone: {type: "string", enumerations: ["PUBLISHER", "BROWSER"]}, "DealError.Reason": {type: "string", enumerations: ["CANNOT_ADD_LINE_ITEM_WHEN_SOLD", "CANNOT_ARCHIVE_LINE_ITEM_WHEN_SOLD", "CANNOT_ARCHIVE_PROPOSAL_WHEN_SOLD", "CANNOT_CHANGE_FIELD_REQUIRING_BUYER_APPROVAL", "CANNOT_GET_SELLER_ID", "CAN_ONLY_EXECUTE_IF_LOCAL_EDITS", "MISSING_PROPOSAL_LINE_ITEMS", "MISSING_ENVIRONMENT", "MISSING_AD_EXCHANGE_PROPERTY", "CANNOT_FIND_PROPOSAL_IN_MARKETPLACE", "CANNOT_GET_PRODUCT", "NEW_VERSION_FROM_BUYER", "PROPOSAL_OUT_OF_SYNC_WITH_MARKETPLACE", "NO_PROPOSAL_CHANGES_FOUND", "UNKNOWN"]}, "EntityChildrenLimitReachedError.Reason": {type: "string", enumerations: ["LINE_ITEM_LIMIT_FOR_ORDER_REACHED", "CREATIVE_ASSOCIATION_LIMIT_FOR_LINE_ITEM_REACHED", "AD_UNIT_LIMIT_FOR_PLACEMENT_REACHED", "TARGETING_EXPRESSION_LIMIT_FOR_LINE_ITEM_REACHED", "TARGETING_EXPRESSION_SIZE_LIMIT_REACHED", "CUSTOM_TARGETING_VALUES_FOR_KEY_LIMIT_REACHED", "TARGETING_EXPRESSION_LIMIT_FOR_CREATIVES_ON_LINE_ITEM_REACHED", "ATTACHMENT_LIMIT_FOR_PROPOSAL_REACHED", "PROPOSAL_LINE_ITEM_LIMIT_FOR_PROPOSAL_REACHED", "PRODUCT_LIMIT_FOR_PRODUCT_PACKAGE_REACHED", "PRODUCT_TEMPLATE_AND_PRODUCT_BASE_RATE_LIMIT_FOR_RATE_CARD_REACHED", "PRODUCT_PACKAGE_ITEM_BASE_RATE_LIMIT_FOR_RATE_CARD_REACHED", "PREMIUM_LIMIT_FOR_RATE_CARD_REACHED", "AD_UNIT_LIMIT_FOR_AD_EXCLUSION_RULE_TARGETING_REACHED", "NATIVE_STYLE_LIMIT_FOR_NATIVE_AD_FORMAT_REACHED", "TARGETING_EXPRESSION_LIMIT_FOR_PRESENTATION_ASSIGNMENT_REACHED", "UNKNOWN"]}, "EntityLimitReachedError.Reason": {type: "string", enumerations: ["CUSTOM_TARGETING_VALUES_LIMIT_REACHED", "AD_EXCLUSION_RULES_LIMIT_REACHED", "FIRST_PARTY_AUDIENCE_SEGMENTS_LIMIT_REACHED", "PLACEMENTS_LIMIT_REACHED", "LINE_ITEMS_LIMIT_REACHED", "ACTIVE_LINE_ITEMS_LIMIT_REACHED", "DAI_ENCODING_PROFILES_LIMIT_REACHED", "TRAFFIC_FORECAST_SEGMENTS_LIMIT_REACHED", "FORECAST_ADJUSTMENTS_LIMIT_REACHED", "ACTIVE_EXPERIMENTS_LIMIT_REACHED", "SITES_LIMIT_REACHED", "USER_TEAMS_LIMIT_REACHED", "ACTIVE_TARGETING_PRESETS_LIMIT_REACHED", "UNKNOWN"]}, "ExchangeRateError.Reason": {type: "string", enumerations: ["INVALID_CURRENCY_CODE", "UNSUPPORTED_CURRENCY_CODE", "CURRENCY_CODE_ALREADY_EXISTS", "INVALID_EXCHANGE_RATE", "EXCHANGE_RATE_NOT_FOUND", "UNKNOWN"]}, "FeatureError.Reason": {type: "string", enumerations: ["MISSING_FEATURE", "UNKNOWN"]}, "ForecastError.Reason": {type: "string", enumerations: ["SERVER_NOT_AVAILABLE", "INTERNAL_ERROR", "NO_FORECAST_YET", "NOT_ENOUGH_INVENTORY", "SUCCESS", "ZERO_LENGTH_RESERVATION", "EXCEEDED_QUOTA", "OUTSIDE_AVAILABLE_DATE_RANGE", "UNKNOWN"]}, "InternalApiError.Reason": {type: "string", enumerations: ["UNEXPECTED_INTERNAL_API_ERROR", "TRANSIENT_ERROR", "UNKNOWN", "DOWNTIME", "ERROR_GENERATING_RESPONSE"]}, "InvalidUrlError.Reason": {type: "string", enumerations: ["ILLEGAL_CHARACTERS", "INVALID_FORMAT", "INSECURE_SCHEME", "NO_SCHEME", "UNKNOWN"]}, "LabelEntityAssociationError.Reason": {type: "string", enumerations: ["DUPLICATE_ASSOCIATION", "INVALID_ASSOCIATION", "NEGATION_NOT_ALLOWED", "DUPLICATE_ASSOCIATION_WITH_NEGATION", "UNKNOWN"]}, "LineItemOperationError.Reason": {type: "string", enumerations: ["NOT_ALLOWED", "NOT_APPLICABLE", "HAS_COMPLETED", "HAS_NO_ACTIVE_CREATIVES", "CANNOT_ACTIVATE_LEGACY_DFP_LINE_ITEM", "CANNOT_ACTIVATE_UNCONFIGURED_LINE_ITEM", "CANNOT_DELETE_DELIVERED_LINE_ITEM", "CANNOT_RESERVE_COMPANY_CREDIT_STATUS_NOT_ACTIVE", "CANNOT_ACTIVATE_INVALID_COMPANY_CREDIT_STATUS", "UNKNOWN"]}, MinuteOfHour: {type: "string", enumerations: ["ZERO", "FIFTEEN", "THIRTY", "FORTY_FIVE"]}, NegotiationStatus: {type: "string", enumerations: ["SELLER_INITIATED", "BUYER_INITIATED", "AWAITING_SELLER_REVIEW", "AWAITING_BUYER_REVIEW", "ONLY_SELLER_ACCEPTED", "FINALIZED", "CANCELLED", "UNKNOWN"]}, "NotNullError.Reason": {type: "string", enumerations: ["ARG1_NULL", "ARG2_NULL", "ARG3_NULL", "NULL", "UNKNOWN"]}, "NullError.Reason": {type: "string", enumerations: ["NULL_CONTENT"]}, "ParseError.Reason": {type: "string", enumerations: ["UNPARSABLE", "UNKNOWN"]}, "PermissionError.Reason": {type: "string", enumerations: ["PERMISSION_DENIED", "UNKNOWN"]}, "PrecisionError.Reason": {type: "string", enumerations: ["WRONG_PRECISION", "UNKNOWN"]}, "ProgrammaticError.Reason": {type: "string", enumerations: ["AUDIENCE_EXTENSION_NOT_SUPPORTED", "AUTO_EXTENSION_DAYS_NOT_SUPPORTED", "VIDEO_NOT_SUPPORTED", "ROADBLOCKING_NOT_SUPPORTED", "INVALID_CREATIVE_ROTATION", "INVALID_LINE_ITEM_TYPE", "INVALID_COST_TYPE", "SIZE_NOT_SUPPORTED", "ZERO_COST_PER_UNIT_NOT_SUPPORTED", "CANNOT_UPDATE_FIELD_FOR_APPROVED_LINE_ITEMS", "CANNOT_CREATE_LINE_ITEM_FOR_APPROVED_ORDER", "CANNOT_UPDATE_BACKFILL_WEB_PROPERTY_FOR_APPROVED_LINE_ITEMS", "COST_PER_UNIT_TOO_LOW", "UNKNOWN"]}, "ProposalActionError.Reason": {type: "string", enumerations: ["NOT_APPLICABLE", "IS_ARCHIVED", "UNKNOWN"]}, ProposalCompanyAssociationType: {type: "string", enumerations: ["PRIMARY_AGENCY", "BILLING_AGENCY", "BRANDING_AGENCY", "OTHER_AGENCY", "ADVERTISER", "UNKNOWN"]}, "ProposalError.Reason": {type: "string", enumerations: ["AD_SERVER_UNKNOWN_ERROR", "AD_SERVER_API_ERROR", "UPDATE_ADVERTISER_NOT_ALLOWED", "UPDATE_PROPOSAL_NOT_ALLOWED", "CONTACT_UNSUPPORTED_FOR_ADVERTISER", "INVALID_CONTACT", "DUPLICATED_CONTACT", "UNACCEPTABLE_COMPANY_CREDIT_STATUS", "COMPANY_CREDIT_STATUS_NOT_ACTIVE", "PRIMARY_AGENCY_REQUIRED", "PRIMARY_AGENCY_NOT_UNIQUE", "UNSUPPORTED_COMPANY_ASSOCIATION_TYPE_FOR_PROGRAMMATIC_PROPOSAL", "DUPLICATED_COMPANY_ASSOCIATION", "DUPLICATED_SALESPERSON", "DUPLICATED_SALES_PLANNER", "DUPLICATED_TRAFFICKER", "HAS_NO_UNARCHIVED_PROPOSAL_LINEITEMS", "DUPLICATE_TERMS_AND_CONDITIONS", "UNSUPPORTED_PROPOSAL_CURRENCY_CODE", "UNSUPPORTED_BUYER_CURRENCY_CODE", "INVALID_POC", "UPDATE_CURRENCY_NOT_ALLOWED", "UPDATE_TIME_ZONE_NOT_ALLOWED", "UNKNOWN"]}, "ProposalLineItemError.Reason": {type: "string", enumerations: ["NOT_SAME_RATE_CARD", "LINE_ITEM_TYPE_NOT_ALLOWED", "END_DATE_TIME_NOT_AFTER_START_TIME", "START_DATE_TIME_TOO_LATE_IN_MONTH", "END_DATE_TIME_TOO_LATE", "START_DATE_TIME_IS_IN_PAST", "END_DATE_TIME_IS_IN_PAST", "FRONTLOADED_NOT_ALLOWED", "ALL_ROADBLOCK_NOT_ALLOWED", "ALL_COMPANION_DELIVERY_NOT_ALLOWED", "CREATIVE_SET_ROADBLOCK_NOT_ALLOWED", "ALREADY_STARTED", "CONFLICT_WITH_PRODUCT", "VIOLATE_BUILT_IN_TARGETING_COMPATIBILITY_RESTRICTION", "VIOLATE_BUILT_IN_TARGETING_LOCKED_RESTRICTION", "MOBILE_TECH_CRITERIA_NOT_SUPPORTED", "UNSUPPORTED_TARGETING_TYPE", "WRONG_COST", "NO_WEB_PROPERTY_FOR_TARGETED_REQUEST_PLATFORM", "CALCULATED_COST_TOO_HIGH", "INVALID_PRIORITY_FOR_LINE_ITEM_TYPE", "UPDATE_PROPOSAL_LINE_ITEM_NOT_ALLOWED", "CANNOT_UPDATE_TO_OR_FROM_CREATIVE_SET_ROADBLOCK", "SEQUENTIAL_CREATIVE_ROTATION_NOT_ALLOWED", "UPDATE_RESERVATION_NOT_ALLOWED", "INVALID_COMPANION_DELIVERY_OPTION_FOR_ROADBLOCKING_TYPE", "INCONSISTENT_ROADBLOCK_TYPE", "INVALID_CONTRACTED_QUANTITY_BUFFER", "INVALID_VALUES_FOR_CLICK_TRACKING_LINE_ITEM_TYPE", "UPDATE_COST_ADJUSTMENT_NOT_ALLOWED", "UNSUPPORTED_RATE_CARD_CURRENCY_CODE", "END_DATE_TIME_IS_BEFORE_LAST_PAUSED_TIME", "VIDEO_INVALID_ROADBLOCKING", "UPDATE_TIME_ZONE_NOT_ALLOWED", "INVALID_TIME_ZONE_FOR_RATE_TYPE", "INVALID_TIME_ZONE_FOR_DEALS", "INVALID_ENVIRONMENT_TYPE", "SIZE_REQUIRED", "COMPANION_NOT_ALLOWED", "MISSING_COMPANION", "DUPLICATED_MASTER_SIZE", "INVALID_EXPECTED_CREATIVE_COUNT", "CANNOT_HAVE_CREATIVE_TEMPLATE", "NATIVE_CREATIVE_TEMPLATE_REQUIRED", "CANNOT_INCLUDE_NATIVE_PLACEHOLDER_WITHOUT_TEMPLATE_ID", "INVALID_CLICK_TRACKING_LINE_ITEM_TYPE", "INVALID_TARGETING_FOR_CLICK_TRACKING", "INVALID_CONTRACTED_UNITS_BOUGHT", "PLACEHOLDER_CANNOT_CONTAIN_LABELS", "INVALID_LABEL_TYPE_IN_PLACEHOLDER", "PLACEHOLDER_CANNOT_CONTAIN_NEGATED_LABELS", "CONTRACTED_UNITS_LESS_THAN_DELIVERED", "DISPLAY_ENVIRONMENT_MUST_HAVE_EXCLUDED_MOBILE_APPS_TARGETING", "MOBILE_ENVIRONMENT_MUST_HAVE_INCLUDED_MOBILE_APPS_TARGETING", "SKIPPABLE_AD_TYPE_NOT_ALLOWED", "CROSS_SELL_TARGETING_UNSUPPORTED", "CANNOT_SET_VIDEO_DURATION_ON_NON_VIDEO_DEAL", "UPDATE_VIDEO_CREATIVE_SKIPPABILITY_NOT_ALLOWED", "UPDATE_VIDEO_CREATIVE_FIELDS_NOT_ALLOWED", "UNKNOWN"]}, "ProposalLineItemMakegoodError.Reason": {type: "string", enumerations: ["ORIGINAL_ALREADY_HAS_MAKEGOOD", "ORIGINAL_IS_MAKEGOOD", "ORIGINAL_NOT_YET_SOLD", "LINE_ITEM_IS_NOT_STANDARD", "LINE_ITEM_IS_NOT_CPM", "MAKEGOODS_NOT_SUPPORTED_FOR_COST_TYPE", "ORIGINAL_TOO_FAR_IN_PAST", "RATE_DIFFERENT_THAN_ORIGINAL", "UNITS_MORE_THAN_ORIGINAL", "MAKEGOODS_NOT_SUPPORTED_FOR_NON_DV360_BUYERS", "UNKNOWN"]}, "ProposalLineItemProgrammaticError.Reason": {type: "string", enumerations: ["INVALID_PRODUCT_TYPE", "VIDEO_NOT_SUPPORTED", "ROADBLOCKING_NOT_SUPPORTED", "INVALID_CREATIVE_ROTATION", "INVALID_PROPOSAL_LINE_ITEM_TYPE", "INVALID_RATE_TYPE", "ZERO_COST_PER_UNIT_NOT_SUPPORTED", "INVALID_PROGRAMMATIC_CREATIVE_SOURCE", "INVALID_MAX_VIDEO_CREATIVE_DURATION", "CANNOT_UPDATE_PROGRAMMATIC_CREATIVE_SOURCE", "INVALID_NUM_UNITS", "MIX_GUARANTEED_AND_PREFERRED_DEAL_NOT_ALLOWED", "MIX_NATIVE_AND_BANNER_SIZE_NOT_ALLOWED", "CANNOT_UPDATE_SIZES", "INVALID_SPONSORSHIP_CONTRACTED_UNITS_BOUGHT", "INVALID_PROGRAMMATIC_PRICING_MODEL", "BUYER_DISABLED_FOR_PG_VIOLATING_SLA", "PG_NOT_SUPPORTED_FOR_AGENCY_BUYER", "BUYER_NOT_FOUND", "INVALID_ENVIRONMENT_PLATFORM_TYPE_PAIR", "CANNOT_MIX_AUDIO_VIDEO_PROGRAMMATIC_LINE_ITEM", "UNKNOWN"]}, ProposalStatus: {type: "string", enumerations: ["DRAFT", "PENDING_APPROVAL", "APPROVED", "REJECTED", "UNKNOWN"]}, "PublisherQueryLanguageContextError.Reason": {type: "string", enumerations: ["UNEXECUTABLE", "UNKNOWN"]}, "PublisherQueryLanguageSyntaxError.Reason": {type: "string", enumerations: ["UNPARSABLE", "UNKNOWN"]}, "QuotaError.Reason": {type: "string", enumerations: ["EXCEEDED_QUOTA", "UNKNOWN", "REPORT_JOB_LIMIT", "SEGMENT_POPULATION_LIMIT"]}, "RangeError.Reason": {type: "string", enumerations: ["TOO_HIGH", "TOO_LOW", "UNKNOWN"]}, RequestPlatform: {type: "string", enumerations: ["UNKNOWN", "BROWSER", "MOBILE_APP", "VIDEO_PLAYER"]}, "RequiredCollectionError.Reason": {type: "string", enumerations: ["REQUIRED", "TOO_LARGE", "TOO_SMALL", "UNKNOWN"]}, "RequiredError.Reason": {type: "string", enumerations: ["REQUIRED"]}, "RequiredNumberError.Reason": {type: "string", enumerations: ["REQUIRED", "TOO_LARGE", "TOO_SMALL", "TOO_LARGE_WITH_DETAILS", "TOO_SMALL_WITH_DETAILS", "UNKNOWN"]}, RfpType: {type: "string", enumerations: ["UNKNOWN", "PROGRAMMATIC_GUARANTEED", "PREFERRED_DEAL"]}, "AudienceSegmentError.Reason": {type: "string", enumerations: ["FIRST_PARTY_AUDIENCE_SEGMENT_NOT_SUPPORTED", "ONLY_RULE_BASED_FIRST_PARTY_AUDIENCE_SEGMENTS_CAN_BE_CREATED", "AUDIENCE_SEGMENT_ID_NOT_FOUND", "INVALID_AUDIENCE_SEGMENT_RULE", "AUDIENCE_SEGMENT_RULE_TOO_LONG", "INVALID_AUDIENCE_SEGMENT_NAME", "DUPLICATE_AUDIENCE_SEGMENT_NAME", "INVALID_AUDIENCE_SEGMENT_DESCRIPTION", "INVALID_AUDIENCE_SEGMENT_PAGEVIEWS", "INVALID_AUDIENCE_SEGMENT_RECENCY", "INVALID_AUDIENCE_SEGMENT_MEMBERSHIP_EXPIRATION", "INVALID_AUDIENCE_SEGMENT_CUSTOM_KEY_NAME", "INVALID_AUDIENCE_SEGMENT_CUSTOM_VALUE_NAME", "INVALID_AUDIENCE_SEGMENT_CUSTOM_VALUE_MATCH_TYPE", "INVALID_NESTED_FIRST_PARTY_AUDIENCE_SEGMENT", "SHARED_SELLING_PARTNER_ROOT_CANNOT_BE_INCLUDED", "INVALID_NESTED_THIRD_PARTY_AUDIENCE_SEGMENT", "INACTIVE_NESTED_AUDIENCE_SEGMENT", "AUDIENCE_SEGMENT_GLOBAL_LICENSE_ERROR", "SEGMENT_VIOLATED_POLICY", "UNKNOWN"]}, "ServerError.Reason": {type: "string", enumerations: ["SERVER_ERROR", "SERVER_BUSY", "UNKNOWN"]}, "StatementError.Reason": {type: "string", enumerations: ["VARIABLE_NOT_BOUND_TO_VALUE", "UNKNOWN"]}, "StringFormatError.Reason": {type: "string", enumerations: ["UNKNOWN", "ILLEGAL_CHARS", "INVALID_FORMAT"]}, "StringLengthError.Reason": {type: "string", enumerations: ["TOO_LONG", "TOO_SHORT", "UNKNOWN"]}, "TeamError.Reason": {type: "string", enumerations: ["ENTITY_NOT_ON_USERS_TEAMS", "AD_UNITS_NOT_ON_ORDER_TEAMS", "PLACEMENTS_NOT_ON_ORDER_TEAMS", "MISSING_USERS_TEAM", "ALL_TEAM_ASSOCIATION_NOT_ALLOWED", "INVALID_TEAM_ASSIGNMENT", "CANNOT_UPDATE_INACTIVE_TEAM", "UNKNOWN"]}, "TimeZoneError.Reason": {type: "string", enumerations: ["INVALID_TIMEZONE_ID", "TIMEZONE_ID_IN_WRONG_FORMAT", "UNKNOWN"]}, VideoBumperType: {type: "string", enumerations: ["BEFORE", "AFTER"]}, "VideoPosition.Type": {type: "string", enumerations: ["UNKNOWN", "ALL", "PREROLL", "MIDROLL", "POSTROLL"]}}
    PROPOSALSERVICE_NAMESPACES = []

    def self.get_method_signature(method_name)
      return PROPOSALSERVICE_METHODS[method_name.to_sym]
    end

    def self.get_type_signature(type_name)
      return PROPOSALSERVICE_TYPES[type_name.to_sym]
    end

    def self.get_namespace(index)
      return PROPOSALSERVICE_NAMESPACES[index]
    end
  end

  # Base class for exceptions.
  class ApplicationException < AdManagerApi::Errors::ApiException
    attr_reader :message  # string
  end

  # Exception class for holding a list of service errors.
  class ApiException < ApplicationException
    attr_reader :errors  # ApiError
    def initialize(exception_fault)
      @array_fields ||= []
      @array_fields << 'errors'
      super(exception_fault, ProposalServiceRegistry)
    end
  end
end; end; end
