# 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:47:56.

require 'ad_manager_api/errors'

module AdManagerApi; module V202508; module ContentService
  class ContentServiceRegistry
    CONTENTSERVICE_METHODS = {get_content_by_statement: {input: [{name: :statement, type: "Statement", min_occurs: 0, max_occurs: 1}], output: {name: "get_content_by_statement_response", fields: [{name: :rval, type: "ContentPage", min_occurs: 0, max_occurs: 1}]}}}
    CONTENTSERVICE_TYPES = {ObjectValue: {fields: [], abstract: true, base: "Value"}, 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"}, 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}]}, AuthenticationError: {fields: [{name: :reason, type: "AuthenticationError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, BooleanValue: {fields: [{name: :value, type: "boolean", min_occurs: 0, max_occurs: 1}], base: "Value"}, CmsContent: {fields: [{name: :id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :display_name, type: "string", min_occurs: 0, max_occurs: 1}, {name: :cms_content_id, type: "string", 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"}, Content: {fields: [{name: :id, type: "long", min_occurs: 0, max_occurs: 1}, {name: :name, type: "string", min_occurs: 0, max_occurs: 1}, {name: :status, type: "ContentStatus", min_occurs: 0, max_occurs: 1}, {name: :status_defined_by, type: "ContentStatusDefinedBy", min_occurs: 0, max_occurs: 1}, {name: :hls_ingest_status, type: "DaiIngestStatus", min_occurs: 0, max_occurs: 1}, {name: :hls_ingest_errors, type: "DaiIngestError", min_occurs: 0, max_occurs: :unbounded}, {name: :last_hls_ingest_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :dash_ingest_status, type: "DaiIngestStatus", min_occurs: 0, max_occurs: 1}, {name: :dash_ingest_errors, type: "DaiIngestError", min_occurs: 0, max_occurs: :unbounded}, {name: :last_dash_ingest_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :import_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :last_modified_date_time, type: "DateTime", min_occurs: 0, max_occurs: 1}, {name: :cms_sources, type: "CmsContent", min_occurs: 0, max_occurs: :unbounded}, {name: :content_bundle_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :cms_metadata_value_ids, type: "long", min_occurs: 0, max_occurs: :unbounded}, {name: :duration, type: "long", min_occurs: 0, max_occurs: 1}]}, ContentPage: {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: "Content", min_occurs: 0, max_occurs: :unbounded}]}, DaiIngestError: {fields: [{name: :reason, type: "DaiIngestErrorReason", min_occurs: 0, max_occurs: 1}, {name: :trigger, type: "string", min_occurs: 0, max_occurs: 1}]}, 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}]}, 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"}, 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}]}, 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"}, NotNullError: {fields: [{name: :reason, type: "NotNullError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, NumberValue: {fields: [{name: :value, type: "string", min_occurs: 0, max_occurs: 1}], base: "Value"}, ParseError: {fields: [{name: :reason, type: "ParseError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, PermissionError: {fields: [{name: :reason, type: "PermissionError.Reason", min_occurs: 0, max_occurs: 1}], base: "ApiError"}, 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"}, 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"}, 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"}, 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}]}, TextValue: {fields: [{name: :value, type: "string", min_occurs: 0, max_occurs: 1}], base: "Value"}, TypeError: {fields: [], base: "ApiError"}, Value: {fields: [], abstract: true}, "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"]}, "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"]}, ContentStatus: {type: "string", enumerations: ["ACTIVE", "INACTIVE", "ARCHIVED", "UNKNOWN"]}, "FeatureError.Reason": {type: "string", enumerations: ["MISSING_FEATURE", "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"]}, "NotNullError.Reason": {type: "string", enumerations: ["ARG1_NULL", "ARG2_NULL", "ARG3_NULL", "NULL", "UNKNOWN"]}, "ParseError.Reason": {type: "string", enumerations: ["UNPARSABLE", "UNKNOWN"]}, "PermissionError.Reason": {type: "string", enumerations: ["PERMISSION_DENIED", "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"]}, "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"]}, "ServerError.Reason": {type: "string", enumerations: ["SERVER_ERROR", "SERVER_BUSY", "UNKNOWN"]}, "StatementError.Reason": {type: "string", enumerations: ["VARIABLE_NOT_BOUND_TO_VALUE", "UNKNOWN"]}, ContentStatusDefinedBy: {type: "string", enumerations: ["CMS", "USER"]}, "StringFormatError.Reason": {type: "string", enumerations: ["UNKNOWN", "ILLEGAL_CHARS", "INVALID_FORMAT"]}, "StringLengthError.Reason": {type: "string", enumerations: ["TOO_LONG", "TOO_SHORT", "UNKNOWN"]}, DaiIngestErrorReason: {type: "string", enumerations: ["INVALID_INGEST_URL", "INVALID_CLOSED_CAPTION_URL", "MISSING_CLOSED_CAPTION_URL", "COULD_NOT_FETCH_HLS", "COULD_NOT_FETCH_SUBTITLES", "MISSING_SUBTITLE_LANGUAGE", "COULD_NOT_FETCH_MEDIA", "MALFORMED_MEDIA_BYTES", "CHAPTER_TIME_OUT_OF_BOUNDS", "INTERNAL_ERROR", "CONTENT_HAS_CHAPTER_TIMES_BUT_NO_MIDROLL_SETTINGS", "MALFORMED_MEDIA_PLAYLIST", "MIXED_AD_BREAK_TAGS", "AD_BREAK_TAGS_INCONSISTENT_ACROSS_VARIANTS", "MALFORMED_SUBTITLES", "SUBTITLES_TOO_LARGE", "PLAYLIST_ITEM_URL_DOES_NOT_MATCH_INGEST_COMMON_PATH", "COULD_NOT_UPLOAD_SPLIT_MEDIA_AUTHENTICATION_FAILED", "COULD_NOT_UPLOAD_SPLIT_MEDIA_CONNECTION_FAILED", "COULD_NOT_UPLOAD_SPLIT_MEDIA_WRITE_FAILED", "PLAYLISTS_HAVE_DIFFERENT_NUMBER_OF_DISCONTINUITIES", "PLAYIST_HAS_NO_STARTING_PTS_VALUE", "PLAYLIST_DISCONTINUITY_PTS_VALUES_DIFFER_TOO_MUCH", "SEGMENT_HAS_NO_PTS", "SUBTITLE_LANGUAGE_DOES_NOT_MATCH_LANGUAGE_IN_FEED", "CANNOT_DETERMINE_CORRECT_SUBTITLES_FOR_LANGUAGE", "NO_CDN_CONFIGURATION_FOUND", "CONTENT_HAS_MIDROLLS_BUT_NO_SPLIT_CONTENT_CONFIG", "CONTENT_HAS_MIDROLLS_BUT_SOURCE_HAS_MIDROLLS_DISABLED", "ADTS_PARSE_ERROR", "AAC_SPLIT_ERROR", "AAC_PARSE_ERROR", "TS_PARSE_ERROR", "TS_SPLIT_ERROR", "UNSUPPORTED_CONTAINER_FORMAT", "MULTIPLE_ELEMENTARY_STREAMS_OF_SAME_MEDIA_TYPE_IN_TS", "UNSUPPORTED_TS_MEDIA_FORMAT", "NO_IFRAMES_NEAR_CUE_POINT", "AC3_SPLIT_ERROR", "AC3_PARSE_ERROR", "EAC3_SPLIT_ERROR", "INVALID_ENCRYPTION_KEY", "EAC3_PARSE_ERROR", "CUE_POINT_COUNT_DOES_NOT_MATCH_PTS_COUNT", "DISCONTINUITY_COUNT_DOES_NOT_MATCH_PTS_COUNT", "DASH_CUE_POINT_EVENT_MISMATCH", "DASH_MANIFEST_CONDITIONING_FAILED", "DASH_MANIFEST_CONDITIONING_SEGMENT_BOUNDARY_ERROR", "CLOSED_CAPTION_LANGUAGE_VALUE_INVALID", "CLOSED_CAPTION_NAME_VALUE_INVALID", "CLOSED_CAPTION_CHARACTERISTICS_VALUE_UNEXPECTED", "CLOSED_CAPTIONS_WITH_DUPLICATE_KEYS", "SUBTITLES_PRESENT_IN_FEED_AND_MANIFEST", "INVALID_MEDIA_PROFILE", "CHAPTER_PTS_MISMATCH", "CHAPTER_RENDITION_ERROR", "UNKNOWN"]}, DaiIngestStatus: {type: "string", enumerations: ["SUCCESS", "WARNING", "INGESTED", "INGESTED_WITH_WARNINGS", "CONDITIONED", "CONDITIONED_WITH_WARNINGS", "FAILURE", "UNKNOWN"]}}
    CONTENTSERVICE_NAMESPACES = []

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

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

    def self.get_namespace(index)
      return CONTENTSERVICE_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, ContentServiceRegistry)
    end
  end
end; end; end
