{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-ads/json-schema/google-ads-google-ads-googleads-v25-services-create-you-tube-video-upload-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__CreateYouTubeVideoUploadRequest",
  "description": "Request message for YouTubeVideoUploadService.CreateYouTubeVideoUpload.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-media-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__CreateYouTubeVideoUploadRequest",
  "type": "object",
  "properties": {
    "youTubeVideoUpload": {
      "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__YouTubeVideoUpload",
      "description": "Required. The initial details of the video to upload. Required."
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Resources__YouTubeVideoUpload": {
      "description": "Represents a video upload to YouTube using the Google Ads API.",
      "type": "object",
      "properties": {
        "videoUploadId": {
          "format": "int64",
          "description": "Output only. The unique ID of the YouTube video upload.",
          "type": "string"
        },
        "state": {
          "x-enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The video is currently being uploaded.",
            "The video was uploaded and is being processed.",
            "The video was successfully uploaded and processed.",
            "The video upload or processing did not complete successfully.",
            "The video was not accepted due to validation or policy reasons.",
            "The video upload state is unavailable. It may have been removed from YouTube."
          ],
          "type": "string",
          "description": "Output only. The current state of the YouTube video upload.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "UPLOADED",
            "PROCESSED",
            "FAILED",
            "REJECTED",
            "UNAVAILABLE"
          ]
        },
        "videoPrivacy": {
          "description": "The privacy state of the video. Only mutable for videos uploaded to the advertiser owned (brand) YouTube channel. For videos uploaded to the Google-managed channels only UNLISTED privacy is allowed. Defaults to UNLISTED privacy if not specified.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Video is public.",
            "Video is unlisted."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PUBLIC",
            "UNLISTED"
          ]
        },
        "channelId": {
          "type": "string",
          "description": "Immutable. The destination YouTube channel ID for the video upload. Only mutable on YouTube video upload creation. If omitted, the video will be uploaded to the Google-managed YouTube channel associated with the Ads account."
        },
        "videoTitle": {
          "description": "Input only. Immutable. The title of the video. Only mutable on YouTube video upload creation. Immutable after creation.",
          "type": "string"
        },
        "videoId": {
          "description": "Output only. The YouTube video ID of the uploaded video.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Resource name of the YouTube video upload."
        },
        "videoDescription": {
          "type": "string",
          "description": "Input only. Immutable. The description of the video. Only mutable on YouTube video upload creation. Immutable after creation."
        }
      }
    }
  }
}