/resources/youtube_video_upload.proto

--- v25/resources/youtube_video_upload.proto    2026-09-23 19:45:55.000000000 +0000
+++ v26/resources/youtube_video_upload.proto    2026-10-09 18:55:53.000000000 +0000
@@ -1,103 +1,125 @@
 // 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.googleads.v25.resources;
+package google.ads.googleads.v26.resources;

-import "google/ads/googleads/v25/enums/youtube_video_privacy.proto";
-import "google/ads/googleads/v25/enums/youtube_video_upload_state.proto";
+import "google/ads/googleads/v26/enums/youtube_video_privacy.proto";
+import "google/ads/googleads/v26/enums/youtube_video_upload_generative_content_disclosure.proto";
+import "google/ads/googleads/v26/enums/youtube_video_upload_state.proto";
 import "google/api/field_behavior.proto";
 import "google/api/resource.proto";

-option csharp_namespace = "Google.Ads.GoogleAds.V25.Resources";
-option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v25/resources;resources";
+option csharp_namespace = "Google.Ads.GoogleAds.V26.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v26/resources;resources";
 option java_multiple_files = true;
 option java_outer_classname = "YoutubeVideoUploadProto";
-option java_package = "com.google.ads.googleads.v25.resources";
+option java_package = "com.google.ads.googleads.v26.resources";
 option objc_class_prefix = "GAA";
-option php_namespace = "Google\\Ads\\GoogleAds\\V25\\Resources";
-option ruby_package = "Google::Ads::GoogleAds::V25::Resources";
+option php_namespace = "Google\\Ads\\GoogleAds\\V26\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V26::Resources";

 // Proto file describing the YouTube video upload resource.

 // Represents a video upload to YouTube using the Google Ads API.
 message YouTubeVideoUpload {
   option (google.api.resource) = {
     type: "googleads.googleapis.com/YouTubeVideoUpload"
     pattern: "customers/{customer_id}/youTubeVideoUploads/{video_upload_id}"
     plural: "youTubeVideoUploads"
     singular: "youTubeVideoUpload"
   };

   // Immutable. Resource name of the YouTube video upload.
   string resource_name = 1 [
     (google.api.field_behavior) = IMMUTABLE,
     (google.api.resource_reference) = {
       type: "googleads.googleapis.com/YouTubeVideoUpload"
     }
   ];

   // Output only. The unique ID of the YouTube video upload.
   int64 video_upload_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY];

   // 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.
   string channel_id = 3 [(google.api.field_behavior) = IMMUTABLE];

   // Output only. The YouTube video ID of the uploaded video.
   string video_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY];

   // Output only. The current state of the YouTube video upload.
-  google.ads.googleads.v25.enums.YouTubeVideoUploadStateEnum
+  google.ads.googleads.v26.enums.YouTubeVideoUploadStateEnum
       .YouTubeVideoUploadState state = 5
       [(google.api.field_behavior) = OUTPUT_ONLY];

   // Input only. Immutable. The title of the video.
   //
   // The video title is required, must not exceed 100 characters, and must not
   // contain invalid characters. It can be modified when creating the YouTube
   // video upload, but is immutable after creation.
   //
   // See the YouTube Help Center for more information:
   // https://support.google.com/youtube/answer/57407
   string video_title = 6 [
     (google.api.field_behavior) = INPUT_ONLY,
     (google.api.field_behavior) = IMMUTABLE
   ];

   // Input only. Immutable. The description of the video.
   //
   // The video description must not exceed 5000 characters and must not contain
   // invalid characters. It can be modified when creating the YouTube video
   // upload, but is immutable after creation.
   //
   // See the YouTube Help Center for more information:
   // https://support.google.com/youtube/answer/57407
   string video_description = 7 [
     (google.api.field_behavior) = INPUT_ONLY,
     (google.api.field_behavior) = IMMUTABLE
   ];

   // 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.
-  google.ads.googleads.v25.enums.YouTubeVideoPrivacyEnum.YouTubeVideoPrivacy
+  google.ads.googleads.v26.enums.YouTubeVideoPrivacyEnum.YouTubeVideoPrivacy
       video_privacy = 8;
+
+  // Input only. Immutable. The video content metadata.
+  //
+  // Only mutable on YouTube video upload creation. Immutable after creation.
+  VideoContentMetadata video_content_metadata = 9 [
+    (google.api.field_behavior) = INPUT_ONLY,
+    (google.api.field_behavior) = IMMUTABLE
+  ];
+}
+
+// Video content metadata.
+message VideoContentMetadata {
+  // Input only. Immutable. Advertiser provided disclosure for generative
+  // content.
+  google.ads.googleads.v26.enums
+      .YouTubeVideoUploadGenerativeContentDisclosureEnum
+      .YouTubeVideoUploadGenerativeContentDisclosure
+          generative_content_disclosure = 1 [
+    (google.api.field_behavior) = INPUT_ONLY,
+    (google.api.field_behavior) = IMMUTABLE
+  ];
 }